Comandos de Kubectl

https://kubernetes.io/docs/reference/kubectl/cheatsheet/

para conocer el estado del cluster kubernetes → kubectl status

para saber la versión → kubectl version

ver la configuración → kubectl config view

Listado de todos los comandos que permite la API → kubectl api-resoruce

kubectl get deploy,rs,service,pods → es igual a un kubectl get all

kubectl api-resources → información sobre la API de kubernetes

kubectl get service → lista de los servicios

kubectl get deployments → lista de deployments

kubectl get namespaces → lista de namespaces

kubectl delete service <nombre_servicio>→ eliminar servicio <nombre_servicio>

kubectl delete deployment <nombre_del_deployment>→ eliminar deployment <nombre_del_deployment>

kubectl apply -f deployment.yaml → aplicar el contenido del fichero deployment.yaml

kubeadm token list →listar los tokens

exponer un deployment → kubectl expose deployment <mi-deployment> –port=80 –type=NodePort

escalar a 3 replicas un deployment → kubectl scale –replicas=3 deployment <mi-deployment> -n <mi-namespace>

crear un secret → kubectl create secret generic mysql-pass –from-literal=password=<mi-contraseña>

Comando para PODs

Crear un POD

Hay dos formas de crear pods. De forma imperativa y de forma declarativa

Imperativa

Ejecutamos el comando para crearlo Hasta la versión 1.17 se debe usar la forma siguiente

https://v1-17.docs.kubernetes.io/docs/reference/kubectl/conventions/#generators

Apartir de la versión 1.18 la parte de generator está en deshuso y ahora se utiliza

Por ejemplo para crear un pod con una imagen de un nginx basado en alpine

Para crear un pod temporal que se elimine al salir del shell

Declarativa

Definimos un archivo en formato yaml para después aplicarlo

Listar los pods que tenemos

Listar los pods de todos los namespaces Listar los pods de un determinado namespace Listar los pods del sistema → kubectl get pods -n kube-system

Ver una descripción del pod

Nos permite ver los eventos de un pod y su descripción

Etiquetar un pod

Recursos que consume un pod

Eliminar un pod

en nombre del pod podemos poner uno o varios nombres separados por espacio

Si los pods lo hemos creado desde un manifiesto. Para borrarlos lo mejor es ejecutar

Entrar al shell de nuestro pod

En el caso de que tengamos un pod con dos contenedores en su interior y queramos entrar al shell de primer contenedor

Ver los logs de un pod

Si tenemos mas de un contenedor en el pod

si son pods del system , por ejemplo del driver kube-flannel

Ejecutar un comando sobre un contenedor

Copiar un fichero a un contenedor

Acceder a un puerto dentro de un pod

Trabajar con Cluster

Para obtener información sobre el cluster → kubectl cluster-info

Información sobre los nodos → kubectl get nodes

descripción de un nodo → kubectl describe node <nombre del nodo>

ver el consumo de un nodo →kubectl top node <nombre nodo>

Poner un nodo fuera de servicio (para actualizar por ejemplo) → kubectl uncordon <nombre nodo>

Para que quite todos los pods etc que ya existieran en este nodo → kubectl drain <nombre nodo>

Para volver a ponerlo como disponible → kubectl cordon <nombre nodo>

Referencias

https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands

https://www.albertcoronado.com/2021/06/08/tutorial-kubernetes-i/