GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come installare e configurare Kubernetes (k8s) su Ubuntu 18.04 LTS

Kubernetes è uno strumento di orchestrazione di container gratuito e open source. Viene utilizzato per distribuire automaticamente applicazioni basate su container in un ambiente cluster, oltre a questo viene anche utilizzato per gestire contenitori Docker tra gli host del cluster kubernetes. Kubernetes è anche conosciuto come K8s .

In questo articolo mostrerò come installare e configurare due nodi Kubernetes (1.13) utilizzando kubeadm su sistemi Ubuntu 18.04 / 18.10. Di seguito sono riportati i dettagli della configurazione del mio laboratorio:

Userò tre sistemi Ubuntu 18.04 LTS, in cui un sistema fungerà da Kubernetes Master Node e gli altri due nodi fungeranno da Slave nod e e si unirà al cluster Kubernetes. Presumo che su questi tre sistemi sia installato un minimo 18.04 LTS.

  • Kubernetes Master Node – (Nome host:k8s-master, IP:192.168.1.70, OS:Ubuntu 18.04 LTS minimo)
  • Kubernetes Slave Node 1 – (Nome host:k8s-worker-node1, IP:192.168.1.80 , OS:Ubuntu 18.04 LTS minimo)
  • Kubernetes Slave Node 2 – (Nome host:k8s-worker-node2, IP:192.168.1.90 , OS:Ubuntu 18.04 LTS minimo)

Nota: Il nodo slave Kubernetes è anche noto come nodo di lavoro

Passiamo ai passaggi di installazione e configurazione di k8s.

Passaggio:1) Imposta il nome host e aggiorna il file host

Accedi al nodo master e configura il suo nome host usando il comando hostnamectl

[email protetta]:~$ sudo hostnamectl set-hostname "k8s-master"[email protetta]:~$ exec bash[email protetta]:~$

Accedi ai nodi Slave/Worker e configura il loro nome host rispettivamente usando il comando hostnamectl,

[email protetta]:~$ sudo hostnamectl set-hostname k8s-worker-node1[email protetta]:~$ exec bash[email protetta]:~$[email protetta]:~$ sudo hostnamectl set-hostname k8s- worker-node2[email protetta]:~$ exec bash[email protetta]:~$

Aggiungi le seguenti righe nel file /etc/hosts su tutti e tre i sistemi,

192.168.1.70     k8s-master192.168.1.80     k8s-worker-node1192.168.1.90     k8s-worker-node2

Passaggio:2) Installa e avvia il servizio Docker sui nodi master e slave

Esegui il comando apt-get di seguito per installare Docker sul nodo Master,

[email protetta]:~$ sudo apt-get install docker.io -y

Esegui il comando apt-get di seguito per installare la finestra mobile sui nodi slave,

[email protetta]:~$ sudo apt-get install docker.io -y[email protetta]:~$ sudo apt-get install docker.io -y

Una volta installati i pacchetti Docker su tutti e tre i sistemi, avvia e abilita il servizio Docker utilizzando i comandi systemctl sottostanti, questi comandi devono essere eseguiti sui nodi master e slave.

~$ sudo systemctl start docker~$ sudo systemctl enable dockerSincronizzazione dello stato di docker.service con lo script del servizio SysV con /lib/systemd/systemd-sysv-install.Esecuzione:/lib/systemd/systemd-sysv-install enable docker ~$

Utilizza il comando Docker sottostante per verificare quale versione Docker è stata installata su questi sistemi,

~$ docker --versionDocker versione 18.06.1-ce, build e68fc7a~$

Passaggio:3) Configura il repository dei pacchetti Kubernetes sui nodi Master e Slave

Nota: Tutti i comandi in questo passaggio sono obbligatori per l'esecuzione su nodi master e slave

Installiamo prima alcuni pacchetti richiesti, eseguiamo i seguenti comandi su tutti i nodi incluso il nodo master

~$ sudo apt-get install apt-transport-https curl -y

Ora aggiungi la chiave del repository del pacchetto Kubernetes usando il seguente comando,

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

Ora configura il repository Kubernetes usando i seguenti comandi apt, in questo momento il repository del pacchetto Kubernetes di Ubuntu 18.04 (tessitore bionico) non è disponibile, quindi useremo il repository del pacchetto Xenial Kubernetes.

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

Passaggio:4) Disabilita Swap e installa Kubeadm su tutti i nodi

Nota: Tutti i comandi in questo passaggio sono obbligatori per l'esecuzione su nodi master e slave

Kubeadm è uno dei metodi più comuni utilizzati per distribuire il cluster kubernetes o, in altre parole, possiamo dire che è stato utilizzato per distribuire più nodi su un cluster kubernetes.

Secondo il sito Web ufficiale di Kubernetes, si consiglia di disabilitare lo scambio su tutti i nodi incluso il nodo master.

Esegui il comando seguente per disabilitare lo scambio temporaneo,

:~$ sudo swapoff -a

Per disabilitare lo scambio permanente, commentare il file di scambio o la voce di partizione di scambio nel file /etc/fstab.

Ora installa il pacchetto Kubeadm su tutti i nodi incluso il master.

:~$ sudo apt-get install kubeadm -y

Una volta che i pacchetti kubeadm sono stati installati correttamente, verifica la versione di kubeadm usando il comando sotto.

:~$ kubeadm versionkubeadm version:&version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.2", GitCommit:"cff46ab41ff0bb44d8584413b598ad8360ec1def", GitTreeState:"clean", BuildDate:"2019 -01-10T23:33:30Z", GoVersion:"go1.11.4", Compilatore:"gc", Piattaforma:"linux/amd64"}:~$

Passaggio:5) Inizializza e avvia il cluster Kubernetes sul nodo principale utilizzando Kubeadm

Usa il comando kubeadm seguente sul nodo principale solo per inizializzare Kubernetes

[email protetta]:~$ sudo kubeadm init --pod-network-cidr=172.168.10.0/24

Nel comando precedente puoi utilizzare la stessa rete di pod o scegliere la tua rete di pod adatta al tuo ambiente. Una volta che il comando è stato eseguito correttamente, otterremo l'output qualcosa come di seguito,

L'output sopra conferma che il nodo master è stato inizializzato correttamente, quindi per avviare il cluster esegui i comandi sotto uno dopo l'altro,

[e-mail protetta]:~$  mkdir -p $HOME/.kube[e-mail protetta]:~$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config[e-mail protetta]:~ $ sudo chown $(id -u):$(id -g) $HOME/.kube/config[email protetta]:~$

Verifica lo stato del nodo master usando il comando seguente,

[email protected]:~$ kubectl get nodesNAME         STATUS     ROLES    AGE   VERSIONk8s-master   NotReady   master   18m   v1.13.2[email protected]:~$

Come possiamo vedere nell'output del comando precedente, il nostro nodo master non è pronto perché al momento non abbiamo distribuito alcun pod.

Distribuiamo la rete pod, la rete Pod è la rete attraverso la quale i nostri nodi cluster comunicheranno tra loro. Distribuiremo Flannel come nostra rete pod, Flannel fornirà la rete overlay tra i nodi del cluster.

Passaggio:6) Distribuisci Flannel come Pod Network dal nodo Master e verifica gli spazi dei nomi dei pod

Esegui il seguente kubectl comando per distribuire la rete pod dal nodo master

[email protetta]:~$ sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

L'output del comando sopra dovrebbe essere qualcosa come sotto

clusterrole.rbac.authorization.k8s.io/flannel createclusterrolebinding.rbac.authorization.k8s.io/flannel createserviceaccount/flannel createconfigmap/kube-flannel-cfg createdaemonset.extensions/kube-flannel-ds-amd64 createdaemonset.extensions/ kube-flannel-ds-arm64 createdaemonset.extensions/kube-flannel-ds-arm createdaemonset.extensions/kube-flannel-ds-ppc64le createdaemonset.extensions/kube-flannel-ds-s390x create[email protected]:~$

Ora verifica lo stato del nodo master e gli spazi dei nomi del pod usando il comando kubectl,

[email protected]:~$ sudo  kubectl get nodesNAME         STATUS   RUOLI    AGE   VERSIONk8s-master   Ready    master   78m   v1.13.2[email protected]:~$[email protected]:~$ sudo  kubectl get pods --all-namespacesNAMESPACE     NAME READY STATUS riavvio AGEkube sistema coredns-86c58d9df4-px4sj 1/1 attive 0 79mkube sistema coredns-86c58d9df4-wzdzk 1/1 Esecuzione 0 79mkube-system etcd-K8S-master 1/1 Esecuzione 1 79mkube sistema Kube-apiserver-K8S -Master 1/1 in esecuzione 1 79mkube-system kube-confroller-manager-k8s-master 1/1 in esecuzione 1 79mkube system kube-flannel -s-amd64-9tn8z 1/1 in esecuzione 0 14mkube system kube-proxy-cjzz2 1 /1     In esecuzione   1          79mkube-system   kube-scheduler-k8s-master            1/1     In esecuzione   1          79m[email protected]:~$

Come possiamo vedere nell'output sopra, il nostro stato del nodo master è cambiato in "Pronto " e tutti gli spazi dei nomi del pod sono in esecuzione, quindi questo conferma che il nostro nodo master è in stato di integrità e pronto per formare un cluster.

Passaggio:7) Aggiungi nodi slave o di lavoro al cluster

Nota: Nel passaggio 5, output del comando kubeadm abbiamo ottenuto il comando completo che dovremo utilizzare su slave o nodo di lavoro per unirci a un cluster

Accedi al primo nodo slave (k8s-worker-node1) ed esegui il comando seguente per unirti al cluster,

[email protetta]:~$ sudo kubeadm join 192.168.1.70:6443 --token cwxswk.hbkuu4jua82o80d1 --discovery-token-ca-cert-hash sha256:ff1b0cfe5aec94f90a42bdb45d2b8bfde34006017c0e93f>36c0e3f30 

L'output del comando precedente dovrebbe essere qualcosa del genere,

Allo stesso modo, esegui lo stesso comando kubeadm join sul secondo nodo di lavoro,

[email protetta]:~$ sudo kubeadm join 192.168.1.70:6443 --token cwxswk.hbkuu4jua82o80d1 --discovery-token-ca-cert-hash sha256:ff1b0cfe5aec94f90a42bdb45d2b8bfde34006017c0e93f>36c0e3f30 

L'output di sopra dovrebbe essere qualcosa come sotto,

Ora vai al nodo master ed esegui il comando seguente per controllare lo stato del nodo master e slave

 [Email Protected]:~ $ kubectl Ottieni ruoli di stato nodesName Age versionek8s-Master Ready Master 100m v1.13.2k8s-worker-node1 ready  10m v1.13.2k8s-worker-node2 pronto  4m6s v1. 13.2[email protetta]:~$

Il comando sopra conferma che abbiamo aggiunto correttamente i nostri due nodi di lavoro nel cluster e il loro stato è Pronto. Ciò conclude che abbiamo installato e configurato correttamente il cluster Kubernetes a due nodi sui sistemi Ubuntu 18.04.

Ulteriori informazioni su:Distribuire pod, controller di replica e servizio in Kubernetes


Ubuntu
  1. Come installare e configurare Redis su Ubuntu 18.04

  2. Come installare e configurare Redmine su Ubuntu 18.04

  3. Come installare e configurare Samba su Ubuntu 18.04

  4. Come installare e configurare Ansible su Ubuntu 18.04 LTS

  5. Come installare e configurare Fail2ban su Ubuntu 20.04 LTS

Come installare e configurare GitLab CE su Ubuntu 18.04 LTS

Come installare e configurare Kubernetes su Ubuntu

Come installare e configurare Docker-CE su Ubuntu 18.04 LTS

Come installare e configurare Odoo ERP su Ubuntu 20.04 LTS

Come installare e configurare MySQL in Ubuntu 20.04 LTS

Come installare e configurare il server DNS su Ubuntu 16.04 LTS