GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come installare Kubernetes su un server Bare Metal

Introduzione

La distribuzione dei container e l'orchestrazione di Kubernetes sono estremamente potenti se distribuiti in ambienti virtuali. La flessibilità e le capacità di scalabilità offrono infinite opportunità.

Perché quindi aggiungere un server fisico single-tenant al cluster? È noto che le macchine virtuali creano problemi di latenza per applicazioni specifiche. L'accesso diretto all'hardware può essere una soluzione a questo problema, soprattutto con la possibilità di aggiungere acceleratori hardware (GPU).

Gli sviluppi nell'apprendimento automatico e nell'intelligenza artificiale stanno guidando le organizzazioni verso l'implementazione di cluster Kubernetes su macchine virtuali e server Bare Metal.

Questo tutorial mostra come implementare i concetti discussi nel nostro precedente articolo sull'architettura Kubernetes.

Segui i passaggi descritti e scopri come installare Kubernetes su un server Bare Metal.

Prerequisiti

  • Server Linux multipli
  • Un account utente su ogni sistema con sudo o privilegi di root
  • Accesso alla riga di comando/finestra del terminale
  • L' apt gestore di pacchetti (Debian 10)

Prepara il server Bare Metal per l'installazione di Kubernetes

Kubernetes è uno strumento di orchestrazione altamente automatizzato. Comunica tra i nodi e adotta misure per replicare i pod ogni volta che lo stato corrente dei cluster non corrisponde allo stato desiderato.

Per facilitare questo processo, la comunicazione tra i nodi deve essere libera. Ogni nodo deve essere configurato, in modo che le impostazioni di sicurezza standard non interferiscano con le linee di comunicazione.

Le impostazioni variano a seconda della distribuzione e devono essere applicate a ogni nodo all'interno di un cluster. In questo esempio, l'installazione viene eseguita utilizzando Debian 10.

Se stai utilizzando un'altra distribuzione, visita il nostro tutorial su come installare Kubernetes su un sistema CentOS 7 o Ubuntu 18.04.

Passaggio 1:disabilita SWAP

I pod Kubernetes sono progettati per utilizzare completamente i limiti della CPU. Il kubelet non è progettato per utilizzare la memoria SWAP e, pertanto, deve essere disabilitato. Immettere il seguente comando nella finestra del terminale per disabilitare SWAP:

sudo swapoff -a

Passaggio 2:risolvi nftables Problema di compatibilità back-end

L'attuale kubeadm i pacchetti non sono compatibili con nftables back-end. Per evitare problemi, cambia gli strumenti di iptables nella loro modalità legacy:

sudo update-alternatives --set iptables /usr/sbin/iptables-legacy
sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
sudo update-alternatives --set arptables /usr/sbin/arptables-legacy
sudo update-alternatives --set ebtables /usr/sbin/ebtables-legacy

Fase 3:Configura Firewall

Le impostazioni del firewall devono essere modificate per consentire la comunicazione tra i pod all'interno di un cluster. In questo esempio, abbiamo modificato le porte utilizzando ufw .

Per farlo, digita i seguenti comandi sul tuo Master Node:

sudo ufw allow 6443/tcp
sudo ufw allow 2379/tcp
sudo ufw allow 2380/tcp
sudo ufw allow 10250/tcp
sudo ufw allow 10251/tcp
sudo ufw allow 10252/tcp
sudo ufw allow 10255/tcp
sudo ufw reload

Inoltre, queste porte devono essere aperte su ciascun nodo di lavoro:

sudo ufw allow 10251/tcp
sudo ufw allow 10255/tcp
sudo ufw reload

Passaggio 4:installa Docker

Un software di runtime del contenitore gestisce le immagini del contenitore sui nodi. Senza di essa, Kubernetes non può accedere alle librerie di immagini ed eseguire le applicazioni all'interno dei contenitori. A questo scopo, installeremo Docker.
Installa Docker su tutti i nodi Master e Worker che partecipano al tuo cluster. Ciò significa che devi ripetere questo processo a turno su ciascun nodo.

Accedi alla tua interfaccia della riga di comando. Il comando seguente aggiorna i repository Debian e installa i pacchetti. Consente inoltre al tuo sistema di utilizzare i repository su un protocollo sicuro, HTTPS:

sudo apt-get update && apt-get install apt-transport-https ca-certificates curl software-properties-common

Ora recupera e aggiungi la chiave GPG ufficiale di Docker digitando:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add –

L'output conferma che l'azione è stata completata.

Abbiamo aggiunto la chiave GPG e ora possiamo procedere con l'aggiunta del repository apt di Docker:

sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \ 
stable"

Non dimenticare di aggiornare i tuoi repository:

sudo apt-get update

Il sistema è ora pronto per l'installazione di Docker CE.

Installa Docker usando il seguente comando:

sudo apt-get install docker-ce

Verifica se il servizio è attivo con:

docker -v

La riga di comando conferma che il servizio è attivo.

Verifica se il servizio funziona correttamente richiamando un'immagine:

sudo docker run hello-world

Ora hai ricevuto la conferma che Docker funziona correttamente.

Fase 5:cambia il cgroup-driver

Assicurati che sia docker-ce che Kubernetes utilizzino lo stesso 'cgroup'.

Controlla il cgroup della finestra mobile corrente:

sudo docker info | grep -i cgroup

Il risultato seguente conferma che Docker sta utilizzando "cgroupfs" come cgroup-driver.

Se necessario, cambia il cgroup-driver di Kubernetes in 'cgroupfs' digitando:

cat > /etc/docker/daemon.json <<EOF
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
EOF

Ricarica il sistema systemd e riavvia il servizio kubelet.

systemctl daemon-reload
systemctl restart kubelet

Abbiamo selezionato e installato un software container runtime, in questo caso Docker. La prossima sezione spiega come installare Kubernetes e gli strumenti necessari per gestire Kubernetes.

Installa Kubernetes su Bare Metal Server

Passaggio 1:scarica i repository Kubernetes

Scarica Kubernetes e aggiungi una chiave di firma per assicurarti che il software sia autentico:

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

Riceviamo conferma che il pacchetto è disponibile.

Kubernetes non è nei repository predefiniti. Per aggiungerli, immetti il ​​seguente comando su ciascun nodo del cluster:

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

Fase 2:installa kubelet, kubeadm e kubectl

Per poter amministrare Kubernetes, dobbiamo installare kubectl , un'utilità utilizzata per inviare comandi al cluster. Dobbiamo anche installare kubelet poiché è essenziale per la distribuzione e il controllo dei pod all'interno di un cluster. Kubeadm è il programma che inizializza Kubernetes durante l'avvio. Per installare questi 3 strumenti essenziali, inserisci i seguenti comandi:

sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl

Il kubelet ora si riavvia ogni pochi secondi, mentre attende in un ciclo di arresto anomalo kubeadm per dirgli cosa fare.

Fase 3:inizializza Kubernetes sul nodo principale

Immettere il seguente comando sul nodo master:

sudo kubeadm init --pod-network-cidr=10.244.0.0/16

Potrebbero essere necessari diversi minuti prima che l'output confermi che il cluster è attivo:

Una volta che il sistema ha completato l'azione, viene visualizzato un partecipazione a kubeadm Messaggio. Prendere nota dell'intera voce. Ti servirà per unire i nodi di lavoro al cluster.

Fase 4:crea una directory per il cluster Kubernetes

Fai funzionare kubectl per il tuo utente non root, eseguendo questi comandi, che fanno anche parte di kubeadm init uscita:

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

Fase 5:Componente aggiuntivo Pod Network (flanella)

Installa un componente aggiuntivo di rete pod in modo che i tuoi pod possano comunicare in modo efficace. Flannel è una rete overlay compatibile con Kubernetes. Per installare Flannel digita:

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

Passaggio 6:unisci il nodo di lavoro al cluster

Inserisci il kubeadm join comando su ciascun nodo di lavoro. La chiave che hai annotato dal passaggio 3 , connette ogni nodo al cluster:

kubeadm join 10.0.2.15:6443 –token sv3ckz.fk2yooy92ieins26  \
--discovery-token-ca-cert-hash sha256:39d4a6ecc4a526b4aaff2594b469d43691fb7468688668f55d2a37690codo7fe

Attendi qualche minuto e controlla lo stato dei nodi.

Passa al server principale e inserisci:

kubectl get nodes

Il sistema visualizza quindi i nodi di lavoro a cui ti sei unito al cluster.


Ubuntu
  1. Come installare RabbitMQ Server su Ubuntu 18.04 e 16.04 LTS

  2. Come installare Gitlab Server su Ubuntu 18.04 e 16.04 LTS

  3. Come installare MsSQL Server 2019 su Ubuntu 20.04

  4. Come installare Ansible su Ubuntu Server 21.04

  5. Come installo Pdftk sul mio server?

Come installare CouchPotato su Ubuntu Server/Desktop

Come installare Kubernetes su CentOS 8

Come installare Kubernetes su Ubuntu 18.04 LTS

Come installare il server LAMP su Linux Mint 19

Come installare Kubernetes su Ubuntu 20.04 LTS

Come installare il server Minecraft su Ubuntu 20.04