El comando kubectl
Apr 23, 2023
Updated: Jun 24, 2026

El comando kubectl

Primero que nada, kubectl es nuestra confiable herramienta de línea de comandos para controlar los clústeres de Kubernetes. Se comunica con el kube-apiserver en el plano de control de nuestro clúster.

En el siguiente diagrama de Mermaid mostramos cómo funciona el proceso de comunicación entre kubectl, el plano de control de Kubernetes (que incluye kube-apiserver y etcd) y el administrador.

sequenceDiagram
    participant Admin as Administrador
    participant kubectl
    participant API as kube-apiserver
    participant etcd
    Admin->>kubectl: ejecuta un comando kubectl
    kubectl->>API: transforma el comando en una llamada API
    API->>etcd: consulta o realiza cambios
    etcd-->>API: devuelve la información
    API-->>kubectl: responde la llamada API
    kubectl-->>Admin: muestra el resultado

Vamos paso a paso por ese flujo:

  1. El administrador ejecuta un comando kubectl.
  2. kubectl transforma el comando en una llamada API y se comunica con kube-apiserver en el plano de control.
  3. kube-apiserver consulta etcd para obtener información o realizar cambios.
  4. kube-apiserver devuelve la respuesta de la API al administrador a través de kubectl.

Este diagrama simplifica el flujo de trabajo al utilizar kubectl para interactuar con un clúster de Kubernetes.

Configurando kubectl

Antes de poder usar kubectl, debemos configurarlo. La configuración se almacena en un archivo dentro de nuestra carpeta oculta llamada .kube, en nuestro directorio de inicio. Este archivo contiene la lista de clústeres y las credenciales que usaremos para conectarnos a cada uno de ellos.

¿De dónde obtenemos las credenciales? Si estamos usando Google Kubernetes Engine (GKE), el servicio las proporciona a través de la herramienta gcloud. Usaremos el comando gcloud container clusters get-credentials para obtener las credenciales y conectarnos a nuestro clúster de GKE:

gcloud container clusters get-credentials <CLUSTER_NAME> --region <REGION>

Si tu clúster es zonal en lugar de regional, sustituye --region <REGION> por --zone <ZONE>. Este comando escribe automáticamente la entrada correspondiente en tu archivo .kube/config.

Nota: gcloud container clusters get-credentials acepta el nombre del clúster junto con --region (clúster regional), --zone (clúster zonal) o --location, y el proyecto activo se controla con la bandera global --project. Ajusta el nombre del clúster, la región o zona y el proyecto a tu entorno de GKE.

La sintaxis de kubectl

Ahora hablemos de cómo usar el comando kubectl. La sintaxis se compone de varias partes: el comando, el tipo, el nombre y los flags opcionales:

kubectl COMANDO TIPO NOMBRE [FLAGS]
  • COMANDO: especifica la acción que queremos realizar, como get, describe, logs o exec.
  • TIPO: define el objeto de Kubernetes sobre el que actúa el comando, como pods, deployments, nodes u otros objetos.
  • NOMBRE: especifica el objeto definido en el tipo.
  • FLAGS: algunas instrucciones admiten flags adicionales opcionales que podemos incluir al final del comando.

Por ejemplo, para ver la lista de pods en nuestro clúster, podemos ejecutar:

kubectl get pods

También podemos filtrar la lista especificando el nombre de un pod:

kubectl get pod mi-app-de-prueba

Consejo útil: utilizar el flag -o yaml para obtener la salida en formato YAML es realmente valioso. Esto nos permite capturar el estado actual de un objeto de Kubernetes en un archivo YAML, por ejemplo, para recrearlo en un clúster diferente:

>

``bash kubectl get pod mi app de prueba -o yaml ``

Ejercicios propuestos

  1. Conéctate a un clúster de GKE con gcloud container clusters get-credentials y verifica que la entrada quedó escrita en tu archivo .kube/config.
  2. Lista todos los pods de tu clúster y luego filtra por el nombre de uno solo usando kubectl get pod <NOMBRE>.
  3. Exporta la definición de un objeto a YAML con -o yaml y guarda la salida en un archivo para recrearlo más tarde.
  4. Practica el uso de --context para cambiar entre dos clústeres distintos sin tocar el resto de tu configuración.

Resumen en 3 puntos

  1. kubectl es la herramienta de línea de comandos que se comunica con kube-apiserver en el plano de control, que a su vez lee y escribe en etcd.
  2. La configuración vive en ~/.kube/config, y para GKE las credenciales se obtienen con gcloud container clusters get-credentials <CLUSTER> --region <REGION>.
  3. La sintaxis kubectl COMANDO TIPO NOMBRE [FLAGS] cubre casi todo: crear, ver, eliminar y exportar objetos con -o yaml; usa --kubeconfig o --context para apuntar al clúster correcto.

Eso es todo, espero que este post te sea de utilidad y lo puedas aplicar a algún proyecto que tengas en mente. Ahora es tu turno de poner en práctica tus habilidades de administración de clústeres de Kubernetes.

Déjame un comentario si te sirvió, si quieres añadir alguna opinión o si tienes alguna duda. Y recuerda que si te gustó, también puedes compartirlo usando los links a las redes sociales aquí abajo. Buena suerte.

Sebastian Gomez

Sebastian Gomez

Creador de contenido principalmente acerca de tecnología.

Leave a Reply

0 Comments

Advertisements

Related Posts

Categorias