GNU/Linux >> Linux Esercitazione >  >> AlmaLinux

Installa il cluster Kubernetes utilizzando Kubeadm in RHEL, CentOS, AlmaLinux, Rocky Linux

In questo articolo, impareremo l'installazione del cluster Kubernetes utilizzando Kubeadm in RHEL 8 e i suoi cloni come AlmaLinux 8, CentOS 8 e Rocky Linux 8.

Prima di entrare nel merito, devi avere una comprensione di base sui concetti e l'architettura Kubernetes . In questo articolo, dimostreremo un cluster a due nodi.

Per procedere con l'installazione, abbiamo bisogno dei requisiti di base indicati di seguito.

  • Minimo 2 host.
  • 2 CPU.
  • 2 GB di memoria fisica (RAM).
  • 20 GB di spazio su disco.
  • Connessione a Internet per scaricare i pacchetti.

1. Configura nome host e indirizzo IP

Imposta il nome host e configura gli host in Master e Workers. Il file del sistema operativo hosts viene utilizzato per convertire nomi host o nomi di dominio in indirizzi IP.

Qui avremo due host:

  • Ostechmaster - Master
  • Operatore Oste – Lavoratore

Utilizzare il comando seguente per impostare il nome host, è necessario riavviare dopo aver impostato il nome host.

# hostnamectl set-hostname ostechmaster

Modifica /etc/hosts file:

# vi /etc/hosts

Aggiungi il nome host e l'indirizzo IP del server e del client nel /etc/hosts file:

Esegui il ping test per garantire la connettività:

[[email protected] ~]# ping ostechworkerPING ostechworker (172.31.5.141) 56(84) byte di dati.64 byte da ostechworker (172.31.5.141):icmp_seq=1 ttl=64 time=0.472 ms64 byte da ostechworker (172.31.5.141):icmp_seq=2 ttl=64 time=0.492 ms64 byte da ostechworker (172.31.5.141):icmp_seq=3 ttl=64 time=1.43 ms64 byte da ostechworker (172.31.5.141):icmp_seq=4 ttl=64 tempo=0,425 ms

2. Disabilita SElinux

Disabilita SElinux in Master e Workers, in modo che tutti i container possano accedere prontamente al filesystem host se SElinux è disabilitato.
Crea 'SELINUX=disabled ' nel file di configurazione /etc/selinux/config usando l'editor vi. Il riavvio è necessario per riflettere la modifica di SElinux.

[[email protetta] ~]# vi /etc/selinux/config

Assicurati lo stato di SElinux usando il comando seguente.

[[email protetta] ~]# stato sestatusSELinux:disabilitato

3. Disabilita lo scambio in Master e Worker

Lo scambio deve essere disattivato su tutti gli host Kubernetes (Master e Workers). Questo è il metodo di distribuzione preferito dalla community di Kubernetes. Il servizio kubelet non si avvierà sul master e sui worker se lo scambio non è disabilitato.

Esegui il comando seguente per disabilitare SWAP:

[[email protetta] ~]# swapoff -a &&sed -i '/swap/d' /etc/fstab

4. Consenti le porte richieste nel firewall

Affinché i componenti Kubernetes possano interagire tra loro, devono essere disponibili alcune porte essenziali. Di seguito sono elencate le porte da aprire per usufruire della connettività tra i componenti Kubernetes.

Piano di controllo/Server principale:

Protocollo Direzione Intervallo di porte Scopo Utilizzato da
TCP In entrata 6443 Server API Kubernetes Tutti
TCP In entrata 2379-2380 API client del server etcd kube-apiserver, ecc.
TCP In entrata 10250 API Kubelet Auto, controllo aereo
TCP In entrata 10259 programmatore kube
TCP In entrata 10257 gestore-controller-kube

Nodi di lavoro:

Protocollo Direzione Intervallo di porte Scopo Utilizzato da
TCP In entrata 10250 API Kubelet Auto, controllo aereo
TCP In entrata 30000-32767 Servizi NodePort Tutti

Per consentire le porte richieste attraverso il firewall, esegui i seguenti comandi.

Nodo principale:

[[email protetta] ~]# firewall-cmd --permanent --add-port=6443/tcp
[[email protected] ~]# firewall-cmd --permanent --add-port=2379-2380/tcp
[[email protetta] ~]# firewall-cmd --permanent --add-port=10250/tcp
[[email protetta] ~]# firewall-cmd --permanent --add-port=10251/tcp
[[email protetta] ~]# firewall-cmd --permanent --add-port=10259/tcp
[[email protetta] ~]# firewall-cmd --permanent --add-port=10257/tcp
[[email protetta] ~]# firewall-cmd --reload

Nodo di lavoro:

[[email protetta] ~]# firewall-cmd --permanent --add-port=10250/tcp
[[email protetta] ~]# firewall-cmd --permanent --add-port=30000-32767/tcp
[[email protetta] ~]# firewall-cmd --reload

Stiamo disabilitando il firewall sia in Master che in Worker poiché è a scopo dimostrativo. Tuttavia, non è consigliato per le esercitazioni di produzione in tempo reale.

Usa i comandi seguenti per fermare e disabilitare il firewall.

[[email protected] ~]# systemctl stop firewalld
[[email protected] ~]# systemctl disable firewalld

5. Installa Docker

Docker semplifica la "costruzione" dei container, mentre Kubernetes consente di "gestire" i container in tempo reale. Per imballare e spedire il software, utilizzare Docker. Per avviare e scalare la tua app, usa Kubernetes.

Aggiungi repository Docker in tutte le macchine in Cluster.

Crea il file denominato docker.repo sotto /etc/yum.repos.d/ directory:

[[email protetta] ~]# vi /etc/yum.repos.d/docker.repo

Aggiungi le seguenti righe:

[docker]baseurl=https://download.docker.com/linux/centos/8/x86_64/stable/gpgcheck=0

Premi il tasto ESC e digita :wq per salvare il file e chiuderlo.

Installa la finestra mobile in entrambi i nodi Master e Worker:

# yum -y install docker-ce

Una volta installato, abilita e avvia Docker su entrambi i nodi:

# systemctl abilita la finestra mobile
# systemctl finestra mobile di avvio

Verifica e assicurati che Docker sia in esecuzione su entrambe le macchine.

# finestra mobile dello stato systemctl

6. Installa Kubernetes

Aggiungi il repository Kubernetes in Master e Worker.

Crea il file kubernetes.repo sia in Master che in worker in /etc/yum.repos.d/ directory:

# vi /etc/yum.repos.d/kubernetes.repo

Aggiungi le seguenti righe:

[kubernetes]name=Kubernetesbaseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64enabled=1gpgcheck=1repo_gpgcheck=1gpgkey=https://packages.cloud.google.com/ yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg

Premi ESC e digita :wq per salvare il file e chiuderlo.

Installa kubeadm, kubelet, kubectl nei nodi Master e Worker usando il comando seguente:

# yum install -y kubelet kubeadm kubectl --disableexcludes=Kubernetes

Abilita e avvia il kubelet servizio in entrambe le macchine:

# systemctl abilita kubelet
# systemctl avvia kubelet

Controlla lo stato del servizio Kubelet e assicurati che funzioni correttamente in entrambe le macchine.

# systemctl status kubelet

7. Inizializza i Kubernetes

Utilizzare il comando seguente per inizializzare Kubernetes in Master Server

[[email protetta] ~]# kubeadm init

Otterrai l'output seguente che dice che il piano di controllo di Kubernetes è stato inizializzato correttamente. E verranno menzionati alcuni passaggi per iniziare a utilizzare il cluster, seguilo.

Copia e salva anche il 'kubeadm join' comando dall'output, verrà utilizzato per unire il nodo di lavoro nel cluster.

Risultato di esempio:

Il tuo piano di controllo Kubernetes è stato inizializzato correttamente! Per iniziare a utilizzare il tuo cluster, devi eseguire quanto segue come utente normale:mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id - u):$(id -g) $HOME/.kube/configIn alternativa, se sei l'utente root, puoi eseguire: export KUBECONFIG=/etc/kubernetes/admin.conf Ora dovresti distribuire una rete pod nel cluster. Esegui "kubectl apply -f [podnetwork].yaml" con una delle opzioni elencate in:https://kubernetes.io/docs/concepts/cluster-administration/addons/Then è possibile partecipare a un qualsiasi numero di nodi lavoratori eseguendo il seguente su ciascun come root: kubeadm uniscono 172.31.10.29:6443 --token 220tvj.051bkeyj5tg6v55r \ --discovery-token-ca-cert-hash sha256:434c49c7969256a7fae3880b340202cadd4fd29d3d381ab37e1cb8b1d05e86f2  

Dal momento che stiamo procedendo con root utente, esegui il comando seguente nel server principale come menzionato nell'output sopra.

[[email protetta] ~]# export KUBECONFIG=/etc/kubernetes/admin.conf

8. Configura rete POD

Una rete Kubernetes Pod è una rete di componenti interconnessi in Kubernetes. Questo concetto di rete può essere implementato in diversi modi. Nella nostra dimostrazione useremo 'Weave Net' .

Esegui i seguenti comandi nel server principale per configurare la rete POD.

[[email protetta] ~]# export kubever=$(versione kubectl | base64 | tr -d '\n')
[[email protected] ~]# kubectl apply -f https://cloud.weave.works/k8s/net?k8s-version=$kubever

Risultato di esempio:

serviceaccount/weave-net createclusterrole.rbac.authorization.k8s.io/weave-net createclusterrolebinding.rbac.authorization.k8s.io/weave-net createrole.rbac.authorization.k8s.io/weave-net createrolebinding.rbac .authorization.k8s.io/weave-net creatodaemonset.apps/weave-net creato[[email protected] ~]#

9. Unisciti al nodo di lavoro

Esegui 'kubeadm join ' comando per unire il nodo di lavoro al cluster. Questo è il comando che abbiamo copiato da 'kubeadm init ' output.

[[email protected] ~]# kubeadm join 172.31.10.29:6443 --token 220tvj.051bkeyj5tg6v55r --discovery-token-ca-cert-hash sha256:434c49c7969256a7fae3880b340202cadd4fd29d33d3c2b83d381b157d3d381b8  

Puoi verificare il nodo nel server principale usando il comando seguente

# kubectl ottiene nodi

Risultato di esempio:

NOME STATO RUOLI ETÀ VERSIONostechmaster Ready control-plane,master 32m v1.23.1stechworker Ready  30m v1.23.1

Conclusione

In questo articolo abbiamo visto i passaggi dettagliati per impostare e configurare Kubernetes Cluster utilizzando Kubeadm. Fai riferimento alle nostre precedenti serie kubernetes articoli per avere una comprensione dettagliata dell'architettura e dei concetti di Kubernetes. Vedremo le operazioni di Kubernetes nei prossimi articoli.

Leggi il prossimo:

  • Come creare e gestire i pod Kubernetes in Linux

Risorsa:

  • https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/

AlmaLinux
  1. AlmaLinux vs Rocky Linux

  2. Come installare il cluster Kubernetes su Rocky Linux 8

  3. Come installare PostgreSQL su CentOS 8 / Rocky Linux 8 / RHEL 8

  4. Come installare Java su Rocky Linux 8 / CentOS 8 / RHEL 8

  5. Come installare Erlang su Rocky Linux/Alma Linux/CentOS 8

Come installare MongoDB in RHEL, CentOS, Rocky e AlmaLinux

Come installare MusicBrainz Picard su RHEL | CentOS | Linux roccioso

Installa Dig su AlmaLinux 8 / Rocky Linux

Come installare GIMP su AlmaLinux 8 / Rocky Linux 8

Come installare Git su Almalinux o Rocky Linux 8

Installa LXC (Linux Containers) in RHEL, Rocky e AlmaLinux