Kubernetes OCT-2022 - Comenzando.
Comenzamos una nueva serie de temas con Kubernetes, actualizado a Oct-2022.
Usaremos 3 servidores virtuales con VirtualBox y Xubuntu 22.04, básicamente porque es sencillo de instalar, consume pocos recursos, si hace falta arrancaremos la interfaz gráfica, pero inicialmente solo arrancamos en modo texto.
Durante la instalación definimos la cuenta “dac” como usuario sin privilegios, la instalación básica nos alcanzará.
Instalamos paquetes básicos de gestión de los equipos, metemos certificados SSH para poder acceder desde fuera fácilmente.
apt install nmap htop mc
apt remove snapd
systemctl disable lightdm
apt update
apt upgrade
ssh-copy [email protected]
ssh-copy [email protected]
ssh-copy [email protected]
reboot
Para ver los recursos en uso de los servidores (s1, s2 y s3, con IPs 192.168.10.81 82 y 83), usamos el HTOP. quitaremos todo lo que no sea necesario ya que asignamos 1 vCPU y 1 gb a cada uno.
Editamos el sshd para habilitar el acceso de Root, que nos puede servir.
vi /etc/ssh/sshd.conf
PermitRootLogin yes
En nuestro equipo central, instalamos CSSH para poder interactuar con los 3 servidores al mismo tiempo o en uno solo, invocando a CSSH.
cssh [email protected] [email protected] [email protected]
Editamos el acceso a root desde la cuenta “dac”, SIN pedir clave, que nos simplificará el uso y la posibilidad de enviar comandos de manera automática con ssh. en este caso usaremos la cuenta “dac” para usuario normal y “root” para tareas de admin.
Verificamos que en los 3 servidores tenemos definida la linea para la cuenta “dac” y usando esa cuenta accedemos como “root” y efectivamente no nos pide clave.
Ahora instalaremos Docker-CE.
apt install apt-transport-https curl gnupg-agent ca-certificates software-properties-common -y
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# #############################################
# PENDIENTE DE CONFIRMACION
# add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
# apt install docker-ce docker-ce-cli containerd.io -y
# apt install kubectl
# #############################################
# Para dar permisos al usuario DAC.
newgrp docker
usermod -aG docker dac
# systemctl enable docker
# systemctl start docker
docker version
Verificamos que Docker este corriendo en los 3 equipos, aunque luego instalaremos Kubernetes de manera distinta, docker debe estar instalado en todos, porque Kubernetes usará Docker.
En este caso vemos la version 20.10.21 como servicio (dockerd) y también como cliente (docker).
Para evitar tener que tipear la clave de la cuenta “dac” al invocar al sudo, modificamos esta linea en el /etc/sudoers. (visudo)
# Allow members of group sudo to execute any command
%sudo ALL=NOPASSWD: ALL
Debemos evitar que las sesiones SSH se cierren agregando estas líneas al fichero de SSHD_config. Una práctica simple es dejar corriendo un comando (htop por ejemplo).
#vi /etc/ssh/sshd_config
TCPKeepAlive no
ClientAliveInterval 30
ClientAliveCountMax 240
Aunque se puede utilizar miniKube para “jugar” en un equipo aislado, hemos mostrado en otros posts como hacerlo.
Ahora haremos la instalación completa y “profesional” con 3 servidores y todas las herramientas de Kubernetes para las próximas prácticas.
Podemos probar que docker funciona correctamente.
docker run hello-world
docker ps -a
docker images
docker network ls
shutdown -h now
Este es el momento donde deberían hacer copia de los 3 servidores virtuales para poder restaurarlos en este punto. SI, hagan copia ahora. También debemos aumentar las vCPU a 2 y la RAM a 2048 mb (2gb).