GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Configure Kubernetes Cluster en Ubuntu 20.04 usando kubeadm

Kubernetes es un sistema de orquestación de contenedores de código abierto para automatizar la implementación, el escalado y la administración de aplicaciones informáticas.

Antes de comenzar, asegúrese de que su software esté actualizado

sudo apt apdate
sudo apt upgrade

Instalar

Instale los siguientes paquetes en todas sus máquinas:

  • kubeadm :el comando para arrancar el clúster.
  • kubelet :el componente que se ejecuta en todas las máquinas de su clúster y hace cosas como iniciar POD y contenedores.
  • kubectl :la línea de comando útil para hablar con su clúster.
sudo apt-get update && sudo apt-get install -y apt-transport-https curl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl

Confirmar versiones instaladas

kubectl version --client

kubeadm version

Salida:

[email protected]:~$ kubectl version --client
Client Version: version.Info{Major:"1", Minor:"22", GitVersion:"v1.22.0", GitCommit:"c2b5237ccd9c0f1d600d3072634ca66cefdf272f", GitTreeState:"clean", BuildDate:"2021-08-04T18:03:20Z", GoVersion:"go1.16.6", Compiler:"gc", Platform:"linux/amd64"}
[email protected]:~$ kubeadm version
kubeadm version: &version.Info{Major:"1", Minor:"22", GitVersion:"v1.22.0", GitCommit:"c2b5237ccd9c0f1d600d3072634ca66cefdf272f", GitTreeState:"clean", BuildDate:"2021-08-04T18:02:08Z", GoVersion:"go1.16.6", Compiler:"gc", Platform:"linux/amd64"}

Desactiva el intercambio.

sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
sudo swapoff -a

Configurar sistema.

sudo modprobe overlay
sudo modprobe br_netfilter

sudo tee /etc/sysctl.d/kubernetes.conf<<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF

sudo sysctl --system

Instalar tiempo de ejecución Containerd Container

sudo apt-get install -y containerd

Configurar containerd e iniciar el servicio

sudo mkdir -p /etc/containerd
sudo containerd config default > /etc/containerd/config.toml

Habilite el servicio para que se inicie en el arranque y comience

sudo systemctl enable --now containerd

# check status
sudo systemctl status containerd

El servicio debería estar ejecutándose

containerd.service - containerd container runtime
     Loaded: loaded (/lib/systemd/system/containerd.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2021-08-04 20:27:51 UTC; 7min ago
       Docs: https://containerd.io
   Main PID: 8159 (containerd)
      Tasks: 12
     Memory: 23.3M
     CGroup: /system.slice/containerd.service
             └─8159 /usr/bin/containerd

Aug 04 20:27:51 ub-kubeadm containerd[8159]: time="2021-08-04T20:27:51.784407330Z" level=info msg="loading plugin \"io.containerd.grpc>
Aug 04 20:27:51 ub-kubeadm containerd[8159]: time="2021-08-04T20:27:51.785605392Z" level=info msg=serving... address=/run/containerd/c>
Aug 04 20:27:51 ub-kubeadm containerd[8159]: time="2021-08-04T20:27:51.785639559Z" level=info msg=serving... address=/run/containerd/c>
Aug 04 20:27:51 ub-kubeadm containerd[8159]: time="2021-08-04T20:27:51.787585658Z" level=info msg="containerd successfully booted in 0>
Aug 04 20:27:51 ub-kubeadm containerd[8159]: time="2021-08-04T20:27:51.801146245Z" level=info msg="Start subscribing containerd event"
Aug 04 20:27:51 ub-kubeadm containerd[8159]: time="2021-08-04T20:27:51.804843058Z" level=info msg="Start recovering state"
Aug 04 20:27:51 ub-kubeadm containerd[8159]: time="2021-08-04T20:27:51.805094249Z" level=info msg="Start event monitor"
Aug 04 20:27:51 ub-kubeadm containerd[8159]: time="2021-08-04T20:27:51.805193238Z" level=info msg="Start snapshots syncer"
Aug 04 20:27:51 ub-kubeadm containerd[8159]: time="2021-08-04T20:27:51.805282655Z" level=info msg="Start cni network conf syncer"
Aug 04 20:27:51 ub-kubeadm containerd[8159]: time="2021-08-04T20:27:51.805369362Z" level=info msg="Start streaming server"

Inicializar nodo maestro

Habilite e inicie el servicio kubelet.

sudo systemctl enable --now kubelet

Extraer imágenes de contenedor requeridas:

sudo kubeadm config images pull

Establezca el nombre DNS del extremo del clúster o agregue un registro a /etc/hosts archivo.

192.168.20.7 k8s.citizix.local

Crear clúster:

sudo kubeadm init \
  --pod-network-cidr=192.168.0.0/16 \
  --control-plane-endpoint=k8s.citizix.local

Cuando haya terminado, los k8 deberían estar en funcionamiento. Obtenga el archivo de administración de kubeconfig desde esta ruta /etc/kubernetes/admin.conf

mkdir ~/.kube
sudo cp /etc/kubernetes/admin.conf ~/.kube/admin.conf
sudo chown ${USER}.${GROUP} ~/.kube/admin.conf
chmod 400 ~/.kube/admin.conf

Comprobar el estado del clúster:

kubectl cluster-info

Confirme que el nodo principal está listo:

kubectl get nodes -o wide

Se pueden agregar nodos maestros adicionales usando el comando en el resultado de la instalación:

kubeadm join k8s-cluster.computingforgeeks.com:6443 --token sr4l2l.2kvot0pfalh5o4ik \
    --discovery-token-ca-cert-hash sha256:c692fb047e15883b575bd6710779dc2c5af8073f7cab460abd181fd3ddb29a18 \
    --control-plane

Añadir nodos trabajadores

Con el plano de control listo, puede agregar nodos trabajadores al clúster para ejecutar cargas de trabajo programadas.

Si la dirección del punto final no está en el DNS, agregue el registro a /etc/hosts.

$ sudo vim /etc/hosts
192.168.20.7 k8s.citizix.local

El comando de unión que se proporcionó se usa para agregar un nodo trabajador al clúster.

kubeadm join k8s-cluster.computingforgeeks.com:6443 \
  --token sr4l2l.2kvot0pfalh5o4ik \
  --discovery-token-ca-cert-hash sha256:c692fb047e15883b575bd6710779dc2c5af8073f7cab460abd181fd3ddb29a18

Ejecute el siguiente comando en el plano de control para ver si el nodo se unió al clúster.

kubectl get nodes

Implementar aplicación en clúster


Ubuntu
  1. ¿Cómo configurar un clúster MongoDB usando 3 nodos con Ubuntu 16?

  2. Cómo configurar MariaDB Galera Cluster en Ubuntu 20.04

  3. Configurar el clúster de Kubernetes con Rancher

  4. ¿Usando Ubuntu con una configuración de dos pantallas?

  5. Cómo instalar VSFTP en Ubuntu 20.04

Cómo configurar una VPN en Ubuntu

Cómo instalar Kubernetes en Ubuntu 18.04 LTS

Cómo instalar Kubernetes en Ubuntu 20.04 LTS

Cómo configurar Rsyslog en Ubuntu 20.04 LTS

Cómo instalar Kubernetes en Ubuntu 18.04 LTS

Cómo instalar Kubernetes en Ubuntu 18.04 Bionic Beaver