GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come installare Kubernetes su Ubuntu 20.04 Focal Fossa Linux

Kubernetes è il software leader nell'orchestrazione di container. Kubernetes funziona gestendo i cluster, che è semplicemente un insieme di host pensato per l'esecuzione di applicazioni containerizzate. Per avere un cluster Kubernetes, sono necessari almeno due nodi:un nodo master e un nodo di lavoro . Ovviamente puoi espandere il cluster aggiungendo tutti i nodi di lavoro di cui hai bisogno.

In questa guida, implementeremo un cluster Kubernetes composto da due nodi, entrambi con Ubuntu 20.04 Focal Fossa. Avere due nodi nel nostro cluster è la configurazione più semplice possibile, ma potrai ridimensionare tale configurazione e aggiungere più nodi se lo desideri.

In questo tutorial imparerai:

  • Come installare Docker
  • Come installare Kubernetes
  • Come configurare un nodo master e di lavoro
  • Come unire un nodo di lavoro a un cluster Kubernetes
  • Come distribuire Nginx (o qualsiasi app containerizzata) in un cluster Kubernetes

Distribuzione di Kubernetes su Ubuntu 20.04 Focal Fossa

Requisiti software e convenzioni della riga di comando Linux
Categoria Requisiti, convenzioni o versione del software utilizzata
Sistema Installato Ubuntu 20.04 o aggiornato Ubuntu 20.04 Focal Fossa
Software Kubernetes
Altro Accesso privilegiato al tuo sistema Linux come root o tramite sudo comando.
Convenzioni # – richiede che i comandi linux dati vengano eseguiti con i privilegi di root direttamente come utente root o usando sudo comando
$ – richiede che i comandi linux dati vengano eseguiti come un normale utente non privilegiato

Scenario

Prima di immergerci, stabiliamo i dettagli del nostro scenario. Come accennato in precedenza, il nostro cluster avrà due nodi ed entrambi eseguono Ubuntu 20.04 Focal Fossa. Uno sarà il nodo principale e può essere facilmente identificato con il suo nome host di kubernetes-master . Il secondo nodo sarà il nostro nodo di lavoro e avere un nome host di kubernetes-worker .

Il nodo master distribuirà un cluster Kubernetes e il nodo di lavoro si unirà semplicemente ad esso. Poiché i cluster Kubernetes sono progettati per eseguire software containerizzato, dopo aver avviato il nostro cluster, distribuiremo un container server Nginx come prova del concetto.

Installa Docker

Entrambi i nodi dovranno avere Docker installato su di essi, poiché Kubernetes si basa su di esso. Apri un terminale e digita i seguenti comandi sia sul master che sul nodo di lavoro per installare Docker:

$ sudo apt update
$ sudo apt install docker.io

Al termine dell'installazione di Docker, utilizzare i seguenti comandi per avviare il servizio e assicurarsi che si avvii automaticamente dopo ogni riavvio:

$ sudo systemctl start docker
$ sudo systemctl enable docker

Installa Kubernetes

Ora siamo pronti per installare Kubernetes. Proprio come tutti gli altri comandi fino a questo punto, assicurati di farlo su entrambi i nodi. Sul tuo master e worker Kubernetes, prima installa apt-transport-https pacchetto, che ci consentirà di utilizzare http e https nei repository di Ubuntu. Ora è anche un buon momento per installare curl poiché ne avremo bisogno tra un momento:

$ sudo apt install apt-transport-https curl

Quindi, aggiungi la chiave di firma Kubernetes a entrambi i sistemi:

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

Successivamente, aggiungeremo il repository del pacchetto Kubernetes. Nota che al momento della stesura di questo articolo, Ubuntu 16.04 Xenial Xerus è l'ultimo repository Kubernetes disponibile. Questo dovrebbe alla fine essere sostituito da Ubuntu 20.04 Focal Fossa e il seguente comando può quindi essere aggiornato da xenial a focal .

$ sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"

Ora possiamo installare Kubernetes:

$ sudo apt install kubeadm kubelet kubectl kubernetes-cni

Disabilita la memoria di scambio

Kubernetes si rifiuterà di funzionare se il tuo sistema utilizza la memoria di scambio. Prima di procedere oltre, assicurati che il master e il nodo di lavoro abbiano la memoria di scambio disabilitata con questo comando:

$ sudo swapoff -a

Quel comando disabiliterà la memoria di scambio fino al riavvio dei tuoi sistemi, quindi per rendere persistente questa modifica, usa nano o il tuo editor di testo preferito per aprire questo file:

$ sudo nano /etc/fstab

All'interno di questo file, commenta il /swapfile riga facendola precedere da un # simbolo, come si vede di seguito. Quindi, chiudi questo file e salva le modifiche.

Aggiungi # per commentare la riga del file di scambio

Imposta nomi host

Quindi, assicurati che tutti i tuoi nodi abbiano un nome host univoco. Nel nostro scenario, utilizziamo i nomi host kubernetes-master e kubernetes-worker per differenziare facilmente i nostri host e identificare i loro ruoli. Usa il seguente comando se hai bisogno di cambiare i tuoi nomi host:

$ sudo hostnamectl set-hostname kubernetes-master

E sul nodo di lavoro:

$ sudo hostnamectl set-hostname kubernetes-worker

Non noterai le modifiche al nome host nel terminale finché non ne aprirai uno nuovo. Infine, assicurati che tutti i tuoi nodi abbiano un'ora e una data precise, altrimenti avrai problemi con certificati TLS non validi.

Inizializza il server principale Kubernetes

Ora siamo pronti per inizializzare il nodo master Kubernetes. Per farlo, inserisci il seguente comando sul tuo nodo principale:

kubernetes-master:~$ sudo kubeadm init

Kubernetes su Ubuntu 20.04 master node è ora inizializzato

Il nodo master Kubernetes è stato inizializzato. L'output ci fornisce un kubeadm join comando che dovremo utilizzare in seguito per unire i nostri nodi di lavoro al nodo master. Quindi, prendi nota di questo comando per dopo.

L'output di cui sopra ci consiglia anche di eseguire diversi comandi come utente normale per iniziare a utilizzare il cluster Kubernetes. Esegui questi tre comandi sul nodo master:

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

Distribuire una rete pod

Il passaggio successivo consiste nel distribuire una rete pod. La rete pod viene utilizzata per la comunicazione tra host ed è necessaria per il corretto funzionamento del cluster Kubernetes. Per questo utilizzeremo la rete di pod Flannel. Emetti i seguenti due comandi sul nodo master:

kubernetes-master:~$ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
kubernetes-master:~$ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/k8s-manifests/kube-flannel-rbac.yml

A seconda dell'ambiente, potrebbero essere necessari solo pochi secondi o un minuto per attivare l'intera rete di flanella. Puoi usare il kubectl comando per confermare che tutto è pronto e pronto:

kubernetes-master:~$ kubectl get pods --all-namespaces

La rete pod è stata implementata correttamente

Quando tutta la colonna STATUS mostra "In esecuzione", è un'indicazione che tutto è terminato e che tutto è pronto per partire.

Unisciti al cluster Kubernetes

Ora il nostro cluster è pronto per l'unione dei nodi di lavoro. Usa kubeadm join comando recuperato in precedenza dall'output di inizializzazione del nodo master Kubernetes per unirsi al tuo cluster Kubernetes:

kubernetes-worker:~$ sudo kubeadm join 192.168.1.220:6443 --token 1exb8s.2t4k3b5syfc3jfmo --discovery-token-ca-cert-hash sha256:72ad481cee4918cf2314738419356c9a402fb609263adad48c13797d0cba2341

Unione del nodo di lavoro al cluster Kubernetes

Di nuovo sul tuo nodo master Kubernetes, conferma che kubernetes-worker fa ora parte del nostro cluster Kubernetes con questo comando:

kubernetes-master:~$ kubectl get nodes

Mostra quali nodi sono attualmente nel cluster Kubernetes

Distribuzione di un servizio sul cluster Kubernetes

Ora siamo pronti per distribuire un servizio nel cluster Kubernetes. Nel nostro esempio, implementeremo un server Nginx nel nostro nuovo cluster come prova del concetto. Esegui i seguenti due comandi sul tuo nodo principale:

kubernetes-master:~$ kubectl run --image=nginx nginx-server --port=80 --env="DOMAIN=cluster"
kubernetes-master:~$ kubectl expose deployment nginx-server --port=80 --name=nginx-http

Ora dovresti vedere un nuovo contenitore docker nginx distribuito sul tuo nodo di lavoro:

kubernetes-worker:~$ sudo docker ps

Il nuovo contenitore Docker Nginx è attivo e in esecuzione sul nodo di lavoro Kubernetes

Puoi visualizzare un elenco in esecuzione di tutti i servizi disponibili in esecuzione nel tuo cluster con il comando seguente, emesso dal nodo maser Kubernetes:

kubernetes-master:~$ kubectl get svc

Mostra quali servizi containerizzati sono in esecuzione nel cluster Kubernetes

Conclusione

In questo articolo, abbiamo imparato come configurare Kubernetes per distribuire applicazioni containerizzate su Ubuntu 20.04 Focal Fossa. Impostiamo un cluster di base composto da due host, un master e un worker, anche se questo può essere ridimensionato a molti più nodi di lavoro, se necessario.

Abbiamo visto come configurare Docker e altri prerequisiti, oltre a distribuire un server Nginx nel nostro nuovo cluster come prova del concetto. Naturalmente, questa stessa configurazione può essere utilizzata per distribuire un numero qualsiasi di applicazioni containerizzate.


Ubuntu
  1. Come installare docker-compose su Ubuntu 20.04 Focal Fossa Linux

  2. Come installare LaTex su Ubuntu 20.04 Focal Fossa Linux

  3. Come installare MATLAB su Ubuntu 20.04 Focal Fossa Linux

  4. Come installare i caratteri su Ubuntu 20.04 Focal Fossa Linux

  5. Come installare Telegram su Ubuntu 20.04 Focal Fossa Linux

Come installare TeamViewer su Ubuntu 20.04 Focal Fossa Linux

Come installare Minecraft su Ubuntu 20.04 Focal Fossa Linux

Come installare PlayOnLinux su Ubuntu 20.04 Focal Fossa Linux

Come installare CUDA su Ubuntu 20.04 Focal Fossa Linux

Come installare Steam su Ubuntu 20.04 Focal Fossa Linux

Come installare Discord su Ubuntu 20.04 Focal Fossa Linux