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:
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
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
Cierra la sesión de edición.
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
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
Después de unos minutos, consulta las direcciones de los nodos del clúster:
kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get nodes --output wide
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:
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 ...
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.
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
Cierra la sesión de edición.
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
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
Consulta las direcciones de los nodos del clúster:
kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG get nodes --output wide
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