GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo instalar Kubernetes en un servidor bare metal

Introducción

La implementación de contenedores y la orquestación de Kubernetes son inmensamente poderosas cuando se implementan en entornos virtuales. Las capacidades de flexibilidad y escalabilidad ofrecen infinitas oportunidades.

Entonces, ¿por qué agregar un servidor físico de inquilino único al clúster? Se sabe que las máquinas virtuales crean problemas de latencia para aplicaciones específicas. El acceso directo al hardware puede ser una solución a este problema, especialmente con la opción de agregar aceleradores de hardware (GPU).

Los avances en el aprendizaje automático y la IA están orientando a las organizaciones hacia la implementación de clústeres de Kubernetes en máquinas virtuales y servidores nativos.

Este tutorial le muestra cómo implementar los conceptos discutidos en nuestro artículo anterior sobre la arquitectura de Kubernetes.

Siga los pasos descritos y aprenda cómo instalar Kubernetes en un servidor Bare Metal.

Requisitos previos

  • Múltiples servidores Linux
  • Una cuenta de usuario en cada sistema con sudo o privilegios de root
  • Acceso a la línea de comandos/ventana de terminal
  • El apto administrador de paquetes (Debian 10)

Preparar el servidor Bare Metal para la instalación de Kubernetes

Kubernetes es una herramienta de orquestación altamente automatizada. Se comunica entre nodos y toma medidas para replicar pods siempre que el estado actual de los clústeres no coincida con el estado deseado.

Para facilitar este proceso, la comunicación entre los nodos debe estar libre de restricciones. Cada nodo debe configurarse para que la configuración de seguridad estándar no interfiera con las líneas de comunicación.

La configuración difiere según la distribución y debe aplicarse a cada nodo dentro de un clúster. En este ejemplo, la instalación se realiza con Debian 10.

Si está utilizando otra distribución, visite nuestro tutorial sobre cómo instalar Kubernetes en un sistema CentOS 7 o Ubuntu 18.04.

Paso 1:deshabilitar SWAP

Los pods de Kubernetes están diseñados para utilizar los límites de la CPU por completo. El kubelet no está diseñado para usar la memoria SWAP y, por lo tanto, debe desactivarse. Ingrese el siguiente comando en la ventana de su terminal para deshabilitar SWAP:

sudo swapoff -a

Paso 2:Resolver nftables Problema de compatibilidad de back-end

El kubeadm actual los paquetes no son compatibles con las nftables back-end Para evitar cualquier problema, cambie las herramientas de iptables a su modo heredado:

sudo update-alternatives --set iptables /usr/sbin/iptables-legacy
sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
sudo update-alternatives --set arptables /usr/sbin/arptables-legacy
sudo update-alternatives --set ebtables /usr/sbin/ebtables-legacy

Paso 3:configurar el cortafuegos

La configuración del firewall debe modificarse para permitir la comunicación entre los pods dentro de un clúster. En este ejemplo, editamos los puertos usando ufw .

Para hacerlo, escriba los siguientes comandos en su Master Node:

sudo ufw allow 6443/tcp
sudo ufw allow 2379/tcp
sudo ufw allow 2380/tcp
sudo ufw allow 10250/tcp
sudo ufw allow 10251/tcp
sudo ufw allow 10252/tcp
sudo ufw allow 10255/tcp
sudo ufw reload

Además, estos puertos deben estar abiertos en cada nodo trabajador:

sudo ufw allow 10251/tcp
sudo ufw allow 10255/tcp
sudo ufw reload

Paso 4:Instalar Docker

Un software de tiempo de ejecución de contenedores administra imágenes de contenedores en nodos. Sin él, Kubernetes no puede acceder a las bibliotecas de imágenes y ejecutar las aplicaciones dentro de los contenedores. Para ello, vamos a instalar Docker.
Instale Docker en todos los nodos maestros y trabajadores que participan en su clúster. Eso significa que debe repetir este proceso en cada nodo por turno.

Acceda a su interfaz de línea de comandos. El siguiente comando actualiza los repositorios de Debian e instala paquetes. También permite que su sistema use repositorios a través de un protocolo seguro, HTTPS:

sudo apt-get update && apt-get install apt-transport-https ca-certificates curl software-properties-common

Ahora recupere y agregue la clave GPG oficial de Docker escribiendo:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add –

El resultado confirma que la acción se ha completado.

Hemos agregado la clave GPG y ahora podemos proceder a agregar el repositorio apt de Docker:

sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \ 
stable"

No olvides actualizar tus repositorios:

sudo apt-get update

El sistema ahora está listo para la instalación de Docker CE.

Instale Docker usando el siguiente comando:

sudo apt-get install docker-ce

Compruebe si el servicio está activo con:

docker -v

La línea de comando confirma que el servicio está activo.

Vea si el servicio funciona correctamente llamando a una imagen:

sudo docker run hello-world

Ahora ha recibido la confirmación de que Docker funciona correctamente.

Paso 5:cambie el controlador de cgroup

Asegúrese de que tanto docker-ce como Kubernetes estén usando el mismo 'cgroup'.

Verifique el cgroup docker actual:

sudo docker info | grep -i cgroup

El siguiente resultado confirma que Docker está utilizando 'cgroupfs' como un controlador de cgroup.

Cambie el controlador cgroup de Kubernetes a 'cgroupfs' si es necesario escribiendo:

cat > /etc/docker/daemon.json <<EOF
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
EOF

Vuelva a cargar el sistema systemd y reinicie el servicio kubelet.

systemctl daemon-reload
systemctl restart kubelet

Hemos seleccionado e instalado un software de tiempo de ejecución de contenedor, en este caso, Docker. La siguiente sección explica cómo instalar Kubernetes y las herramientas que necesitamos para administrar Kubernetes.

Instalar Kubernetes en el servidor Bare Metal

Paso 1:Descarga los repositorios de Kubernetes

Descargue Kubernetes y agregue una clave de firma para asegurarse de que el software sea auténtico:

curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add –

Recibimos confirmación de que el paquete está disponible.

Kubernetes no está en los repositorios predeterminados. Para agregarlos, ingrese el siguiente comando en cada nodo del clúster:

sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"

Paso 2:Instale kubelet, kubeadm y kubectl

Para poder administrar Kubernetes, necesitamos instalar kubectl , una utilidad utilizada para enviar comandos al clúster. También necesitamos instalar kubelet ya que es esencial para implementar y controlar pods dentro de un clúster. Kubeadm es el programa que inicializa Kubernetes durante el inicio. Para instalar estas 3 herramientas esenciales, ingrese los siguientes comandos:

sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl

El kubelet ahora se reinicia cada pocos segundos, mientras espera en un bucle de bloqueo para kubeadm para decirle qué hacer.

Paso 3:inicialice Kubernetes en el nodo principal

Introduzca el siguiente comando en el nodo principal:

sudo kubeadm init --pod-network-cidr=10.244.0.0/16

Pueden pasar varios minutos hasta que el resultado confirme que el clúster está activo:

Una vez que el sistema completa la acción, muestra una unión kubeadm mensaje. Tome nota de toda la entrada. Lo necesitará para unir los nodos trabajadores al clúster.

Paso 4:Cree un directorio para el clúster de Kubernetes

Haga que kubectl funcione para su usuario no root ejecutando estos comandos, que también forman parte de kubeadm init salida:

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:Complemento de red de pod (franela)

Instale un complemento de red de pod para que sus pods puedan comunicarse de manera efectiva. Flannel es una red superpuesta que es compatible con Kubernetes. Para instalar Franela escriba:

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

Paso 6:unir el nodo trabajador al clúster

Ingrese el kubeadm join comando en cada nodo trabajador. La clave que anotó en el Paso 3 , conecta cada nodo al clúster:

kubeadm join 10.0.2.15:6443 –token sv3ckz.fk2yooy92ieins26  \
--discovery-token-ca-cert-hash sha256:39d4a6ecc4a526b4aaff2594b469d43691fb7468688668f55d2a37690codo7fe

Espere unos minutos y verifique el estado de los nodos.

Cambie al servidor maestro e ingrese:

kubectl get nodes

Luego, el sistema muestra los nodos trabajadores que unió al clúster.


Ubuntu
  1. Cómo instalar el servidor RabbitMQ en Ubuntu 18.04 y 16.04 LTS

  2. Cómo instalar el servidor Gitlab en Ubuntu 18.04 y 16.04 LTS

  3. Cómo instalar MsSQL Server 2019 en Ubuntu 20.04

  4. Cómo instalar Ansible en Ubuntu Server 21.04

  5. ¿Cómo instalo Pdftk en mi servidor?

Cómo instalar CouchPotato en Ubuntu Server/Desktop

Cómo instalar Kubernetes en CentOS 8

Cómo instalar Kubernetes en Ubuntu 18.04 LTS

Cómo instalar el servidor LAMP en Linux Mint 19

Cómo instalar Kubernetes en Ubuntu 20.04 LTS

Cómo instalar el servidor de Minecraft en Ubuntu 20.04