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