Todos los productos
Search
Centro de documentos

Container Service for Kubernetes:Get a kubeconfig and connect to a cluster with kubectl

Última actualización: Sep 04, 2026

Utilice un kubeconfig temporal o de largo plazo para autenticar kubectl con el servidor de API de su clúster.

También puede gestionar clústeres y aplicaciones a través de la consola de ACK.

Importante

De acuerdo con la shared responsibility model, proteja las credenciales de su kubeconfig rotándolas periódicamente y aplicando el principio de menor privilegio.

Selección del tipo de kubeconfig

Elija el tipo de kubeconfig según la duración de acceso que necesite y la forma en que su cliente se conecta al clúster.

Por periodo de validez

Type

Validity

Best for

Security

Temporal

De 30 minutos a 3 días (configurable)

Operaciones diarias y mantenimiento (O&M), solución de problemas, pipelines de CI/CD

Menor riesgo: expira automáticamente tras el periodo configurado

De largo plazo

3 años (predeterminado)

Sistemas automatizados, servicios de monitoreo de ejecución prolongada

Requiere rotación manual antes de su vencimiento

Por método de acceso

Type

When to use

Details

Acceso privado

Su máquina cliente se encuentra en la misma Virtual Private Cloud (VPC) que el clúster

Se conecta a través de la red interna con menor latencia y mayor seguridad

Acceso público

Conexión desde cualquier máquina con acceso a Internet

Expone el servidor de API mediante una Elastic IP Address (EIP); ideal para desarrollo local y O&M remoto

Una EIP vinculada genera cargos de pay-as-you-go.

Para clústeres dedicados ACK con acceso público, también puede connect to the master node via SSH para obtener el kubeconfig.

Requisitos previos

Antes de empezar, asegúrese de contar con lo siguiente:

  • kubectl instalado, dentro de una versión menor respecto a la versión de Kubernetes de su clúster (por ejemplo, kubectl 1.27–1.29 para Kubernetes 1.28).

  • Un usuario RAM con permissions otorgados tanto a nivel de ACK como de clúster.

Obtención del archivo kubeconfig y conexión al clúster

  1. Inicie sesión en la consola de ACK. En el panel de navegación izquierdo, haga clic en Clusters.

  2. En la página Clusters, haga clic en el nombre de su clúster o en Details dentro de la columna Actions.

  3. En la página Cluster Information, seleccione la pestaña Connection Information. Elija un kubeconfig temporal o de largo plazo. Si opta por uno temporal, establezca el periodo de validez.

  4. Seleccione la pestaña Internal Access o Public Access y luego haga clic en Copy.

  5. Pegue el contenido en el archivo $HOME/.kube/config de su cliente y guarde el archivo.

    Nota: Si el directorio o el archivo no existe, créelo primero.
  6. Compruebe la conexión listando todos los namespaces:

    kubectl get namespaces

    Salida esperada:

    NAME              STATUS   AGE
    default           Active   4h39m
    kube-node-lease   Active   4h39m
    kube-public       Active   4h39m
    kube-system       Active   4h39m

Gestión de credenciales de kubeconfig

Rotación de credenciales antes de su vencimiento

Un kubeconfig de largo plazo tiene una validez de 3 años. Obtenga uno nuevo desde la consola de ACK o la API DescribeClusterUserKubeconfig dentro de los 180 días previos al vencimiento para evitar interrupciones en el servicio.

El nuevo kubeconfig tendrá una validez de 3 años. El anterior permanecerá válido hasta su fecha de vencimiento original.

Revocación de credenciales comprometidas

Si sospecha que un kubeconfig ha sido comprometido, revoke the cluster's kubeconfig credentials inmediatamente. Esta acción invalida todas las conexiones existentes y genera un nuevo kubeconfig.

Limpieza de permisos para usuarios salientes

Cuando un usuario ya no requiera acceso (por ejemplo, al finalizar un proyecto o tras la salida de un empleado), revoque sus permisos de kubeconfig de forma masiva mediante deleting kubeconfig files o using ack-ram-tool. El sistema no generará un nuevo kubeconfig tras la revocación.

Para restaurar permisos revocados accidentalmente, utilice la kubeconfig recycle bin .

Preguntas frecuentes

De forma predeterminada, kubectl utiliza $HOME/.kube/config . Para usar un archivo diferente, establezca la variable de entorno KUBECONFIG o pase el indicador --kubeconfig . En los siguientes comandos, reemplace kubeconfig con la ruta a su archivo kubeconfig.

¿Cómo encuentro la identidad asociada a un certificado de kubeconfig?

Extraiga el asunto del certificado:

# Extract the client certificate, decode it from base64,
# then use OpenSSL to display the Subject field
grep client-certificate-data kubeconfig | awk '{print $2}' | base64 -d | openssl x509 -noout -text | grep Subject:

Salida esperada:

        Subject: O=system:users, OU=, CN=1***-1673419473
  • O: El grupo de usuarios de Kubernetes. En este ejemplo, system:users.

  • CN: El identificador de usuario. En este ejemplo, 1***-1673419473, donde 1*** es el ID de usuario de Alibaba Cloud.

¿Cómo compruebo cuándo vence un certificado de kubeconfig?

Verifique la fecha de vencimiento del certificado:

# Extract the client certificate, decode it from base64,
# then use OpenSSL to print the expiration date
grep client-certificate-data kubeconfig | awk '{print $2}' | base64 -d | openssl x509 -noout -enddate

Salida esperada:

notAfter=Jan 10 06:44:34 2026 GMT

En este ejemplo, el certificado vence el 10 de enero de 2026.

Obtenga un nuevo kubeconfig desde la consola o la API dentro de los 180 días previos al vencimiento, o en cualquier momento posterior a su expiración.

¿Cómo extraigo el certificado de cliente, la clave privada y la URL del servidor de API desde un kubeconfig?

Extraiga el certificado, la clave y la URL del servidor de API:

# Extract and decode the client certificate to a PEM file
grep client-certificate-data ./kubeconfig | awk -F ' ' '{print $2}' | base64 -d > ./client-cert.pem

# Extract and decode the client private key to a PEM file
grep client-key-data ./kubeconfig | awk -F ' ' '{print $2}' | base64 -d > ./client-key.pem

# Extract the API server URL into a variable
APISERVER=$(grep server ./kubeconfig | awk -F ' ' '{print $2}')

¿Cómo resuelvo el error "certificate is valid for"?

Este error ocurre cuando vincula una nueva dirección IP a la instancia de Server Load Balancer (SLB) del servidor de API. Los comandos de kubectl dirigidos a la nueva IP fallan con Error while proxying request: x509: certificate is valid for xxx o Unable to connect to the server: x509: certificate is valid for xxx.

La solución depende del tipo de clúster:

  • Clústeres administrados ACK: Agregue la nueva dirección IP al Subject Alternative Name (SAN) del certificado del servidor de API.

  • Clústeres dedicados ACK: Configure kubectl para omitir la verificación TLS mediante uno de estos métodos:

    Importante

    Omitir la verificación TLS representa un riesgo de seguridad. No utilice esta opción en producción. Migre a ACK Pro clusters y luego agregue la nueva dirección IP al SAN del certificado del servidor de API.

    • Método 1: Pase el indicador --insecure-skip-tls-verify:

      kubectl -s https://<IP>:6443 --insecure-skip-tls-verify get ns
    • Método 2: Edite el archivo kubeconfig. Agregue insecure-skip-tls-verify: true y elimine el campo certificate-authority-data:

      apiVersion: v1
      clusters:
      - cluster:
          server: https://<IP>:6443
          insecure-skip-tls-verify: true
        name: kubernetes
      contexts:
      ...

¿Puedo obtener la clave del certificado raíz de un clúster administrado ACK para generar mi propio kubeconfig?

No. Los clústeres administrados ACK no exponen la clave del certificado raíz. Obtenga el kubeconfig desde la consola o la API DescribeClusterUserKubeconfig.

Referencias