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

Come configurare Kubernetes 1.5 con kubeadm su CentOS

È uscita una nuova versione di Kubernetes, quindi eccoci con un altro articolo di Kubernetes. Con Kubernetes 1.5, kubeadm è ancora in versione alfa e non è consigliabile utilizzarlo in produzione poiché non supporta ancora il servizio di bilanciamento del carico. Installeremo un noto negozio di calze online come demo e utilizzeremo nodeport per esporre il servizio.

Installazione di Kubernetes 1.5 su tutti i nodi

Aggiungiamo il repository kubernetes per CentOS:

cat <<EOF > /etc/yum.repos.d/kubernetes.repo

[kubernetes]

name=Kubernetesbaseurl=http://yum.kubernetes.io/repos/kubernetes-el7-x86_64enabled=1gpgcheck=0repo_gpgcheck=0EOF

Dopo aver aggiunto il repository, dobbiamo disattivare SElinux perché non funziona molto bene con kubernetes. Per disattivarlo momentaneamente, digita

setenforce 0

Per farlo persistere dopo il riavvio, usa nano per modificare il file di configurazione di SElinux in questo modo:

nano /etc/selinux/config

e assicurati che la linea SELINUX sia impostata su permissiva o disabilitata:

SELINUX=disabled

Salva il file e possiamo continuare con l'installazione dei pacchetti richiesti.

yum install docker kubelet kubeadm kubectl kubernetes-cni

Per abilitare l'avvio automatico della finestra mobile all'avvio, esegui questo comando:

systemctl enable docker

E per avviarlo ora, esegui quanto segue.

systemctl start docker

Quindi facciamo lo stesso per kubelet

systemctl enable kubelet

systemctl start kubelet

Configurazione del cluster

La prima cosa che dobbiamo fare è decidere il padrone del nostro nuovo cluster. Se tutti i nodi sono impostati come mostrato sopra, quindi eseguiamo il nostro nodo master designato il seguente comando.

kubeadm init

Nota che non puoi eseguire questo comando due volte, dovrai smontare il cluster prima di eseguirlo la seconda volta. L'output sarà simile a questo:

[root@centos-01 kubernetes]# kubeadm init
[kubeadm] WARNING: kubeadm is in alpha, please do not use it for production clusters.
[preflight] Running pre-flight checks
[preflight] WARNING: firewalld is active, please ensure ports [6443 9898 10250] are open or your cluster may not function correctly
[init] Using Kubernetes version: v1.5.1
[tokens] Generated token: "9a6b48.b4011ffeeb237381"
[certificates] Generated Certificate Authority key and certificate.
[certificates] Generated API Server key and certificate
[certificates] Generated Service Account signing keys
[certificates] Created keys and certificates in "/etc/kubernetes/pki"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/kubelet.conf"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/admin.conf"
[apiclient] Created API client, waiting for the control plane to become ready
[apiclient] All control plane components are healthy after 105.821991 seconds
[apiclient] Waiting for at least one node to register and become ready
[apiclient] First node is ready after 4.505809 seconds
[apiclient] Creating a test deployment
[apiclient] Test deployment succeeded
[token-discovery] Created the kube-discovery deployment, waiting for it to become ready
[token-discovery] kube-discovery is ready after 68.003359 seconds
[addons] Created essential addon: kube-proxy
[addons] Created essential addon: kube-dns

Your Kubernetes master has initialized successfully!

You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
http://kubernetes.io/docs/admin/addons/

You can now join any number of machines by running the following on each node:

kubeadm join --token=9a6b48.b4011ffeeb237381 45.55.128.42

Installazione della rete pod e aggiunta di nodi a un cluster

Nella parte precedente, abbiamo inizializzato il cluster master e abbiamo ottenuto nell'ultima riga il comando con un token che useremo per aggiungere nodi. Ma prima di farlo, dobbiamo installare la rete pod.

kubectl apply -f https://git.io/weave-kube

Esistono molti modi per avere una rete di pod, ma sopra uno è forse il più semplice. Utilizza Container Network Interface o CNI, che è lo standard proposto per i container di rete su Linux.

Successivamente possiamo aggiungere nodi al cluster eseguendo questo comando su tutti i nodi

kubeadm join --token=bb6fc2.be0345f5b02a32a0 45.55.128.42

Il token è stato disinfettato, quindi non è possibile aggiungere nodi al mio cluster. Successivamente consente ai pod di essere eseguiti sul master e non solo sui nodi.

kubectl taint nodes --all dedicated-

Dopodiché possiamo controllare i nodi per vedere se sono tutti online.

kubectl get nodes

Esempio di installazione di microservizi

C'è un semplice esempio di microservizi che useremo per testare il nostro cluster. È un negozio online di calze.

Per prima cosa aggiungeremo il negozio di calze dello spazio dei nomi

kubectl create namespace sock-shop

E poi creiamo il servizio

kubectl apply -n sock-shop -f "https://github.com/microservices-demo/microservices-demo/blob/master/deploy/kubernetes/complete-demo.yaml?raw=true"

Dopo questo dobbiamo aspettare un po' di tempo prima che i container vengano creati e poi possiamo provare a visitare il nuovo sito. Per visitarlo, dobbiamo conoscerne l'indirizzo. Esaminiamo il servizio

kubectl describe svc front-end -n sock-shop

Ti darà un output simile a questo

Name: front-end
Namespace: sock-shop
Labels: name=front-end
Selector: name=front-end
Type: NodePort
IP: 10.104.11.202
Port: <unset> 80/TCP
NodePort: <unset> 31500/TCP
Endpoints: 10.32.0.4:8079
Session Affinity: None
No events.

La linea in grassetto è evidenziata da me perché abbiamo bisogno del numero di porta utilizzato dal servizio. Dobbiamo combinare il numero di porta con l'indirizzo di uno dei nostri nodi e arriveremo al sito.

Conclusione

Quindi abbiamo impostato correttamente il cluster Kubernetes 1.5 con kubeadm su CentOS 7. Nel nostro caso si tratta di un cluster a tre nodi ma kubeadm consente di ridimensionare facilmente il cluster con l'aggiunta di nuovi nodi. Assicurati di mantenere privato il tuo token perché con un token e un IP pubblico, chiunque può aggiungere nodi al tuo cluster. Con ciò concludiamo questo articolo, grazie per la lettura e buona giornata.


Cent OS
  1. Come installare CentOS 8 (con screenshot)

  2. Come monitorare Kubernetes con Prometeo

  3. Come installare Python 3 su CentOS 7 con SCL

  4. Come configurare Pure-FTPD con MySQL su CentOS e RedHat

  5. Come configurare le chiavi SSH su CentOS 8

Come configurare il server di backup centralizzato con Amanda su CentOS 7

Come configurare l'origine di Openshift su CentOS 7

Come configurare il cluster Percona con HAproxy Loadbalancer su CentOS 7

Come configurare MariaDB Galera Cluster con HAproxy su CentOS 7

Come installare Kubernetes su CentOS 8

Come installare Kubernetes con Minikube su CentOS 8