GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come installare Kubernetes su Ubuntu 20.04

I container sono una buona scelta per raggruppare ed eseguire le nostre applicazioni. Quando il numero dei contenitori aumenta rapidamente ed è necessario gestirli in modo conveniente. Questo è il motivo per cui arriva Kubernetes. Kubernetes (K8s) è un sistema open source per automatizzare la distribuzione, la scalabilità e la gestione di applicazioni e servizi containerizzati.

Il cluster Kubernetes contiene nodi master e di lavoro. Il nodo master controlla e gestisce un gruppo di nodi di lavoro. Puoi avere più nodi master per i cluster ad alta disponibilità.

Questo tutorial mostra come installare un cluster Kubernetes con kubeadm su Ubuntu 20.04.

Preparazione dell'ambiente

  • Utilizza 2 host Linux con Ubuntu 20.04

Impostazione di indirizzi IP statici per il nodo Master e il nodo di lavoro

- Nodo principale:192.168.1.11
- Nodo di lavoro:192.168.1.12

  • Configura il nome host per ogni macchina

Useremo il nodo 1 come master e il nodo 2 come nodo di lavoro.

$ sudo hostnamectl set-hostname node-1
$ sudo hostnamectl set-hostname node-2
  • Disabilita la memoria di scambio su ogni nodo Ubuntu
$ sudo swapoff -a

Aggiungi repository Kubernetes

Kubernetes non è disponibile nel repository predefinito di Ubuntu, quindi devi aggiungerlo manualmente.

Sul nodo Master e Worker eseguire le seguenti operazioni:

Aggiunta della chiave di firma Kubernetes come segue:

$ sudo -i
# curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -

Quindi, aggiungi il repository Kubernetes, esegui:

$ echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" >> ~/kubernetes.list
$ sudo mv ~/kubernetes.list /etc/apt/sources.list.d
$ sudo apt update

Installazione degli strumenti Kubernetes

In questa sezione installeremo Kubeadm, cri-o, Kubelet e Kubernetes-cni. Tutti questi strumenti devono essere installati su sia nodi master che nodi di lavoro .

Assicurati di installare la versione consigliata e supportata. Qui stiamo installando la versione 1.18 di Kubernetes e crio.

Installa Kubeadm

Kubeadm è uno strumento che fa parte del progetto Kubernetes che aiuta a inizializzare il cluster Kubernetes.

In questo tutorial, installeremo kubeadm versione 1.18.0-00, digita:

$ sudo apt install -y kubeadm=1.18.0-00 --allow-unauthenticated

Nota :puoi trovare la versione specifica con il seguente comando:

$ curl -s https://packages.cloud.google.com/apt/dists/kubernetes-xenial/main/binary-amd64/Packages | grep Version | awk '{print $2}'

Installa Kubectl

Kubectl è lo strumento da riga di comando di Kubernetes. Ti consente di eseguire comandi nei cluster Kubernetes. Puoi utilizzare kubectl per distribuire applicazioni, gestire le risorse del cluster e visualizzare i log.

Installa kubectl v1.18.0-00 con il seguente comando:

$ sudo apt install -y kubectl=1.18.0-00 --allow-unauthenticated

Installa CRI-O

CRI-O è un'interfaccia di runtime del contenitore (CRI) conforme a OCI. Il runtime più comunemente usato è Docker. Dal rilascio di Kubernetes 1.20, lo shim dell'interfaccia di runtime del contenitore (CRI) per Docker è stato ritirato. Docker produce immagini che non sono un'immagine OCI (Open Container Initiative).

Dovremmo usare il runtime del contenitore conforme a OCI per estrarre ed eseguire immagini OCI, soprattutto se utilizzi servizi Kubernetes come GKE, EKS o AKS.

Puoi ancora usare docker, quindi installare usando sudo apt-get install docker.io

Qui userò cri-o che è un runtime conforme. Mantieni la versione cri-o corrispondente alla versione Kubernetes.

Assicurati di installare la versione supportata.

Per prima cosa, usa modprobe comando per caricare l'overlay e br_netfilter moduli su entrambi i nodi Master e Worker:

$ sudo modprobe overlay
$ sudo modprobe br_netfilter

Quindi, crea un file di configurazione sysctl per abilitare l'inoltro IP e le impostazioni di netfilter durante i riavvii inserendo le seguenti righe in /etc/sysctl.d/99-kubernetes-cri.conf file sul nodo Master e Worker:

net.bridge.bridge-nf-call-iptables  = 1
net.ipv4.ip_forward                 = 1
net.bridge.bridge-nf-call-ip6tables = 1

Applicare il file di configurazione eseguendo:

$ sudo sysctl --system

Ora specifichiamo il sistema operativo Ubuntu e la versione cri-o come segue:

$ sudo -i
# export OS=xUbuntu_20.04
# export VERSION=1.18

Quindi esegui i seguenti comandi come root utente:

# echo "deb https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/$OS/ /" > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list
# echo "deb http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/$VERSION/$OS/ /" > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable:cri-o:$VERSION.list

# curl -L https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable:cri-o:$VERSION/$OS/Release.key | apt-key add -
# curl -L https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/$OS/Release.key | apt-key add -

# apt update
# apt install cri-o cri-o-runc

Al termine dell'installazione, il conmon È stata installata l'utilità (Monitoraggio del contenitore). Trova il percorso di conmon:

$ which conmon

/usr/bin/conmon

Modifica il /etc/crio/crio.conf file come segue:

...
# Path to the conmon binary, used for monitoring the OCI runtime.
conmon = "/usr/bin/conmon"         #<-- Edit this line. Around line 108

...

registries = [                     #<-- Edit and add registries. Around line 351
        "docker.io",
        "quay.io",
]
....

Abilita il cri-o e assicurati che sia in esecuzione:

$ sudo systemctl daemon-reload
$ sudo systemctl enable crio
$ sudo systemctl start crio
$ sudo systemctl status crio

Uscita:

● crio.service - Container Runtime Interface for OCI (CRI-O)
   Loaded: loaded (/usr/lib/systemd/system/crio.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2020-12-10 15:46:37 UTC; 3 days ago
     Docs: https://github.com/cri-o/cri-o
...

Installa Kubelet

Kubelet è un agente in esecuzione su ogni nodo ed è responsabile della comunicazione con il server API sul nodo master e della guida del runtime del contenitore per avviare i carichi di lavoro.

Configura kubelet per capire come interagire con cri-o inserendo la seguente riga in /etc/default/kubelet file:

KUBELET_EXTRA_ARGS=--feature-gates="AllAlpha=false,RunAsGroup=true" --container-runtime=remote --cgroup-driver=systemd --container-runtime-endpoint='unix:///var/run/crio/crio.sock' --runtime-request-timeout=5m

Su entrambi i nodi Master e Worker, esegui il comando seguente per installare kubelet :

$ sudo apt install -y kubelet=1.18.0-00 --allow-unauthenticated

Installa Kubernetes-cni

Per abilitare la rete di container nel cluster, dobbiamo installare kubernetes-cni .

Esegui il seguente comando:

$ sudo apt-get install -y kubernetes-cni --allow-unauthenticated

Distribuzione del cluster Kubernetes

La distribuzione del cluster Kubernetes prevede 2 passaggi. Il primo passaggio consiste nell'inizializzazione del nodo master e il secondo passaggio consiste nell'unire il nodo di lavoro al cluster.

Inizializza il nodo principale

Per inizializzare Kubernetes su nodo principale , digita:

$ sudo kubeadm init --apiserver-advertise-address=192.168.1.11 --pod-network-cidr=10.244.0.0/16

Ci vorranno alcuni minuti per finire. Una volta completata l'inizializzazione, il terminale visualizzerà l'output come segue:

Prendi nota della riga per unirti al cluster contrassegnato sopra, la utilizzerà nel passaggio successivo per unire il nodo di lavoro al cluster.

Ora, esegui il seguente comando per creare la directory di configurazione di Kubernetes sul nodo principale:

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

Quindi, distribuisci una rete pod nel cluster:

$ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

Verifica che tutti i componenti del piano di controllo siano stati installati correttamente:

$ kubectl get pod --all-namespaces

Unisci il nodo di lavoro al cluster

Ora accedi al nodo di lavoro e unisci il nodo di lavoro al cluster.

Sulla macchina del nodo di lavoro, esegui il comando seguente:

$ sudo kubeadm join 192.168.1.11:6443 --token 9ii02d.nsmrmu1asascv2yg \
    --discovery-token-ca-cert-hash sha256:1104bf70b03a2d030ffc0a462f9dbcbcdd9975393e9a9ac2a1f18500f1b6b74e

Al termine del processo di unione, torna al nodo principale ed esegui:

$ kubectl get node
NAME     STATUS   ROLES    AGE     VERSION
node-1   Ready    master   2m37s   v1.18.0
node-2   Ready    none     22s     v1.18.0

Per ottenere maggiori informazioni sul nodo, digita:

$ kubectl get node -owide
NAME     STATUS   ROLES    AGE   VERSION   INTERNAL-IP   EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION   CONTAINER-RUNTIME
node-1   Ready    master   9h    v1.18.0   10.2.0.4              Ubuntu 20.04.1 LTS   5.4.0-1029-gcp   cri-o://1.18.4
node-2   Ready    none     9h    v1.18.0   10.2.0.5              Ubuntu 20.04.1 LTS   5.4.0-1029-gcp   cri-o://1.18.4

Gli output mostrano i dettagli del nodo master e dei nodi che si sono uniti al cluster.

Leggi anche:Come installare Kubernetes in locale utilizzando Vagrant/Minikube

Conclusione

Poiché la containerizzazione sta diventando popolare, la necessità di gestire carichi di lavoro e servizi containerizzati rende Kubernetes così popolare. Tutti i principali provider di servizi cloud hanno iniziato a supportare Kubernetes gestito, il che semplifica la vita.

Kubernetes è completamente gratuito e può essere scaricato in qualsiasi momento dal suo repository. Spero ti sia piaciuto installare Kubernetes su Ubuntu. Puoi provare a distribuire applicazioni come MySQL o WordPress sul cluster K8.

Grazie per aver letto e per favore lascia il tuo suggerimento nella sezione commenti qui sotto.


Ubuntu
  1. Come installare Odoo su Ubuntu

  2. Come installare Maven su Ubuntu

  3. Come installare Wine su Ubuntu

  4. Come installare R su Ubuntu 16.04

  5. Come installare Vai su Ubuntu 18.04

Come installare qt su Ubuntu 20.04

Come installare Kubernetes minikube su Ubuntu 20.04

Come installare Kubernetes su Ubuntu 18.04 LTS

Come installare Kubernetes su Ubuntu 20.04 LTS

Come installare Go in Ubuntu 20.04

Come installare Vai su Ubuntu 22.04