Tabla de Contenidos
Kubernetes
K0s_Distribucion_para_instalar_Kubernetes
CONCEPTOS INTRODUCTORIOS
- CLUSTER → Es un conjunto de máquina o de nodos.
- NODOS → Cada una de las máquinas, por ejemplo un servidor Ubuntu.
- POD → Dentro de cada nodo o máquina, puede haber pods que a su vez guarden varios contenedores a la vez.
Lo primero será importar el certificado SSH en las máquinas donde queramos administrarlas con Kubernetes, por tanto lo haremos:
Ahora debemos activar la opción de poder conectarnos por ssh con el usuario root; y eso lo podemos configurar dentro del fichero /etc/ssh/sshd_config y activamos el PermitRootLogin:
EL siguiente paso será establecer una contraseña para el usuario root dentro de la máquina que vamos a administrar; y para ello utilizaremos el comando passwd root:
Y ahora copiamos este certificado a los servidores:
Y ya nos podremos conectar como root sin poner credenciales:
Ahora instalaremos k0s en la máquina anfitrión; y para ello ejecutaremos estos comandos:
wget https://github.com/k0sproject/k0sctl/releases/download/v0.15.0/k0sctl-linux-x64 && mv k0sctl-linux-x64 k0sctl&& chmod 777 k0sctl
Una vez ejecutado este comando, ya tendremois k0s:
Ahora debemos de crear un fichero de configuración en formato yaml para poder configurar el k0s dentro de los equipos que queramos, que en mi caso sólo administraré uno pero podría hacerlo con muchos más:
Y ahora debemos ejecutar este fichero yaml con el siguiente comando:
Por tanto ahora se nos lanzará el cluster con la máquina que hemos elegido administrar:
Ahora ya tenemos nuestro kluster desplegado, y si queremos ver los nodos primero tendremos que exportar un fichero .yaml y depsués visualizarlo, por tanto utilizaremos estos dos comandos:
KUBECTL - Para administrar los clusters de Kubernetes
Ahora para poder administrar nuestros clusters, vamos a instalar kubectl, lo cual lo haremos con los siguientes comandos:
sudo apt-get install -y apt-transport-https ca-certificates curl sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list sudo apt-get update sudo apt-get install -y kubectl
En este punto también podemos utilizar el comando
kubectl cluster-info –kubeconfig kubeconfig.yaml para conocer información del
cluster al que me estoy conectando:
Y también dentro de los klusters que tenemos desplegados, podemos obtener más información sobre uno de ellos, yo por ejemplo en mi caso sólo tengo desplegado el cluster server, por lo que obtendré información de este mismo:
Ahora si queremos ver los recursos que tiene uno de nuestros nodos, utilizaremos este comando:
PODS en Kubernetes
Un pod es la unidad donde vamos a controlar los contenedores. En los pods puedo meter varios contenedores a la vez.
CREAR UN POD
Vamos a crear un pod que contendrá un contenedor de Ubuntu, lo cual se hace a partir de un fichero yml que por ejemplo lo llamaremos app1.yml, pero debemos hacer que esté en ejecución, por lo que diremos que en su interior haya un bucle while:
Y lo creamos con este otro comando:
Y para ver los pods creados lo haremos de esta forma:
En caso de que veamos que tenemos el pod en Pending, por tanto si nos sale este problema debemos ejecutar este comando para convertir un pod de pending a running:
Y ya lo tenemos corriendo:
CONSULTAR DETALLES DE UN POD
Para consultar los detalles de un pod, utilizaremos el comando describe de la siguiente manera:
También podemos incluso conocer su dirección IP:
CONOCER RECURSOS QUE CONSUME UN POD
CONOCER LOGS DE UN POD
EJECUTAR COMANDOS EN UN POD
Para ello lo hacemos de una forma similar a docker, pero aquí primero seleccionamos el pod de ubuntu y después el contenedor de ubuntu-contenedor que esta dentro del pod:
Ahora por ejemplo voy a crear un fichero:
Y ahora ejecutamos el comando para abrirnos un contenedor y vemos que tenemos el fichero creado:


























