GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come installare Kubernetes (k8s) 1.7 su CentOS 7 / RHEL 7

Kubernetes è un cluster e orchestrazione motore per container docker. In altre parole, Kubernetes è un software o uno strumento open source utilizzato per orchestrare e gestire i contenitori docker in un ambiente cluster. Kubernetes è anche noto come k8s ed è stato sviluppato da Google e donato a "Cloud Native Computing Foundation"

Nella configurazione di Kubernetes abbiamo un nodo master e più nodi. I nodi del cluster sono noti come nodi di lavoro o Minion. Dal nodo master gestiamo il cluster e i suoi nodi utilizzando 'kubeadm ' e 'kubectl ' comando.

Kubernetes può essere installato e distribuito utilizzando i seguenti metodi:

  • Minikube (è un cluster kubernetes a nodo singolo)
  • Kops (configurazione di kubernetes multinodo in AWS)
  • Kubedm (cluster multinodo nelle nostre sedi)

In questo articolo installeremo l'ultima versione di Kubernetes 1.7 su CentOS 7 / RHEL 7 con l'utilità kubeadm. Nella mia configurazione sto prendendo tre server CentOS 7 con un'installazione minima. Un server fungerà da nodo master e altri due server saranno nodi minion o nodi di lavoro.

Sul Master Node verranno installati i seguenti componenti

  • Server API – Fornisce l'API kubernetes utilizzando Jason / Yaml su http, gli stati degli oggetti API sono archiviati in etcd
  • Programmazione   – È un programma sul nodo master che esegue le attività di pianificazione come l'avvio di container nei nodi di lavoro in base alla disponibilità delle risorse
  • Responsabile del trattamento – Il compito principale del gestore controller è monitorare i controller di replica e creare pod per mantenere lo stato desiderato.
  • ecc – È un database di coppie di valori chiave. Memorizza i dati di configurazione del cluster e dello stato del cluster.
  • Utilità Kubectl – È un'utilità della riga di comando che si connette al server API sulla porta 6443. Viene utilizzata dagli amministratori per creare pod, servizi ecc.

Sui nodi di lavoro verranno installati i seguenti componenti

  • Kubelet – È un agente che gira su ogni nodo di lavoro, si connette alla finestra mobile e si occupa di creare, avviare, eliminare i container.
  • Proxy Kube – Instrada il traffico verso contenitori appropriati in base all'indirizzo IP e al numero di porta della richiesta in entrata. In altre parole possiamo dire che è usato per la traduzione delle porte.
  • Gallo – Il pod può essere definito come un multilivello o un gruppo di contenitori distribuiti su un singolo nodo di lavoro o host Docker.

Passaggi di installazione di Kubernetes 1.7 su CentOS 7 / RHEL 7

Esegui i seguenti passaggi su Master Node

Passaggio 1:disabilita SELinux e imposta le regole del firewall

Accedi al tuo nodo master kubernetes e imposta il nome host e disabilita selinux usando i seguenti comandi

~]# hostnamectl set-hostname 'k8s-master'~]# exec bash~]# setenforce 0~]# sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' / etc/sysconfig/selinux

Imposta le seguenti regole del firewall.

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

Nota: Nel caso in cui non disponi del tuo server DNS, aggiorna il file /etc/hosts sui nodi master e di lavoro

192.168.1.30 k8s-master192.168.1.40 worker-node1192.168.1.50 worker-node2

Disabilita lo scambio in tutti i nodi usando "swapoff -a ” comando e rimuovere o commentare le partizioni di scambio o il file di scambio dal file fstab

Passaggio 2:configura il repository Kubernetes

I pacchetti Kubernetes non sono disponibili nei repository CentOS 7 e RHEL 7 predefiniti. Usa il comando seguente per configurare i repository dei pacchetti.

[[email protetta] ~]# cat < /etc/yum.repos.d/kubernetes.repo> [kubernetes]> name=Kubernetes> baseurl=https://packages.cloud.google.com /yum/repos/kubernetes-el7-x86_64> enabled=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 [[email protected] ~]#

Passaggio 3:installa Kubeadm e Docker

Una volta configurati i repository dei pacchetti, esegui il comando sottostante per installare i pacchetti kubeadm e docker.

[[email protetta] ~]# yum install kubeadm docker -y

Avvia e abilita il servizio kubectl e docker

[[email protected] ~]# systemctl restart docker &&systemctl abilita docker[[email protected] ~]# systemctl  restart kubelet &&systemctl abilita kubelet

Fase 4:inizializza Kubernetes Master con "kubeadm init"

Esegui il comando sottostante per inizializzare e configurare kubernetes master.

[[email protetta] ~]# kubeadm init

L'output del comando sopra sarebbe qualcosa come sotto

Come possiamo vedere nell'output, kubernetes master è stato inizializzato correttamente. Esegui i comandi seguenti per utilizzare il cluster come utente root.

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

Passaggio 5:distribuisci la rete pod al cluster

Prova a eseguire i comandi seguenti per ottenere lo stato del cluster e dei pod.

Per rendere pronto lo stato del cluster e lo stato di kube-dns in esecuzione, distribuire la rete pod in modo che i contenitori di host diversi comunicassero tra loro. La rete POD è la rete overlay tra i nodi di lavoro.

Esegui il comando sotto per distribuire la rete.

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

Ora esegui i seguenti comandi per verificare lo stato

; -Master 1/1 in esecuzione 0 57mkube-system kube-apiserver-k8s-master 1/1 in esecuzione 0 57mkube-system kube-confroller-manager-k8s-master 1/1 in esecuzione 0 57mkube-system kube-dns-2425271678-044ww 3 /3 in esecuzione 0 1Hkube-System Kube-Proxy-9H259 1/1 Esecuzione 0 1Hkube-System Kube-Scheduler-K8S-Master 1/1 Esecuzione 0 57MMKube-System Weave-Net-HDJZD 2/2 in esecuzione 0 7M [[E-mail Protected ] ~]#

Ora aggiungiamo nodi di lavoro ai nodi master Kubernetes.

Esegui i seguenti passaggi su ciascun nodo di lavoro

Fase 1:disabilita SELinux e configura le regole del firewall su entrambi i nodi

Prima di disabilitare SELinux impostare il nome host su entrambi i nodi rispettivamente come 'nodo-lavoratore1' e 'nodo-lavoratore2'

~]# setenforce 0~]# sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux~]# firewall-cmd --permanent --add -port=10250/tcp~]# firewall-cmd --permanent --add-port=10255/tcp~]# firewall-cmd --permanent --add-port=30000-32767/tcp~]# firewall-cmd --permanent --add-port=6783/tcp~]# firewall-cmd  --reload~]# echo '1'> /proc/sys/net/bridge/bridge-nf-call-iptables

Passaggio 2:configura i repository Kubernetes su entrambi i nodi di lavoro

~]# cat < /etc/yum.repos.d/kubernetes.repo> [kubernetes]> name=Kubernetes> baseurl=https://packages.cloud.google.com/yum/repos/ kubernetes-el7-x86_64> enabled=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

Fase 3:installa kubeadm e il pacchetto docker su entrambi i nodi

[[email protected] ~]# yum  install kubeadm docker -y[[email protected] ~]# yum  install kubeadm docker -y

Avvia e abilita il servizio Docker

[[email protected] ~]# systemctl restart docker &&systemctl abilita docker[[email protected] ~]# systemctl restart docker &&systemctl abilita docker

Fase 4:ora unisci i nodi di lavoro al nodo principale

Per unire i nodi di lavoro al nodo Master, è richiesto un token. Ogni volta che kubernetes master è stato inizializzato, nell'output otteniamo comando e token. Copia quel comando ed esegui su entrambi i nodi.

[[email protetta] ~]# kubeadm join --token a3bd48.1bc42347c3b35851 192.168.1.30:6443

L'output del comando sopra sarebbe qualcosa come sotto

[[email protetta] ~]# kubeadm join --token a3bd48.1bc42347c3b35851 192.168.1.30:6443

L'output sarebbe qualcosa come di seguito

Ora verifica lo stato dei nodi dal nodo master usando il comando kubectl

 [[email protetto] ~]# kubectl ottieni nodesname status age versionek8s-master ready 2h v1.7.5worker-node1 ready 20m v1.7.5worker-node2 pronto 18m v1.7.5 [[e-mail protetto] ~]# 

Come possiamo vedere, i nodi master e di lavoro sono in stato di pronto. Ciò conclude che kubernetes 1.7 è stato installato correttamente e inoltre abbiamo unito con successo due nodi di lavoro. Ora possiamo creare pod e servizi.

Condividi il tuo feedback e commenti nel caso in cui questo articolo ti aiuti a installare l'ultima versione di kubernetes 1.7


Cent OS
  1. Come installare phpMyAdmin su RHEL 8 / CentOS 8

  2. Come installare P7Zip su RHEL 8 / CentOS 8

  3. Come installare Icinga 2 su CentOS 8 / RHEL 8

  4. Come installare MongoDB su CentOS 8 / RHEL 8

  5. Come installare Firefox 10 su CentOS 6 / RHEL 6

Come installare Maven su RHEL 8 / CentOS 8

Come installare cpan su RHEL 8 / CentOS 8

Come installare Ruby su RHEL 8 / CentOS 8

Come installare Docker CE su RHEL 8 / CentOS 8

Come installare VirtualBox 6.0 su CentOS 8 / RHEL 8

Come installare PHP 7.4 su CentOS 8 / RHEL 8