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 Opensource, Kubernetes. se ha convertido ahora en la herramienta de administración de contenedores preferida. Puede administrar y orquestar no solo los tiempos de ejecución de Docker, sino también los tiempos de ejecución de Contenedores y Rkt.

Un clúster típico de Kubernetes. generalmente tendría un nodo maestro y varios trabajadores-nodos o Minions. Luego, los nodos de trabajo se administran desde el nodo maestro, lo que garantiza que el clúster se administre 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 es recomendado para cargas de trabajo muy ligeras que no son de producción. Para ello, puede utilizar Minikube. que es una herramienta que ejecuta un clúster de Kubernetes de un solo nodo en una máquina virtual en su nodo.

Lectura recomendada. Cómo instalar un clúster de Kubernetes en CentOS 8

Para este tutorial, analizaremos una instalación de clúster de Kubernetes. de varios nodos en CentOS 7. Linux. Este tutorial se basa en la línea de comandos, por lo que necesitará acceder a la ventana de su terminal.

Requisitos previos

  1. Múltiples servidores que ejecutan Centos 7. ( 1 nodo maestro. 2 nodos de trabajo. . Se recomienda que su Nodo maestro. tenga al menos 2 CPU, aunque este no es un requisito estricto.
  2. Conectividad a Internet en todos sus nodos. Obtendremos paquetes de Kubernetes. y docker. del repositorio. Igualmente, deberá asegurarse de que el administrador de paquetes yum esté instalado de forma predeterminada y pueda recuperar paquetes de forma remota.
  3. También necesitará acceso a una cuenta con privilegios de root o sudo. En este tutorial, usaré mi cuenta raíz.

freestar.config.enabled_slots.push

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

Kubernetes Diagrama de clúster  Kubernetes Cluster Diagram Kubernetes Cluster Diagram

Instalación de Kubernetes Cluster en Master-Node

Para que Kubernetes. funcione, necesitará un motor de contenedorización. Para esta instalación, usaremos docker. ya que es el más popular.

Los siguientes pasos se ejecutarán en el Master-Node.

Paso 1: Prepare el nombre de host, el cortafuegos y SELinux

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

# hostnamectl set-hostname master-node # cat <>/etc/hosts 10.128.0.27 master-node 10.128.0.29 node-1 worker-node-1 10.128.0.30 node-2 worker-node-2 EOF

Puede hacer ping a worker-node-1. y worker-node-2. para probar si su archivo de host actualizado está bien usando el comando ping.

# ping 10.128.0.29 # ping 10.128.0.30

A continuación, deshabilite SElinux. y actualice las reglas de su firewall.

# setenforce 0 # sed-i–follow-symlinks ‘s/SELINUX = enforcing/SELINUX = disabled/g ‘/etc/sysconfig/selinux # reboot

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

# firewall-cmd–permanent–add-port = 6443/tcp # firewall-cmd–permanent–add-port = 2379-2380/tcp # firewall-cmd–permanent–add-port = 10250/tcp # firewall-cmd–permanent–add-port = 10251/tcp # firewall-cmd–permanent–add-port = 10252/tcp # firewall-cmd–permanent–add-port = 10255/tcp # firewall-cmd –reload # modprobe br_netfilter # echo ‘1’>/proc/sys/net/bridge/bridge-nf-call-iptables Paso 2: Configuración el repositorio de Kubernetes

Deberá agregar los repositorios de Kubernetes. manualmente, ya que no vienen instalados de forma predeterminada en CentOS 7.

cat </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: instalar Kubeadm y Docker

Con el repositorio de paquetes ahora listo, puede continuar e instalar los paquetes kubeadm. y docker.

# yum install kubeadm docker-y

Cuando la instalación se complete correctamente, habilite e inicie ambos servicios.

# systemctl enable kubelet # systemctl start kubelet # systemctl enable docker # systemctl start docker Paso 4: Inicialice Kubernetes Master y configure el usuario predeterminado

Ahora estamos listos para inicializar kubernetes master, pero antes debe deshabilitar el intercambio para ejecutar el comando “ kubeadm init. .

# swapoff-a

La inicialización del maestro de Kubernetes es un proceso completamente automatizado que es administrado por el comando “ kubeadm init. “Comando que ejecutará.

# kubeadm init Inicializar Kubernetes Master  Inicializar Kubernetes Master Inicializar Kubernetes Master

Es posible que desee copiar la última línea y guardarla en algún lugar porque necesitará ejecutarla en los nodos de trabajo.

kubeadm join 10.128.0.27:6443–token nu06lu.xrsux0ss0ixtnms5 \–discovery-token-ca-cert-hash sha256: f996ea3564e6a07fdea2997a1cf8caeddafd6d4360d60 6dbc82314688425cd41

Sugerencia. a veces, este comando puede quejarse de los argumentos. ( args. pasados, así que edítelo para evitar errores. Por lo tanto, eliminará el carácter ‘\’ que acompaña al–token y su comando final se verá así.

kubeadm join 10.128.0.27:6443–token nu06lu.xrsux0ss0ixtnms5–discovery-token-ca-cert-hash sha256: f996ea3564e6a07fdea2997a1cf8caeddafd6d4360d606dbc82314688425cd41

Una vez que haya inicializado Kubernetes. correctamente, deberá permitir que su usuario comience a utilizar el clúster. En nuestro caso, queremos ejecutar esta instalación como usuario root. por lo que seguiremos adelante y ejecutaremos estos comandos como root. Puede cambiar a un usuario habilitado para sudo que prefiera y ejecutar lo siguiente usando sudo.

Para usar root. ejecute:

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

Para usar un usuario habilitado para sudo. ejecute:

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

Ahora verifique si el comando kubectl. está activado.

# kubectl get nodes  Verificar el estado de los nodos  Verificar el estado de los nodos Verificar el estado de los nodos

En este punto, también notará que el estado del nodo maestro. es “ NotReady. . Esto se debe a que todavía tenemos que implementar la red de pod. en el clúster.

La red de pod. es la red superpuesta para el clúster, que está implementada en la parte superior de la actual red de nodos. Está diseñado para permitir la conectividad a través del módulo.

Paso 5: Configure su red de pods

La implementación del clúster de red es un proceso muy flexible según sus necesidades y hay muchas opciones disponibles. Como queremos que nuestra instalación sea lo más simple posible, usaremos el complemento Weavenet. que no requiere ninguna configuración ni código adicional y proporciona una dirección IP por pod, lo cual es genial para nosotros. Si desea ver más opciones, marque aquí.

Estos comandos serán importantes para configurar la red del pod.

# export kubever = $ (kubectl version | base64 | tr-d ‘ \ n ‘) # kubectl apply-f “https://cloud.weave.works/k8s/net?k8s-version=$kubever” Configurar red de pods Configurar red de pods Configurar la red de pods

Ahora, si verificas el estado de tu nodo maestro. debería ser ‘ Ready. ‘.

# kubectl obtener nodos  Verificar el estado de los nodos maestros  Verificar el estado de los nodos maestros Verificar el estado de los nodos maestros

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

Configuración Nodos de trabajo para unirse al clúster de Kubernetes

Los siguientes pasos se ejecutarán en los nodos de trabajo. Estos pasos deben ejecutarse en cada nodo trabajador. al unirse al clúster de Kubernetes.

Paso 1: Prepare el nombre de host, el cortafuegos y SELinux

En su worker-node-1. y worker-node-2. establece el nombre de host y, en caso de que no tengas un servidor DNS, actualiza también tus nodos maestro y trabajador en /etc/hosts. archivo.

# hostnamectl set-hostname ‘node-1’ # cat <>/etc/hosts 10.128.0.27 master-node 10.128.0.29 node-1 worker-node-1 10.128.0.30 node-2 worker-node-2 EOF

Puede hacer ping a master-node. para probar si su archivo de host actualizado está bien.

A continuación, deshabilite SElinux. y actualice sus reglas de firewall.

# setenforce 0 # sed-i–follow-symlinks ‘s/SELINUX = enforcing/SELINUX = disabled/g’/etc/sysconfig/selinux

Establezca las siguientes reglas de firewall en los puertos. Asegúrese de que todos los comandos firewall-cmd devuelvan correctamente.

# firewall-cmd–permanent–add-port = 6783/tcp # firewall-cmd–permanent–add-port = 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/bridge-nf-call-iptables Paso 2: Configure el repositorio de Kubernetes

Deberá agregar los repositorios de Kubernetes. manualmente, ya que no vienen preinstalados en CentOS 7.

cat </etc/yum.repos.d/kubernetes.repo [kubernetes] name = Kubernetes baseurl = https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 habilitado = 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 de paquetes listo, puede continuar e instalar los paquetes kubeadm. y docker.

# yum install kubeadm docker-y

Inicie y habilite ambos servicios.

# systemctl enable docker # systemctl start docker # systemctl enable kubelet # systemctl start kubelet Paso 4: Únase al nodo trabajador al clúster de Kubernetes

Ahora requerimos el token que generó kubeadm. init, para unirse al clúster. Puede copiarlo y pegarlo en su nodo-1. y nodo-2. si lo ha copiado en alguna parte.

# kubeadm join 10.128.0.27:6443-token nu06lu.xrsux0ss0ixtnms5–discovery-token-ca-cert-hash sha256: f996ea3564e6a07fdea2997a1cf8caeddafd6d4360d606dbc82314688425cd41  Unir nodos al clúster de Kubernets  Unir nodos al clúster de Kubernets Unir nodos al clúster de Kubernets

Como se sugiere en la última línea, regrese a su nodo maestro. y verifique si nodo trabajador-1. y nodo trabajador-2. se han unido al clúster mediante el siguiente comando.

# kubectl get nodes Comprobar el estado de todos los nodos en el clúster de Kubernetes  Comprobar el estado de todos los nodos en Kubernetes Cluster Comprobar el estado de todos los nodos en el clúster de Kubernetes

Si todos los pasos se ejecutan correctamente, debería ver nodo-1. y nodo-2. en estado listo en el nodo principal.

Recomendado Leer. Cómo implementar Nginx en un clúster de Kubernetes

En este punto, hemos completó una instalación de un clúster de Kubernetes. en Centos 7. y hemos incorporado con éxito dos nodos de trabajo. Ahora puede comenzar a crear sus pods e implementar sus servicios.