Introducción

Los pequeños entornos virtuales, llamados contenedores , se han convertido en indispensables para desarrollar y administrar aplicaciones.
 
Trabajar en aplicaciones dentro de un contenedor aislado no afecta el sistema operativo host. Los contenedores son más eficientes que las máquinas virtuales, ya que no necesitan su sistema operativo.

Kubernetes es una plataforma de código abierto que lo ayuda a implementar, escalar y administrar recursos en múltiples contenedores.

Siga este tutorial y aprenda a instalar Kubernetes en un sistema CentOS 7.

Prerrequisitos

  • Múltiples servidores Linux que ejecutan CentOS 7 (1 nodo principal, múltiples nodos de trabajo)
  • Una cuenta de usuario en cada sistema con privilegios de sudo o root
  • El administrador de paquetes yum , incluido por defecto
  • Línea de comando / ventana de terminal

Pasos para instalar Kubernetes en CentOS 7

Introducción

Los pequeños entornos virtuales, llamados contenedores , se han convertido en indispensables para desarrollar y administrar aplicaciones.

Trabajar en aplicaciones dentro de un contenedor aislado no afecta el sistema operativo host. Los contenedores son más eficientes que las máquinas virtuales, ya que no necesitan su sistema operativo.

Kubernetes es una plataforma de código abierto que lo ayuda a implementar, escalar y administrar recursos en múltiples contenedores.

Siga este tutorial y aprenda a instalar Kubernetes en un sistema CentOS 7.

Prerrequisitos

  • Múltiples servidores Linux que ejecutan CentOS 7 (1 nodo principal, múltiples nodos de trabajo)
  • Una cuenta de usuario en cada sistema con privilegios de sudo o root
  • El administrador de paquetes yum , incluido por defecto
  • Línea de comando / ventana de terminal

Pasos para instalar Kubernetes en CentOS 7

Para usar Kubernetes, debe instalar un motor de contenedorización . Actualmente, la solución de contenedor más popular es Docker .
 

Paso 1: Configurar el repositorio de Kubernetes

Los paquetes de Kubernetes no están disponibles en los repositorios oficiales de CentOS 7. Este paso debe realizarse en el Nodo maestro y en cada Nodo de trabajo que planee utilizar para la configuración de su contenedor. Ingrese el siguiente comando para recuperar los repositorios de Kubernetes.
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[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
EOF

 

Nota: Si usa el comando sudo , agréguelo no solo al comando cat sino también al archivo restringido.

Paso 2: Instale kubelet , kubeadm y kubectl

Estos 3 paquetes básicos son necesarios para poder usar Kubernetes. Instale los siguientes paquetes en cada nodo:
sudo yum install -y kubelet kubeadm kubectl
systemctl enable kubelet
systemctl start kubelet

Ahora ha instalado con éxito Kubernetes, incluidas sus herramientas y paquetes básicos.

El sistema confirma que ha instalado kubeadm, kubectl y kubelet

Antes de implementar un clúster, asegúrese de establecer nombres de host, configurar el firewall y la configuración del kernel.

Paso 3: establecer el nombre de host en los nodos

Para dar un nombre de host único a cada uno de sus nodos, use este comando:
sudo hostnamectl set-hostname master-node

o

sudo hostnamectl set-hostname worker-node1

En este ejemplo, el nodo maestro ahora se llama nodo maestro, mientras que un nodo trabajador se llama trabajador-nodo1.

Realice una entrada de host o un registro DNS para resolver el nombre de host para todos los nodos:

sudo vi /etc/hosts

Con la entrada:

192.168.1.10 master.phoenixnap.com master-node
192.168.1.20 node1. phoenixnap.com node1 worker-node

Paso 4: configurar el firewall

Los nodos, contenedores y pods deben poder comunicarse a través del clúster para realizar sus funciones. Firewalld está habilitado en CentOS de manera predeterminada en el front-end. Agregue los siguientes puertos ingresando los comandos enumerados.

En el nodo maestro, ingrese:

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 --permanent --add-port=10255/tcp
sudo firewall-cmd –-reload

Cada vez que se agrega un puerto, el sistema confirma con un mensaje de “éxito”.

Agregar puertos a las excepciones firewalld

Ingrese los siguientes comandos en cada nodo de trabajo:

sudo firewall-cmd --permanent --add-port=10251/tcp
sudo firewall-cmd --permanent --add-port=10255/tcp
firewall-cmd –-reload

Paso 5: Actualiza la configuración de Iptables

Establezca net.bridge.bridge-nf-call-iptables en ‘1’ en su archivo de configuración sysctl. Esto garantiza que las tablas IP procesen correctamente los paquetes durante el filtrado y el reenvío de puertos.
cat  < /etc/sysctl.d/master_node_name
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system

Paso 6: deshabilitar SELinux

Los contenedores necesitan acceder al sistema de archivos del host. SELinux necesita configurarse en modo permisivo, lo que deshabilita efectivamente sus funciones de seguridad.

Use los siguientes comandos para deshabilitar SElinux :

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

Paso 7: deshabilitar SWAP

Por último, necesitamos deshabilitar SWAP para permitir que el kubelet funcione correctamente:
sudo sed -i '/swap/d' /etc/fstab
sudo swapoff -a

Cómo implementar un clúster de Kubernetes

Paso 1: Configurar la red de pod
Una red Pod permite que los nodos dentro del clúster se comuniquen. Este tutorial utiliza el complemento de red virtual de flannel para este propósito.
 
Una red Pod permite que los nodos dentro del clúster se comuniquen. Este tutorial utiliza el complemento de red virtual de flannel para este propósito.

Instale flannel con el comando:

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

Paso 2: crear clúster con kubeadm

Para que flannel funcione correctamente, inicialice un clúster ejecutando el siguiente comando:
sudo kubeadm init –pod-network-cidr=10.244.0.0/16

El proceso puede tardar varios minutos en completarse según la velocidad de la red. Una vez que finaliza este comando, muestra un mensaje de combinación de kubeadm. Tome nota de la entrada. Nos ayuda a unir los nodos de trabajo al clúster en una etapa posterior.

Paso 3: Verifique el estado del clúster

Una vez que se ha instalado una red de pod, puede confirmar que funciona comprobando que el pod CoreDNS se está ejecutando escribiendo:
sudo kubectl get pods --all-namespaces

Paso 4: administrar el clúster como usuario normal

Comience a usar el clúster que necesita para ejecutarlo como usuario normal escribiendo:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

Paso 5: unir el nodo de trabajo al clúster

Como se indicó en el Paso 2 , puede ingresar el comando de unión kubeadm en cada nodo de trabajo para conectarlo al clúster.
kubeadm join --discovery-token cfgrty.1234567890jyrfgd --discovery-token-ca-cert-hash sha256:1234..cdef 1.2.3.4:6443

Reemplace los códigos con los de su servidor maestro. Repita esta acción para cada nodo de trabajo en su clúster. Ahora verifique el estado de los nodos.

Desde el servidor maestro ingrese:

sudo kubectl get nodes

El sistema ahora muestra los nuevos nodos de trabajo que unió al clúster.

Conclusión:

Ha instalado Kubernetes en CentOS con éxito y ahora puede administrar clústeres en varios servidores. .

Este tutorial de Kubernetes proporciona un buen punto de partida para explorar las muchas opciones que esta plataforma versátil tiene para ofrecer. Use Kubernetes para escalar sus operaciones de manera más eficiente y pasar menos tiempo en contenedores de microgestión.

¡Haz clic para puntuar esta entrada!
(Votos: 1 Promedio: 5)

compartir en ....
Avatar

Acerca de Brian Alexander Diaz

Brian Alexander Diaz Investigador en temas de seguridad y Devops Mi nombre es Brian Alexander Diaz. El objetivo de este blog es promover la cultura y mentalidad en seguridad por todo el Internet y que la gente aprenda a facilitar su vida y crear  sistemas mas seguros .

Deja una respuesta

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