Cómo instalar Kubernetes en Ubuntu 20.04 fossa focal Linux

Cómo instalar Kubernetes en Ubuntu 20.04 fossa focal Linux

Kubernetes es software líder en orquestación de contenedores. Kubernetes funciona administrando clústeres, que es simplemente un conjunto de hosts destinados a ejecutar aplicaciones contenedores. Para tener un clúster Kubernetes, necesita un mínimo de dos nodos: un nodo maestro y un nodo de trabajador. Por supuesto, puede expandir el clúster agregando tantos nodos de trabajadores como sea necesario.

En esta guía, vamos a implementar un clúster de Kubernetes que consta de dos nodos, los cuales están ejecutando Ubuntu 20.04 fosa focal. Tener dos nodos en nuestro clúster es la configuración más básica posible, pero podrá escalar esa configuración y agregar más nodos si lo desea.

En este tutorial aprenderás:

  • Cómo instalar Docker
  • Cómo instalar Kubernetes
  • Cómo configurar un nodo maestro y trabajador
  • Cómo unirse a un nodo de trabajadores a un clúster de Kubernetes
  • Cómo implementar NGINX (o cualquier aplicación contenedorizada) en un clúster de Kubernetes
Implementación de Kubernetes en Ubuntu 20.04 fosa focal Requisitos de software y convenciones de línea de comandos de Linux
Categoría Requisitos, convenciones o versión de software utilizada
Sistema Instalado Ubuntu 20.04 o actualizado Ubuntu 20.04 fosa focal
Software Kubernetes
Otro Acceso privilegiado a su sistema Linux como root o a través del sudo dominio.
Convenciones # - requiere que los comandos de Linux dados se ejecuten con privilegios raíz directamente como un usuario raíz o mediante el uso de sudo dominio
ps - Requiere que los comandos de Linux dados se ejecuten como un usuario regular no privilegiado

Guión

Antes de sumergirnos, establecemos los detalles de nuestro escenario. Como se mencionó anteriormente, nuestro clúster tendrá dos nodos, y ambos nodos están ejecutando Ubuntu 20.04 fosa focal. Uno será el nodo maestro y se puede identificar fácilmente con su nombre de host de Kubernetes-maestro. El segundo nodo será nuestro nodo de trabajador y tener un nombre de host de trabajador de Kubernetes.

El nodo maestro implementará un clúster de Kubernetes y el nodo de trabajadores simplemente se une. Dado que los clústeres de Kubernetes están diseñados para ejecutar el software contenedorizado, después de poner nuestro clúster en funcionamiento, vamos a implementar un contenedor de servidor NGINX como prueba de concepto.



Instalar Docker

Ambos nodos deberán tener a Docker instalado en ellos, ya que Kubernetes confía en él. Abra un terminal y escriba los siguientes comandos tanto en el nodo maestro como del trabajador para instalar Docker:

$ sudo apt actualización $ sudo apt instalación docker.IO 

Una vez que Docker haya terminado de instalarse, use los siguientes comunicados para iniciar el servicio y para asegurarse de que comience automáticamente después de cada reinicio:

$ sudo SystemCTL Start Docker $ sudo SystemCTL Habilitar Docker 

Instalar kubernetes

Ahora estamos listos para instalar Kubernetes. Al igual que todos los demás comandos hasta este punto, asegúrese de que esté haciendo esto en ambos nodos. En su maestro y trabajador de Kubernetes, primero instale el apt-transport-https Paquete, que nos permitirá usar HTTP y HTTPS en los repositorios de Ubuntu. Ahora también es un buen momento para instalar rizo Dado que lo necesitaremos en un momento:

$ sudo apt install apt-transport-https curl 

A continuación, agregue la tecla de firma de Kubernetes a ambos sistemas:

$ curl -s https: // paquetes.nube.Google.com/apt/doc/apt-key.GPG | sudo apt-key agregar 

A continuación, agregaremos el repositorio del paquete Kubernetes. Tenga en cuenta que al momento de este escrito, Ubuntu 16.04 Xenial Xerus es el último repositorio de Kubernetes disponible. Esto debería ser reemplazado por Ubuntu 20.04 fosa focal, y el siguiente comando se puede actualizar desde xenial a focal.

$ sudo apt-add-repository "deb http: // apt.Kubernetes.IO/ Kubernetes-Xenial Main " 

Ahora podemos instalar Kubernetes:

$ sudo apt instalación kubeadm kubelet kubectl kubernetes-cni 

Deshabilitar la memoria de intercambio

Kubernetes se negará a funcionar si su sistema está utilizando la memoria de intercambio. Antes de continuar, asegúrese de que el nodo maestro y trabajador tenga memoria de intercambio deshabilitada con este comando:

$ sudo swapoff -a 

Ese comando deshabilitará la memoria de intercambio hasta que sus sistemas reinicie, para que este cambio persista, use Nano o su editor de texto favorito para abrir este archivo:

$ sudo nano /etc /fstab 

Dentro de este archivo, comente el /archivo de intercambio línea precediéndolo con un # símbolo, como se ve a continuación. Luego, cierre este archivo y guarde los cambios.

Agregar # para comentar la línea SwapFile

Establecer nombres de host

A continuación, asegúrese de que todos sus nodos tengan un nombre de host único. En nuestro escenario, estamos usando los nombres de host Kubernetes-maestro y trabajador de Kubernetes para diferenciar fácilmente a nuestros hosts e identificar sus roles. Use el siguiente comando si necesita cambiar sus nombres de host:

$ sudo hostnamectl set-hostname kubernetes-master 


Y en el nodo del trabajador:

$ sudo hostnamectl set-hostname kubernetes-worker 

No notará los cambios del nombre de host en la terminal hasta que abra una nueva. Por último, asegúrese de que todos sus nodos tengan una hora y una fecha precisas, de lo contrario, tendrá problemas con los certificados TLS inválidos.

Inicializar el servidor maestro de Kubernetes

Ahora estamos listos para inicializar el nodo maestro de Kubernetes. Para hacerlo, ingrese el siguiente comando en su nodo maestro:

Kubernetes-maestro: ~ $ sudo kubeadm init 
Kubernetes en Ubuntu 20.04 El nodo maestro ahora se inicializa

El nodo maestro de Kubernetes se ha inicializado. La salida nos da un Kubeadm Únete Comando que tendremos que usar más tarde para unirnos a nuestros nodos de trabajadores al nodo maestro. Entonces, tome nota de este comando para más tarde.

La salida de arriba también nos aconseja ejecutar varios comandos como un usuario regular para comenzar a usar el clúster Kubernetes. Ejecute esos tres comandos en el nodo maestro:

Kubernetes -Master: ~ $ mkdir -p $ home/.Kube Kubernetes -Master: ~ $ sudo cp -i/etc/kubernetes/admin.conf $ casa/.Kube/config Kubernetes -Master: ~ $ sudo chown $ (id -u): $ (id -g) $ home/.Kube/config 

Implementar una red de pod

El siguiente paso es implementar una red POD. La red POD se utiliza para la comunicación entre hosts y es necesaria para que el clúster Kubernetes funcione correctamente. Para esto usaremos la red de cápsulas de franela. Emita los siguientes dos comandos en el nodo maestro:

Kubernetes -Master: ~ $ Kubectl Aplicar -f https: // raw.githubusercontent.com/coreos/frannel/master/documentation/kube-flannel.YML Kubernetes -Master: ~ $ Kubectl Aplicar -f https: // raw.githubusercontent.com/coreos/frannel/master/documentation/k8s-manifests/kube-flannel-rbac.YML 

Dependiendo de su entorno, puede tomar solo unos segundos o un minuto para elevar toda la red de franela. Puedes usar el kubectl Comandar para confirmar que todo está listo y listo:

Kubernetes-Master: ~ $ kubectl Get pods-todos los namespaces 
POD Network se implementa correctamente

Cuando toda la columna de estado muestra 'en ejecución', es una indicación de que todo ha terminado de implementar y bueno para ir.

Únase al clúster de Kubernetes

Ahora nuestro clúster está listo para que los nodos de los trabajadores se unan. Utilizar el Kubeadm Únete Comando recuperado anteriormente de la salida de inicialización del nodo maestro de Kubernetes para unir su clúster Kubernetes:

Kubernetes-Worker: ~ $ sudo kubeadm Únete 192.168.1.220: 6443 - -token 1exb8s.2T4K3B5SYFC3JFMO-Descubrido-token-ca-cert-hash sha256: 72ad481cee4918cf2314738419356c9a402fb609263adad48c13797d0cba3411 
Unirse al nodo de trabajadores al clúster de Kubernetes

Volver en su nodo maestro de Kubernetes, confirme que trabajador de Kubernetes ahora es parte de nuestro clúster Kubernetes con este comando:

Kubernetes-Master: ~ $ Kubectl Get Nodes 
Muestra qué nodos se encuentran actualmente en el clúster Kubernetes

Implementación de un servicio en el clúster de Kubernetes

Ahora estamos listos para implementar un servicio en el clúster Kubernetes. En nuestro ejemplo, implementaremos un servidor NGINX en nuestro nuevo clúster como prueba de concepto. Ejecute los siguientes dos comandos en su nodo maestro:

Kubernetes-Master: ~ $ kubectl run --image = nginx nginx-server --port = 80 --env = "domain = cluster" kubernetes-master: ~ $ kubectl Exponer la implementación nginx-server --port = 80--name = nginx-http 


Ahora debería ver un nuevo contenedor Nginx Docker implementado en el nodo de su trabajador:

Kubernetes-Worker: ~ $ sudo Docker PS 
El nuevo contenedor Nginx Docker está en funcionamiento en Kubernetes Worker Node

Puede ver una lista en ejecución de todos los servicios disponibles que se ejecutan en su clúster con el siguiente comando, emitido desde el nodo Kubernetes Maser:

Kubernetes-Master: ~ $ Kubectl Get SVC 
Muestra qué servicios contenedores se ejecutan en el clúster Kubernetes

Conclusión

En este artículo, aprendimos a configurar Kubernetes para implementar aplicaciones contenedores en Ubuntu 20.04 fosa focal. Configuramos un clúster básico que consta de dos hosts, un maestro y un trabajador, aunque esto se puede ampliar a muchos más nodos de los trabajadores si es necesario.

Vimos cómo configurar Docker y otros requisitos previos, así como implementar un servidor NGINX en nuestro nuevo clúster como prueba de concepto. Por supuesto, esta misma configuración se puede utilizar para implementar cualquier cantidad de aplicaciones contenedores.

Tutoriales de Linux relacionados:

  • Cómo instalar Kubernetes en Ubuntu 22.04 Jellyfish de Jammy ..
  • Cómo crear un clúster de Kubernetes
  • Cosas para instalar en Ubuntu 20.04
  • Comparación de Linux Apache Prefork vs Worker MPMS
  • Cosas que hacer después de instalar Ubuntu 20.04 fossa focal Linux
  • ¿Para qué se usa Kubernetes??
  • Cómo administrar los grupos de Kubernetes con Kubectl
  • kubeadm vs minikube, pros y contras
  • Kubernetes vs Docker, ¿cuál es la diferencia??
  • Cómo implementar WordPress en un clúster de Kubernetes