En esta página, se proporcionan instrucciones para instalar la herramienta de línea de comandos kubectl que se usa para administrar y acceder a clústeres de Google Kubernetes Engine (GKE). La kubectl
configuración es obligatoria si ejecutas varios clústeres en Cloud de Confiance by S3NS.
Aprenderás lo siguiente:
- Cómo funciona
kubectl. - Cómo instalar
kubectly cualquier dependencia necesaria: - Cómo configurar un clúster predeterminado para
kubectl - Cómo ejecutar
kubectlcomandos en un clúster específico.
Esta página está destinada a los administradores de TI, operadores y desarrolladores que configuran, supervisan y administran la infraestructura de la nube, incluido el aprovisionamiento y la configuración de recursos de la nube. Para obtener más información sobre los roles comunes y las tareas de ejemplo a las que se hace referencia en la Cloud de Confiance by S3NS documentación, consulta Roles y tareas comunes del usuario de GKE .
Antes de leer esta página, asegúrate de estar familiarizado con Kubernetes kubectl.
Antes de comenzar
Antes de comenzar, asegúrate de haber realizado las siguientes tareas:
- Habilita la API de Google Kubernetes Engine. Habilita la API de Google Kubernetes Engine
- Si deseas usar Google Cloud CLI para esta tarea,
instala y, luego,
inicializa the
gcloud CLI. Si ya instalaste gcloud CLI, ejecuta el comando
gcloud components updatepara obtener la versión más reciente. Es posible que las versiones anteriores de gcloud CLI no admitan la ejecución de los comandos de este documento.
- Asegúrate de tener un clúster de Autopilot o Standard existente. Para crear un clúster nuevo, consulta Crea un clúster de Autopilot.
Instalar kubectl
Puedes instalar kubectl mediante Google Cloud CLI o un administrador de paquetes externo, como apt o yum.
gcloud
Instala el componente
kubectl:gcloud components install kubectlVerifica que
kubectlesté instalado; para ello, comprueba 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 es similar al siguiente:
deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk mainSi el repositorio
cloud-sdkno aparece en la lista, instala gcloud CLI.Instala el componente
kubectl:apt-get update apt-get install -y kubectlVerifica que
kubectlesté instalado; para ello, comprueba que tenga 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 es similar a este:
google-cloud-sdk Google Cloud SDK 2,205Instala el componente
kubectl:yum install -y kubectlVerifica que
kubectlesté 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, gcloud CLI comenzará a requerir que se instale el objeto binario gke-gcloud-auth-plugin. Si el complemento 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 gcloud CLI 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-pluginyum
Instala el objeto binario gke-gcloud-auth-plugin:
yum install google-cloud-sdk-gke-gcloud-auth-pluginVerifica la instalación del objeto binario gke-gcloud-auth-plugin:
Verifica la versión del objeto binario
gke-gcloud-auth-plugin:gke-gcloud-auth-plugin --versionActualiza la configuración
kubectlpara usar el complemento:gcloud container clusters get-credentials CLUSTER_NAME \ --location=CONTROL_PLANE_LOCATIONReemplaza lo siguiente:
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 namespacesEl resultado es 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 Kubernetes KEP.
Interactúa con kubectl
Kubernetes usa un archivo YAML llamado kubeconfig a fin de 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.
También tienes la opción de configurar kubectl con las siguientes tareas:
- Elige con qué clúster se comunicará
kubectl. - Configura el clúster predeterminado para
kubectl. Para ello, establece el contexto actual en el archivokubeconfig. - Ejecuta los comandos
kubectlen 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 Cloud de Confiance consola o con gcloud CLI desde otra
computadora, el archivo kubeconfig de tu entorno no se actualiza.
Además, si un miembro del equipo del proyecto usa gcloud CLI para crear un clúster desde su computadora, su kubeconfig se actualiza, pero el tuyo no. La entrada kubeconfig contiene lo siguiente:
- Tus credenciales, como se muestra en
gcloud auth list - Las credenciales predeterminadas de la aplicación, si están configuradas.
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 \
--location=CONTROL_PLANE_LOCATION
Reemplaza lo siguiente:
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.
Genera una entrada kubeconfig con la dirección IP interna de un clúster
Todos los clústeres tienen varias direcciones de extremos, cada una con características diferentes. Uno de estos extremos sirve como el extremo canónico que usan kubectl y otros servicios para comunicarse con el plano de control del clúster.
GKE selecciona automáticamente el extremo según el siguiente orden:
- La dirección IP externa (si habilitaste el extremo externo)
- La dirección IP interna
- La dirección DNS (si el acceso a la IP está inhabilitado)
Para generar una entrada kubeconfig para un clúster, ejecuta uno de los siguientes comandos:
Para usar el extremo canónico de forma predeterminada, ejecuta el
gcloud container clusters get-credentialscomando. Este comando usa la dirección IP en el campoendpointde la configuración del clúster.Para usar el extremo basado en IP interna para el clúster, ejecuta el siguiente comando:
gcloud container clusters get-credentials CLUSTER_NAME \ --internal-ipReemplaza
CLUSTER_NAMEpor el nombre del clúster.Para usar el extremo basado en DNS para el clúster, ejecuta el siguiente comando:
gcloud container clusters get-credentials CLUSTER_NAME \ --dns-endpoint
El contenido del archivo de configuración generado varía según el extremo que uses para conectarte al clúster:
- Extremo basado en DNS: Debido a que el servicio de Google Front End (GFE) que
aloja el extremo basado en DNS presenta el certificado firmado por una
autoridad certificada (CA) pública, la entrada
kubeconfigomite elcertificate-authority-datacampo. - Extremos basados en IP: Debido a que el servidor de API presenta un certificado que está
firmado por la CA raíz del clúster, la entrada
kubeconfigincluye el campocertificate-authority-data. Este campo contiene el certificado público codificado en base64 de la CA raíz del clúster, que los clientes pueden usar para validar el certificado del servidor de API.
Para obtener más información sobre estos certificados, consulta Seguridad de transporte para conexiones de planos de control.
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 \
--location=CONTROL_PLANE_LOCATION
Reemplaza lo siguiente:
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, 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 \
--location=CONTROL_PLANE_LOCATION
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?
- Aprende a autorizar el acceso a los recursos en clústeres de GKE.
- Valida en Cloud de Confiance servicios desde cargas de trabajo de GKE.
- Lee la
kubectlhoja de referencia. - Soluciona problemas de la herramienta de línea de comandos
kubectl.