8.16. 고정 IP 주소가 있는 머신 확장

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

8.16.1. 고정 IP 주소를 사용하도록 스케일링 머신

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

중요

vSphere 노드의 고정 IP 주소는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

사전 요구 사항

  • install-config.yaml 파일의 초기 항목으로 featureSet:TechPreviewNoUpgrade 가 포함되어 있습니다.
  • 구성된 고정 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_datacenter_name>
            datastore: <vcenter_datastore_name>
            folder: <vcenter_vm_folder_path>
            resourcepool: <vsphere_resource_pool>
            server: <vcenter_server_ip>
    status: {}

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

      $ oc create -f <file_name>.yaml

8.16.2. 고정 IP 주소가 구성된 머신 세트 스케일링

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

중요

vSphere 노드의 고정 IP 주소는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

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

중요

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

$ oc create -f <ipaddressclaim_filename>

다음은 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: {}

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

8.16.3. 머신 세트를 사용하여 구성된 고정 IP 주소가 있는 머신을 확장

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

중요

vSphere 노드의 고정 IP 주소는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

절차의 예제에서는 머신 세트에서 머신을 스케일링하는 데 컨트롤러를 사용하는 방법을 보여줍니다.

사전 요구 사항

  • install-config.yaml 파일의 초기 항목으로 featureSet:TechPreviewNoUpgrade 가 포함되어 있습니다.
  • 구성된 고정 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
    1
    고정 IP 주소 또는 고정 IP 주소 범위를 나열하는 IP 풀을 지정합니다. IP 풀은 CRD(사용자 정의 리소스 정의)에 대한 참조이거나 IPAddressClaims 리소스 처리기에서 지원하는 리소스일 수 있습니다. 머신 컨트롤러는 머신 세트 구성에 나열된 고정 IP 주소에 액세스한 다음 각 주소를 각 시스템에 할당합니다.
    2
    이름 서버를 나열합니다. DHCP(Dynamic Host Configuration Protocol) 네트워크 구성이 고정 IP 주소를 지원하지 않기 때문에 고정 IP 주소를 수신하는 노드의 네임 서버를 지정해야 합니다.
  2. oc CLI에 다음 명령을 입력하여 머신 세트를 스케일링합니다.

    $ oc scale --replicas=2 machineset <machineset> -n openshift-machine-api

    또는 다음을 수행합니다.

    $ oc edit machineset <machineset> -n openshift-machine-api

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

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

    $ oc get ipaddressclaims.ipam.cluster.x-k8s.io -n openshift-machine-api

    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

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

    $ oc create -f ipaddress.yaml

    다음 예제에서는 정의된 네트워크 구성 정보와 하나의 정의된 고정 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
    1
    대상 IPAddressClaim 리소스의 이름입니다.
    2
    노드의 고정 IP 주소 또는 주소에 대한 세부 정보입니다.
    참고

    기본적으로 외부 컨트롤러는 머신 세트의 모든 리소스를 자동으로 검색하여 인식할 수 있는 주소 풀 유형을 확인합니다. 외부 컨트롤러에서 IPAddress 리소스에 정의된 kind: IPPool 을 찾으면 컨트롤러는 모든 고정 IP 주소를 IPAddressClaim 리소스에 바인딩합니다.

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

    $ 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