GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo instalar el clúster de Kubernetes (k8s) en RHEL 8

También conocida como k8s, Kubernetes es una plataforma de orquestación de contenedores portátil y de código abierto para automatizar la implementación y la gestión de aplicaciones en contenedores. Kubernetes fue creado originalmente por Google en el lenguaje de programación Go. Actualmente, es mantenido por Cloud Native Computing Foundation.

En esta guía, lo guiaremos paso a paso sobre cómo puede instalar un clúster de Kubernetes en RHEL 8. Lo demostraremos usando un nodo principal y uno trabajador que agregaremos a nuestro clúster.

Configuración del laboratorio

  • Nodo principal:        master-node-k8        10.128.15.228
  • Nodo trabajador:      nodo-trabajador-1-k8     10.128.15.230

NOTA:Los pasos del 1 al 6 se deben aplicar tanto al nodo principal como al trabajador.

Paso 1) Deshabilitar el espacio de intercambio

Para obtener el mejor rendimiento, Kubernetes requiere que el intercambio esté deshabilitado en el sistema host. Esto se debe a que el intercambio de memoria puede generar inestabilidad y degradación del rendimiento de manera significativa.

Para deshabilitar el espacio de intercambio, ejecute el comando:

$ sudo intercambio -a

Para que los cambios sean persistentes, edite el archivo /etc/fstab y elimine o comente la línea con la entrada de intercambio y guarde los cambios.

Paso 2) Deshabilitar SELinux

Además, debemos deshabilitar SELinux y establecerlo en "permisivo" para permitir una comunicación fluida entre los nodos y los pods.

Para lograr esto, abra el archivo de configuración de SELinux.

$ sudo vi /etc/selinux/config

Cambie el valor de SELINUX de obligatorio a permisivo.

SELINUX=permisivo

Alternativamente, usa el comando sed de la siguiente manera.

$ sudo sed -i 's/^SELINUX=hacer cumplir$/SELINUX=permisivo/' /etc/selinux/config

Paso 3) Configurar la red en el nodo maestro y trabajador

Se requiere alguna configuración de red adicional para que sus nodos maestro y trabajador se comuniquen de manera efectiva. En cada nodo, edite el archivo /etc/hosts.

$ sudo vi /etc/hosts

A continuación, actualice las entradas como se muestra

10.128.15.228 master-node-k8 // Para el nodo maestro10.128.15.230 worker-node-1-k8 // Para el nodo trabajador

Guarde y salga del archivo de configuración. A continuación, instale el paquete de utilidades de control de tráfico:

$ sudo dnf install -y iproute-tc

Paso 4) Permitir reglas de firewall para k8s

Para una comunicación fluida entre el nodo maestro y el trabajador, debe configurar el firewall y permitir algunos puertos y servicios pertinentes, como se describe a continuación.

En el nodo maestro, permita los siguientes puertos,

$ 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 --permanente --add-port=10251/tcp$ sudo firewall-cmd --permanent --add-port=10252/tcp$ sudo firewall-cmd --reload

En el nodo trabajador, permita los siguientes puertos,

$ sudo cortafuegos-cmd --permanent --add-port=10250/tcp$ sudo cortafuegos-cmd --permanent --add-port=30000-32767/tcp                                                        $ sudo cortafuegos-cmd --recargar

Paso 5) Instalar el tiempo de ejecución del contenedor CRI-O

Kubernetes requiere un tiempo de ejecución de contenedor para que se ejecuten los pods. Kubernetes 1.23 y versiones posteriores requieren que instale un tiempo de ejecución de contenedor que se confirme con la interfaz de tiempo de ejecución de contenedor.

Un Container Runtime es una aplicación que admite la ejecución de contenedores. Kubernetes admite el siguiente tiempo de ejecución de contenedor:

  • Contenedor
  • CRI-O
  • Motor acoplable
  • Tiempo de ejecución del contenedor de Mirantis

En esta guía, instalaremos CRI-O, que es un tiempo de ejecución de contenedor de alto nivel. Para hacerlo, debemos habilitar dos módulos fundamentales del núcleo:los módulos overlay y br_netfilter.

Para lograr esto, necesitamos configurar los requisitos previos de la siguiente manera:

Primero, cree un archivo de configuración de módulos para Kubernetes.

$ sudo vi /etc/modules-load.d/k8s.conf

Agregue estas líneas y guarde los cambios

overlaybr_netfilter

Luego cargue ambos módulos usando el comando modprobe.

$ sudo modprobe superposición$ sudo modprobe br_netfilter

Luego, configure los parámetros sysctl requeridos de la siguiente manera

$ sudo vi /etc/sysctl.d/k8s.conf

Agregue las siguientes líneas:

net.bridge.bridge-nf-call-iptables  =1net.ipv4.ip_forward                 =1net.bridge.bridge-nf-call-ip6tables =1

Guarde los cambios y salga. Para confirmar que se han aplicado los cambios, ejecute el comando:

$ sudo sysctl --sistema

Para instalar CRI-O, configure la variable de entorno $VERSION para que coincida con su versión de CRI-O. Por ejemplo, para instalar la versión 1.21 de CRI-O, configure $VERSION como se muestra:

$ exportación VERSIÓN=1.21

A continuación, ejecute los siguientes comandos:

$ sudo curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable.repo https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable /CentOS_8/devel:kubic:libcontainers:stable.repo
$ sudo curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable:cri-o:$VERSION.repo https://download.opensuse.org/repositories/devel:kubic :libcontainers:stable:cri-o:$VERSION/CentOS_8/devel:kubic:libcontainers:stable:cri-o:$VERSION.repo

Luego use el administrador de paquetes DNF para instalar CRI-O:

$ sudo dnf install cri-o

A continuación, habilite CRI-O en el momento del arranque e inícielo:

$ sudo systemctl habilitar cri-o$ sudo systemctl iniciar cri-o

Paso 6) Instalar paquetes de Kubernetes

Con todo lo necesario para que Kubernetes funcione instalado, sigamos adelante e instalemos paquetes de Kubernetes como kubelet, kubeadm y kubectl. Cree un archivo de repositorio de Kubernetes.

$ sudo vi /etc/yum.repos.d/kubernetes.repo

Y 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.gpgexclude=kubelet kubeadm kubectl

Guarde los cambios y salga. Finalmente, instale el paquete k8s de la siguiente manera.

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

Una vez instalado, asegúrese de habilitar e iniciar el servicio Kubelet.

$ sudo systemctl habilitar kubelet$ sudo systemctl iniciar kubelet

En este momento, estamos listos para instalar el clúster de Kubernetes.

Paso 7) Crear un clúster de Kubernetes

Vamos a inicializar un clúster de Kubernetes usando el comando kubeadm de la siguiente manera. Esto inicializa un plano de control en el nodo maestro.

$ sudo kubeadm init --pod-network-cidr=192.168.10.0/16

Una vez que se crea el plano de control, se le pedirá que ejecute algunos comandos adicionales para comenzar a usar el clúster.

Por lo tanto, ejecute los comandos secuencialmente.

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

Al final de la salida, se le dará el comando para ejecutar en los nodos trabajadores para unirse al clúster. Llegaremos a eso más adelante en el siguiente paso.

Además, asegúrese de eliminar las corrupciones del nodo principal:

$ kubectl taint nodes –all node-role.kubernetes.io/master-

Paso 8) Instala el complemento Calico Pod Network

El siguiente paso es instalar Calico CNI (Container Network Interface). Es un proyecto de código abierto utilizado para proporcionar seguridad y redes de contenedores. Después de instalar Calico CNI, el estado de los nodos cambiará al estado Listo, el servicio DNS dentro del clúster será funcional y los contenedores podrán comenzar a comunicarse entre sí.

Calico proporciona escalabilidad, alto rendimiento e interoperabilidad con las cargas de trabajo de Kubernetes existentes. Se puede implementar en las instalaciones y en tecnologías de nube populares como Google Cloud, AWS y Azure.

Para instalar Calico CNI, ejecute el siguiente comando desde el nodo maestro

$ kubectl create -f https://docs.projectcalico.org/manifests/tigera-operator.yaml

Una vez completado, ejecute este.

$ kubectl create -f https://docs.projectcalico.org/manifests/custom-resources.yaml

Para confirmar si los pods han comenzado, ejecute el comando:

$ watch kubectl get pods -n calico-system

Debería ver que cada pod está "LISTO" y tiene el estado "EN EJECUCIÓN" como se muestra en la tercera columna.

Para verificar la disponibilidad del nodo maestro en el clúster, ejecute el comando:

$ kubectl obtener nodos

Además, puede recuperar más información usando las opciones -o anchas.

$ kubectl obtener nodos -o ancho

El resultado anterior confirma que el nodo maestro está listo. Además, puede consultar los espacios de nombres de los pods:

$ kubectl obtener pods --todos los espacios de nombres

Paso 9) Agregar un nodo trabajador al clúster

Para agregar el nodo trabajador al clúster de Kubernetes, siga los pasos del 1 al 6. Una vez que haya terminado, ejecute el comando generado por el nodo maestro para unir un nodo trabajador al clúster. En nuestro caso, será:

$ sudo kubeadm unirse a 10.128.15.228:6443 --token cqb8vy.iicmmqrb1m8u9cob --discovery-token-ca-cert-hash sha256:79748a56f603e6cc57f67bf90b7db5aebe090107d540d6cc8a8f75b785 

Si todo va bien, debería recibir la notificación de que el nodo se ha unido al clúster. Repita el mismo procedimiento para otros nodos en caso de que tenga varios nodos trabajadores

Ahora, regrese al nodo maestro y, una vez más, verifique los nodos en su clúster. Esta vez, el nodo trabajador aparecerá en la lista de nodos del clúster,

$ kubectl obtener nodos

Conclusión

Ese fue un recorrido de cómo puede instalar un clúster de Kubernetes en RHEL 8. Sus comentarios sobre esta guía son bienvenidos.


Linux
  1. Cómo instalar un clúster de Kubernetes en CentOS 7

  2. Cómo instalar chispa en RHEL 8

  3. Cómo instalar ActiveMQ en RHEL 8

  4. Cómo instalar Cassandra en RHEL 8

  5. Cómo instalar Elasticsearch en CentOS/RHEL 8

Cómo instalar Joomla CMS en RHEL 8 Linux

Cómo instalar Kubernetes en CentOS 8

Cómo instalar Kubernetes en Ubuntu 18.04 LTS

Cómo instalar Kubernetes en Ubuntu 20.04 LTS

Cómo instalar Kubernetes en Ubuntu 18.04 LTS

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