¿Cómo instalar y configurar Kubernetes en Ubuntu?

En este artículo, aprenderemos cómo instalar y configurar Kubernetes en Ubuntu . También implementaremos un servidor NGINX.

Kubernetes se puede instalar con sus herramientas de implementación usando abalorio o policías o kubespray . Sin embargo, en este artículo, lo instalaremos con abalorio .

Tabla de contenido

¿Cuáles son los requisitos para Kubernetes?

1.) Un host Linux compatible. El proyecto Kubernetes proporciona instrucciones genéricas para las distribuciones de Linux basadas en Debian y Red Hat, y aquellas distribuciones sin un administrador de paquetes.
2.) 2 GB o más de RAM por máquina (cualquier cantidad menor dejará poco espacio para sus aplicaciones).
3.) 2 CPU o más.
4.) Conectividad de red completa entre todas las máquinas en el clúster (la red pública o privada está bien).
5.) Nombre de host único, dirección MAC y product_uuid para cada nodo. Ver aquí para más detalles.
6.) Ciertos puertos están abiertos en sus máquinas. Ver aquí para más detalles.
7.) Intercambio deshabilitado. DEBE deshabilitar el intercambio para que el kubelet para funcionar correctamente.

Fuente: https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/

Kubernetes usa un tiempo de ejecución de contenedor, en este artículo, usaremos Estibador si no tiene docker instalado en su sistema, puede instalarlo rápidamente consultando https://www.linuxfordevices.com/tutorials/ubuntu/install-docker-run-docker-container-ubuntu

¿Cómo instalar Kubernetes en Ubuntu?

Antes de continuar con la instalación de Kubernetes, verifique si tiene instalado un tiempo de ejecución de contenedor funcional. Como en estos artículos que estamos usando Estibador por lo que simplemente puede ejecutar:

                      
docker version

                    
versión acoplable

Actualice su índice con comando apto e instale los paquetes necesarios para la instalación de Kubernetes:

                      
sudo apt update
sudo apt install apt-transport-https ca-certificates curl

                    

Siguiente descarga clave de firma de Google Cloud mediante el uso curl mando:

                      
sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg

                    

Ahora agregue el repositorio de Kubernetes al administrador de paquetes apt:

                      
sudo 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

                    

Ahora actualice el índice apt e instale kubeadm, kubectl y kubelet mediante:

                      
sudo apt update
sudo apt install kubelet kubeadm kubectl

                    

Ahora sostenga la versión de ellos ejecutando:

                      
sudo apt-mark hold kubelet kubeadm kubectl

                    

Ahora verifique la instalación mediante:

                      
kubeadm version

                    
versión kubeadm

Estos pasos deben repetirse en cada nodo que cree.

¿Cómo configurar Kubernetes?

Ahora que hemos instalado las herramientas necesarias, podemos proceder a configurar Kubernetes.

1. Deshabilite el intercambio e inicialice el nodo maestro

Como ya se mencionó en los requisitos anteriores, el intercambio debe estar deshabilitado para kubelet para funcionar correctamente. Deshabilite el intercambio en todos los nodos ejecutando:

                      
sudo swapoff –a

                    

Ahora inicialice el nodo maestro de la siguiente manera:

                      
sudo kubeadm init --apiserver-advertise-address 192.168.0.148 --pod-network-cidr=10.5.0.0/16

                    

Reemplazar 192.168.0.148 con la dirección IP de su máquina.

Hemos inicializado con éxito nuestro nodo maestro.

Ejecutar los comandos 1 Ejecutar los comandos

2. Únase a los nodos de trabajo para dominar

Ahora debemos ejecutar los comandos resaltados, pero también debe guardar el comando dentro del rectángulo rojo, ya que será necesario más adelante para que nuestros nodos de trabajo se unan a nuestro nodo maestro.

                      
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 ejecutar el siguiente comando para ver los nodos:

                      
sudo kubectl get nodes

                    

Puedes ver nuestro nodo maestro no está listo en este momento.

Kubectl Obtener nodos 1 kubectl obtener nodos

3. Inicializar redes de clúster

Ahora inicialice la red de clústeres ejecutando:

                      
sudo kubectl apply -f https://raw.githubusercontent.com/cloudnativelabs/kube-router/master/daemonset/kubeadm-kuberouter.yaml

                    

Ahora ejecuta sudo kubetctl get nodes y el NotReady el estado debería haber cambiado a Ready ,

Kubectl Prepara los nodos kubectl obtener nodos

si todavía es NotReady para ti, dale un momento ya que puede tomar algún tiempo para obtener Ready .

Ahora haremos que nuestro nodo trabajador se una a nuestro nodo maestro con el comando que guardamos anteriormente. Se verá similar al siguiente comando pero no igual, y debe ejecutarse en su servidor de nodo de trabajo.

                      
sudo kubeadm join 192.168.0.148:6443 --token vd392r.oihjkc2yr46qq0x8 
	--discovery-token-ca-cert-hash sha256:73cbe283eb92e4e8b6d38ec34e6d60d0b40fa792de2567e25fcb0195813b741b

                    
Hacer que nuestro nodo trabajador se una a nuestro nodo maestro Ejecute el comando que guardamos anteriormente en su servidor de nodo de trabajo

Para ver si nuestro nodo trabajador se unió a nuestro nodo maestro, ejecute kubectl get nodes y podría volver a tomar un momento.

Nuestro nodo trabajador se ha unido con éxito a nuestro nodo maestro Nuestro nodo trabajador se ha unido con éxito a nuestro nodo maestro

4. Crear implementación de Nginx

Ahora vamos a crear una implementación de NGINX ejecutando:

                      
sudo kubectl apply -f https://raw.githubusercontent.com/kubernetes/website/master/content/en/examples/application/nginx-app.yaml

                    

Debería haber implementado con éxito el servidor nginx. Ahora ejecute el siguiente comando para obtener una lista de todos los servicios:

                      
sudo kubectl get svc

                    

Debería poder encontrar NGINX en él.

Lista de todos los servicios incluye NGINX La lista de todos los servicios incluye NGINX

De forma predeterminada, Kubernetes asignará un puerto en un rango de más de 30000 al servicio NGINX.

Puede probar su implementación ejecutando similares curl comando como se indica a continuación:

                      
curl master-node:30658

                    
Prueba de implementación de NGINX Prueba de implementación de NGINX

Felicitaciones, hemos instalado e implementado con éxito nuestra primera implementación en Kubernetes.

Conclusión

Kubernetes es un excelente orquestador de aplicaciones (que básicamente implementa y administra aplicaciones), solo tiene que implementar su aplicación sin tener que preocuparse por escalar hacia arriba o hacia abajo, puede proporcionar actualizaciones continuas, autorreparación y mucho más. Esperamos que este artículo te haya resultado útil, ¡feliz aprendizaje!

Related Posts