Instala kubectl y configura el acceso al clúster


En esta página, se explica cómo instalar y configurar la herramienta de línea de comandos kubectl.

Esta página está dirigida a administradores de TI, operadores y desarrolladores que configuran, supervisan y administran la infraestructura de nube, y aprovisionan y configuran recursos de nube. Para obtener más información sobre los roles comunes y las tareas de ejemplo a las que hacemos referencia en el contenido de Google Cloud, consulta Tareas y roles comunes de los usuarios de GKE Enterprise.

Descripción general

kubectl es una herramienta de línea de comandos que puedes usar para interactuar con tus clústeres de GKE. Si deseas usar kubectl con GKE, debes instalar la herramienta y configurarla para que se comunique con tus clústeres. Se requiere una configuración de kubectl adicional si ejecutas varios clústeres en Google Cloud.

En esta página, se muestra lo siguiente:

Antes de comenzar

Antes de comenzar, asegúrate de haber realizado las siguientes tareas:

  • Habilita la API de Google Kubernetes Engine.
  • Habilitar la API de Google Kubernetes Engine
  • Si deseas usar Google Cloud CLI para esta tarea, instala y, luego, inicializa gcloud CLI. Si ya instalaste gcloud CLI, ejecuta gcloud components update para obtener la versión más reciente.

Instalar kubectl

Puedes instalar kubectl mediante la CLI de Google Cloud o un administrador de paquetes externo, como apt o yum.

gcloud

  1. Instala el componente kubectl:

    gcloud components install kubectl
    
  2. Verifica que kubectl esté instalado; para ello, comprueba que tenga la versión más reciente:

    kubectl version --client
    

apt

  1. Verifica que tienes el repositorio cloud-sdk:

    grep -rhE ^deb /etc/apt/sources.list* | grep "cloud-sdk"

    El resultado es similar al siguiente:

    deb  [signed-by=/usr/share/keyrings/cloud.google.gpg]  https://packages.cloud.google.com/apt cloud-sdk main
    
  2. Si el repositorio cloud-sdk no aparece en la lista, instala gcloud CLI.

  3. Instala el componente kubectl:

    apt-get update
    apt-get install -y kubectl
  4. Verifica que kubectl esté instalado; para ello, comprueba que tenga la versión más reciente:

    kubectl version --client

yum

  1. Verifica que tienes el repositorio cloud-sdk:

    yum repolist | grep "google-cloud-sdk"

    El resultado es similar a este:

    google-cloud-sdk    Google Cloud SDK    2,205
    
  2. Instala el componente kubectl:

    yum install -y kubectl
  3. Verifica que kubectl esté instalado; para ello, comprueba que tenga la versión más reciente:

    kubectl version --client

Instala los complementos obligatorios

kubectl y otros clientes de Kubernetes requieren un complemento de autenticación, gke-gcloud-auth-plugin, que usa el framework Complementos de credenciales Client-go para proporcionar tokens de autenticación a fin de comunicarse con los clústeres de GKE.

Antes de que se lance la versión 1.26 de Kubernetes, la CLI de gcloud comenzará a requerir que se instale el objeto binario gke-gcloud-auth-plugin. Si no está instalado, las instalaciones existentes de kubectl o de otros clientes personalizados de Kubernetes dejarán de funcionar.

Debes instalar este complemento para usar kubectl y otros clientes a fin de interactuar con GKE. Los clientes existentes muestran un mensaje de error si el complemento no está instalado.

Antes de comenzar, verifica si el complemento ya está instalado:

gke-gcloud-auth-plugin --version

Si el resultado muestra información de la versión, omite esta sección.

Puedes instalar el complemento de autenticación con la CLI de gcloud o un administrador de paquetes externo como apt o yum.

gcloud

Instala el objeto binario gke-gcloud-auth-plugin:

  gcloud components install gke-gcloud-auth-plugin

apt

Instala el objeto binario gke-gcloud-auth-plugin:

  apt-get install google-cloud-sdk-gke-gcloud-auth-plugin

yum

Instala el objeto binario gke-gcloud-auth-plugin:

  yum install google-cloud-sdk-gke-gcloud-auth-plugin

Verifica la instalación del objeto binario gke-gcloud-auth-plugin:

  1. Verifica la versión del objeto binario gke-gcloud-auth-plugin:

    gke-gcloud-auth-plugin --version
    
  2. Actualiza la configuración kubectl para usar el complemento:

    gcloud container clusters get-credentials CLUSTER_NAME \
        --region=COMPUTE_REGION
    

    Reemplaza lo siguiente:

    • CLUSTER_NAME: El nombre de tu clúster.
    • COMPUTE_REGION: La región de Compute Engine del clúster. Para los clústeres zonales, usa --zone=COMPUTE_ZONE.
  3. Verifica la configuración:

    kubectl get namespaces
    

    El resultado es similar a este:

    NAME              STATUS   AGE
    default           Active   51d
    kube-node-lease   Active   51d
    kube-public       Active   51d
    kube-system       Active   51d
    

Para obtener más información sobre por qué este complemento es obligatorio, consulta Kubernetes KEP.

Interactúa con kubectl

Kubernetes usa un archivo YAML llamado kubeconfig para almacenar información de autenticación de clúster para kubectl. De forma predeterminada, el archivo se guarda en $HOME/.kube/config.

kubeconfig contiene un grupo de parámetros de acceso llamado contextos. Cada contexto contiene un clúster de Kubernetes, un usuario y un espacio de nombres predeterminado opcional. kubectl se refiere a los contextos cuando se ejecutan comandos.

Las siguientes son tareas que puedes completar para configurar kubectl:

  • Elige con qué clúster se comunicará kubectl.
  • Configura un clúster predeterminado para kubectl; para ello, establece el contexto actual en el archivo kubeconfig.
  • Ejecuta los comandos kubectl en un clúster específico con la marca --cluster.

Ver kubeconfig

Para ver kubeconfig en tu entorno, ejecuta el siguiente comando:

kubectl config view

El comando muestra una lista de todos los clústeres para los cuales se generaron entradas de kubeconfig. Si aparece un clúster de GKE, puedes ejecutar comandos kubectl en tu entorno actual. De lo contrario, debes almacenar la información del clúster para kubectl.

Ver el contexto actual de kubectl

El contexto actual es el clúster predeterminado de kubectl: todos los comandos kubectl se ejecutan en ese clúster.

Cuando creas un clúster con gcloud container clusters create-auto, una entrada se agrega de manera automática al archivo kubeconfig en tu entorno y el contexto actual cambia a ese clúster: Por ejemplo:

gcloud container clusters create-auto my-cluster
Creating my-cluster...done
Fetching cluster endpoint and auth data.
kubeconfig entry generated for my-cluster

Para ver el contexto actual de kubectl, ejecuta el siguiente comando:

kubectl config current-context

Almacena información del clúster para kubectl

Cuando creas un clúster con la consola de Google Cloud o la CLI de gcloud desde una computadora diferente, el archivo kubeconfig de tu entorno no se actualiza. Además, si un miembro del equipo del proyecto usa CLI de gcloud para crear un clúster desde su computadora, su kubeconfig se actualiza, pero el tuyo no. La entrada kubeconfig contiene una de las siguientes opciones:

Para generar un contexto kubeconfig en tu entorno, asegúrate de tener el permiso container.clusters.get. El rol de IAM con privilegios mínimos que proporciona este permiso es container.clusterViewer.

A fin de generar un contexto kubeconfig para un clúster específico, ejecuta el siguiente comando:

gcloud container clusters get-credentials CLUSTER_NAME \
    --region=CLUSTER_REGION

Reemplaza lo siguiente:

  • CLUSTER_NAME: El nombre de tu clúster.
  • COMPUTE_REGION: La región de Compute Engine del clúster. Para los clústeres zonales, usa --zone=COMPUTE_ZONE.

Genera una entrada kubeconfig con la dirección IP interna de un clúster privado

Todos los clústeres tienen un extremo canónico. El extremo expone el servidor de API de Kubernetes que kubectl y otros servicios usan para comunicarse con el plano de control del clúster.

Los clústeres privados tienen dos direcciones IP independientes del extremo: privateEndpoint, que es una dirección IP interna, y publicEndpoint, que es una dirección IP externa. El campo endpoint hace referencia a la dirección IP externa, a menos que el acceso público al extremo esté inhabilitado, en cuyo caso se usará la dirección IP privada.

Para los clústeres privados, si prefieres usar la IP interna como extremo, ejecuta el siguiente comando:

gcloud container clusters get-credentials CLUSTER_NAME --internal-ip

Reemplaza CLUSTER_NAME por el nombre del clúster.

Si ejecutas get-credentials, se usa la dirección IP especificada en el campo endpoint de forma predeterminada.

Configura un clúster predeterminado para los comandos de kubectl

Si ya generaste una entrada de kubeconfig para los clústeres, puedes cambiar el contexto actual de kubectl a ese clúster mediante la ejecución del siguiente comando:

gcloud container clusters get-credentials CLUSTER_NAME \
    --region=COMPUTE_REGION

Reemplaza lo siguiente:

  • CLUSTER_NAME: El nombre de tu clúster.
  • COMPUTE_REGION: La región de Compute Engine del clúster. Para los clústeres zonales, usa --zone=COMPUTE_ZONE.

Por ejemplo, considera un proyecto con dos clústeres, my-cluster y my-new-cluster. El contexto actual es my-new-cluster, pero deseas ejecutar todos los comandos de kubectl en my-cluster. Para cambiar el contexto actual de my-new-cluster a my-cluster, ejecuta el siguiente comando:

gcloud container clusters get-credentials CLUSTER_NAME \
    --region=COMPUTE_REGION

Ejecuta comandos de kubectl individuales en un clúster específico

Puedes ejecutar comandos kubectl individuales en un clúster específico con --cluster=CLUSTER_NAME.

Por ejemplo, considera un entorno con dos clústeres, my-cluster y my-new-cluster, en el que el contexto actual es my-cluster. Quieres implementar una aplicación en my-new-cluster, pero no deseas cambiar el contexto actual. Para implementar la aplicación en my-new-cluster sin cambiar el contexto actual, debes ejecutar el siguiente comando:

kubectl run my-app --image us-docker.pkg.dev/my-project/my-repo/my-app:1.0 --cluster my-new-cluster

¿Qué sigue?

Pruébalo tú mismo

Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de GKE en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.

Probar GKE gratis