Soluciona problemas de nodos de Autopilot de GKE


A fin de que la Atención al cliente de Cloud proporcione solución de problemas avanzada para los nodos de Autopilot, realiza las siguientes tareas a fin de otorgar acceso al servicio de atención al cliente a tus nodos del clúster de Autopilot.

Antes de comenzar

  1. Comunícate con Atención al cliente y obtén el nombre de miembro requerido para acceder a tu clúster, el cual se usará en las instrucciones siguientes.
  2. Asegúrate de tener un usuario que pueda otorgar cambios a los recursos mencionados en las instrucciones que aparecen a continuación.

Recopila la información requerida

Se necesita la siguiente información para solucionar problemas:

  • NODE_NAME: El nombre del nodo
  • NODE_ZONE: La zona de procesamiento en la que se encuentra el nodo
  • PROJECT_ID: El ID del proyecto
  • COMPUTE_SERVICE_ACCT: La cuenta de servicio de Compute Engine que se usa en el clúster
  • ORGANIZATION_ID: Obligatorio si el proyecto está en una organización
  • CLUSTER_NETWORK: La red del clúster
# Define the following variables in gcloud
NODE_NAME=<node name>
NODE_ZONE=<node zone>
PROJECT_ID=<project id>
ORGANIZATION_ID=<org id, if any>
COMPUTE_SERVICE_ACCT=<compute service account used in cluster>
CLUSTER_NETWORK=<cluster network>

Otorga acceso a tu clúster de Autopilot

El acceso a tu clúster se realiza mediante Acceso al SO. Se requieren los siguientes permisos de Identity and Access Management (IAM) y se deben otorgar al nombre de miembro que obtuviste de la Atención al cliente:

gcloud compute instances add-iam-policy-binding ${NODE_NAME} \
    --zone=${NODE_ZONE} \
    --role=roles/compute.osAdminLogin \
    --member='group:SUPPORT_MEMBER'

gcloud projects add-iam-policy-binding ${PROJECT_ID} \
    --role=roles/compute.viewer \
    --member='group:SUPPORT_MEMBER'

gcloud projects add-iam-policy-binding ${PROJECT_ID} \
    --role=roles/iap.tunnelResourceAccessor \
    --member='group:SUPPORT_MEMBER'

# If project is in an organization:
gcloud organizations add-iam-policy-binding ${ORGANIZATION_ID}  \
    --role=roles/compute.osLoginExternalUser \
    --member='group:SUPPORT_MEMBER'

gcloud iam service-accounts add-iam-policy-binding ${COMPUTE_SERVICE_ACCT} \
    --role=roles/iam.serviceAccountUser \
    --member='group:SUPPORT_MEMBER'

Reemplaza SUPPORT_MEMBER con el nombre de miembro proporcionado por la Atención al cliente.

Otorga acceso de red a través de IAP

Además de los permisos necesarios, se necesita acceso a los nodos a través de IAP. Para obtener detalles, consulta Usa IAP para el redireccionamiento de TCP.

# Allow access through IAP
gcloud compute firewall-rules create allow-ssh-ingress-from-iap \
    --direction=INGRESS \
    --action=allow \
    --rules=tcp:22 \
    --source-ranges=35.235.240.0/20
    --network=$CLUSTER_NETWORK

Limpia y revoca el acceso

Una vez que la Atención al cliente complete su depuración, realiza las siguientes tareas para limpiar y revocar el acceso a tus nodos de Autopilot.

  1. Quita los permisos de IAM. Reemplaza SUPPORT_MEMBER con el nombre de miembro proporcionado por la Atención al cliente.

    gcloud iam service-accounts remove-iam-policy-binding ${COMPUTE_SERVICE_ACCT} \
        --role=roles/iam.serviceAccountUser \
        --member='group:SUPPORT_MEMBER'
    
    # If project is in an organization:
    gcloud organizations remove-iam-policy-binding ${ORGANIZATION_ID} \
        --role=roles/compute.osLoginExternalUser \
        --member='group:SUPPORT_MEMBER'
    
    gcloud projects remove-iam-policy-binding ${PROJECT_ID} \
        --role=roles/iap.tunnelResourceAccessor \
        --member='group:SUPPORT_MEMBER'
    
    gcloud projects remove-iam-policy-binding ${PROJECT_ID} \
        --role=roles/compute.viewer \
        --member='group:SUPPORT_MEMBER'
    
    gcloud compute instances remove-iam-policy-binding ${NODE_NAME} \
        --zone=${NODE_ZONE} \
        --role=roles/compute.osAdminLogin \
        --member='group:SUPPORT_MEMBER'
    
  2. Quita la regla de firewall para los rangos de IAP:

    gcloud compute firewall-rules delete allow-ssh-ingress-from-iap