GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

So richten Sie Kubernetes 1.5 mit kubeadm unter CentOS ein

Die neue Version von Kubernetes ist da, also hier sind wir mit einem weiteren Kubernetes-Artikel. Bei Kubernetes 1.5 befindet sich kubeadm noch in der Alpha-Phase, und es wird nicht empfohlen, es in der Produktion zu verwenden, da es immer noch keinen Load Balancer unterstützt. Wir werden den bekannten Online-Sockenshop als Demo installieren und Nodeport verwenden, um den Dienst bereitzustellen.

Kubernetes 1.5 auf allen Knoten installieren

Lassen Sie uns das Kubernetes-Repository für CentOS hinzufügen:

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

[kubernetes]

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

Nach dem Hinzufügen des Repos müssen wir SElinux deaktivieren, da es nicht sehr gut mit Kubernetes funktioniert. Um es vorübergehend auszuschalten, geben Sie

ein
setenforce 0

Damit es nach dem Neustart bestehen bleibt, verwenden Sie nano, um die SElinux-Konfigurationsdatei wie folgt zu bearbeiten:

nano /etc/selinux/config

und vergewissern Sie sich, dass die SELINUX-Zeile auf „permissive“ oder „disabled“ gesetzt ist:

SELINUX=disabled

Speichern Sie die Datei und wir können mit der Installation der erforderlichen Pakete fortfahren.

yum install docker kubelet kubeadm kubectl kubernetes-cni

Um den automatischen Docker-Start beim Booten zu aktivieren, führen Sie diesen Befehl aus:

systemctl enable docker

Und um es jetzt zu starten, führen Sie Folgendes aus.

systemctl start docker

Als nächstes machen wir dasselbe für Kubelet

systemctl enable kubelet

systemctl start kubelet

Cluster einrichten

Als erstes müssen wir den Master unseres neuen Clusters bestimmen. Wenn alle Nodes wie oben gezeigt eingerichtet sind, führen wir als nächstes unseren designierten Master-Node den folgenden Befehl aus.

kubeadm init

Beachten Sie, dass Sie diesen Befehl nicht zweimal ausführen können, Sie müssen den Cluster herunterfahren, bevor Sie ihn das zweite Mal ausführen. Die Ausgabe sieht ungefähr so ​​aus:

[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

Pod-Netzwerk installieren und Knoten zu einem Cluster hinzufügen

Im obigen Teil haben wir den Cluster-Master initialisiert und in der letzten Zeile einen Befehl mit einem Token erhalten, mit dem wir Knoten hinzufügen werden. Aber bevor wir das tun, müssen wir das Pod-Netzwerk installieren.

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

Es gibt viele Möglichkeiten, ein Pod-Netzwerk zu haben, aber oben ist vielleicht die einfachste. Es verwendet Container Network Interface oder CNI, einen vorgeschlagenen Standard für die Vernetzung von Containern unter Linux.

Als nächstes können wir dem Cluster Knoten hinzufügen, indem wir diesen Befehl auf allen Knoten ausführen

kubeadm join --token=bb6fc2.be0345f5b02a32a0 45.55.128.42

Das Token ist bereinigt, sodass Sie meinem Cluster keine Knoten hinzufügen konnten. Als Nächstes können wir Pods aktivieren, damit sie auf dem Master und nicht nur auf Knoten ausgeführt werden.

kubectl taint nodes --all dedicated-

Danach können wir die Knoten überprüfen, um zu sehen, ob alle online sind.

kubectl get nodes

Beispiel für die Installation von Microservices

Es gibt ein einfaches Microservices-Beispiel, das wir zum Testen unseres Clusters verwenden werden. Es ist ein Online-Shop für Socken.

Zuerst fügen wir den Namespace sock shop hinzu

kubectl create namespace sock-shop

Und dann erstellen wir den Dienst

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

Danach müssen wir einige Zeit warten, bis Container erstellt wurden, und dann können wir versuchen, die neue Site zu besuchen. Um es zu besuchen, müssen wir seine Adresse kennen. Untersuchen wir den Dienst

kubectl describe svc front-end -n sock-shop

Sie erhalten eine ähnliche Ausgabe wie diese

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.

Die fette Zeile wird von mir hervorgehoben, weil wir die Portnummer benötigen, die der Dienst verwendet. Wir müssen die Portnummer mit der Adresse eines unserer Knoten kombinieren, und wir gelangen zur Site.

Schlussfolgerung

Wir haben den Kubernetes 1.5-Cluster also erfolgreich mit kubeadm auf CentOS 7 eingerichtet. In unserem Fall handelt es sich um einen Cluster mit drei Knoten, aber kubeadm ermöglicht es Ihnen, den Cluster einfach durch Hinzufügen neuer Knoten zu skalieren. Stellen Sie sicher, dass Ihr Token privat bleibt, da jeder mit einem Token und einer öffentlichen IP-Adresse Knoten zu Ihrem Cluster hinzufügen kann. Damit beenden wir diesen Artikel, vielen Dank fürs Lesen und einen schönen Tag noch.


Cent OS
  1. So installieren Sie CentOS 8 (mit Screenshots)

  2. So überwachen Sie Kubernetes mit Prometheus

  3. So installieren Sie Python 3 auf CentOS 7 mit SCL

  4. So richten Sie Pure-FTPD mit MySQL unter CentOS und RedHat ein

  5. So richten Sie SSH-Schlüssel unter CentOS 8 ein

So richten Sie einen zentralen Sicherungsserver mit Amanda unter CentOS 7 ein

So richten Sie Openshift Origin unter CentOS 7 ein

So richten Sie Percona-Cluster mit HAproxy Loadbalancer unter CentOS 7 ein

So richten Sie MariaDB Galera Cluster mit HAproxy unter CentOS 7 ein

So installieren Sie Kubernetes auf CentOS 8

So installieren Sie Kubernetes mit Minikube unter CentOS 8