¿Qué es Kubernetes?
Kubernetes es un sistema de administración de contenedores gratuito y de código abierto que proporciona una plataforma para la automatización de la implementación, el escalado y las operaciones de contenedores de aplicaciones en clústeres de computadoras host. Con Kubernetes, puede utilizar libremente la infraestructura de nube pública, local e híbrida para ejecutar las tareas de implementación de su organización.
En este tutorial, explicaremos cómo instalar Kubernetes en un sistema Ubuntu y también implementar Kubernetes en un clúster de Ubuntu de dos nodos.
Los comandos y procedimientos mencionados en este artículo se ejecutaron en un sistema Ubuntu 18.04 LTS. Dado que usaremos la línea de comandos de Ubuntu, la Terminal, para ejecutar todos los comandos, puede abrirla a través del Tablero del sistema o el atajo Ctrl+Alt+T.
Instalación de Kubernetes
El clúster de dos nodos que formaremos en este artículo consistirá en un nodo maestro y un nodo esclavo. Ambos nodos necesitan tener Kubernetes instalado en ellos. Por lo tanto, siga los pasos que se describen a continuación para instalar Kubernetes en ambos nodos de Ubuntu.
Paso 1:Instale Docker en ambos nodos
Instale la utilidad Docker en ambos nodos ejecutando el siguiente comando como sudo en la Terminal de cada nodo:
$ sudo apt install docker.io
Se le solicitará una opción S/n para continuar con la instalación. Ingrese Y y luego presione enter para continuar. Docker se instalará en su sistema. Puede verificar la instalación y también verificar el número de versión de Docker a través del siguiente comando:
$ ventana acoplable --versión
Paso 2:habilite Docker en ambos nodos
Habilite la utilidad Docker en ambos nodos ejecutando el siguiente comando en cada uno:
$ sudo systemctl habilitar ventana acoplable
Paso 3:agregue la clave de firma de Kubernetes en ambos nodos
Ejecute el siguiente comando para obtener la clave de firma de Kubernetes:
$ curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key agregar
Si Curl no está instalado en su sistema, puede instalarlo mediante el siguiente comando como root:
$ sudo apt install curl
Se le solicitará una opción S/n para continuar con la instalación. Ingrese Y y luego presione enter para continuar. La utilidad Curl se instalará en su sistema.
Paso 4:agregue el repositorio de Xenial Kubernetes en ambos nodos
Ejecute el siguiente comando en ambos nodos para agregar el repositorio de Xenial Kubernetes:
$ sudo apt-add-repository "deb http://apt.kubernetes.io/kubernetes-xenial main"
Paso 5:Instalar Kubeadm
El último paso en el proceso de instalación es instalar Kubeadm en ambos nodos mediante el siguiente comando:
$ sudo apt install kubeadm
Se le solicitará una opción S/n para continuar con la instalación. Ingrese Y y luego presione enter para continuar. Luego, Kubeadm se instalará en su sistema.
Puede verificar el número de versión de Kubeadm y también verificar la instalación a través del siguiente comando:
$ versión de kubeadm
Despliegue de Kubernetes
Paso 1:deshabilite la memoria de intercambio (si se está ejecutando) en ambos nodos
Debe deshabilitar la memoria de intercambio en ambos nodos, ya que Kubernetes no funciona correctamente en un sistema que usa memoria de intercambio. Ejecute el siguiente comando en ambos nodos para deshabilitar la memoria de intercambio
$ sudo intercambio -a
Paso 2:Asigne nombres de host únicos a cada nodo
Ejecute el siguiente comando en el nodo maestro para darle un nombre de host único:
$ sudo hostnamectl set-hostname maestro-nodo
Ejecute el siguiente comando en el nodo esclavo para darle un nombre de host único:
$ hostnamectl set-hostname esclavo-nodo
Paso 3:inicialice Kubernetes en el nodo principal
Ejecute el siguiente comando como sudo en el nodo maestro:
$ sudo kubeadm init --pod-network-cidr=10.244.0.0/16
El proceso puede tardar un minuto o más dependiendo de su conexión a Internet. La salida de este comando es muy importante:
Anote la siguiente información de la salida:
Para comenzar a usar su clúster, debe ejecutar lo siguiente como usuario normal:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Ahora puede unirse a cualquier número de máquinas ejecutando lo siguiente en cada nodo
como raíz:
kubeadm unirse a 192.168.100.6:6443 --token 06tl4c.oqn35jzecidg0r0m --discovery-token-ca-cert-hash sha256:c40f5fa0aba6ba311efcdb0e8cb637ae0eb8ce27b7a03d47be6d966142f204c
Ahora ejecute los comandos sugeridos en la salida para comenzar a usar el clúster:
Puede verificar el estado del nodo maestro ejecutando el siguiente comando:
$ kubectl obtener nodos
Verá que el estado del nodo principal es "no listo" todavía. Esto se debe a que aún no se ha implementado ningún módulo en el nodo principal y, por lo tanto, la interfaz de red del contenedor está vacía.
Paso 4:implementar una red de pod a través del nodo principal
Una red de pods es un medio de comunicación entre los nodos de una red. En este tutorial, estamos implementando una red de pods Flannel en nuestro clúster a través del siguiente comando:
$ sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
Utilice el siguiente comando para ver el estado de la red:
$ kubectl obtener pods --todos los espacios de nombres
Ahora, cuando vea el estado de los nodos, verá que el nodo maestro está listo:
$ sudo kubectl obtener nodos
Paso 5:agregue el nodo esclavo a la red para formar un clúster
En el nodo esclavo, ejecute el siguiente comando que generó al inicializar Kubernetes en el nodo maestro:
$ sudo kubeadm unirse a 192.168.100.6:6443 --token 06tl4c.oqn35jzecidg0r0m --discovery-token-ca-cert-hash sha256:c40f5fa0aba6ba311efcdb0e8cb637ae0eb8ce27b7a03d47be6d960442c2
Ahora, cuando ejecute el siguiente comando en el nodo maestro, confirmará que dos nodos, el nodo maestro y los nodos del servidor se están ejecutando en su sistema.
$ sudo kubectl obtener nodosEsto muestra que el clúster de dos nodos ahora está en funcionamiento a través del sistema de administración de contenedores de Kubernetes.
En este artículo hemos explicado la instalación del sistema de gestión de contenedores de Kubernetes en dos nodos de Ubuntu. Luego formamos un clúster simple de dos nodos e implementamos Kubernetes en él. Ahora puede implementar y usar cualquier servicio como el servidor Nginx o el contenedor Apache para hacer uso de esta red en clúster.