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.
Il nostro cluster a 3 nodi sarà simile a questo:
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.
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.
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.
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.
Ora siamo pronti per inizializzare il master kubernetes, ma prima è necessario disabilitare lo scambio 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.
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.
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.
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"
Ora se controlli lo stato del tuo nodo principale, dovrebbe essere 'Pronto’.
# kubectl ottiene i nodi.
Successivamente, aggiungiamo il nodi di lavoro al grappolo.
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.
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.
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.
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.
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
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.
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.