Quita las direcciones IP estáticas de un clúster

En este documento, se muestra cómo quitar direcciones IP estáticas de un clúster en GKE on VMware.

Cuando creas un clúster que usa direcciones IP estáticas para los nodos, debes especificar un conjunto de direcciones IP en un archivo de bloque de IP. Si luego te das cuenta de que especificaste más direcciones IP de las necesarias, puedes quitar algunas de las direcciones IP del clúster.

Quita direcciones IP de un clúster de usuario

Asegúrate de que tendrás suficientes direcciones IP restantes después de la eliminación. Necesitas una dirección IP por cada nodo del clúster más una dirección IP adicional que se usará para un nodo temporal durante las actualizaciones. Por ejemplo, si tienes tres nodos del clúster, deberás mantener cuatro direcciones IP después de la eliminación.

Lleva a cabo los pasos siguientes:

  1. El clúster de administrador tiene un recurso personalizado OnPremUserCluster para cada clúster de usuario asociado. En el clúster de administrador, edita el recurso personalizado OnPremUserCluster para tu clúster de usuario:

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

    Reemplaza lo siguiente:

    • ADMIN_CLUSTER_KUBECONFIG: la ruta del archivo kubeconfig del clúster de administrador
    • USER_CLUSTER_NAME: es el nombre del clúster de usuario.
  2. Quita las direcciones IP seleccionadas de la sección 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. Cierra la sesión de edición.

  4. En tu clúster de usuario, visualiza todos los objetos Machine en el espacio de nombres predeterminado:

    kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get machines --output yaml
    
  5. Borra todos los objetos Machine que usen una de las direcciones IP que se quitaron. Por ejemplo, supongamos que quitaste la dirección 198.51.100.1 y descubres que el objeto Machine my-node-pool-1234 usa esa dirección:

    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
    

    Entonces, debes quitar el objeto de máquina my-node-pool-1234.

    kubectl --kubeconfig USER_CLUSTER_KUBECONFIG delete machine my-node-pool-1234
    
  6. Después de unos minutos, visualiza las direcciones de los nodos del clúster:

    kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get nodes --output wide
    
  7. Verifica que las direcciones IP que se quitaron no aparezcan en el resultado. Por ejemplo:

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

Quita direcciones IP de un clúster de administrador

Asegúrate de que tendrás suficientes direcciones IP restantes después de la eliminación. Necesitas una dirección IP para el nodo del plano de control del clúster de administrador, dos direcciones para los nodos de complementos y una dirección IP adicional que se usará para un nodo temporal durante las actualizaciones. Además, en cada clúster de usuario asociado, necesitas una o tres direcciones para el plano de control del clúster de usuario. Cada clúster de usuario con alta disponibilidad (HA) requiere tres nodos en el clúster de administrador para el plano de control del clúster de usuario. Cada clúster de usuario sin alta disponibilidad requiere un nodo en el clúster de administrador para el plano de control del clúster de usuario.

Por ejemplo, supongamos que el clúster de administrador está asociado con un clúster de usuario con alta disponibilidad y un clúster de usuario sin alta disponibilidad. Luego de la eliminación, debes tener ocho direcciones IP restantes para alojar los siguientes nodos:

  • Nodo del plano de control del clúster de administrador
  • Dos nodos de complemento
  • Tres nodos para el plano de control del clúster de usuario con alta disponibilidad
  • Un nodo para el plano de control del clúster de usuario sin alta disponibilidad
  • Un nodo temporal que se usará durante las actualizaciones

Lleva a cabo los pasos siguientes:

  1. Determina la dirección IP que se usa para el nodo del plano de control del clúster de administrador:

    kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG get nodes --output wide
    

    En el resultado, busca el nodo que aparece como el plano de control. Anota su dirección IP.

    gke-admin-master-hdn4z   Ready   control-plane,master … 198.51.100.101
    ...
    
  2. En el clúster de administrador, edita el recurso personalizado OnPremAdminCluster:

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

    Reemplaza ADMIN_CLUSTER_KUBECONFIG por la ruta de acceso del archivo kubeconfig del clúster de administrador.

  3. Quita las direcciones IP seleccionadas de la sección ipBlocks. Asegúrate de no quitar la dirección IP que se usa para el nodo del plano de control del clúster 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. Cierra la sesión de edición.

  5. En tu clúster de administrador, visualiza todos los objetos Machine en el espacio de nombres predeterminado:

    kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG get machines --output yaml
    
  6. Borra todos los objetos Machine que usen una de las direcciones IP que se quitaron. Por ejemplo, supongamos que quitaste la dirección 198.51.100.102 y descubres que el objeto Machine gke-admin-node- usa esa dirección:

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

    Entonces, debes quitar el objeto Machine gke-admin-node-5678.

    kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG delete machine gke-admin-node-5678
    
  7. Visualiza las direcciones de los nodos del clúster:

    kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG get nodes --output wide
    
  8. Verifica que las direcciones IP que se quitaron no aparezcan en el resultado. Por ejemplo:

    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