In questo articolo vedremo come configurare un cluster Kubernetes con 2 nodi di lavoro e 1 nodo master su server LTS Ubuntu 18.04. Utilizzeremo "kubeadm " strumento per configurare il cluster. Kubeadm è uno strumento creato per fornire "kubeadm init " e "kubeadm unirsi " per la creazione di cluster Kubernetes. Prima di procedere con la creazione del cluster, comprendiamo in breve alcuni termini.
- Docker:
Docker è una piattaforma aperta per lo sviluppo, la spedizione e l'esecuzione di applicazioni. Docker ti consente di separare le tue applicazioni dalla tua infrastruttura in modo da poter distribuire rapidamente il software. Con Docker puoi gestire la tua infrastruttura nello stesso modo in cui gestisci le tue applicazioni. - Immagine:
Un'immagine è un modello di sola lettura con istruzioni per la creazione di un contenitore Docker. Spesso un'immagine si basa su un'altra immagine, con alcune personalizzazioni aggiuntive - Contenitore:
Un contenitore è un'istanza eseguibile di un'immagine. Puoi creare, avviare, interrompere, spostare o eliminare un container utilizzando l'API Docker o la CLI. Puoi connettere un container a una o più reti, allegarvi spazio di archiviazione o persino creare una nuova immagine in base al suo stato attuale. - Kubernetes:
Kubernetes è un sistema di orchestrazione di container open source per automatizzare la distribuzione, la scalabilità e la gestione delle applicazioni. - Nodi:
Un nodo rappresenta una singola macchina nel cluster.
- Cuscini:
A è un gruppo di contenitori distribuiti insieme sullo stesso host. È l'unità di esecuzione di base di un Kubernetes applicazione. - Distribuzioni:
Una implementazione esegue più repliche dell'applicazione e sostituisce automaticamente tutte le istanze che hanno esito negativo o che non rispondono. Fornisce aggiornamenti dichiarativi per Pod e ReplicaSet. - Set di repliche:
Garantisce quante repliche di un pod devono essere in esecuzione. Può essere considerato un sostituto del controller di replica.
- Controllore della replica:
È un supervisore per pod di lunga durata. Avvierà un numero specifico di pod chiamati repliche e farà in modo che continuino a funzionare tutto il tempo.
- Servizio:
È un'astrazione che definisce un insieme logico di Pod e una politica per accedervi.
API Server, etcd, Controller Manager e Schedule, sono i componenti di Master e Docker, Kubelet Service e Kubernetes Proxy Service sono i componenti di Worker Node. Non discuteremo di questi componenti in questo documento. Se vuoi conoscere questi componenti, puoi visitare la pagina ufficiale di Kubernetes qui.
Prerequisiti
- 3 Server Ubuntu 18.04 con minimo 2 GB di RAM e 2 CPU.
- Un utente di sistema con accesso "sudo" su ciascun server.
Cosa faremo
- Configura un cluster Kubernetes con kubeadm
Configura un cluster Kubernetes con kubeadm
Ecco,
Abbiamo 3 server LTS Ubuntu 18.04.
Server 1=nodo1
Server 2=nodo2
Server 3=master
Prima di procedere con l'installazione vera e propria, cambiamo il nome host dei server.
Puoi utilizzare i seguenti comandi per impostare un nome host su ciascun server. Dopo aver eseguito i seguenti comandi su ciascun server, accedi nuovamente ai server in modo che i server ottengano un nuovo nome host.
sudo hostnamectl set-hostname "master"
sudo hostnamectl set-hostname "node1"
sudo hostnamectl set-hostname "node2"
Segui i passaggi indicati di seguito per visualizzare il cluster Kubernets funzionante.
Ottieni la chiave gpg Docker (Esegui il seguente comando su Tutti i nodi) :
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Aggiungi il repository Docker(Esegui il comando seguente su Tutti i nodi ) :
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
Ottieni la chiave gpg di Kubernetes(Esegui il comando seguente su tutti i nodi ) :
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
Aggiungi il repository Kubernetes(Esegui il comando seguente su tutti i nodi ) :
gatto <deb https://apt.kubernetes.io/kubernetes-xenial main
EOF
Aggiorna i tuoi pacchetti(Esegui il seguente comando su Tutti i nodi ) :
sudo apt-get update
Installa Docker, kubelet, kubeadm e kubectl(Esegui il comando seguente su tutti i nodi ) :
sudo apt-get install -y docker-ce=18.06.1~ce~3-0~ubuntu kubelet=1.15.7-00 kubeadm=1.15.7-00 kubectl=1.15.7-00
Mantienili alla versione corrente(Esegui il comando seguente su Tutti i nodi ) :
sudo apt-mark hold docker-ce kubelet kubeadm kubectl
Aggiungi la regola iptables a sysctl.conf (Esegui il comando seguente su tutti i nodi ) :
eco "net.bridge.bridge-nf-call-iptables=1" | sudo tee -a /etc/sysctl.conf
Abilita iptables immediatamente(Esegui il seguente comando su Tutti i nodi :
sudo sysctl -p
Sul maestro :
Inizializza il cluster (Esegui il comando seguente solo sul nodo Master) :
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
Configura kubeconfig locale(Esegui il comando seguente solo sul nodo Master ) :
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Apply Flannel CNI network overlay(Esegui il comando seguente solo sul nodo Master ) :
sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
Su Nodo 1 e Nodo 2:
Unisci i nodi di lavoro al cluster (Esegui il comando seguente solo su Nodo1 e Nodo2) :
sudo kubeadm join 172.31.4.161:6443 --token 0y52t6.ffsj8jkjfcl1sq8h \
--discovery-token-ca-cert-hash sha256:7aa1825042d19d3e567f7e4b447634e942fe9ed7f4ed9f7854
Verifica che i nodi di lavoro siano entrati correttamente nel clusterEsegui il seguente comando sul nodo principale ) :
kubectl ottiene nodi
Conclusione:
In questo articolo, abbiamo imparato a configurare un cluster Kubernetes con lo strumento kubeadm. Abbiamo visto con quanta facilità è possibile creare un cluster se non si saltano i passaggi e si esegue una corretta installazione.