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?
- ¿Cómo instalar Kubernetes en Ubuntu?
- ¿Cómo configurar Kubernetes?
- Conclusión
¿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
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
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.

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.

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
,

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

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

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.

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

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!