Tutoriales

Instalar el clúster de Kubernetes con Kubeadm en RHEL

En este artículo, aprenderemos sobre la instalación de un clúster de Kubernetes usando Kubeadm en RHEL 8 y sus versiones clonadas, como AlmaLinux 8, CentOS 8 y Rocky Linux 8.

Antes de ingresar, debe tener un Comprensión básica de los conceptos y la arquitectura de KubernetesEn este artículo, demostraremos un clúster de dos nodos.

Para instalar, necesitamos los requisitos básicos que se mencionan a continuación.

  • Al menos 2 hosts.
  • 2 CPU.
  • 2GB de memoria física (RAM).
  • 20 GB de espacio en disco.
  • Conexión a Internet para descargar paquetes de software.

1. Configure el nombre de host y la dirección IP

Establezca el nombre de host y configure el host en Master and Workers. Los hosts de archivos del sistema operativo se utilizan para convertir nombres de host o nombres de dominio en direcciones IP.

Aquí tendremos dos hosts:

  • ostechmaster-master
  • ostechworker-trabajador

Utilice el siguiente comando para configurar el nombre de host. Después de configurar el nombre de host, debe reiniciar.

# hostnamectl set-hostname ostechmaster

editar /etc/hosts documento:

# vi /etc/hosts

Agregue el nombre de host y la dirección IP del servidor y el cliente a /etc/hosts documento:

Configure el nombre de host y la dirección IP

Realice una prueba de ping para garantizar la conectividad:

[[email protected] ~]# ping ostechworker
PING ostechworker (172.31.5.141) 56(84) bytes of data.
64 bytes from ostechworker (172.31.5.141): icmp_seq=1 ttl=64 time=0.472 ms
64 bytes from ostechworker (172.31.5.141): icmp_seq=2 ttl=64 time=0.492 ms
64 bytes from ostechworker (172.31.5.141): icmp_seq=3 ttl=64 time=1.43 ms
64 bytes from ostechworker (172.31.5.141): icmp_seq=4 ttl=64 time=0.425 ms

2. Deshabilitar SElinux

SElinux está deshabilitado en Master y Workers, por lo que si SElinux está deshabilitado, todos los contenedores pueden acceder fácilmente al sistema de archivos del host.
FabricarSELINUX=disabled‘En el archivo de configuración /etc/selinux/config Utilice el editor vi. Es necesario reiniciar para reflejar los cambios de SElinux.

[[email protected] ~]# vi /etc/selinux/config
Desactivar SElinux
Desactivar SElinux

Utilice el siguiente comando para garantizar el estado de SElinux.

[[email protected] ~]# sestatus
SELinux status: disabled

3. Deshabilitar el intercambio en Master y Worker

El intercambio debe estar deshabilitado en todos los hosts de Kubernetes (Master y Workers). Este es el método de implementación preferido para la comunidad de Kubernetes. Si el intercambio no está deshabilitado, el servicio de kubelet no se iniciará en el maestro y los trabajadores.

Ejecute el siguiente comando para deshabilitar SWAP:

[[email protected] ~]# swapoff -a && sed -i '/swap/d' /etc/fstab

4. Permita los puertos necesarios en el firewall

Para que los componentes de Kubernetes interactúen entre sí, deben estar disponibles ciertos puertos básicos. Los siguientes son los puertos que se abrirán para la conexión entre los componentes de Kubernetes.

Plano de control / servidor principal:

protocolo dirección Rango de puertos Propósito usuario
TCP Entrante 6443 Servidor de API de Kubernetes todo
TCP Entrante 2379-2380 API de cliente del servidor etcd kube-apiserver, etcd
TCP Entrante 10250 API de Kubelet Ego, plano de control
TCP Entrante 10259 programador de kube Propio
TCP Entrante 10257 administrador-controlador-kube Propio

Nodo de trabajo:

protocolo dirección Rango de puertos Propósito usuario
TCP Entrante 10250 API de Kubelet Ego, plano de control
TCP Entrante 30000-32767 Servicio de puerto de nodo todo

Para permitir que los puertos requeridos pasen a través del firewall, ejecute el siguiente comando.

Nodo maestro:

[[email protected] ~]# firewall-cmd --permanent --add-port=6443/tcp
[[email protected] ~]# firewall-cmd --permanent --add-port=2379-2380/tcp
[[email protected] ~]# firewall-cmd --permanent --add-port=10250/tcp
[[email protected] ~]# firewall-cmd --permanent --add-port=10251/tcp
[[email protected] ~]# firewall-cmd --permanent --add-port=10259/tcp
[[email protected] ~]# firewall-cmd --permanent --add-port=10257/tcp
[[email protected] ~]# firewall-cmd --reload

Nodo de trabajo:

[[email protected] ~]# firewall-cmd --permanent --add-port=10250/tcp
[[email protected] ~]# firewall-cmd --permanent --add-port=30000-32767/tcp
[[email protected] ~]# firewall-cmd --reload

Estamos deshabilitando el firewall en Master y Worker porque es para fines de demostración. Sin embargo, no se recomienda para prácticas de producción en tiempo real.

Utilice los siguientes comandos para detener y deshabilitar el firewall.

[[email protected] ~]# systemctl stop firewalld
[[email protected] ~]# systemctl disable firewalld

5. Instale Docker

Docker puede «construir» contenedores más fácilmente y Kubernetes puede «administrarlos» en tiempo real. Para empaquetar y enviar software, use Docker. Para iniciar y escalar su aplicación, use Kubernetes.

Agregue el repositorio de Docker a todas las máquinas del clúster.

Crea un archivo llamado docker.repo bajo /etc/yum.repos.d/ contenido:

[[email protected] ~]# vi /etc/yum.repos.d/docker.repo

Agregue las siguientes líneas en él:

[docker]
baseurl=https://download.docker.com/linux/centos/8/x86_64/stable/
gpgcheck=0

Presione la tecla ESC e ingrese :wq Guarde el archivo y ciérrelo.

Instale la ventana acoplable en los nodos maestro y trabajador:

# yum -y install docker-ce

Después de la instalación, habilite e inicie Docker en ambos nodos:

# systemctl enable docker
# systemctl start docker

Verifique para asegurarse de que Docker se esté ejecutando en ambas máquinas.

# systemctl status docker
Verificar el estado de Docker
Verificar el estado de Docker

6. Instale Kubernetes

Agregue repositorios de Kubernetes en Master y Worker.

Crea un archivo kubernetes.repo Bajo Maestro y Trabajador /etc/yum.repos.d/ contenido:

# vi /etc/yum.repos.d/kubernetes.repo

Agrega las siguientes líneas:

[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
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

Presione ESC e ingrese :wq Guarde el archivo y ciérrelo.

Utilice los siguientes comandos para instalar kubeadm, kubelet y kubectl en los nodos maestro y trabajador:

# yum install -y kubelet kubeadm kubectl --disableexcludes=Kubernetes

Habilitar y comenzar kubelet Servicios en dos máquinas:

# systemctl enable kubelet
# systemctl start kubelet

Verifique el estado del servicio de Kubelet y asegúrese de que esté funcionando bien en ambas máquinas.

# systemctl status kubelet
Ver el estado del servicio de Kubelet
Ver el estado del servicio de Kubelet

7. Inicializar Kubernetes

Utilice el siguiente comando para inicializar Kubernetes en el servidor maestro

[[email protected] ~]# kubeadm init

Obtendrá el siguiente resultado, que indica que el plano de control de Kubernetes se ha inicializado correctamente. Y se mencionarán algunos pasos para comenzar a usar el clúster, siga los pasos.

También copie y guarde 'kubeadm join' Desde el comando de salida, se usará para unirse a los nodos trabajadores en el clúster.

Salida de muestra:

Your Kubernetes control-plane has initialized successfully!

To start using your cluster, you need to run the following as a regular user:

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

Alternatively, if you are the root user, you can run:

  export KUBECONFIG=/etc/kubernetes/admin.conf

You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
  https://kubernetes.io/docs/concepts/cluster-administration/addons/

Then you can join any number of worker nodes by running the following on each as root:

kubeadm join 172.31.10.29:6443 --token 220tvj.051bkeyj5tg6v55r 
        --discovery-token-ca-cert-hash sha256:434c49c7969256a7fae3880b340202cadd4fd29d3d381ab37e1cb8b1d05e86f2
Inicializar Kubernetes
Inicializar Kubernetes

Como estamos haciendo root El usuario, como se describe en el resultado anterior, ejecute el siguiente comando en el servidor maestro.

[[email protected] ~]#  export KUBECONFIG=/etc/kubernetes/admin.conf

8. Configure la red POD

La red de pod de Kubernetes es una red de componentes interconectados en Kubernetes. Este concepto de red se puede implementar de varias formas diferentes.En nuestra demostración, usaremos «Red de tejido».

Ejecute el siguiente comando en el servidor principal para configurar la red POD.

[[email protected] ~]# export kubever=$(kubectl version | base64 | tr -d 'n')
[[email protected] ~]# kubectl apply -f https://cloud.weave.works/k8s/net?k8s-version=$kubever

Salida de muestra:

serviceaccount/weave-net created
clusterrole.rbac.authorization.k8s.io/weave-net created
clusterrolebinding.rbac.authorization.k8s.io/weave-net created
role.rbac.authorization.k8s.io/weave-net created
rolebinding.rbac.authorization.k8s.io/weave-net created
daemonset.apps/weave-net created
[[email protected] ~]#

9. Únase al nodo Trabajador

Atropellarkubeadm join‘Comando para unir el nodo de trabajo al clúster.Este es el comando del que copiamos ‘kubeadm init‘Producción.

[[email protected] ~]# kubeadm join 172.31.10.29:6443 --token 220tvj.051bkeyj5tg6v55r         --discovery-token-ca-cert-hash sha256:434c49c7969256a7fae3880b340202cadd4fd29d3d381ab37e1cb8b1d05e86f2
Agregar nodos trabajadores al clúster
Agregar nodos trabajadores al clúster

Puede verificar los nodos en el servidor maestro con el siguiente comando

# kubectl get nodes

Salida de muestra:

NAME           STATUS     ROLES                  AGE   VERSION
ostechmaster   Ready      control-plane,master   32m   v1.23.1
ostechworker   Ready                    30m   v1.23.1

en conclusión

En este artículo, vimos los pasos detallados para instalar y configurar un clúster de Kubernetes con Kubeadm.Consulte nuestro anterior Serie de Kubernetes Un artículo para obtener más información sobre la arquitectura y los conceptos de Kubernetes. Veremos el funcionamiento de Kubernetes en el próximo artículo.

recurso:

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba