GNU/Linux >> Tutoriales Linux >  >> Rocky Linux

Cómo instalar el clúster de Kubernetes en Rocky Linux 8

Hola técnicos, como sabemos, Kubernetes (k8s) es un sistema de orquestación de contenedores gratuito y de código abierto. Se utiliza para automatizar la implementación y la gestión de aplicaciones en contenedores. En esta guía, cubriremos cómo instalar el clúster de kubernetes en Rocky Linux 8 con kubeadm paso a paso.

Requisito mínimo del sistema para Kubernetes

  • 2 vCPU o más
  • 2 GB de RAM o más
  • Intercambio deshabilitado
  • Al menos tarjeta NIC
  • Conexión estable a Internet
  • Un usuario normal con privilegios sudo.

Para demostración, estoy usando los siguientes sistemas

  • Nodo maestro una vez/Plano de control (2 GB de RAM, 2 vCPU, 1 tarjeta NIC, sistema operativo Minimal Rocky Linux 8)
  • Dos nodos de trabajo (2 GB de RAM, 2 vCPU, 1 tarjeta NIC, sistema operativo Minimal Rocky Linux 8)
  • Nombre de host del nodo maestro:nodo de control (192.168.1.240)
  • Nombre de host de los nodos de trabajo:nodo-trabajador1(192.168.1.241), nodo-trabajador2(192.168.1.242)

Sin más preámbulos, profundicemos en los pasos de instalación de Kubernetes.

Nota:Estos pasos también se aplican a RHEL 8 y AlmaLinux OS.

Paso 1) Establezca el nombre de host y actualice el archivo de hosts

Utilice el comando hostnamectl para establecer el nombre de host en el nodo de control y el nodo de trabajo.

Ejecutar debajo del comando en el nodo de control

$ sudo hostnamectl set-hostname "control-node"
$ exec bash

Ejecute el siguiente comando en el nodo de trabajo 1

$ sudo hostnamectl set-hostname "worker-node1"
$ exec bash

Nodo de trabajo 2

$ sudo hostnamectl set-hostname "worker-node2"
$ exec bash

Agregue las siguientes entradas en el archivo /etc/hosts en los nodos de control y trabajador respectivamente.

192.168.1.240   control-node
192.168.1.241   worker-node1
192.168.1.242   worker-node2

Paso 2) Deshabilite el intercambio y configure SELinux en modo permisivo

Deshabilite el intercambio, para que kubelet pueda funcionar correctamente. Ejecute los siguientes comandos en todos los nodos para deshabilitarlo,

$ sudo swapoff -a
$ sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

Ejecute debajo del comando sed en todos los nodos para configurar SELinux en modo permisivo

$ sudo setenforce 0
$ sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

Paso 3) Configurar reglas de cortafuegos en los nodos maestro y trabajador

En el plano de control, los siguientes puertos deben estar permitidos en el firewall.

Para permitir los puertos anteriores en el plano de control, ejecute

$ sudo firewall-cmd --permanent --add-port=6443/tcp
$ sudo firewall-cmd --permanent --add-port=2379-2380/tcp
$ sudo firewall-cmd --permanent --add-port=10250/tcp
$ sudo firewall-cmd --permanent --add-port=10251/tcp
$ sudo firewall-cmd --permanent --add-port=10252/tcp
$ sudo firewall-cmd --reload
$ sudo modprobe br_netfilter
$ sudo sh -c "echo '1' > /proc/sys/net/bridge/bridge-nf-call-iptables"
$ sudo sh -c "echo '1' > /proc/sys/net/ipv4/ip_forward"

En los nodos trabajadores, los siguientes puertos deben estar permitidos en el firewall

$ sudo firewall-cmd --permanent --add-port=10250/tcp
$ sudo firewall-cmd --permanent --add-port=30000-32767/tcp                                                  
$ sudo firewall-cmd --reload
$ sudo modprobe br_netfilter
$ sudo sh -c "echo '1' > /proc/sys/net/bridge/bridge-nf-call-iptables"
$ sudo sh -c "echo '1' > /proc/sys/net/ipv4/ip_forward"

Paso 4) Instalar Docker en los nodos maestro y trabajador

Instale Docker en los nodos maestro y trabajador. Aquí la ventana acoplable proporcionará el tiempo de ejecución del contenedor (CRI). Para instalar la última ventana acoplable, primero debemos habilitar su repositorio ejecutando los siguientes comandos.

$ sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo

Ahora, ejecute debajo del comando dnf en todos los nodos para instalar docker-ce (edición comunitaria de docker)

$ sudo dnf install docker-ce -y

Salida

Una vez que Docker y sus dependencias estén instalados, inicie y habilite su servicio ejecutando los siguientes comandos

$ sudo systemctl start docker
$ sudo systemctl enable docker

Paso 5) Instalar kubelet, Kubeadm y kubectl

Kubeadm es la utilidad a través de la cual instalaremos el clúster de Kubernetes. Kubectl es la utilidad de línea de comandos utilizada para interactuar con el clúster de Kubernetes. Kubelet es el componente que ejecutará todos los nodos y realizará tareas como iniciar y detener pods o contenedores.

Para instalar kubelet, Kubeadm y kubectl en todos los nodos, primero debemos habilitar el repositorio de Kubernetes.

Realice debajo de los comandos en los nodos maestro y trabajador.

$ cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-\$basearch
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
exclude=kubelet kubeadm kubectl
EOF

$ sudo dnf install -y kubelet kubeadm kubectl --disableexcludes=kubernetes

Después de instalar los paquetes anteriores, habilite el servicio kubelet en todos los nodos (nodos de control y trabajadores), ejecute

$ sudo systemctl enable --now kubelet

Paso 6) Instalar Kubernetes Cluster con Kubeadm

Al instalar el clúster de Kubernetes, debemos asegurarnos de que cgroup de tiempo de ejecución del contenedor (CRI) coincida con cgroup de kubelet. Por lo general, en Docker, cgroup es cgroupfs, por lo que debemos indicar a Kubeadm que use cgroupfs como cgoup de kubelet. Esto se puede hacer pasando un yaml en el comando Kubeadm,

Cree el archivo kubeadm-config.yaml en el plano de control con el siguiente contenido

$ vi kubeadm-config.yaml
# kubeadm-config.yaml
kind: ClusterConfiguration
apiVersion: kubeadm.k8s.io/v1beta3
kubernetesVersion: v1.23.4
--
kind: KubeletConfiguration
apiVersion: kubelet.config.k8s.io/v1beta1
cgroupDriver: cgroupfs

Nota:Reemplace la versión de Kubernetes según su configuración.

Ahora, estamos listos para instalar (o inicializar el clúster), ejecutar debajo del comando Kubeadm desde el nodo de control,

$ sudo kubeadm init --config kubeadm-config.yaml

La salida del comando anterior se vería a continuación,

El resultado anterior confirma que el clúster se ha inicializado correctamente.

Ejecute los siguientes comandos para permitir que el usuario normal interactúe con el clúster, estos comandos ya están en la salida.

$ mkdir -p $HOME/.kube
$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
$ sudo chown $(id -u):$(id -g) $HOME/.kube/config
$ kubectl get nodes

Para hacer que los nodos estén listos y habilitar el servicio DNS de clúster (coredns), instale el complemento de red de pod (CNI:interfaz de red de contenedores). Los pods comenzarán a comunicarse entre sí una vez que se instale el complemento de red de pods. En esta guía, estoy instalando calico como complemento de red. Ejecutar bajo el comando kubectl desde el plano de control.

$ kubectl apply -f https://docs.projectcalico.org/v3.22/manifests/calico.yaml

Salida

Después de la instalación exitosa del complemento de red calico, el nodo de control y los pods en el espacio de nombres del sistema kube estarán listos y disponibles respectivamente.

Ahora, el siguiente paso es unir los nodos trabajadores al clúster.

Paso 7) Unir los nodos trabajadores al clúster

Después de la inicialización exitosa del clúster de Kubernetes, el comando para unir cualquier nodo trabajador al clúster se muestra en la salida. Entonces, copie ese comando y péguelo en los nodos trabajadores. Entonces, en mi caso, el comando es,

$ sudo kubeadm join 192.168.1.240:6443 --token jecxxg.ac3d3rpd4a7xbxx4 --discovery-token-ca-cert-hash sha256:1e4fbed060aafc564df75bc776c18f6787ab91685859e74d43449cf5a5d91d86

Ejecute los comandos anteriores en ambos nodos trabajadores.

Verifique el estado de ambos nodos trabajadores desde el plano de control, ejecute

[[email protected] ~]$ kubectl get nodes
NAME           STATUS   ROLES                  AGE     VERSION
control-node   Ready    control-plane,master   49m     v1.23.4
worker-node1   Ready    <none>                 5m18s   v1.23.4
worker-node2   Ready    <none>                 3m57s   v1.23.4
[[email protected] ~]$

Genial, el resultado anterior confirma que los nodos trabajadores se han unido al clúster. Eso es todo de esta guía, espero que haya encontrado esta guía informativa. Comparta sus consultas y comentarios en la sección de comentarios a continuación.


No
Rocky Linux
  1. Cómo instalar MariaDB 10.6 en Rocky Linux 8

  2. Cómo instalar Docker en Rocky Linux 8

  3. Cómo instalar Cockpit en Rocky Linux 8

  4. Cómo instalar GitLab en Rocky Linux 8

  5. Cómo instalar MariaDB en Rocky Linux 8

Cómo instalar Joomla en Rocky Linux 8

Cómo instalar Fail2ban en Rocky Linux 8

Cómo instalar ImageMagick en Rocky Linux 8

Cómo instalar Spotify en Rocky Linux 8

Cómo instalar Grafana en Rocky Linux 8

Cómo instalar Netdata en Rocky Linux 8