GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So installieren und konfigurieren Sie Kubernetes (k8s) unter Ubuntu 18.04 LTS

Kubernetes ist ein kostenloses Open-Source-Container-Orchestrierungstool. Es wird verwendet, um Container-basierte Anwendungen automatisch in einer Cluster-Umgebung bereitzustellen, abgesehen davon, dass es auch zur Verwaltung von Docker-Containern verwendet wird über die Kubernetes-Cluster-Hosts hinweg. Kubernetes ist auch als K8s bekannt .

In diesem Artikel zeige ich, wie man Kubernetes mit zwei Knoten installiert und konfiguriert (1.13) mit kubeadm auf Ubuntu 18.04 / 18.10-Systemen. Im Folgenden sind die Details meines Laboraufbaus aufgeführt:

Ich werde drei Ubuntu 18.04 LTS-Systeme verwenden, wobei ein System als Kubernetes-Master-Knoten fungiert und die anderen beiden Knoten fungieren als Slave-Knoten e und wird dem Kubernetes-Cluster beitreten. Ich gehe davon aus, dass auf diesen drei Systemen mindestens 18.04 LTS installiert ist.

  • Kubernetes-Masterknoten – (Hostname:k8s-master , IP :192.168.1.70, Betriebssystem :Minimal Ubuntu 18.04 LTS)
  • Kubernetes-Slave-Knoten 1 – (Hostname:k8s-worker-node1, IP:192.168.1.80 , OS:Minimal Ubuntu 18.04 LTS)
  • Kubernetes-Slave-Knoten 2 – (Hostname:k8s-worker-node2, IP:192.168.1.90 , OS:Minimal Ubuntu 18.04 LTS)

Hinweis: Der Kubernetes-Slave-Knoten ist auch als Worker-Knoten bekannt

Lassen Sie uns zu den Installations- und Konfigurationsschritten von k8s springen.

Schritt:1) Hostnamen festlegen und Hostdatei aktualisieren

Melden Sie sich beim Master-Knoten an und konfigurieren Sie seinen Hostnamen mit dem Befehl hostnamectl

[E-Mail-geschützt]:~$ sudo hostnamectl set-hostname "k8s-master"[E-Mail-geschützt]:~$ exec bash[E-Mail-geschützt]:~$

Melden Sie sich bei Slave-/Worker-Knoten an und konfigurieren Sie deren Hostnamen jeweils mit dem Befehl hostnamectl,

[email protected]:~$ sudo hostnamectl set-hostname k8s-worker-node1[email protected]:~$ exec bash[email protected]:~$[email protected]:~$ sudo hostnamectl set-hostname k8s- worker-node2[E-Mail-geschützt]:~$ exec bash[E-Mail-geschützt]:~$

Fügen Sie auf allen drei Systemen die folgenden Zeilen zur Datei /etc/hosts hinzu,

192.168.1.70     k8s-master192.168.1.80     k8s-worker-node1192.168.1.90     k8s-worker-node2

Schritt:2) Docker-Dienst auf Master- und Slave-Knoten installieren und starten

Führen Sie den folgenden apt-get-Befehl aus, um Docker auf dem Master-Knoten zu installieren,

[email protected]:~$ sudo apt-get install docker.io -y

Führen Sie den folgenden apt-get-Befehl aus, um Docker auf Slave-Knoten zu installieren,

[email protected]:~$ sudo apt-get install docker.io -y[email protected]:~$ sudo apt-get install docker.io -y

Sobald die Docker-Pakete auf allen drei Systemen installiert sind, starten und aktivieren Sie den Docker-Dienst mit den folgenden systemctl-Befehlen. Diese Befehle müssen auf Master- und Slave-Knoten ausgeführt werden.

~$ sudo systemctl start docker~$ sudo systemctl enable dockerSynchronizing state of docker.service with SysV service script with /lib/systemd/systemd-sysv-install.Executing:/lib/systemd/systemd-sysv-install enable docker ~$

Verwenden Sie den folgenden Docker-Befehl, um zu überprüfen, welche Docker-Version auf diesen Systemen installiert wurde,

~$ docker --versionDocker-Version 18.06.1-ce, Build e68fc7a~$

Schritt:3) Konfigurieren Sie das Kubernetes-Paket-Repository auf Master- und Slave-Knoten

Hinweis: Alle Befehle in diesem Schritt müssen auf Master- und Slave-Knoten ausgeführt werden

Lassen Sie uns zuerst einige erforderliche Pakete installieren und die folgenden Befehle auf allen Knoten ausführen, einschließlich des Master-Knotens

~$ sudo apt-get install apt-transport-https curl -y

Fügen Sie nun den Kubernetes-Paket-Repository-Schlüssel mit dem folgenden Befehl hinzu:

:~$ curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key addOK:~$

Konfigurieren Sie jetzt das Kubernetes-Repository mit den folgenden apt-Befehlen. Zu diesem Zeitpunkt ist das Kubernetes-Paket-Repository von Ubuntu 18.04 (bionic weaver) nicht verfügbar, daher verwenden wir das Xenial Kubernetes-Paket-Repository.

:~$ sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"

Schritt:4) Deaktivieren Sie Swap und installieren Sie Kubeadm auf allen Knoten

Hinweis: Alle Befehle in diesem Schritt müssen auf Master- und Slave-Knoten ausgeführt werden

Kubeadm ist eine der am häufigsten verwendeten Methoden zum Bereitstellen von Kubernetes-Clustern oder mit anderen Worten, wir können sagen, dass es zum Bereitstellen mehrerer Knoten in einem Kubernetes-Cluster verwendet wurde.

Gemäß der offiziellen Kubernetes-Website wird empfohlen, den Swap auf allen Knoten einschließlich des Master-Knotens zu deaktivieren.

Führen Sie den folgenden Befehl aus, um den Swap temporär zu deaktivieren,

:~$ sudo swapoff -a

Um den Swap dauerhaft zu deaktivieren, kommentieren Sie den Eintrag Swapfile oder Swap-Partition in der Datei /etc/fstab aus.

Installieren Sie jetzt das Kubeadm-Paket auf allen Knoten, einschließlich master.

:~$ sudo apt-get install kubeadm -y

Nachdem die kubeadm-Pakete erfolgreich installiert wurden, überprüfen Sie die kubeadm-Version mit dem Befehl below.

:~$ kubeadm versionkubeadm version:&version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.2", GitCommit:"cff46ab41ff0bb44d8584413b598ad8360ec1def", GitTreeState:"clean", BuildDate:"2019 -01-10T23:33:30Z", GoVersion:"go1.11.4", Compiler:"gc", Plattform:"linux/amd64"}:~$

Schritt:5) Initialisieren und starten Sie den Kubernetes-Cluster auf dem Master-Knoten mit Kubeadm

Verwenden Sie den folgenden kubeadm-Befehl nur auf dem Master-Knoten, um Kubernetes zu initialisieren

[email protected]:~$ sudo kubeadm init --pod-network-cidr=172.168.10.0/24

Im obigen Befehl können Sie dasselbe Pod-Netzwerk verwenden oder Ihr eigenes Pod-Netzwerk auswählen, das zu Ihrer Umgebung passt. Sobald der Befehl erfolgreich ausgeführt wurde, erhalten wir die Ausgabe in etwa wie unten,

Die obige Ausgabe bestätigt, dass der Master-Knoten erfolgreich initialisiert wurde. Um den Cluster zu starten, führen Sie also die folgenden Befehle nacheinander aus,

[E-Mail-geschützt]:~$  mkdir -p $HOME/.kube[E-Mail-geschützt]:~$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config[E-Mail-geschützt]:~ $ sudo chown $(id -u):$(id -g) $HOME/.kube/config[email protected]:~$

Überprüfen Sie den Status des Master-Knotens mit dem folgenden Befehl:

[email protected]:~$ kubectl get nodesNAME         STATUS     ROLLEN    AGE   VERSIONk8s-master   NotReady   master   18m   v1.13.2[email protected]:~$

Wie wir in der obigen Befehlsausgabe sehen können, ist unser Master-Knoten nicht bereit, da wir bis jetzt noch keinen Pod bereitgestellt haben.

Stellen wir das Pod-Netzwerk bereit. Das Pod-Netzwerk ist das Netzwerk, über das unsere Cluster-Knoten miteinander kommunizieren. Wir werden Flanell einsetzen Als unser Pod-Netzwerk wird Flannel das Overlay-Netzwerk bereitstellen zwischen Clusterknoten.

Schritt:6) Stellen Sie Flannel als Pod-Netzwerk vom Master-Knoten bereit und überprüfen Sie die Pod-Namespaces

Führen Sie das folgende kubectl aus Befehl zum Bereitstellen des Pod-Netzwerks vom Master-Knoten

[email protected]:~$ sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

Die Ausgabe des obigen Befehls sollte in etwa so aussehen wie unten

clusterrole.rbac.authorization.k8s.io/flannel createdclusterrolebinding.rbac.authorization.k8s.io/flannel createdserviceaccount/flannel createdconfigmap/kube-flannel-cfg createddaemonset.extensions/kube-flannel-ds-amd64 createddaemonset.extensions/ kube-flannel-ds-arm64 createddaemonset.extensions/kube-flannel-ds-arm createddaemonset.extensions/kube-flannel-ds-ppc64le createddaemonset.extensions/kube-flannel-ds-s390x created[email protected]:~$ 

Überprüfen Sie nun den Status des Master-Knotens und die Pod-Namespaces mit dem Befehl kubectl,

[email protected]:~$ sudo  kubectl get nodesNAME         STATUS   ROLLEN    ALTER   VERSIONk8s-master   Bereit    master   78m   v1.13.2[email protected]:~$[email protected]:~$ sudo  kubectl get pods --all-namespacesNAMESPACE     NAME Bereitschaftsstatus Neustarts Alterskube-System COREDNS-86C58D9DF4-PX4SJ 1/1 Ausführen 0 79mkube-System COREDNS-86C58D9DF4-WZDZK 1/1 Laufen 0 79mkube-System etcd-k8s-Master 1/1 Laufen 1 79mkube-System Kube-Apiserver-K8s -Master 1/1 Laufen 1 79mkube-System Kube-Controller-Manager-K8S-Master 1/1 Laufen 1 79mkube-System Kube-Flanell-DS-AMD64-9TN8Z 1/1 Laufen 0 14mkube-System Kube-Proxy-CJZZ2 1 /1     Wird ausgeführt   1          79mkube-system   kube-scheduler-k8s-master            1/1     Wird ausgeführt   1          79 m [email protected]:~$

Wie wir in der obigen Ausgabe sehen können, hat sich der Status unseres Master-Knotens in „Bereit“ geändert “ und alle Namespaces des Pods befinden sich im Ausführungsstatus, was bestätigt, dass sich unser Master-Knoten in einem fehlerfreien Zustand befindet und bereit ist, einen Cluster zu bilden.

Schritt:7) Slave- oder Worker-Knoten zum Cluster hinzufügen

Hinweis: In Schritt 5, kubeadm-Befehlsausgabe, haben wir den vollständigen Befehl erhalten, den wir auf dem Slave- oder Worker-Knoten verwenden müssen, um einem Cluster beizutreten

Melden Sie sich beim ersten Slave-Knoten (k8s-worker-node1) an und führen Sie den folgenden Befehl aus, um dem Cluster beizutreten,

[email protected]:~$ sudo kubeadm join 192.168.1.70:6443 --token cwxswk.hbkuu4jua82o80d1 --discovery-token-ca-cert-hash sha256:ff1b0cfe5aec94f90a42bdb45d2b8bfde34006017c0e3f308

Die Ausgabe des obigen Befehls sollte in etwa so aussehen:

Führen Sie auf ähnliche Weise denselben kubeadm join-Befehl auf dem zweiten Worker-Knoten aus,

[email protected]:~$ sudo kubeadm join 192.168.1.70:6443 --token cwxswk.hbkuu4jua82o80d1 --discovery-token-ca-cert-hash sha256:ff1b0cfe5aec94f90a42bdb45d2b8bfde34006017c0e3f308

Die Ausgabe von oben sollte so etwas wie unten sein,

Gehen Sie nun zum Master-Knoten und führen Sie den folgenden Befehl aus, um den Status des Master- und Slave-Knotens zu überprüfen

 [E-Mail geschützt]:~ $ KUBECTL Holen Sie sich NODESNAME Status Rollen AltersversionK8s-Master Ready Master 100m V1.13.2K8S-Arbeiter-Knoten1 READY  10M V1.13.2K8S-Arbeiter-Node2 Bereit  4m6s V1. 13.2[E-Mail-geschützt]:~$

Der obige Befehl bestätigt, dass wir unsere beiden Worker-Knoten erfolgreich zum Cluster hinzugefügt haben und ihr Status „Bereit“ ist. Dies bedeutet, dass wir den Kubernetes-Cluster mit zwei Knoten erfolgreich auf Ubuntu 18.04-Systemen installiert und konfiguriert haben.

Lesen Sie mehr zu:Pod, Replication Controller und Service in Kubernetes bereitstellen


Ubuntu
  1. So installieren und konfigurieren Sie Redis unter Ubuntu 18.04

  2. So installieren und konfigurieren Sie Redmine unter Ubuntu 18.04

  3. So installieren und konfigurieren Sie Samba unter Ubuntu 18.04

  4. So installieren und konfigurieren Sie Ansible unter Ubuntu 18.04 LTS

  5. So installieren und konfigurieren Sie Fail2ban unter Ubuntu 20.04 LTS

So installieren und konfigurieren Sie GitLab CE unter Ubuntu 18.04 LTS

So installieren und konfigurieren Sie Kubernetes unter Ubuntu

So installieren und konfigurieren Sie Docker-CE unter Ubuntu 18.04 LTS

So installieren und konfigurieren Sie Odoo ERP auf Ubuntu 20.04 LTS

So installieren und konfigurieren Sie MySQL in Ubuntu 20.04 LTS

So installieren und konfigurieren Sie den DNS-Server unter Ubuntu 16.04 LTS