Quitar 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 Google Distributed Cloud.

Cuando creas un clúster que usa direcciones IP estáticas para los nodos, especificas un conjunto de direcciones IP en un archivo de bloque de IPs. Si más adelante te das cuenta de que has especificado más direcciones IP de las necesarias, puedes quitar algunas de ellas del clúster.

Quitar direcciones IP de un clúster de usuarios

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

Sigue estos pasos:

  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 de tu clúster de usuario:

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

    Haz los cambios siguientes:

    • ADMIN_CLUSTER_KUBECONFIG: la ruta del archivo kubeconfig del clúster de administrador
    • USER_CLUSTER_NAME: el nombre de tu clúster de usuarios
  2. Para quitar las direcciones IP seleccionadas de la sección ipBlocks, sigue estos pasos:

    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, consulta todos los objetos Machine del espacio de nombres predeterminado:

    kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get machines --output yaml
    
  5. Elimina todos los objetos Machine que usen una de las direcciones IP eliminadas. Por ejemplo, supongamos que has quitado la dirección 198.51.100.1 y descubres que el objeto my-node-pool-1234 Machine 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
    

    Después, debes quitar el objeto my-node-pool-1234 Machine.

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

    kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get nodes --output wide
    
  7. Comprueba que las direcciones IP eliminadas 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
    

Quitar direcciones IP de un clúster de administrador

Asegúrate de que te queden suficientes direcciones IP 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 para usarla en un nodo temporal durante las actualizaciones. Además, por cada clúster de usuarios asociado, necesitas una o tres direcciones para el plano de control del clúster de usuarios. Cada clúster de usuarios de alta disponibilidad (HA) requiere tres nodos en el clúster de administradores para el plano de control del clúster de usuarios. Cada clúster de usuarios que no sea de alta disponibilidad requiere un nodo en el clúster de administrador para el plano de control del clúster de usuarios.

Por ejemplo, supongamos que tu clúster de administradores está asociado a un clúster de usuarios de alta disponibilidad y a otro que no lo es. Después de la eliminación, debes tener ocho direcciones IP para los siguientes nodos:

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

Sigue estos pasos:

  1. Determina la dirección IP que se está usando para el nodo de 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 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
    

    Sustituye ADMIN_CLUSTER_KUBECONFIG por la ruta 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 está usando 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, consulta todos los objetos Machine del espacio de nombres predeterminado:

    kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG get machines --output yaml
    
  6. Elimina todos los objetos Machine que usen una de las direcciones IP eliminadas. Por ejemplo, supongamos que ha quitado la dirección 198.51.100.102 y descubre que el objeto gke-admin-node- Machine usa esa dirección:

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

    Después, debes quitar el objeto gke-admin-node-5678 Machine.

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

    kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG get nodes --output wide
    
  8. Comprueba que las direcciones IP eliminadas 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