GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Configure un clúster de Kubernetes en una instancia EC2 de AWS con Ubuntu usando kubeadm

En este artículo, veremos cómo configurar un clúster de Kubernetes con 2 nodos de trabajo y 1 nodo maestro en servidores Ubuntu 18.04 LTS. Usaremos el "kubeadm " herramienta para configurar el cluster. Kubeadm es una herramienta creada para proporcionar "kubeadm init " y "kubeadm unen " para crear clústeres de Kubernetes. Antes de continuar con la creación del clúster, comprendamos brevemente algunos términos.

    1. Docker:
      Docker es una plataforma abierta para desarrollar, enviar y ejecutar aplicaciones. Docker le permite separar sus aplicaciones de su infraestructura para que pueda entregar software rápidamente. Con Docker, puede administrar su infraestructura de la misma manera que administra sus aplicaciones.
    2. Imagen:
      Una imagen es una plantilla de solo lectura con instrucciones para crear un contenedor Docker. A menudo, una imagen se basa en otra imagen, con alguna personalización adicional
    3. Contenedor:
      Un contenedor es una instancia ejecutable de una imagen. Puede crear, iniciar, detener, mover o eliminar un contenedor mediante la API o la CLI de Docker. Puede conectar un contenedor a una o más redes, adjuntarle almacenamiento o incluso crear una nueva imagen basada en su estado actual.
    4. Kubernetes:
      Kubernetes es un sistema de orquestación de contenedores de código abierto para automatizar la implementación, el escalado y la administración de aplicaciones.
    5. Nodos:
      Un nodo representa una sola máquina en el clúster.
    6. Cápsulas:
      A es un grupo de contenedores que se implementan juntos en el mismo host. Es la unidad básica de ejecución de un Kubernetes aplicación.
    7. Despliegues:
      Una implementación ejecuta múltiples réplicas de su aplicación y reemplaza automáticamente cualquier instancia que falle o deje de responder. Proporciona actualizaciones declarativas para Pods y ReplicaSets.
    8. Conjunto de réplicas:
      Garantiza cuántas réplicas de un pod se deben ejecutar. Se puede considerar como un reemplazo para el controlador de replicación.
  • Controlador de replicación:
    Es un supervisor para pods de ejecución prolongada. Lanzará una cantidad específica de pods llamados réplicas y se asegurará de que sigan funcionando todo el tiempo.
  1. Servicio:
    Es una abstracción que define un conjunto lógico de Pods y una política para acceder a ellos.

Servidor API, etcd, Controller Manager y Scheduler son los componentes de Master y Docker, Kubelet Service y Kubernetes Proxy Service son los componentes de Worker Node. No discutiremos estos componentes en este documento. Si desea obtener información sobre estos componentes, puede visitar la página oficial de Kubernetes aquí.

Requisitos previos

  1. 3 servidores Ubuntu 18.04 con un mínimo de 2 GB de RAM y 2 CPU.
  2. Un usuario del sistema con acceso "sudo" en cada servidor.

Lo que haremos

  1. Configurar un clúster de Kubernetes con kubeadm

Configurar un clúster de Kubernetes con kubeadm

Aquí,

Tenemos 3 servidores Ubuntu 18.04 LTS.

Servidor 1=nodo1
Servidor 2=nodo2
Servidor 3=maestro

Antes de continuar con la instalación real, cambiemos el nombre de host de los servidores.

Puede usar los siguientes comandos para establecer un nombre de host en cada servidor. Después de ejecutar los siguientes comandos en cada servidor, vuelva a iniciar sesión en los servidores para que los servidores obtengan un nuevo nombre de host.

sudo hostnamectl set-hostname "master"
sudo hostnamectl set-hostname "node1"
sudo hostnamectl set-hostname "node2"

Siga los pasos que se mencionan a continuación para abrir el clúster de Kubernets en funcionamiento.

Obtener la clave gpg de Docker (Ejecute el siguiente comando en Todos los nodos) :

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Agregue el repositorio de Docker(Ejecute el siguiente comando en Todos los nodos ) :

sudo add-apt-repository    "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
  stable"

Obtenga la clave gpg de Kubernetes(Ejecute el siguiente comando en todos los nodos ) :

curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -

Agregue el repositorio de Kubernetes(Ejecute el siguiente comando en Todos los nodos ) :

cat << EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF

Actualice sus paquetes(Ejecute el siguiente comando en Todos los nodos )

sudo apt-get update

Instale Docker, kubelet, kubeadm y kubectl(Ejecute el siguiente comando en todos los nodos ) :

sudo apt-get install -y docker-ce=18.06.1~ce~3-0~ubuntu kubelet=1.15.7-00 kubeadm=1.15.7-00 kubectl=1.15.7-00

Manténgalos en la versión actual(Ejecute el siguiente comando en Todos los nodos ) :

sudo apt-mark hold docker-ce kubelet kubeadm kubectl

Agregue la regla iptables a sysctl.conf (Ejecute el siguiente comando en todos los nodos ) :

echo "net.bridge.bridge-nf-call-iptables=1" | sudo tee -a /etc/sysctl.conf

Habilite iptables inmediatamente(Ejecute el siguiente comando en todos los nodos :

sudo sysctl -p

Sobre el Maestro :

Inicialice el clúster (Ejecute el siguiente comando solo en el nodo maestro) :

sudo kubeadm init --pod-network-cidr=10.244.0.0/16

Configure kubeconfig local(Ejecute el siguiente comando solo en el 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

Aplique la superposición de red Flannel CNI(Ejecute el siguiente comando solo en el nodo maestro ) :

sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

En Nodo 1 y Nodo 2:

Una los nodos trabajadores al clúster (Ejecute el siguiente comando solo en Nodo1 y Nodo2) :

sudo kubeadm join 172.31.4.161:6443 --token 0y52t6.ffsj8jkjfcl1sq8h \
   --discovery-token-ca-cert-hash sha256:7aa1825042d19d3e567f7e4b447634e942fe9ed7f18f78464a9c05f451551ed5

Verifique que los nodos trabajadores se hayan unido al clúster correctamenteEjecute el siguiente comando en el nodo maestro ) :

kubectl get nodes

Conclusión:

En este artículo, aprendimos a configurar un clúster de Kubernetes con la herramienta kubeadm. Vimos con qué facilidad se puede crear un clúster si no se saltan los pasos y se realiza la instalación adecuada.


Ubuntu
  1. Cómo implementar el equilibrio de carga de Nginx en el clúster de Kubernetes en Ubuntu 18.04 LTS

  2. Configurar el clúster de Kubernetes con Rancher

  3. Configurar Nextcloud con Redis usando Docker

  4. Configure Kubernetes Cluster en Ubuntu 20.04 usando kubeadm

  5. ¿Usando Ubuntu con una configuración de dos pantallas?

Cómo configurar el clúster de Apache Tomcat con 3 nodos en Ubuntu

Cómo instalar Jenkins usando un archivo .war en una instancia de AWS EC2 Ubuntu 20.04

Cómo aumentar el espacio en disco de una instancia de AWS EC2 Ubuntu

Cómo crear una instancia Ubuntu EC2 en AWS

Cómo configurar Kubernetes 1.5 con kubeadm en CentOS

Instalar Portainer con Docker en Ubuntu