Diferencia entre revisiones de «Howto instalacion cluster kubernetes»

De HowTo ARIU
Ir a la navegación Ir a la búsqueda
(Página creada con «=Cómo instalar Kubernetes (k8s) en el servidor Ubuntu 20.04 LTS= Kubernetes (k8s) es una herramienta de orquestación de contenedores gratuita y de código abierto. Se utiliza para implementar, escalar y administrar aplicaciones basadas en contenedores. En este artículo, demostraremos cómo instalar Kubernetes Cluster en Ubuntu 20.04 LTS Server (Focal Fossa) usando kubeadm. En la configuración de mi laboratorio, he usado tres servidores Ubuntu 20.04 LTS. Los siguie…»)
 
Línea 10: Línea 10:
Los siguientes son los detalles de la configuración de mi laboratorio:
Los siguientes son los detalles de la configuración de mi laboratorio:


:itt2prox - VM113 (Servidor Ubuntu 20.04 LTS) – K8s-master 10.22.3.240
:VM1 (Servidor Ubuntu 20.04 LTS) – K8s-maestro 192.168.0.10
:itt2prox - VM114 (Servidor Ubuntu 20.04 LTS) – K8s-node-0 – 10.22.3.241
:VM2 (Servidor Ubuntu 20.04 LTS) – K8s-nodo-0 – 192.168.0.11
:itt2prox - VM119 (Servidor Ubuntu 20.04 LTS) – K8s-node-1 – 10.22.3.242
:VM3 (Servidor Ubuntu 20.04 LTS) – K8s-nodo-1 – 192.168.0.12


==Establecer nombre de host y agregar entradas en el archivo /etc/hosts==
==Establecer nombre de host y agregar entradas en el archivo /etc/hosts==
Use el comando hostnamectl para establecer el nombre de host en cada nodo, el ejemplo se muestra a continuación:
Use el comando hostnamectl para establecer el nombre de host en cada nodo, el ejemplo se muestra a continuación:
<pre>
<pre>
sudo hostnamectl set-hostname "k8s-master"    // Run this command on master node
sudo hostnamectl set-hostname "k8s-maestro"    // Correr el comando en el nodo maestro
$ sudo hostnamectl set-hostname "k8s-node-0"    // Run this command on node-0
$ sudo hostnamectl set-hostname "k8s-nodo-0"    // Correr el comando en el nodo-0
$ sudo hostnamectl set-hostname "k8s-node-1"    // Run this command on node-1
$ sudo hostnamectl set-hostname "k8s-nodo-1"    // Correr el comando en el nodo-1
</pre>
</pre>
Agregue las siguientes entradas en los archivos /etc/hosts en cada nodo,
Agregue las siguientes entradas en los archivos /etc/hosts en cada nodo,
<pre>
<pre>
10.22.3.240   k8s-master
192.168.0.10   k8s-maestro
10.22.3.241   k8s-node-0
192.168.0.11   k8s-nodo-0
10.22.3.242   k8s-node-1
192.168.0.12   k8s-nodo-1
</pre>
</pre>
==Instale Docker (Container Runtime) en los 3 nodos==
==Instale Docker (Container Runtime) en los 3 nodos==

Revisión del 10:06 5 jul 2023

Cómo instalar Kubernetes (k8s) en el servidor Ubuntu 20.04 LTS

Kubernetes (k8s) es una herramienta de orquestación de contenedores gratuita y de código abierto. Se utiliza para implementar, escalar y administrar aplicaciones basadas en contenedores. En este artículo, demostraremos cómo instalar Kubernetes Cluster en Ubuntu 20.04 LTS Server (Focal Fossa) usando kubeadm. En la configuración de mi laboratorio, he usado tres servidores Ubuntu 20.04 LTS. Los siguientes son los requisitos del sistema en cada sistema Ubuntu.

Mínimo de 2 GB de RAM

2 núcleos (2 vCPU)
15 GB de espacio libre en /var
Usuario privilegiado con derechos sudo
Conexión estable a Internet

Los siguientes son los detalles de la configuración de mi laboratorio:

VM1 (Servidor Ubuntu 20.04 LTS) – K8s-maestro – 192.168.0.10
VM2 (Servidor Ubuntu 20.04 LTS) – K8s-nodo-0 – 192.168.0.11
VM3 (Servidor Ubuntu 20.04 LTS) – K8s-nodo-1 – 192.168.0.12

Establecer nombre de host y agregar entradas en el archivo /etc/hosts

Use el comando hostnamectl para establecer el nombre de host en cada nodo, el ejemplo se muestra a continuación:

sudo hostnamectl set-hostname "k8s-maestro"     // Correr el comando en el nodo maestro
$ sudo hostnamectl set-hostname "k8s-nodo-0"     // Correr el comando en el nodo-0
$ sudo hostnamectl set-hostname "k8s-nodo-1"     // Correr el comando en el nodo-1

Agregue las siguientes entradas en los archivos /etc/hosts en cada nodo,

192.168.0.10    k8s-maestro
192.168.0.11    k8s-nodo-0
192.168.0.12    k8s-nodo-1

Instale Docker (Container Runtime) en los 3 nodos

Inicie sesión en cada nodo y ejecute los siguientes comandos para instalar Docker,

$ sudo apt update
$ sudo apt install -y docker.io

Ahora inicie y habilite el servicio docker en cada nodo usando el comando systemctl debajo,

$ sudo systemctl enable docker.service --now

Ejecute el siguiente comando para verificar el estado del servicio docker y su versión,

$ systemctl status docker
$ docker --version
Kubernetes1.png






















Deshabilite el intercambio y habilite el reenvío de IP en todos los nodos

Para deshabilitar el intercambio, edite el archivo /etc/fstab y comente la línea que incluye la entrada, ya sea la partición de intercambio o el archivo de intercambio.

$ sudo vi /etc/fstab

Guardar y salir del archivo

Ejecute el comando swapoff para deshabilitar el intercambio sobre la marcha

$ sudo swapoff -a

Para habilitar el reenvío de ip de forma permanente, edite el archivo “/etc/sysctl.conf” y busque la línea “net.ipv4.ip_forward=1” y descoméntalo. Después de realizar los cambios en el archivo, ejecute el siguiente comando

$ sudo sysctl -p
net.ipv4.ip_forward = 1
$

Instale Kubectl, kubelet y kubeadm en todos los nodos

Ejecute los siguientes comandos en los 3 nodos para instalar la utilidad kubectl, kubelet y kubeadm

$ sudo apt install -y apt-transport-https curl
$ curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add
$ sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"
$ sudo apt update
$ sudo apt install -y kubelet kubeadm kubectl

Inicialice el clúster de Kubernetes mediante kubeadm (desde el nodo principal)

Inicie sesión en su nodo maestro (k8s-master) y ejecute debajo del comando 'kubeadm init' para inicializar el clúster de Kubernetes,

$ sudo kubeadm init

Una vez que el clúster se inicialice correctamente, obtendremos el siguiente resultado

Your Kubernetes control-plane has initialized successfully!

To start using your cluster, you need to run the following as a regular user:

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

Alternatively, if you are the root user, you can run:

  export KUBECONFIG=/etc/kubernetes/admin.conf

You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
  https://kubernetes.io/docs/concepts/cluster-administration/addons/

Then you can join any number of worker nodes by running the following on each as root:

kubeadm join 10.22.3.240:6443 --token 9nuqbb.bdbqckyd93cpj24b --discovery-token-ca-cert-hash sha256:44827090f51b34a4a98508faee09f9085ff3bc99e52b1a4a086ab5f8d58d489e

Para comenzar a usar el clúster como un usuario normal, ejecutemos los siguientes comandos, los comandos ya están allí en la salida, simplemente copie y pegue.

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

Ahora una los nodos trabajadores (k8s-node-0/1) al clúster, el comando para unirse al clúster ya está en la salida. Copie el comando "kubeadm join" y péguelo en ambos nodos (nodos de trabajo).

Inicie sesión en Node-0 y ejecute el siguiente comando,

kubeadm join 10.22.3.240:6443 --token 9nuqbb.bdbqckyd93cpj24b --discovery-token-ca-cert-hash sha256:44827090f51b34a4a98508faee09f9085ff3bc99e52b1a4a086ab5f8d58d489e

Inicie sesión en Node-1 y ejecute el siguiente comando para unirse al clúster,

kubeadm join 10.22.3.240:6443 --token 9nuqbb.bdbqckyd93cpj24b --discovery-token-ca-cert-hash sha256:44827090f51b34a4a98508faee09f9085ff3bc99e52b1a4a086ab5f8d58d489e

Desde el nodo principal, ejecute el comando "kubectl get nodes" para verificar el estado de los nodos

$ kubectl get nodes
NAME         STATUS     ROLES    AGE     VERSION
k8s-master   NotReady   master   27m     v1.18.3
k8s-node-0   NotReady   <none>   8m3s    v1.18.3
k8s-node-1   NotReady   <none>   7m19s   v1.18.3
$

Como podemos ver, tanto los nodos trabajadores como el nodo maestro se han unido al clúster, pero el estado de cada nodo es "No está listo”. Para hacer el estado “Listo” debemos implementar complementos de red Pod basados ​​en la interfaz de red de contenedores (CNI) como calicó, enrutador kube y red de tejido. Como sugiere el nombre, los complementos de red de pod permiten que los pods se comuniquen entre sí.

Implementar el complemento Calico Pod Network (nodo principal)

Desde el nodo maestro, ejecute el siguiente comando para instalar el complemento de red Calico pod,

kubectl apply -f https://raw.githubusercontent.com/projectcalico/calico/v3.26.1/manifests/calico.yaml

Ejecute el siguiente comando para verificar el estado de los pods de todos los espacios de nombres

kubectl get pods --all-namespaces


















Perfecto, lo anterior confirma que todos los pods están funcionando y en buen estado. Intentemos implementar pods, servicios e implementaciones para ver si nuestro clúster de Kubernetes funciona bien o no.

Nota: Para habilitar la función de finalización de bash en su nodo maestro, ejecute lo siguiente

$ echo 'source <(kubectl completion bash)' >>~/.bashrc
$ source .bashrc

Instalación de LENS para Escritorio

  • Obtener la clave de seguridad pública de la LENS y agregarla al conjunto de claves
curl -fsSL https://downloads.k8slens.dev/keys/gpg | gpg --dearmor | sudo tee /usr/share/keyrings/lens-archive-keyring.gpg > /dev/null
  • Agregue el repositorio de LENS a /etc/apt/sources.list.d.
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/lens-archive-keyring.gpg] https://downloads.k8slens.dev/apt/debian stable main" | sudo tee /etc/apt/sources.list.d/lens.list > /dev/null
  • Instalar Escritorio LENS
apt update
apt install lens
  • Ejecutar LENS
lens-desktop