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 semanaEl 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.