Remover endereços IP estáticos de um cluster

Neste documento, mostramos como remover endereços IP estáticos de um cluster no GKE no VMware.

Ao criar um cluster que usa endereços IP estáticos para os nós, especifique um conjunto de endereços IP em um arquivo de bloco IP. Se mais tarde você perceber que especificou mais endereços IP do que o necessário, remova alguns dos endereços IP do cluster.

Remover endereços IP de um cluster de usuário

Verifique se você terá endereços IP suficientes restantes após a remoção. Você precisa de um endereço IP para cada nó de cluster, além de um endereço IP extra a ser usado para um nó temporário durante upgrades. Por exemplo, se você tiver três nós de cluster, precisará ter quatro endereços IP restantes após a remoção.

Siga estas etapas:

  1. O cluster de administrador tem um recurso personalizado OnPremUserCluster para cada cluster de usuário associado. No cluster de administrador, edite o recurso personalizado OnPremUserCluster para o cluster de usuário:

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

    Substitua:

    • ADMIN_CLUSTER_KUBECONFIG: o caminho do arquivo kubeconfig do cluster de administrador
    • USER_CLUSTER_NAME: o nome do cluster de usuário
  2. Remova os endereços IP selecionados da seção ipBlocks:

    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. Fechar a sessão de edição.

  4. No cluster de usuário, veja todos os objetos de máquina no namespace padrão:

    kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get machines --output yaml
    
  5. Exclua todos os objetos de máquina que usam um dos endereços IP removidos. Por exemplo, suponha que você removeu o endereço 198.51.100.1 e descobriu que o objeto de máquina my-node-pool-1234 usa esse endereço:

    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
    

    Em seguida, você precisa remover o objeto de máquina my-node-pool-1234.

    kubectl --kubeconfig USER_CLUSTER_KUBECONFIG delete machine my-node-pool-1234
    
  6. Após alguns minutos, veja os endereços dos nós do cluster:

    kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get nodes --output wide
    
  7. Confira se os endereços IP removidos não aparecem na saída. Exemplo:

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

Remover endereços IP de um cluster de administrador

Verifique se você terá endereços IP suficientes restantes após a remoção. Você precisa de um endereço IP para o nó do plano de controle do cluster do administrador, dois endereços para nós do complemento e um endereço IP extra a ser usado para um nó temporário durante upgrades. Além disso, para cada cluster de usuário associado, você precisa de um ou três endereços para o plano de controle do cluster do usuário. Cada cluster de usuário de alta disponibilidade (HA, na sigla em inglês) requer três nós no cluster do administrador para o plano de controle do cluster de usuário. Cada cluster de usuário que não seja HA requer um nó no cluster do administrador para o plano de controle do cluster de usuário.

Por exemplo, suponha que o cluster de administrador esteja associado a um cluster de usuário de HA e um cluster de usuário não HA. Após a remoção, você precisará ter oito endereços IP restantes para acomodar os seguintes nós:

  • Nó do plano de controle do cluster do administrador
  • Dois nós de complemento
  • Três nós para o plano de controle do cluster de usuário HA
  • Um nó para o plano de controle do cluster de usuário não HA
  • Um nó temporário a ser usado durante upgrades

Siga estas etapas:

  1. Determine o endereço IP que está sendo usado no nó do plano de controle do cluster de administrador:

    kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG get nodes --output wide
    

    Na saída, encontre o nó listado como o plano de controle. Anote o endereço IP dele.

    gke-admin-master-hdn4z   Ready   control-plane,master … 198.51.100.101
    ...
    
  2. No cluster de administrador, edite o recurso personalizado OnPremAdminCluster:

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

    Substitua ADMIN_CLUSTER_KUBECONFIG pelo caminho para o arquivo kubeconfig do cluster de administrador.

  3. Remova os endereços IP selecionados da seção ipBlocks. Não remova o endereço IP que está sendo usado no nó do plano de controle do cluster de administrador.

    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. Fechar a sessão de edição.

  5. No cluster de administrador, visualize todos os objetos de máquina no namespace padrão:

    kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG get machines --output yaml
    
  6. Exclua todos os objetos Machine que usam um dos endereços IP removidos. Por exemplo, suponha que você removeu o endereço 198.51.100.102 e descobriu que o objeto Machine gke-admin-node- usa esse endereço:

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

    Em seguida, é preciso remover o objeto de máquina gke-admin-node-5678.

    kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG delete machine gke-admin-node-5678
    
  7. Veja os endereços de nó do cluster:

    kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG get nodes --output wide
    
  8. Confira se os endereços IP removidos não aparecem na saída. Exemplo:

    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