GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Configura Kubernetes Cluster su Ubuntu 20.04 usando kubeadm

Kubernetes è un sistema di orchestrazione di container open source per automatizzare la distribuzione, il ridimensionamento e la gestione delle applicazioni per computer.

Prima di iniziare, assicurati che il tuo software sia aggiornato

sudo apt apdate
sudo apt upgrade

Installa

Installa i seguenti pacchetti su tutte le tue macchine:

  • kubeadm :il comando per avviare il cluster.
  • kubelet :il componente che viene eseguito su tutte le macchine nel tuo cluster e fa cose come l'avvio di POD e container.
  • kubectl :l'utility della riga di comando per parlare con il tuo cluster.
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

Conferma le versioni installate

kubectl version --client

kubeadm version

Uscita:

[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"}

Disattiva lo scambio.

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

Configura sist.

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

Installa il runtime Containerd Container

sudo apt-get install -y containerd

Configura containerd e avvia il servizio

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

Abilita l'avvio del servizio all'avvio e all'avvio

sudo systemctl enable --now containerd

# check status
sudo systemctl status containerd

Il servizio dovrebbe essere in esecuzione

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"

Inizializza il nodo principale

Abilita e avvia il servizio kubelet.

sudo systemctl enable --now kubelet

Estrarre le immagini del contenitore richieste:

sudo kubeadm config images pull

Imposta il nome DNS dell'endpoint del cluster o aggiungi il record a /etc/hosts file.

192.168.20.7 k8s.citizix.local

Crea cluster:

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

Quando ciò è fatto, il k8s dovrebbe essere attivo e funzionante. Ottieni il file admin di kubeconfig da questo percorso /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

Verifica lo stato del cluster:

kubectl cluster-info

Conferma che il nodo master è pronto:

kubectl get nodes -o wide

È possibile aggiungere ulteriori nodi Master utilizzando il comando nell'output dell'installazione:

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

Aggiungi nodi di lavoro

Con il piano di controllo pronto puoi aggiungere nodi di lavoro al cluster per l'esecuzione di carichi di lavoro pianificati.

Se l'indirizzo dell'endpoint non è in DNS, aggiungi il record a /etc/hosts.

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

Il comando join fornito viene utilizzato per aggiungere un nodo di lavoro al cluster.

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

Esegui il comando seguente sul piano di controllo per vedere se il nodo è entrato a far parte del cluster.

kubectl get nodes

Distribuisci l'applicazione sul cluster


Ubuntu
  1. Come configurare un cluster MongoDB utilizzando 3 nodi con Ubuntu 16?

  2. Come configurare MariaDB Galera Cluster su Ubuntu 20.04

  3. Imposta il cluster Kubernetes con Rancher

  4. Usare Ubuntu con una configurazione a due schermi?

  5. Come installare VSFTP su Ubuntu 20.04

Come configurare una VPN su Ubuntu

Come installare Kubernetes su Ubuntu 18.04 LTS

Come installare Kubernetes su Ubuntu 20.04 LTS

Come configurare Rsyslog su Ubuntu 20.04 LTS

Come installare Kubernetes su Ubuntu 18.04 LTS

Come installare Kubernetes su Ubuntu 18.04 Bionic Beaver