Come installare un cluster Kubernetes su CentOS 7

Donato da Google alla comunità Opensource, Kubernetes è ora diventato lo strumento di gestione dei container preferito. Può gestire e orchestrare non solo i runtime docker, ma anche container e Rkt tempi di esecuzione.

Un tipico Kubernetes cluster avrebbe generalmente un nodo master e diversi nodi di lavoro o Minion. I nodi di lavoro vengono quindi gestiti dal nodo master, garantendo così che il cluster sia gestito da un punto centrale.

È anche importante ricordare che puoi anche distribuire un cluster Kubernetes a nodo singolo che è generalmente consigliato per carichi di lavoro molto leggeri e non di produzione. Per questo, puoi usare Minikube, che è uno strumento che esegue un cluster Kubernetes a nodo singolo in una macchina virtuale sul tuo nodo.

Lettura consigliata: Come installare un cluster Kubernetes su CentOS 8

Per questo tutorial, esamineremo un multi-nodo Kubernetes installazione cluster attivata CentOS 7 Linux. Questo tutorial è basato sulla riga di comando, quindi dovrai accedere alla finestra del terminale.

Prerequisiti

  1. Più server in esecuzione Cento 7 (1 nodo principale, 2 nodi di lavoro). Si raccomanda che il tuo Nodo principale avere almeno 2 CPU, anche se questo non è un requisito rigoroso.
  2. Connettività Internet su tutti i tuoi nodi. andremo a prendere Kubernetes e docker pacchetti dal repository. Allo stesso modo, dovrai assicurarti che il yum gestore di pacchetti è installato per impostazione predefinita e può recuperare i pacchetti in remoto.
  3. Avrai anche bisogno di accedere a un account con privilegi sudo o root. In questo tutorial, userò il mio account di root.

Il nostro cluster a 3 nodi sarà simile a questo:

Diagramma del cluster Kubernetes
Diagramma del cluster Kubernetes

Installazione del cluster Kubernetes su Master-Node

Per Kubernetes per funzionare, avrai bisogno di un motore di containerizzazione. Per questa installazione, useremo docker in quanto è il più popolare.

I seguenti passaggi verranno eseguiti sul Nodo principale.

Passaggio 1: preparare il nome host, il firewall e SELinux

Sul tuo nodo master, imposta il nome host e se non hai un server DNS, aggiorna anche il tuo /etc/hosts file.

# hostnamectl set-hostname master-node. # gatto <> /etc/host. 10.128.0.27 nodo master. 10.128.0.29 nodo-1 nodo-lavoro-1. 10.128.0.30 nodo-2 lavoratore-nodo-2. EOF. 

Puoi eseguire il ping nodo-lavoratore-1 e nodo-lavoratore-2 per verificare se il tuo file host aggiornato va bene usando comando ping.

# ping 10.128.0.29. # ping 10.128.0.30. 

Quindi, disabilita SElinux e aggiorna le regole del firewall.

# setenforce 0. # sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux. # riavviare. 

Imposta le seguenti regole del firewall sulle porte. Assicurati che ciascuno comando firewall-cmd, restituisce un successo.

# firewall-cmd --permanent --add-port=6443/tcp. # firewall-cmd --permanent --add-port=2379-2380/tcp. # firewall-cmd --permanent --add-port=10250/tcp. # firewall-cmd --permanent --add-port=10251/tcp. # firewall-cmd --permanent --add-port=10252/tcp. # firewall-cmd --permanent --add-port=10255/tcp. # firewall-cmd –reload. # modprobe br_netfilter. # echo '1' > /proc/sys/net/bridge/bridge-nf-call-iptables. 

Passaggio 2: configurare il repository Kubernetes

Dovrai aggiungere Kubernetes repository manualmente in quanto non vengono installati per impostazione predefinita su CentOS 7.

gatto </etc/yum.repos.d/kubernetes.repo. [Kubernetes] nome=Kubernetes. baseurl= https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64. abilitato=1. gpgcheck=1. repo_gpgcheck=1. gpgkey= https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg. EOF.

Passaggio 3: installa Kubeadm e Docker

Con il repository del pacchetto ora pronto, puoi procedere con l'installazione kubeadm e docker pacchi.

# yum install kubeadm docker -y 

Al termine dell'installazione, abilitare e avviare entrambi i servizi.

# systemctl abilita kubelet. # systemctl avvia kubelet. # systemctl abilita la finestra mobile. # systemctl avvia la finestra mobile. 

Passaggio 4: inizializzare il master Kubernetes e configurare l'utente predefinito

Ora siamo pronti per inizializzare il master kubernetes, ma prima è necessario disabilitare lo swap per eseguire "kubeadm init“comando.

# swapoff -a. 

L'inizializzazione del master Kubernetes è un processo completamente automatizzato gestito dal "kubeadm init“ comando che eseguirai.

# kubeadm init. 
Inizializza Kubernetes Master
Inizializza Kubernetes Master

Potresti voler copiare l'ultima riga e salvarla da qualche parte perché dovrai eseguirla sul nodi di lavoro.

kubeadm join 10.128.0.27:6443 --token nu06lu.xrsux0ss0ixtnms5 \ --discovery-token-ca-cert-hash sha256:f996ea3564e6a07fdea2997a1cf8caeddafd6d4360d606dbc82314688425cd41 

Consiglio: A volte questo comando potrebbe lamentarsi del argomenti (argomenti) è passato, quindi modificalo per evitare errori. Quindi, eliminerai il ‘\’ personaggio che accompagna il --gettone e il tuo comando finale sarà simile a questo.

kubeadm join 10.128.0.27:6443 --token nu06lu.xrsux0ss0ixtnms5 --discovery-token-ca-cert-hash sha256:f996ea3564e6a07fdea2997a1cf8caeddafd6d4360d606dbc82314688425cd41. 

Dopo aver inizializzato Kubernetes correttamente, dovrai consentire all'utente di iniziare a utilizzare il cluster. Nel nostro caso, vogliamo eseguire questa installazione come radice utente, quindi andremo avanti ed eseguiremo questi comandi come root. Puoi cambiare in a utente abilitato sudo preferisci ed esegui quanto segue usando sudo.

Usare radice, correre:

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

Per usare un utente abilitato sudo, correre:

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

Ora controlla se il kubectl comando è attivato.

# kubectl ottiene i nodi. 
Controlla lo stato dei nodi
Controlla lo stato dei nodi

A questo punto noterai anche che lo stato del nodo principale è 'Non pronto’. Questo perché dobbiamo ancora distribuire il rete pod al grappolo.

Il rete pod è la rete overlay per il cluster, che viene distribuita sulla rete del nodo attuale. È progettato per consentire la connettività attraverso il pod.

Passaggio 5: configura la tua rete di pod

La distribuzione del cluster di rete è un processo altamente flessibile a seconda delle tue esigenze e sono disponibili molte opzioni. Dal momento che vogliamo mantenere la nostra installazione il più semplice possibile, useremo Weavenet plug-in che non richiede alcuna configurazione o codice aggiuntivo e fornisce un indirizzo IP per pod, il che è ottimo per noi. Se vuoi vedere più opzioni, per favore controlla qui.

Questi comandi saranno importanti per ottenere la configurazione della rete del pod.

# export kubever=$(versione kubectl | base64 | tr -d '\n') # kubectl applica -f " https://cloud.weave.works/k8s/net? k8s-version=$kubever"
Configurazione della rete del pod
Configurazione della rete del pod

Ora se controlli lo stato del tuo nodo principale, dovrebbe essere 'Pronto’.

# kubectl ottiene i nodi. 
Controlla lo stato dei nodi principali
Controlla lo stato dei nodi principali

Successivamente, aggiungiamo il nodi di lavoro al grappolo.

Configurazione dei nodi di lavoro per unirsi al cluster Kubernetes

I seguenti passaggi verranno eseguiti sul nodi di lavoro. Questi passaggi dovrebbero essere eseguiti su ogni nodo di lavoro quando ti unisci al Kubernetes grappolo.

Passaggio 1: preparare il nome host, il firewall e SELinux

Sul tuo nodo-lavoratore-1 e nodo-lavoratore-2, imposta il nome host e, nel caso in cui non disponi di un server DNS, aggiorna anche i tuoi nodi master e di lavoro su /etc/hosts file.

# hostnamectl set-hostname 'nodo-1' # gatto <> /etc/host. 10.128.0.27 nodo master. 10.128.0.29 nodo-1 nodo-lavoro-1. 10.128.0.30 nodo-2 lavoratore-nodo-2. EOF. 

Puoi eseguire il ping nodo principale per verificare se il tuo file host aggiornato va bene.

Quindi, disabilita SElinux e aggiorna le regole del firewall.

# setenforce 0. # sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux. 

Imposta le seguenti regole del firewall sulle porte. Assicurati che tutti i comandi firewall-cmd restituiscano esito positivo.

# firewall-cmd --permanent --add-port=6783/tcp. # firewall-cmd --permanent --add-port=10250/tcp. # firewall-cmd --permanent --add-port=10255/tcp. # firewall-cmd --permanent --add-port=30000-32767/tcp. # firewall-cmd --reload. # echo '1' > /proc/sys/net/bridge/bridge-nf-call-iptables. 

Passaggio 2: configurare il repository Kubernetes

Dovrai aggiungere Kubernetes repository manualmente in quanto non vengono preinstallati su CentOS 7.

gatto </etc/yum.repos.d/kubernetes.repo. [Kubernetes] nome=Kubernetes. baseurl= https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64. abilitato=1. gpgcheck=1. repo_gpgcheck=1. gpgkey= https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg. EOF.

Passaggio 3: installa Kubeadm e Docker

Con il repository del pacchetto ora pronto, puoi procedere con l'installazione kubeadm e docker pacchi.

# yum install kubeadm docker -y 

Avvia e abilita entrambi i servizi.

# systemctl abilita la finestra mobile. # systemctl avvia la finestra mobile. # systemctl abilita kubelet. # systemctl avvia kubelet. 

Passaggio 4: unire il nodo di lavoro al cluster Kubernetes

Ora abbiamo bisogno del token che kubeadm init generato, per unirsi al cluster. Puoi copiarlo e incollarlo sul tuo nodo-1 e nodo-2 se l'avessi copiato da qualche parte.

# kubeadm join 10.128.0.27:6443 --token nu06lu.xrsux0ss0ixtnms5 --discovery-token-ca-cert-hash sha256:f996ea3564e6a07fdea2997a1cf8caeddafd6d4360d606dbc82314688425cd41 
Unisci i nodi al cluster Kubernets
Unisci i nodi al cluster Kubernets

Come suggerito nell'ultima riga, torna al tuo nodo principale e controlla se nodo di lavoro-1 e nodo di lavoro-2 si sono uniti al cluster utilizzando il seguente comando.

# kubectl ottiene i nodi. 
Controlla lo stato di tutti i nodi nel cluster Kubernetes
Controlla lo stato di tutti i nodi nel cluster Kubernetes

Se tutti i passaggi vengono eseguiti correttamente, dovresti vedere nodo-1 e nodo-2 in stato di pronto sul nodo principale.

Lettura consigliata: Come distribuire Nginx su un cluster Kubernetes

A questo punto, abbiamo completato con successo un'installazione di a Kubernetes cluster acceso Cento 7 e ne abbiamo caricati con successo due nodi-lavoratori. Ora puoi iniziare a creare i tuoi pod e distribuire i tuoi servizi.

Teachs.ru