클러스터에서 고정 IP 주소 삭제

이 문서에서는 VMware용 GKE의 클러스터에서 고정 IP 주소를 삭제하는 방법을 설명합니다.

노드에 고정 IP 주소를 사용하는 클러스터를 만들 때 IP 블록 파일에서 IP 주소 집합을 지정합니다. 나중에 필요한 것보다 많은 IP 주소를 지정했음을 알게 되면 클러스터에서 일부 IP 주소를 삭제할 수 있습니다.

사용자 클러스터에서 IP 주소 삭제

삭제 후 충분한 IP 주소가 남도록 유의하세요. 각 클러스터 노드당 1개의 IP 주소와 업그레이드 중 임시 노드에 사용할 추가 IP 주소가 필요합니다. 예를 들어 클러스터 노드가 3개인 경우 삭제 후 4개의 IP 주소가 남아 있어야 합니다.

다음 단계를 따르세요.

  1. 관리자 클러스터에는 연결된 각 사용자 클러스터에 대한 OnPremUserCluster 커스텀 리소스가 있습니다. 관리자 클러스터에서 사용자 클러스터의 OnPremUserCluster 커스텀 리소스를 수정하세요.

    kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG edit onpremusercluster USER_CLUSTER_NAME \
        --namespace USER_CLUSTER_NAME-gke-onprem-mgmt
    

    다음을 바꿉니다.

    • ADMIN_CLUSTER_KUBECONFIG: 관리자 클러스터 kubeconfig 파일의 경로
    • USER_CLUSTER_NAME: 사용자 클러스터 이름
  2. ipBlocks 섹션에서 선택한 IP 주소를 삭제합니다.

    network:
      ...
      ipMode:
        ipBlocks:
        - gateway: 198.51.100.254
          ips:
          - hostname: user-host1
            ip: 198.51.100.1
          - hostname: user-host2
            ip: 198.51.100.2
          - hostname: user-host3
            ip: 198.51.100.3
          - hostname: user-host4
            ip: 198.51.100.4
          - hostname: user-host5
            ip: 198.51.100.5
          netmask: 255.255.255.0
        type: static
    
  3. 수정 세션을 닫습니다.

  4. 사용자 클러스터에서 기본 네임스페이스의 모든 Machine 객체를 열람합니다.

    kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get machines --output yaml
    
  5. 삭제된 IP 주소 중 하나를 사용하는 모든 머신 객체를 삭제하세요. 예를 들어 주소 198.51.100.1을 삭제했는데 my-node-pool-1234 머신 객체가 해당 주소를 사용하는 것을 발견했다고 가정해 보겠습니다.

    Name:         my-node-pool-1234
    Namespace:    default
    Labels:       kubernetes.googleapis.com/cluster-name=my-cluster
                  kubernetes.googleapis.com/cluster-namespace=default
                  ...
    Annotations:  ...
                  vm-ip-address: 198.51.100.1
    

    그러면 my-node-pool-1234 머신 객체를 삭제해야 합니다.

    kubectl --kubeconfig USER_CLUSTER_KUBECONFIG delete machine my-node-pool-1234
    
  6. 몇 분 후 클러스터 노드 주소를 열람하세요.

    kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get nodes --output wide
    
  7. 삭제된 IP 주소가 출력에 표시되지 않는 것을 확인합니다. 예를 들면 다음과 같습니다.

    myhost2   Ready ... 198.51.100.2
    myhost3   Ready ... 198.51.100.3
    myhost4   Ready ... 198.51.100.4
    

관리자 클러스터에서 IP 주소 삭제

삭제 후 충분한 IP 주소가 남도록 유의하세요. 관리자 클러스터 제어 영역 노드에 IP 주소 1개, 부가기능 노드에 주소 2개, 업그레이드 중 임시 노드에 사용할 추가 IP 주소가 필요합니다. 또한 연결된 각 사용자 클러스터에 대해 사용자 클러스터 제어 영역에 1개 또는 3개의 주소가 필요합니다. 각 고가용성(HA) 사용자 클러스터의 경우는 사용자 클러스터의 제어 영역용 관리자 클러스터에 3개의 노드가 필요합니다. HA가 아닌 각 사용자 클러스터에는 사용자 클러스터의 제어 영역용 관리자 클러스터에 1개의 노드가 필요합니다.

예를 들어 관리자 클러스터가 HA 사용자 클러스터 1개 및 비HA 사용자 클러스터 1개와 연결되어 있다고 가정해 봅시다. 삭제 후에는 다음 노드를 수용할 IP 주소가 8개 남아 있어야 합니다.

  • 관리자 클러스터 제어 영역 노드
  • 부가기능 노드 2개
  • HA 사용자 클러스터의 제어 영역용 노드 3개
  • 비HA 사용자 클러스터의 제어 영역용 노드 1개
  • 업그레이드 중에 사용할 임시 노드

다음 단계를 따르세요.

  1. 관리자 클러스터의 제어 영역 노드용 IP 주소를 확인합니다.

    kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG get nodes --output wide
    

    출력에서 제어 영역으로 나열된 노드를 찾습니다. IP 주소를 기록해 둡니다.

    gke-admin-master-hdn4z   Ready   control-plane,master … 198.51.100.101
    ...
    
  2. 관리자 클러스터에서 OnPremAdminCluster 커스텀 리소스를 수정합니다.

    kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG edit onpremadmincluster --namespace kube-system
    

    ADMIN_CLUSTER_KUBECONFIG를 관리자 클러스터 kubeconfig 파일의 경로로 바꿉니다.

  3. ipBlocks 섹션에서 선택한 IP 주소를 삭제합니다. 관리자 클러스터의 제어 영역 노드에 사용 중인 IP 주소를 삭제하지 않아야 합니다.

    network:
      ...
      ipMode:
        ipBlocks:
        - gateway: 198.51.100.254
          ips:
          - hostname: admin-host1
            ip: 198.51.100.101
          - hostname: admin-host2
            ip: 198.51.100.102
          - hostname: admin-host3
            ip: 198.51.100.103
          - hostname: admin-host4
            ip: 198.51.100.104
          - hostname: admin-host5
            ip: 198.51.100.105
          - hostname: admin-host6
            ip: 198.51.100.106
          - hostname: admin-host7
            ip: 198.51.100.107
          - hostname: admin-host8
            ip: 198.51.100.108
          - hostname: admin-host9
            ip: 198.51.100.109
          netmask: 255.255.255.0
        type: static
    
  4. 수정 세션을 닫습니다.

  5. 관리자 클러스터에서 기본 네임스페이스의 모든 머신 객체를 확인합니다.

    kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG get machines --output yaml
    
  6. 삭제된 IP 주소 중 하나를 사용하는 모든 머신 객체를 삭제하세요. 예를 들어 주소 198.51.100.102를 삭제했는데 gke-admin-node- 머신 객체가 해당 주소를 사용하는 것을 발견했다고 가정해 보겠습니다.

    Name:         gke-admin-node-5678
    Namespace:    default
    ...
    Status:
    Addresses:
    Address:       198.51.100.102
    Type:          ExternalIP
    ...
    

    그러면 gke-admin-node-5678 머신 객체를 삭제해야 합니다.

    kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG delete machine gke-admin-node-5678
    
  7. 클러스터 노드 주소를 열람하세요.

    kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG get nodes --output wide
    
  8. 삭제된 IP 주소가 출력에 표시되지 않는 것을 확인합니다. 예를 들면 다음과 같습니다.

    gke-admin-master-hdn4z  Ready  control-plane,master  198.51.100.101
    gke-admin-node-abcd   Ready ... 198.51.100.103
    gke-admin-node-efgh   Ready ... 198.51.100.104
    my-user-cluster-ijkl  Ready ... 198.51.100.105
    my-user-cluster-mnop  Ready ... 198.51.100.106
    my-user-cluster-qrst  Ready ... 198.51.100.107
    my-user-cluster-uvwx  Ready ... 198.51.100.108