¿Qué es Kubectl?

| Última modificación: 25 de octubre de 2024 | Tiempo de Lectura: 4 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

La herramienta Kubectl es una interfaz de línea de comandos que se instala en un equipo cliente. La proporciona el proyecto Kubernetes a través de una Interfaz de Programación de Aplicaciones Api.

Kubectl permite gestionar el clúster de Kubernetes, es decir, el conjunto de máquinas de nodos que se encargan de la ejecución de las aplicaciones en contenedores.

Con esta interfaz, el usuario también puede realizar implementaciones o deployments, donde se le indica a los kubernetes cómo crear y modificar instancias de los pods que almacenan una app en un contenedor. Estas implementaciones permiten escalar la cantidad de pods de réplica, al tiempo que facilita la habilitación de un código actualizado controladamente, o bien, retroceder hacia una versión anterior de implementación en caso de que sea necesario.

Conceptos básicos de Kubectl

Para comprender mejor el funcionamiento de esta herramienta, es importante conocer el significado de algunos términos claves como kubernetes, pods o clúster, entre otros.

Los conceptos básicos de esta interfaz de línea de comandos son:

Kubernetes

Hace referencia a un sistema de código libre, portable y extensible, que se usa para gestionar cargas de trabajo y servicio. Esta plataforma también contribuye en los procesos de automatización del despliegue de aplicaciones, ajuste de escala y gestión de programas en los contenedores. Kubernetes puede soportar múltiples entornos para ejecutar contenedores de software, como, por ejemplo, Docker.

🔴 ¿Quieres entrar de lleno al mundo DevOps & Cloud Computing? 🔴

Descubre el DevOps & Cloud Computing Full Stack Bootcamp de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada

👉 Prueba gratis el Bootcamp en DevOps & Cloud Computing por una semana

El proyecto Kubernetes, además, utiliza la metodología de configuración declarativa, que consiste en decirle a las aplicaciones las labores que deben realizar, en lugar de indicarles cómo deberían hacerlo. Originalmente, kubernetes era una plataforma de Google, pero se liberó en 2014.

Pods

Los pods son las unidades de computación de menor tamaño que se encargan de administrar y gestionar en Kubernetes. Un pod está compuesto por uno o varios contenedores de software con almacenamiento compartido e instrucciones de cómo ejecutarse. Estos contenedores comparten dirección IP, puertos y pueden encontrarse mediante la herramienta localhost.

Clúster

Un clúster es un grupo de máquinas de nodo, que contiene, al menos, un plano de control, así como una o más máquinas informáticas. En el caso del plano de control, este será el que cumpla la función de mantener el estado deseado del clúster, al tiempo que gestiona las aplicaciones ejecutadas y las imágenes de contenedores que se usan. Por su lado, las máquinas informáticas o nodos se encargan de la ejecución tanto de los programas y aplicaciones como de las cargas de trabajo.

Comandos de Kubectl

Esta interfaz utiliza una serie de comandos que le facilitan su funcionamiento, sin embargo, antes de ejecutarlos es necesario configurar la herramienta. Para esto, primero debes buscar un archivo con el nombre config dentro del directorio $HOME/.kube.

Después de esto, puedes especificar otros archivos configurando la variable de entorno o usando el indicador --kubeconfig.

De este modo, la sintaxis básica de Kubectl debe verse en la ventana de tu terminal de esta forma: kubectl [command] [TYPE] [NAME] [flags] .

command indica la operación que se quiere realizar en los recursos, como, por ejemplo, create, get, delete o describe.

Por su lado, TYPE hace referencia al tipo de recurso. Esta herramienta no identifica entre mayúsculas o minúsculas, y puedes utilizarla para especificar el recurso de forma singular, abreviada o plural.

Mientras tanto, NAME se encarga de especificar el nombre del recurso y sí distingue entre minúsculas y mayúsculas.

Finalmente flags especifica los indicadores opcionales.

Otros comandos usados en Kubectl utilizan las siguientes sintaxis:

  • $ kubectl version --client : se emplea para verificar la configuración.
  • $ kubectl config view : comando para ver la configuración actual de la interfaz.
  • $ kubectl config get-contexts : se encarga de enumerar los contextos disponibles.
  • $ kubectl config current-context : permite verificar el contexto actual de la herramienta.
  • $ kubectl config use-context [cluster-name] : se usa para cambiar el contexto.
  • $ kubectl api-resources [flags] : este comando permite enumerar los recursos de la API que estén disponibles.
  • $ kubectl api-versions [flags] : se utiliza para enlistar las versiones de la API disponibles en el momento.
  • $ kubectl apply -f FILENAME [flags] : permite aplicar un cambio de configuración a un recurso desde un archivo.
  • $ kubectl auth [flags] [options] : se emplea para inspeccionar la autorización.
  • $ kubectl certificate SUBCOMMAND [options] : comando para modificar los recursos del certificado.
  • $ kubectl convert -f FILENAME [options] : se usa con el objetivo de convertir archivos de configuración entre diferentes versiones de API.
  • $ kubectl create -f FILENAME [flags] : comando para crear uno o más recursos desde un archivo.
  • $ kubectl delete (-f FILENAME | TYPE [NAME | /NAME | -l label | --all]) [flags] : permite eliminar los recursos de un archivo, especificando los selectores de etiquetas, recursos y nombres.
  • $ kubectl describe (-f FILENAME | TYPE [NAME_PREFIX | /NAME | -l label]) [flags] : se utiliza para mostrar el estado detallado de uno o más recursos.
  • $ kubectl edit (-f FILENAME | TYPE NAME | TYPE/NAME) [flags] : comando para modificar y actualizar la definición de uno o más recursos dentro del servidor, a través del uso del editor predeterminado.

¿Cuál es el siguiente paso?

Ahora que has aprendido qué es la interfaz Kubectl, asi como cuáles son sus conceptos básicos y comandos principales para su funcionamiento, no dudes en continuar con tu aprendizaje gracias a nuestro DevOps & Cloud Computing Full Stack Bootcamp, donde en pocos meses te enseñaremos todo lo que necesitas saber para convertirte en un experto en esta y otras muchas herramientas de la computación en la nube.

Xoán Mallón

Senior DevOps Engineer en Zscaler & Coordinador del Bootcamp DevOps & Cloud Computing.

Posts más leídos

¡CONVOCATORIA ABIERTA!

DevOps & Cloud Computing

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado