En esta página se proporcionan instrucciones para instalar la herramienta de línea de comandos kubectl
, que se usa para gestionar y acceder a los clústeres de Google Kubernetes Engine (GKE). La configuración de kubectl
es obligatoria si ejecutas varios clústeres en Google Cloud.
Aprenderás lo siguiente:
- Cómo funciona
kubectl
. - Cómo instalar
kubectl
y las dependencias necesarias. - Cómo configurar un clúster predeterminado para
kubectl
. - Cómo ejecutar comandos
kubectl
en un clúster específico
Esta página está dirigida a administradores de TI, operadores y desarrolladores que configuran, monitorizan y gestionan la infraestructura en la nube, incluido el aprovisionamiento y la configuración de recursos en la nube. Para obtener más información sobre los roles habituales y las tareas de ejemplo que se mencionan en la documentación, consulta Roles y tareas habituales de los usuarios de GKE. Google Cloud
Antes de leer esta página, asegúrate de que conoces Kubernetes kubectl
.
Antes de empezar
Antes de empezar, asegúrate de haber realizado las siguientes tareas:
- Habilita la API de Google Kubernetes Engine. Habilitar la API de Google Kubernetes Engine
- Si quieres usar Google Cloud CLI para esta tarea, instálala y, a continuación, inicialízala. Si ya has instalado la gcloud CLI, obtén la versión más reciente ejecutando
gcloud components update
.
- Asegúrate de que tienes un clúster Autopilot o Standard. Para crear un clúster, consulta Crear un clúster de Autopilot.
Instalar kubectl
Puedes instalar kubectl
con la CLI de Google Cloud o con un gestor de paquetes externo, como apt
o yum
.
gcloud
Instala el componente
kubectl
:gcloud components install kubectl
Comprueba que
kubectl
esté instalado y que tenga la versión más reciente:kubectl version --client
apt
Verifica que tienes el repositorio
cloud-sdk
:grep -rhE ^deb /etc/apt/sources.list* | grep "cloud-sdk"
El resultado debería ser similar al siguiente:
deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main
Si el repositorio
cloud-sdk
no aparece en la lista, instala gcloud CLI.Instala el componente
kubectl
:apt-get update apt-get install -y kubectl
Verifica que
kubectl
esté instalado comprobando que tiene la versión más reciente:kubectl version --client
yum
Verifica que tienes el repositorio
cloud-sdk
:yum repolist | grep "google-cloud-sdk"
El resultado debería ser similar al siguiente:
google-cloud-sdk Google Cloud SDK 2,205
Instala el componente
kubectl
:yum install -y kubectl
Comprueba que
kubectl
esté instalado y que tenga la versión más reciente:kubectl version --client
Instalar los complementos necesarios
kubectl
y otros clientes de Kubernetes requieren un complemento de autenticación,
gke-gcloud-auth-plugin
, que usa el framework de complementos de credenciales client-go para proporcionar tokens de autenticación con los que comunicarse con los clústeres de GKE.
Antes de que se lance la versión 1.26 de Kubernetes, la CLI de gcloud empezará a requerir que se instale el binario gke-gcloud-auth-plugin
. Si el complemento no está instalado, las instalaciones de kubectl
u otros clientes de Kubernetes personalizados dejarán de funcionar.
Debes instalar este complemento para usar kubectl
y otros clientes para interactuar con GKE.
Los clientes actuales muestran un mensaje de error si el complemento no está instalado.
Antes de empezar, comprueba si el complemento ya está instalado:
gke-gcloud-auth-plugin --version
Si el resultado muestra información sobre la versión, omita esta sección.
Puedes instalar el complemento de autenticación mediante la CLI de gcloud o un gestor de paquetes externo, como apt
o yum
.
gcloud
Instala el archivo binario gke-gcloud-auth-plugin
:
gcloud components install gke-gcloud-auth-plugin
apt
Instala el archivo binario gke-gcloud-auth-plugin
:
apt-get install google-cloud-sdk-gke-gcloud-auth-plugin
yum
Instala el archivo binario gke-gcloud-auth-plugin
:
yum install google-cloud-sdk-gke-gcloud-auth-plugin
Verifica la instalación del archivo binario gke-gcloud-auth-plugin
:
Comprueba la versión binaria de
gke-gcloud-auth-plugin
:gke-gcloud-auth-plugin --version
Actualiza la configuración de
kubectl
para usar el complemento:gcloud container clusters get-credentials CLUSTER_NAME \ --location=CONTROL_PLANE_LOCATION
Haz los cambios siguientes:
CLUSTER_NAME
: el nombre de tu clúster.CONTROL_PLANE_LOCATION
: la ubicación de Compute Engine del plano de control de tu clúster. Proporciona una región para los clústeres regionales o una zona para los clústeres zonales.
Para verificar la configuración, ejecuta el siguiente comando:
kubectl get namespaces
El resultado debería ser similar al siguiente:
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 este complemento, consulta el KEP de Kubernetes.
Interactuar con kubectl
Kubernetes usa un archivo YAML llamado
kubeconfig
para almacenar la información de autenticación del clúster de kubectl
. De forma predeterminada, el archivo se guarda en $HOME/.kube/config
.
kubeconfig
contiene un grupo de parámetros de acceso llamado contexts. Cada contexto contiene un clúster de Kubernetes, un usuario y un espacio de nombres predeterminado opcional. kubectl
hace referencia a los contextos al ejecutar comandos.
También puede configurar kubectl
siguiendo estos pasos:
- Elige el clúster con el que se comunica
kubectl
. - Define el clúster predeterminado de
kubectl
configurando el contexto actual en el archivokubeconfig
. - Ejecuta comandos
kubectl
en un clúster específico mediante la marca--cluster
.
Ver kubeconfig
Para ver el kubeconfig
de tu entorno, ejecuta el siguiente comando:
kubectl config view
El comando devuelve una lista de todos los clústeres para los que se han generado entradas kubeconfig
. Si aparece un clúster de GKE, puedes ejecutar comandos kubectl
en él en tu entorno actual. De lo contrario, debes almacenar información del clúster para kubectl.
Ver el contexto actual de kubectl
El contexto actual es el clúster que está configurado como predeterminado para kubectl
. Todos los comandos kubectl
se ejecutan en ese clúster.
Cuando creas un clúster con gcloud container clusters create-auto
, se añade automáticamente una entrada al archivo kubeconfig
de 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
Almacenar información de clústeres de kubectl
Cuando creas un clúster mediante la Google Cloud consola o la CLI de gcloud desde otro ordenador, el archivo kubeconfig
de tu entorno no se actualiza.
Además, si un miembro del equipo de un proyecto usa la CLI de gcloud para crear un clúster desde su ordenador, su kubeconfig
se actualizará, pero el tuyo no. La entrada kubeconfig
contiene una de las siguientes opciones:
- Tus credenciales, tal como se muestran en
gcloud auth list
, o - Las credenciales predeterminadas de la aplicación, si están configuradas.
Para generar un contexto kubeconfig
en tu entorno, asegúrate de que tienes el permiso container.clusters.get
. El rol de gestión de identidades y accesos con el privilegio mínimo que proporciona este permiso es container.clusterViewer
.
Para generar un contexto kubeconfig
para un clúster específico, ejecuta el siguiente comando:
gcloud container clusters get-credentials CLUSTER_NAME \
--location=CONTROL_PLANE_LOCATION
Haz los cambios siguientes:
CLUSTER_NAME
: el nombre de tu clúster.CONTROL_PLANE_LOCATION
: la ubicación de Compute Engine del plano de control de tu clúster. Proporciona una región para los clústeres regionales o una zona para los clústeres zonales.
Generar una entrada kubeconfig
con la dirección IP interna de un clúster
Todos los clústeres tienen varias direcciones de endpoint, cada una con características diferentes. Uno de estos endpoints actúa como endpoint canónico que usan kubectl
y otros servicios para comunicarse con el plano de control de tu clúster.
GKE selecciona automáticamente el endpoint en función del siguiente orden:
- La dirección IP externa (si has habilitado el endpoint externo)
- La dirección IP interna
- La dirección DNS (si el acceso por IP está inhabilitado)
Para usar el endpoint canónico de forma predeterminada, ejecuta el comando
get-credentials
. Para tener más control sobre el endpoint que usakubectl
, usa las marcas--internal-ip
o--dns-endpoint
. Para actualizar el archivokubeconfig
y usar la dirección IP interna, ejecuta el siguiente comando:
gcloud container clusters get-credentials CLUSTER_NAME --internal-ip
Para actualizar el archivo kubeconfig
y usar la dirección DNS, ejecuta el siguiente comando:
gcloud container clusters get-credentials CLUSTER_NAME --dns-endpoint
Sustituye CLUSTER_NAME
por el nombre de tu clúster.
De forma predeterminada, al ejecutar get-credentials
se usa la dirección IP especificada en el campo endpoint
.
Definir un clúster predeterminado para los comandos de kubectl
Si ya has generado una entrada kubeconfig para clústeres, puedes cambiar el contexto actual de kubectl
a ese clúster ejecutando el siguiente comando:
gcloud container clusters get-credentials CLUSTER_NAME \
--location=CONTROL_PLANE_LOCATION
Haz los cambios siguientes:
CLUSTER_NAME
: el nombre de tu clúster.CONTROL_PLANE_LOCATION
: la ubicación de Compute Engine del plano de control de tu clúster. Proporciona una región para los clústeres regionales o una zona para los clústeres zonales.
Por ejemplo, supongamos que tiene un proyecto con dos clústeres, my-cluster
y my-new-cluster
. El contexto actual es my-new-cluster
, pero quieres 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 \
--location=CONTROL_PLANE_LOCATION
Ejecutar comandos kubectl
individuales en un clúster específico
Puedes ejecutar comandos kubectl
individuales en un clúster específico mediante --cluster=CLUSTER_NAME
.
Por ejemplo, supongamos que hay un entorno con dos clústeres, my-cluster
y my-new-cluster
, y que el contexto actual es my-cluster
. Quieres desplegar una aplicación en my-new-cluster
, pero no quieres cambiar el contexto actual. Para desplegar la aplicación en my-new-cluster
sin cambiar el contexto actual, ejecuta el siguiente comando:
kubectl run my-app --image us-docker.pkg.dev/my-project/my-repo/my-app:1.0 --cluster my-new-cluster
Siguientes pasos
- Consulta cómo autorizar el acceso a los recursos de los clústeres de GKE.
- Autenticarse en los servicios de Google Cloud cargas de trabajo de GKE.
- Consulta la
kubectl
hoja de trucos. - Soluciona problemas de la herramienta de línea de comandos
kubectl
.
Pruébalo
Si es la primera vez que utilizas Google Cloud, crea una cuenta para evaluar el rendimiento de GKE en situaciones reales. Los nuevos clientes también reciben 300 USD en crédito gratuito para ejecutar, probar y desplegar cargas de trabajo.
Probar GKE gratis