Cómo instalar un clúster de Kubernetes en Centos 7

Cómo instalar un clúster de Kubernetes en Centos 7

Donado por Google a la comunidad de Opensource, Kubernetes ahora se ha convertido en la herramienta de gestión de contenedores de elección. Puede administrar y orquestar no solo los tiempos de ejecución de Docker, sino también los contenedores y Rkt tiempos de ejecución.

Un típico Kubernetes El clúster generalmente tendría un nodo maestro y varios nodos de trabajadores o secuaces. Los nodos trabajadores se gestionan desde el nodo maestro, asegurando así que el clúster se gestione desde un punto central.

También es importante mencionar que también puede implementar un clúster de Kubernetes de un solo nodo que generalmente se recomienda para cargas de trabajo muy livianas y sin producción. Para esto, puedes usar Minikube, que es una herramienta que ejecuta un clúster de Kubernetes de un solo nodo en una máquina virtual en su nodo.

Leído recomendado: Cómo instalar un clúster de Kubernetes en Centos 8

Para este tutorial, recorreremos un nodo múltiple Kubernetes instalación de clúster en Centos 7 Linux. Este tutorial se basa en línea de comandos, por lo que necesitará acceso a la ventana de su terminal.

Requisitos previos

  1. Múltiples servidores en ejecución Centos 7 (1 nodo maestro, 2 nodos de trabajadores). Se recomienda que tu Nodo maestro tener al menos 2 CPU, aunque este no es un requisito estricto.
  2. Conectividad a Internet en todos sus nodos. Vamos a buscar Kubernetes y estibador Paquetes del repositorio. Igualmente, deberá asegurarse de que el Yum Package Manager esté instalado de forma predeterminada y pueda obtener paquetes de forma remota.
  3. También necesitará acceso a una cuenta con privilegios de sudo o raíz. En este tutorial, usaré mi cuenta raíz.

Nuestro clúster de 3 nodos se verá así:

Diagrama de clúster de Kubernetes

Instalación del clúster Kubernetes en el nodo maestro

Para Kubernetes Para trabajar, necesitará un motor de contenedores. Para esta instalación, usaremos estibador Como es el más popular.

Los siguientes pasos se ejecutarán en el Nodo maestro.

Paso 1: Prepare el nombre de host, firewall y Selinux

En su nodo maestro, configure el nombre de host y si no tiene un servidor DNS, también actualice su /etc/huéspedes archivo.

# hostnamectl set-hostname nodo maestro # cat <> /etc /hosts 10.128.0.27 nodo maestro 10.128.0.29 nodo-1 trabajador-nodo-1 10.128.0.30 nodo-2 trabajador-nodo-2 EOF 

Puedes hacer ping Nodo trabajador-1 y trabajador-nodo-2 Para probar si su archivo host actualizado está bien usando el comando ping.

# ping 10.128.0.29 # ping 10.128.0.30 

A continuación, deshabilitar Selinux y actualice sus reglas de firewall.

# setenforce 0 # sed -i --follow -Symlinks 'S/selinux = Enforcing/Selinux = Disabled/G'/etc/sysconfig/Selinux # reboot 

Establezca las siguientes reglas de firewall en puertos. Asegúrese de que cada comando Firewall-CMD devuelva un éxito.

# firewall-cmd --Permanent --add-puerto = 6443/tcp # firewall-cmd --permanent --add-puerto = 2379-2380/tcp # firewall-cmd --permanent --add-port = 10250/tcp # firewall-cmd --Permanent --add-puerto = 10251/tcp # firewall-cmd --permanent --add-puerto = 10252/tcp # firewall-cmd --permanent --add-port = 10255/tcp # firewall -cmd -Reload # modprobe br_netfilter # echo '1'>/proc/sys/net/bridge/bridge-nf-llame-iptables 

Paso 2: Configurar el repositorio de Kubernetes

Necesitarás agregar Kubernetes repositorios manualmente, ya que no vienen instalados de forma predeterminada en Centos 7.

gato < /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 

Paso 3: Instale Kubeadm y Docker

Con el repositorio del paquete ahora listo, puede seguir adelante e instalar kubeadm y estibador paquetes.

# yum instalación kubeadm docker -y 

Cuando la instalación se completa con éxito, habilite e inicie ambos servicios.

# SystemCTL Habilitar Kubelet # SystemCTL Start Kubelet # SystemCTL Habilitar Docker # SystemCTL Start Docker 

Paso 4: Inicializar Kubernetes Master y Configurar usuario predeterminado

Ahora estamos listos para inicializar Kubernetes Master, pero antes de eso debe deshabilitar el intercambio para ejecutar "kubeadm init" dominio.

# swapoff -a 

La inicialización de Kubernetes Master es un proceso totalmente automatizado administrado por el "kubeadm init"Comando que ejecutarás.

# kubeadm init 
Inicializar el maestro de Kubernetes

Es posible que desee copiar la última línea y guardarla en algún lugar porque deberá ejecutarla en el nodos trabajadores.

kubeadm Únete 10.128.0.27: 6443 - -token nu06lu.XRSUX0SS0IXTNMS5 \--Descubrido-token-ca-cert-hash sha256: f996ea3564e6a07fdea2997a1cf8caeddafd6d4360d606dbc8231468425cd41 

Consejo: A veces este comando puede quejarse de la argumentos (argumentos) aprobado, así que edítelo para evitar cualquier error. Entonces, eliminarás el '\' personaje que acompaña al --simbólico Y tu comando final se verá así.

kubeadm Únete 10.128.0.27: 6443 - -token nu06lu.XRSUX0SS0IXTNMS5-Descubrido-token-ca-cert-hash sha256: f996ea3564e6a07fdea2997a1cf8caeddafd6d4360d606dbc82314688425cd41 

Habiendo inicializado Kubernetes con éxito, deberá permitir que su usuario comience a usar el clúster. En nuestro caso, queremos ejecutar esta instalación como raíz Usuario, por lo tanto, seguiremos adelante y ejecutaremos estos comandos como root. Puede cambiar a un usuario habilitado de sudo que prefiera y ejecutar el siguiente con sudo.

Usar raíz, correr:

# mkdir -p $ home/.kube # cp -i/etc/kubernetes/admin.conf $ casa/.Kube/config # chown $ (id -u): $ (id -g) $ home/.Kube/config 

Para usar un Usuario habilitado para sudo, correr:

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

Ahora verifique si el kubectl el comando está activado.

# kubectl obtener nodos 
Verifique el estado de los nodos

En este punto, también notará que el estado de la nodo maestro es 'No está listo'. Esto se debe a que todavía estamos que implementando el red de cápsulas al clúster.

El red de cápsulas es la red superpuesta para el clúster, que se implementa en la parte superior de la red de nodo actual. Está diseñado para permitir la conectividad a través de la cápsula.

Paso 5: Configurar su red POD

La implementación del clúster de red es un proceso altamente flexible dependiendo de sus necesidades y hay muchas opciones disponibles. Como queremos mantener nuestra instalación lo más simple posible, usaremos Tejido complemento que no requiere ninguna configuración o código adicional y proporciona una dirección IP por vaina que es excelente para nosotros. Si desea ver más opciones, consulte aquí.

Estos comandos serán importantes para obtener la configuración de la red POD.

# Exportar kubever = $ (versión kubectl | base64 | tr -d '\ n') # kubectl aplicar -f "https: // nube.tejido.obras/k8s/net?k8s-version = $ kubever " 
Configuración de la red de cápsula

Ahora si verifica el estado de su nodo maestro, debería ser 'Listo'.

# kubectl obtener nodos 
Verifique el estado de los nodos maestros

A continuación, agregamos el nodos trabajadores al clúster.

Configuración de nodos de trabajadores para unirse al clúster de Kubernetes

Los siguientes pasos se ejecutarán en el nodos trabajadores. Estos pasos deben ejecutarse en cada nodo de trabajador Al unirse al Kubernetes grupo.

Paso 1: Prepare el nombre de host, firewall y Selinux

En tu Nodo trabajador-1 y trabajador-nodo-2, Establezca el nombre de host y en caso de que no tenga un servidor DNS, luego actualice sus nodos maestros y trabajadores en /etc/huéspedes archivo.

# hostnamectl set-hostname 'node-1' # cat <> /etc /hosts 10.128.0.27 nodo maestro 10.128.0.29 nodo-1 trabajador-nodo-1 10.128.0.30 nodo-2 trabajador-nodo-2 EOF 

Puedes hacer ping nodo maestro Probar si su archivo host actualizado está bien.

A continuación, deshabilitar Selinux y actualice sus reglas de firewall.

# setenforce 0 # sed -i --follow -Symlinks 'S/Selinux = Enforcing/Selinux = DISPABILIDAD/G'/ETC/SYSCONFIG/SELINUX 

Establezca las siguientes reglas de firewall en puertos. Asegúrese de que todos los comandos de firewall-CMD, return éxito.

# firewall-cmd --Permanent --add-puerto = 6783/tcp # firewall-cmd --permanent --add-puerto = 10250/tcp # firewall-cmd --permanent --add-port = 10255/tcp # firewall -CMD --Permanent --Add-Port = 30000-32767/tcp # firewall-cmd--Reload # echo '1'>/proc/sys/net/bridge-nf-chall-iptables 

Paso 2: Configurar el repositorio de Kubernetes

Necesitarás agregar Kubernetes repositorios manualmente, ya que no vienen preinstalados en Centos 7.

gato < /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 

Paso 3: Instale Kubeadm y Docker

Con el repositorio del paquete ahora listo, puede seguir adelante e instalar kubeadm y estibador paquetes.

# yum instalación kubeadm docker -y 

Iniciar y habilitar ambos servicios.

# SystemCTL Habilitar Docker # SystemCTL Start Docker # SystemCTL Habilitar kubelet # SystemCTL Start Kubelet 

Paso 4: Únase al nodo del trabajador al clúster Kubernetes

Ahora requerimos la token que kubeadm init generado, para unirse al clúster. Puede copiarlo y pegarlo a su nodo-1 y nodo-2 Si lo hubieras copiado en alguna parte.

# Kubeadm Únete 10.128.0.27: 6443 - -token nu06lu.XRSUX0SS0IXTNMS5-Descubrido-token-ca-cert-hash sha256: f996ea3564e6a07fdea2997a1cf8caeddafd6d4360d606dbc82314688425cd41 
Unir nodos al clúster Kubernets

Como se sugirió en la última línea, vuelva a su nodo maestro y verificar si Nodo de trabajador-1 y Nodo de trabajador-2 se han unido al clúster usando el siguiente comando.

# kubectl obtener nodos 
Verifique todos los nodos del estado en el clúster de Kubernetes

Si todos los pasos se ejecutan con éxito, entonces, debería ver nodo-1 y nodo-2 en estado listo en el nodo maestro.

Leído recomendado: Cómo implementar Nginx en un clúster de Kubernetes

En este punto, hemos completado con éxito una instalación de un Kubernetes agrupar Centos 7 y hemos a bordo con éxito dos nodos de trabajadores. Ahora puede comenzar a crear sus vainas e implementar sus servicios.