GNU/Linux >> Tutoriales Linux >  >> AlmaLinux

Instalar Kubernetes Cluster usando Kubeadm en RHEL, CentOS, AlmaLinux, Rocky Linux

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

Antes de comenzar, debe tener una comprensión básica sobre los conceptos y la arquitectura de Kubernetes . En este artículo, vamos a demostrar un clúster de dos nodos.

Para continuar con la instalación, necesitamos los requisitos básicos mencionados a continuación.

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

1. Configurar nombre de host y dirección IP

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

Aquí vamos a tener dos hosts:

  • ostechmaster - Maestro
  • ostechworker – Trabajador

Use el siguiente comando para configurar el nombre de host, se requiere reiniciar después de configurar el nombre de host.

# hostnamectl set-hostname ostechmaster

Editar /etc/hosts archivo:

#vi /etc/hosts

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

Haga una prueba de ping para garantizar la conectividad:

[[email protected] ~]# ping ostechworkerPING ostechworker (172.31.5.141) 56(84) bytes de datos.64 bytes de ostechworker (172.31.5.141):icmp_seq=1 ttl=64 time=0.472 ms64 bytes de ostechworker (172.31.5.141):icmp_seq=2 ttl=64 tiempo=0,492 ms64 bytes de ostechworker (172.31.5.141):icmp_seq=3 ttl=64 tiempo=1,43 ms64 bytes de ostechworker (172.31.5.141):icmp_seq=4 ttl=64 tiempo=0,425ms

2. Deshabilitar SElinux

Deshabilite SElinux en Master y Workers, para que todos los contenedores puedan acceder fácilmente al sistema de archivos del host si SElinux está deshabilitado.
Hacer 'SELINUX=disabled ' en el archivo de configuración /etc/selinux/config utilizando el editor vi. Es necesario reiniciar para reflejar el cambio de SElinux.

[[correo electrónico protegido] ~]# vi /etc/selinux/config

Asegúrese del estado de SElinux usando el siguiente comando.

[[email protected] ~]# sestatusSELinux status:disabled

3. Deshabilitar intercambio en maestro y trabajador

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

Ejecute el siguiente comando para deshabilitar SWAP:

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

4. Permitir los puertos necesarios en el cortafuegos

Para que los componentes de Kubernetes interactúen entre sí, deben estar disponibles ciertos puertos esenciales. A continuación se muestran los puertos que se abrirán para aprovechar la conectividad entre los componentes de Kubernetes.

Plano de control/Servidor maestro:

Nodos trabajadores:

Protocolo Dirección Rango de puertos Propósito Usado por
TCP Entrante 6443 Servidor API de Kubernetes Todos
TCP Entrante 2379-2380 API de cliente de servidor etcd kube-apserver, etcd
TCP Entrante 10250 API de Kubelet Yo mismo, Plano de control
TCP Entrante 10259 kube-scheduler Yo mismo
TCP Entrante 10257 kube-controller-manager Yo mismo

Para permitir los puertos requeridos a través del firewall, ejecute los siguientes comandos.

Nodo maestro:

[[correo electrónico protegido] ~]# firewall-cmd --permanent --add-port=6443/tcp
[[correo electrónico protegido] ~]# firewall-cmd --permanent --add-port=2379-2380/tcp
[[correo electrónico protegido] ~]# firewall-cmd --permanent --add-port=10250/tcp
[[correo electrónico protegido] ~]# firewall-cmd --permanent --add-port=10251/tcp
[[correo electrónico protegido] ~]# firewall-cmd --permanent --add-port=10259/tcp
[[correo electrónico protegido] ~]# firewall-cmd --permanent --add-port=10257/tcp
[[correo electrónico protegido] ~]# firewall-cmd --recargar

Nodo trabajador:

[[correo electrónico protegido] ~]# firewall-cmd --permanent --add-port=10250/tcp
[[correo electrónico protegido] ~]# firewall-cmd --permanent --add-port=30000-32767/tcp
[[correo electrónico protegido] ~]# firewall-cmd --recargar

Estamos deshabilitando el firewall tanto en Master como en Worker, ya que es con fines de demostración. Sin embargo, no se recomienda para la práctica de producción en tiempo real.

Use los siguientes comandos para detener y deshabilitar el firewall.

[[email protected] ~]# systemctl detener firewalld
[[email protected] ~]# systemctl deshabilitar firewalld

5. Instalar ventana acoplable

Docker facilita la "construcción" de contenedores, mientras que Kubernetes permite "administrarlos" en tiempo real. Para empaquetar y enviar el software, use Docker. Para lanzar y escalar su aplicación, use Kubernetes.

Agregue el repositorio docker en todas las máquinas en Cluster.

Cree el archivo llamado docker.repo en /etc/yum.repos.d/ directorio:

[[correo electrónico protegido] ~]# 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 y escriba :wq para guardar el archivo y cerrarlo.

Instale la ventana acoplable en los nodos Maestro y Trabajador:

# yum -y instalar docker-ce

Una vez instalado, habilite e inicie Docker en ambos nodos:

# systemctl habilita la ventana acoplable
# systemctl iniciar ventana acoplable

Verifique y asegúrese de que Docker se esté ejecutando en ambas máquinas.

# ventana acoplable de estado systemctl

6. Instalar Kubernetes

Agregue el repositorio de Kubernetes en Master y Worker.

Cree el archivo kubernetes.repo tanto en Maestro como en trabajador bajo /etc/yum.repos.d/ directorio:

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

Agregue las siguientes líneas:

[kubernetes]name=Kubernetesbaseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64enabled=1gpgcheck=1repo_gpgcheck=1gpgkey=https://packages.cloud.google.com/ yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg

Presiona ESC y escribe :wq para guardar el archivo y cerrarlo.

Instale kubeadm, kubelet, kubectl en los nodos Maestro y Trabajador con el siguiente comando:

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

Habilite e inicie el kubelet servicio en ambas máquinas:

# systemctl habilitar kubelet
# systemctl iniciar kubelet

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

# systemctl estado kubelet

7. Inicializar los Kubernetes

Use el siguiente comando para inicializar Kubernetes en el servidor maestro

[[correo electrónico protegido] ~]# kubeadm init

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

También copie y guarde el 'kubeadm join' comando de la salida, se usará para unir el nodo trabajador en el clúster.

Salida de muestra:

¡Su plano de control de Kubernetes se ha inicializado correctamente! Para comenzar a usar su clúster, debe ejecutar lo siguiente como usuario habitual:mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id - u):$(id -g) $HOME/.kube/configAlternativamente, si es el usuario root, puede ejecutar: export KUBECONFIG=/etc/kubernetes/admin.conf Ahora debe implementar una red de pod en el clúster. Ejecute "kubectl apply -f [podnetwork].yaml" con una de las opciones enumeradas en:https://kubernetes.io/docs/concepts/cluster-administration/addons/Then Puede unirse a cualquier número de nodos de trabajadores ejecutando lo siguiente en cada uno como raíz: kubeadm unirse 172.31.10.29:6443--token 220tvj.051bkeyj5tg6v55r \ --discovery-token-ca-cert-hash sha256:434c49c7969256a7fae38880b340b340b340b340b34d4cad4cad40bd4cad40bin fuerte> 

Ya que estamos procediendo con root usuario, ejecute el siguiente comando en el servidor maestro como se menciona en el resultado anterior.

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

8. Configurar red POD

Una red Kubernetes Pod es una red de componentes interconectados en Kubernetes. Este concepto de red puede implementarse de varias maneras diferentes. En nuestra demostración vamos a utilizar 'Weave Net' .

Ejecute los siguientes comandos en el servidor maestro para configurar la red POD.

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

Salida de muestra:

serviceaccount/weave-net createdrole.rbac.authorization.k8s.io/weave-net createdclusterrolebinding.rbac.authorization.k8s.io/weave-net createdrole.rbac.authorization.k8s.io/weave-net createdrolebinding.rbac .authorization.k8s.io/weave-net createddaemonset.apps/weave-net created[[email protected] ~]#

9. Únase al nodo trabajador

Ejecute el 'kubeadm join ' comando para unir el nodo trabajador al clúster. Este es el comando que copiamos de 'kubeadm init ' salida.

[[email protected] ~]# kubeadm unirse a 172.31.10.29:6443 --token 220tvj.051bkeyj5tg6v55r --discovery-token-ca-cert-hash sha256:434c49c7969256a7fae3880b340202cadd4fd28d37d181ab5 

Puede verificar el nodo en el servidor maestro usando el siguiente comando

# kubectl obtiene nodos

Salida de muestra:

NOMBRE ESTADO FUNCIONES EDAD VERSIÓNostechmaster Ready control-plane,master 32m v1.23.1ostechworker Ready  30m v1.23.1

Conclusión

En este artículo hemos visto los pasos detallados para instalar y configurar Kubernetes Cluster usando Kubeadm. Consulte nuestra serie de kubernetes anterior artículos para tener una comprensión detallada de la arquitectura y los conceptos de Kubernetes. Veremos las operaciones de Kubernetes en los próximos artículos.

Leer a continuación:

  • Cómo crear y administrar pods de Kubernetes en Linux

Recurso:

  • https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/

AlmaLinux
  1. AlmaLinux frente a Rocky Linux

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

  3. Cómo instalar PostgreSQL en CentOS 8 / Rocky Linux 8 / RHEL 8

  4. Cómo instalar Java en Rocky Linux 8 / CentOS 8 / RHEL 8

  5. Cómo instalar Erlang en Rocky Linux/Alma Linux/CentOS 8

Cómo instalar MongoDB en RHEL, CentOS, Rocky y AlmaLinux

Cómo instalar MusicBrainz Picard en RHEL | CentOS | Linux rocoso

Instale Dig en AlmaLinux 8 / Rocky Linux

Cómo instalar GIMP en AlmaLinux 8 / Rocky Linux 8

Cómo instalar Git en Almalinux o Rocky Linux 8

Instale LXC (Linux Containers) en RHEL, Rocky y AlmaLinux

    Protocolo Dirección Rango de puertos Propósito Usado por
    TCP Entrante 10250 API de Kubelet Yo mismo, Plano de control
    TCP Entrante 30000-32767 Servicios de puerto de nodo Todos