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

Come installare un cluster Docker Kubernetes su CentOS 7

Kubernetes è una piattaforma open source per la gestione di applicazioni containerizzate sviluppata da Google. Ti consente di gestire, ridimensionare e distribuire automaticamente le tue applicazioni containerizzate nell'ambiente cluster. Con Kubernetes, possiamo orchestrare i nostri container su più host, ridimensionare le applicazioni containerizzate con tutte le risorse al volo e disporre di un ambiente di gestione dei container centralizzato.

In questo tutorial, ti mostrerò passo dopo passo come installare e configurare Kubernetes su CentOS 7. Useremo 1 server "k8s-master" come Kubernetes Host Master e 2 server come nodo Kubernetes, "node01" e 'nodo02'.

Prerequisiti

  • 3 server CentOS 7
    • 15.00.10      k8s-master
    • 15.00.21      node01
    • 10.0.15.22      node02
  • Privilegi di root

Cosa faremo?

  1. Installazione Kubernetes
  2. Inizializzazione del cluster Kubernetes
  3. Aggiunta di node01 e node02 al Cluster
  4. Test:crea il primo pod

Passaggio 1 - Installazione di Kubernetes

In questo primo passaggio, prepareremo quei 3 server per l'installazione di Kubernetes, quindi esegui tutti i comandi sui server master e sui nodi.

Prepareremo tutti i server per l'installazione di Kubernetes modificando la configurazione esistente sui server e installando anche alcuni pacchetti, inclusi docker-ce e kubernetes stesso.

- Configura host

Modifica il file hosts su tutti i server utilizzando l'editor vim.

vim /etc/hosts

Incolla l'elenco degli host di seguito.

10.0.15.10      k8s-master
10.0.15.21      node01
10.0.15.22      node02

Salva ed esci.

- Disabilita SELinux

In questo tutorial, non tratteremo la configurazione di SELinux per Docker, quindi la disabiliteremo.

Esegui il comando seguente per disabilitare SELinux.

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

- Abilita modulo kernel br_netfilter

Il modulo br_netfilter è necessario per l'installazione di kubernetes. Abilita questo modulo del kernel in modo che i pacchetti che attraversano il bridge vengano elaborati da iptables per il filtraggio e il port forwarding e che i pod kubernetes nel cluster possano comunicare tra loro.

Esegui il comando seguente per abilitare il modulo del kernel br_netfilter.

modprobe br_netfilter
echo '1'> /proc/sys/net/bridge/bridge-nf-call-iptables

- Disattiva SWAP

Disabilita SWAP per l'installazione di kubernetes eseguendo i seguenti comandi.

scambio -a

E poi modifica il file '/etc/fstab'.

vim /etc/fstab

Commenta l'UUID della linea di scambio come di seguito.

- Installa Docker CE

Installa l'ultima versione di Docker-ce dal repository Docker.

Installa le dipendenze del pacchetto per docker-ce.

yum install -y yum-utils device-mapper-persistent-data lvm2

Aggiungi il repository docker al sistema e installa docker-ce usando il comando yum.

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce

Attendi l'installazione di Docker-ce.

- Installa Kubernetes

Aggiungi il repository kubernetes al sistema centos 7 eseguendo il comando seguente.

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

Ora installa i pacchetti kubernetes kubeadm, kubelet e kubectl usando il comando yum di seguito.

yum install -y kubelet kubeadm kubectl

Al termine dell'installazione, riavvia tutti quei server.

sudo riavvio

Accedi nuovamente al server e avvia i servizi, docker e kubelet.

systemctl avvia la finestra mobile &&systemctl attiva la finestra mobile
systemctl avvia kubelet &&systemctl attiva kubelet

- Cambia il cgroup-driver

Dobbiamo assicurarci che docker-ce e kubernetes utilizzino lo stesso 'cgroup'.

Controlla docker cgroup usando il comando docker info.

informazioni sulla finestra mobile | grep -i cgroup

E vedi che la finestra mobile sta usando 'cgroupfs ' come un cgroup-driver.

Ora esegui il comando seguente per cambiare kuberetes cgroup-driver in 'cgroupfs'.

sed -i 's/cgroup-driver=systemd/cgroup-driver=cgroupfs/g' /etc/systemd/system/kubelet.service.d/10-kubeadm.conf

Ricarica il sistema systemd e riavvia il servizio kubelet.

systemctl daemon-reload
systemctl riavvia kubelet

Ora siamo pronti per configurare il cluster Kubernetes.

Passaggio 2:inizializzazione del cluster Kubernetes

In questo passaggio, inizializzeremo la configurazione del cluster principale kubernetes.

Sposta la shell sul server master 'k8s-master' ed esegui il comando seguente per configurare il master kubernetes.

kubeadm init --apiserver-advertise-address=10.0.15.10 --pod-network-cidr=10.244.0.0/16

Nota:

--apiserver-advertise-address =determina su quale indirizzo IP Kubernetes deve pubblicizzare il proprio server API.

--pod-network-cidr =specifica l'intervallo di indirizzi IP per la rete pod. Stiamo usando la rete virtuale "flanella". Se desideri utilizzare un'altra rete pod come weave-net o calicò, modifica l'indirizzo IP dell'intervallo.

Al termine dell'inizializzazione di Kubernetes, otterrai il risultato come di seguito.

Nota:

Copia il 'kubeadm join ... ... ... ' comando al tuo editor di testo. Il comando verrà utilizzato per registrare nuovi nodi nel cluster kubernetes.

Ora per utilizzare Kubernetes, dobbiamo eseguire alcuni comandi come nel risultato.

Crea una nuova directory di configurazione '.kube' e copia la configurazione 'admin.conf'.

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

Quindi, distribuisci la rete di flanella al cluster kubernetes utilizzando il comando kubectl.

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

La rete di flanella è stata distribuita nel cluster Kubernetes.

Attendi un minuto, quindi controlla il nodo e i pod kubernetes utilizzando i comandi seguenti.

kubectl get nodes
kubectl get pods --all-namespaces

E otterrai il nodo "k8s-master" in esecuzione come cluster "master" con lo stato "pronto" e otterrai tutti i pod necessari per il cluster, incluso "kube-flannel-ds" per il pod di rete configurazione.

Assicurati che lo stato di tutti i pod del sistema kube sia "in esecuzione".

L'inizializzazione e la configurazione del master cluster Kubernetes sono state completate.

Passaggio 3:aggiunta di node01 e node02 al cluster

In questo passaggio, aggiungeremo node01 e node02 per entrare a far parte del cluster "k8s".

Connettiti al server node01 ed esegui il comando kubeadm join come abbiamo copiato in alto.

kubeadm join 10.0.15.10:6443 --token vzau5v.vjiqyxq26lzsf28e --discovery-token-ca-cert-hash sha256:e6d046ba34ee03e7d55e1f5ac6d2de09fd6d7e6959d16782ef0778794b94c6> 

Connettiti al server node02 ed esegui il comando kubeadm join come abbiamo copiato in alto.

kubeadm join 10.0.15.10:6443 --token vzau5v.vjiqyxq26lzsf28e --discovery-token-ca-cert-hash sha256:e6d046ba34ee03e7d55e1f5ac6d2de09fd6d7e6959d16782ef0778794b94c6> 

Attendi qualche minuto e torna al server del cluster master 'k8s-master' controlla i nodi e i pod usando il comando seguente.

kubectl get nodes
kubectl get pods --all-namespaces

Ora otterrai node01 e node02 è stato aggiunto al cluster con lo stato "ready".

node01 e node02 sono stati aggiunti al cluster kubernetes.

Fase 4 - Test Crea il primo pod

In questo passaggio, eseguiremo un test distribuendo il pod Nginx nel cluster kubernetes. Un pod è un gruppo di uno o più contenitori con spazio di archiviazione condiviso e rete che viene eseguito sotto Kubernetes. Un Pod contiene uno o più contenitori, ad esempio il contenitore Docker.

Accedi al server "k8s-master" e crea una nuova distribuzione denominata "nginx" utilizzando il comando kubectl.

kubectl crea distribuzione nginx --image=nginx

Per vedere i dettagli della sepcificazione della distribuzione 'nginx', esegui il comando seguente.

kubectl descrive il deployment nginx

E otterrai le specifiche di distribuzione del pod nginx.

Successivamente, esporremo il pod nginx accessibile tramite Internet. E per questo dobbiamo creare un nuovo servizio NodePort.

Esegui il comando kubectl di seguito.

kubectl crea il servizio nodeport nginx --tcp=80:80

Assicurati che non ci siano errori. Ora controlla il servizio nginx nodeport e l'IP usando il comando kubectl di seguito.

kubectl ottiene pod
kubectl ottiene svc

Ora otterrai che il pod nginx è ora in esecuzione con l'indirizzo IP del cluster "10.160.60.38" sulla porta 80 e l'indirizzo IP principale del nodo "10.0.15.x" sulla porta "30691".

Dal server "k8s-master" esegui il comando curl sotto.

nodo curl01:30691

nodo curl02:30691

Il Pod Nginx è stato ora distribuito nel cluster Kubernetes ed è accessibile tramite Internet.

Ora accedi dal browser web.

http://10.0.15.10:30691/

E otterrai la pagina predefinita di Nginx.

Sul server node02 - http://10.0.15.11:30691/

L'installazione e la configurazione del cluster Kubernetes su CentOS 7 sono state completate correttamente.


Cent OS
  1. Come installare Docker su CentOS 7

  2. Come installare Kubernetes su Ubuntu 18.04

  3. Come installare un cluster Kubernetes su CentOS 7

  4. Come installare Docker su CentOS 7 / RHEL 7

  5. Come installare Docker in CentOS

Come installare Rancher su CentOS 8

Come installare Docker su CentOS 7

Come installare Docker Compose su CentOS 7

Come installare Docker su CentOS 8

Come installare Kubernetes su CentOS 8

Come installare il cluster Kubernetes su CentOS 8