5.15. 고정 IP 주소를 사용한 머신 확장


정적 IP 주소로 노드를 실행하기 위해 클러스터를 배포한 후에는 이러한 정적 IP 주소 중 하나를 사용하도록 머신 인스턴스나 머신 세트를 확장할 수 있습니다.

5.15.1. 정적 IP 주소를 사용하도록 머신 확장

클러스터에서 미리 정의된 고정 IP 주소를 사용하도록 추가 머신 세트를 확장할 수 있습니다. 이 구성을 위해서는 머신 리소스 YAML 파일을 만든 다음 이 파일에 정적 IP 주소를 정의해야 합니다.

사전 요구 사항

  • 최소한 하나의 노드에 정적 IP 주소가 구성된 클러스터를 배포했습니다.

프로세스

  1. 머신 리소스 YAML 파일을 만들고 네트워크 매개변수에 정적 IP 주소 네트워크 정보를 정의합니다.

    네트워크 매개변수에 정의된 정적 IP 주소 정보가 포함된 머신 리소스 YAML 파일의 예입니다.

    apiVersion: machine.openshift.io/v1beta1
    kind: Machine
    metadata:
      creationTimestamp: null
      labels:
        machine.openshift.io/cluster-api-cluster: <infrastructure_id>
        machine.openshift.io/cluster-api-machine-role: <role>
        machine.openshift.io/cluster-api-machine-type: <role>
        machine.openshift.io/cluster-api-machineset: <infrastructure_id>-<role>
      name: <infrastructure_id>-<role>
      namespace: openshift-machine-api
    spec:
      lifecycleHooks: {}
      metadata: {}
      providerSpec:
        value:
          apiVersion: machine.openshift.io/v1beta1
          credentialsSecret:
            name: vsphere-cloud-credentials
          diskGiB: 120
          kind: VSphereMachineProviderSpec
          memoryMiB: 8192
          metadata:
            creationTimestamp: null
          network:
            devices:
            - gateway: 192.168.204.1 
    1
    
              ipAddrs:
              - 192.168.204.8/24 
    2
    
              nameservers: 
    3
    
              - 192.168.204.1
              networkName: qe-segment-204
          numCPUs: 4
          numCoresPerSocket: 2
          snapshot: ""
          template: <vm_template_name>
          userDataSecret:
            name: worker-user-data
          workspace:
            datacenter: <vcenter_data_center_name>
            datastore: <vcenter_datastore_name>
            folder: <vcenter_vm_folder_path>
            resourcepool: <vsphere_resource_pool>
            server: <vcenter_server_ip>
    status: {}
    Copy to Clipboard Toggle word wrap

    1
    네트워크 인터페이스의 기본 게이트웨이에 대한 IP 주소입니다.
    2
    설치 프로그램이 네트워크 인터페이스에 전달하는 IPv4, IPv6 또는 두 가지 IP 주소를 나열합니다. 두 IP 제품군 모두 기본 네트워크에 동일한 네트워크 인터페이스를 사용해야 합니다.
    3
    DNS 네임서버를 나열합니다. 최대 3개의 DNS 네임서버를 정의할 수 있습니다. 하나의 DNS 네임서버에 접근할 수 없게 될 경우를 대비해 DNS 확인을 활용하기 위해 두 개 이상의 DNS 네임서버를 정의하는 것을 고려하세요.
    • 터미널에 다음 명령을 입력하여 머신 사용자 정의 리소스(CR)를 만듭니다.

      $ oc create -f <file_name>.yaml
      Copy to Clipboard Toggle word wrap

5.15.2. 구성된 고정 IP 주소가 있는 머신의 머신 세트 확장

구성된 정적 IP 주소가 있는 머신을 확장하기 위해 머신 세트를 사용할 수 있습니다.

머신에 대한 정적 IP 주소를 요청하도록 머신 세트를 구성한 후, 머신 컨트롤러는 openshift-machine-api 네임스페이스에 IPAddressClaim 리소스를 생성합니다. 그런 다음 외부 컨트롤러는 IPAddress 리소스를 생성하고 모든 정적 IP 주소를 IPAddressClaim 리소스에 바인딩합니다.

중요

귀하의 조직에서는 다양한 유형의 IP 주소 관리(IPAM) 서비스를 사용할 수 있습니다. OpenShift Container Platform에서 특정 IPAM 서비스를 활성화하려면 YAML 정의에서 IPAddressClaim 리소스를 수동으로 만든 다음 oc CLI에 다음 명령을 입력하여 이 리소스에 정적 IP 주소를 바인딩해야 할 수 있습니다.

$ oc create -f <ipaddressclaim_filename>
Copy to Clipboard Toggle word wrap

다음은 IPAddressClaim 리소스의 예를 보여줍니다.

kind: IPAddressClaim
metadata:
  finalizers:
  - machine.openshift.io/ip-claim-protection
  name: cluster-dev-9n5wg-worker-0-m7529-claim-0-0
  namespace: openshift-machine-api
spec:
  poolRef:
    apiGroup: ipamcontroller.example.io
    kind: IPPool
    name: static-ci-pool
status: {}
Copy to Clipboard Toggle word wrap

머신 컨트롤러는 IPAddressClaim 리소스에 정적 IP 주소가 성공적으로 바인딩되었음을 나타내기 위해 머신의 상태를 IPAddressClaimed 로 업데이트합니다. 머신 컨트롤러는 각각 바인딩된 정적 IP 주소를 포함하는 여러 IPAddressClaim 리소스가 있는 머신에 동일한 상태를 적용합니다. 그런 다음 머신 컨트롤러는 가상 머신을 생성하고 머신 구성의 providerSpec 에 나열된 모든 노드에 정적 IP 주소를 적용합니다.

5.15.3. 구성된 고정 IP 주소로 머신을 확장하기 위해 머신 세트 사용

구성된 정적 IP 주소가 있는 머신을 확장하기 위해 머신 세트를 사용할 수 있습니다.

절차의 예에서는 머신 세트에서 머신의 크기를 조정하기 위해 컨트롤러를 사용하는 방법을 보여줍니다.

사전 요구 사항

  • 최소한 하나의 노드에 정적 IP 주소가 구성된 클러스터를 배포했습니다.

프로세스

  1. 머신 세트의 YAML 파일에 있는 network.devices.addressesFromPools 스키마에 IP 풀 정보를 지정하여 머신 세트를 구성합니다.

    apiVersion: machine.openshift.io/v1beta1
    kind: MachineSet
    metadata:
      annotations:
        machine.openshift.io/memoryMb: "8192"
        machine.openshift.io/vCPU: "4"
      labels:
        machine.openshift.io/cluster-api-cluster: <infrastructure_id>
      name: <infrastructure_id>-<role>
      namespace: openshift-machine-api
    spec:
      replicas: 0
      selector:
        matchLabels:
          machine.openshift.io/cluster-api-cluster: <infrastructure_id>
          machine.openshift.io/cluster-api-machineset: <infrastructure_id>-<role>
      template:
        metadata:
          labels:
            ipam: "true"
            machine.openshift.io/cluster-api-cluster: <infrastructure_id>
            machine.openshift.io/cluster-api-machine-role: worker
            machine.openshift.io/cluster-api-machine-type: worker
            machine.openshift.io/cluster-api-machineset: <infrastructure_id>-<role>
        spec:
          lifecycleHooks: {}
          metadata: {}
          providerSpec:
            value:
              apiVersion: machine.openshift.io/v1beta1
              credentialsSecret:
                name: vsphere-cloud-credentials
              diskGiB: 120
              kind: VSphereMachineProviderSpec
              memoryMiB: 8192
              metadata: {}
              network:
                devices:
                - addressesFromPools: 
    1
    
                  - group: ipamcontroller.example.io
                    name: static-ci-pool
                    resource: IPPool
                  nameservers:
                  - "192.168.204.1" 
    2
    
                  networkName: qe-segment-204
              numCPUs: 4
              numCoresPerSocket: 2
              snapshot: ""
              template: rvanderp4-dev-9n5wg-rhcos-generated-region-generated-zone
              userDataSecret:
                name: worker-user-data
              workspace:
                datacenter: IBMCdatacenter
                datastore: /IBMCdatacenter/datastore/vsanDatastore
                folder: /IBMCdatacenter/vm/rvanderp4-dev-9n5wg
                resourcePool: /IBMCdatacenter/host/IBMCcluster//Resources
                server: vcenter.ibmc.devcluster.openshift.com
    Copy to Clipboard Toggle word wrap
    1
    정적 IP 주소 또는 정적 IP 주소 범위를 나열하는 IP 풀을 지정합니다. IP 풀은 사용자 정의 리소스 정의(CRD)에 대한 참조이거나 IPAddressClaims 리소스 핸들러에서 지원하는 리소스가 될 수 있습니다. 머신 컨트롤러는 머신 세트 구성에 나열된 정적 IP 주소에 액세스한 다음 각 주소를 각 머신에 할당합니다.
    2
    네임서버를 나열합니다. DHCP(동적 호스트 구성 프로토콜) 네트워크 구성은 정적 IP 주소를 지원하지 않으므로 정적 IP 주소를 수신하는 노드에 대한 네임 서버를 지정해야 합니다.
  2. oc CLI에 다음 명령을 입력하여 머신 세트의 크기를 조정하세요.

    $ oc scale --replicas=2 machineset <machineset> -n openshift-machine-api
    Copy to Clipboard Toggle word wrap

    또는 다음을 수행합니다.

    $ oc edit machineset <machineset> -n openshift-machine-api
    Copy to Clipboard Toggle word wrap

    각 머신이 확장되면 머신 컨트롤러는 IPAddressClaim 리소스를 생성합니다.

  3. 선택 사항: 다음 명령을 입력하여 openshift-machine-api 네임스페이스에 IPAddressClaim 리소스가 있는지 확인하세요.

    $ oc get ipaddressclaims.ipam.cluster.x-k8s.io -n openshift-machine-api
    Copy to Clipboard Toggle word wrap

    openshift-machine-api 네임스페이스에 나열된 두 개의 IP 풀을 나열하는 oc CLI 출력 예

    NAME                                         POOL NAME        POOL KIND
    cluster-dev-9n5wg-worker-0-m7529-claim-0-0   static-ci-pool   IPPool
    cluster-dev-9n5wg-worker-0-wdqkt-claim-0-0   static-ci-pool   IPPool
    Copy to Clipboard Toggle word wrap

  4. 다음 명령을 입력하여 IPAddress 리소스를 만듭니다.

    $ oc create -f ipaddress.yaml
    Copy to Clipboard Toggle word wrap

    다음 예에서는 정의된 네트워크 구성 정보와 하나의 정의된 정적 IP 주소가 있는 IPAddress 리소스를 보여줍니다.

    apiVersion: ipam.cluster.x-k8s.io/v1alpha1
    kind: IPAddress
    metadata:
      name: cluster-dev-9n5wg-worker-0-m7529-ipaddress-0-0
      namespace: openshift-machine-api
    spec:
      address: 192.168.204.129
      claimRef: 
    1
    
        name: cluster-dev-9n5wg-worker-0-m7529-claim-0-0
      gateway: 192.168.204.1
      poolRef: 
    2
    
        apiGroup: ipamcontroller.example.io
        kind: IPPool
        name: static-ci-pool
      prefix: 23
    Copy to Clipboard Toggle word wrap
    1
    대상 IPAddressClaim 리소스의 이름입니다.
    2
    노드의 정적 IP 주소에 대한 자세한 정보입니다.
    참고

    기본적으로 외부 컨트롤러는 인식 가능한 주소 풀 유형을 위해 머신 세트의 모든 리소스를 자동으로 스캔합니다. 외부 컨트롤러가 IPAddress 리소스에 정의된 kind: IPPool을 찾으면 컨트롤러는 모든 정적 IP 주소를 IPAddressClaim 리소스에 바인딩합니다.

  5. IPAddress 리소스에 대한 참조로 IPAddressClaim 상태를 업데이트합니다.

    $ oc --type=merge patch IPAddressClaim cluster-dev-9n5wg-worker-0-m7529-claim-0-0 -p='{"status":{"addressRef": {"name": "cluster-dev-9n5wg-worker-0-m7529-ipaddress-0-0"}}}' -n openshift-machine-api --subresource=status
    Copy to Clipboard Toggle word wrap
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat