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

So installieren Sie Kubernetes (k8s) 1.7 unter CentOS 7 / RHEL 7

Kubernetes ist ein Cluster und Orchestrierung Motor für Docker-Container. Mit anderen Worten, Kubernetes ist eine Open-Source-Software oder ein Open-Source-Tool, das zum Orchestrieren und Verwalten von Docker-Containern in einer Clusterumgebung verwendet wird. Kubernetes ist auch als k8s bekannt und wurde von Google entwickelt und an die „Cloud Native Computing Foundation“ gespendet

Im Kubernetes-Setup haben wir einen Master-Knoten und mehrere Knoten. Cluster-Knoten sind als Worker-Knoten oder Minion bekannt. Vom Master-Knoten aus verwalten wir den Cluster und seine Knoten mit „kubeadm“. ‘ und ‚kubectl ‘ Befehl.

Kubernetes kann mit den folgenden Methoden installiert und bereitgestellt werden:

  • Minikube (Es ist ein Kubernetes-Cluster mit einem Knoten)
  • Kops (Einrichtung von Kubernetes mit mehreren Knoten in AWS)
  • Kubeadm (Multi Node Cluster in unseren eigenen Räumlichkeiten)

In diesem Artikel installieren wir die neueste Version von Kubernetes 1.7 auf CentOS 7 / RHEL 7 mit dem Dienstprogramm kubeadm. In meinem Setup nehme ich drei CentOS 7-Server mit minimaler Installation. Ein Server fungiert als Master-Knoten und die restlichen zwei Server sind Minion- oder Worker-Knoten.

Auf dem Masterknoten werden folgende Komponenten installiert

  • API-Server – Es bietet Kubernetes-API mit Jason / Yaml über http, Zustände von API-Objekten werden in etcd gespeichert
  • Scheduler   – Es ist ein Programm auf dem Master-Knoten, das die Planungsaufgaben wie das Starten von Containern in Worker-Knoten basierend auf der Ressourcenverfügbarkeit ausführt
  • Controller-Manager – Die Hauptaufgabe des Controller-Managers besteht darin, Replikationscontroller zu überwachen und Pods zu erstellen, um den gewünschten Zustand beizubehalten.
  • usw. – Es ist eine Schlüssel-Wert-Paar-Datenbank. Es speichert Konfigurationsdaten des Clusters und des Clusterstatus.
  • Kubectl-Dienstprogramm – Es ist ein Befehlszeilendienstprogramm, das eine Verbindung zum API-Server auf Port 6443 herstellt. Es wird von Administratoren verwendet, um Pods, Dienste usw. zu erstellen.

Auf Worker Nodes werden folgende Komponenten installiert

  • Kubelet – Es ist ein Agent, der auf jedem Worker-Knoten läuft, sich mit Docker verbindet und sich um das Erstellen, Starten und Löschen von Containern kümmert.
  • Kube-Proxy – Es leitet den Datenverkehr basierend auf der IP-Adresse und Portnummer der eingehenden Anfrage an geeignete Container weiter. Mit anderen Worten können wir sagen, dass es für die Übersetzung von Ports verwendet wird.
  • Pod – Pod kann als Multi-Tier oder Gruppe von Containern definiert werden, die auf einem einzelnen Worker-Knoten oder Docker-Host bereitgestellt werden.

Installationsschritte von Kubernetes 1.7 auf CentOS 7 / RHEL 7

Führen Sie die folgenden Schritte auf dem Master-Knoten aus

Schritt 1:SELinux deaktivieren und Firewall-Regeln einrichten

Melden Sie sich bei Ihrem Kubernetes-Master-Knoten an, legen Sie den Hostnamen fest und deaktivieren Sie Selinux mit den folgenden Befehlen

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

Legen Sie die folgenden Firewall-Regeln fest.

[[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

Hinweis: Falls Sie keinen eigenen DNS-Server haben, aktualisieren Sie die Datei /etc/hosts auf Master- und Worker-Knoten

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

Deaktivieren Sie Swap in allen Knoten mit „swapoff -a ” Befehl und Swap-Partitionen oder Swap-Datei aus fstab-Datei entfernen oder auskommentieren

Schritt 2:Kubernetes-Repository konfigurieren

Kubernetes-Pakete sind in den standardmäßigen CentOS 7- und RHEL 7-Repositories nicht verfügbar. Verwenden Sie den folgenden Befehl, um die Paket-Repositories zu konfigurieren.

[[email protected] ~]# 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] ~]#

Schritt 3:Kubeadm und Docker installieren

Sobald die Paket-Repositories konfiguriert sind, führen Sie den folgenden Befehl aus, um kubeadm- und Docker-Pakete zu installieren.

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

Starten und aktivieren Sie kubectl und den Docker-Dienst

[[email protected] ~]# systemctl docker neu starten &&systemctl docker aktivieren[[email protected] ~]# systemctl  kubelet neu starten &&systemctl kubelet aktivieren

Schritt 4:Kubernetes Master mit „kubeadm init“ initialisieren

Führen Sie den folgenden Befehl aus, um Kubernetes Master zu initialisieren und einzurichten.

[[email protected] ~]# kubeadm init

Die Ausgabe des obigen Befehls würde in etwa so aussehen

Wie wir in der Ausgabe sehen können, wurde der Kubernetes-Master erfolgreich initialisiert. Führen Sie die folgenden Befehle aus, um den Cluster als Root-Benutzer zu verwenden.

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

Schritt 5:Stellen Sie das Pod-Netzwerk im Cluster bereit

Versuchen Sie, die folgenden Befehle auszuführen, um den Status von Cluster und Pods abzurufen.

Um den Clusterstatus bereit und den kube-dns-Status auszuführen, stellen Sie das Pod-Netzwerk so bereit, dass Container verschiedener Hosts miteinander kommunizieren. Das POD-Netzwerk ist das Overlay-Netzwerk zwischen den Worker-Knoten.

Führen Sie den folgenden Befehl aus, um das Netzwerk bereitzustellen.

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

Führen Sie nun die folgenden Befehle aus, um den Status zu überprüfen

 [[E-Mail geschützt] ~]# kubectl Get nodesname Status Alter Versionk8s-Master Ready 1H -Master 1/1 Laufen 0 57MKube-System Kube-Aapiserver-K8S-Master 1/1 Laufen 0 57MKube-System Kube-Controller-Manager-K8S-Master 1/1 Laufen 0 57MKube-System Kube-24252716778-0444ww 3 /3 Laufen 0 1HKUBE-SYSTEM KUBE-PROXY-9H259 1/1 LOVERT 0 1HKUBE-SYSTEM KUBESCHELLER-MASTER ] ~]#

Lassen Sie uns nun Worker-Knoten zu den Kubernetes-Master-Knoten hinzufügen.

Führen Sie die folgenden Schritte auf jedem Worker-Knoten aus

Schritt 1:Deaktivieren Sie SELinux und konfigurieren Sie Firewall-Regeln auf beiden Knoten

Legen Sie vor dem Deaktivieren von SELinux den Hostnamen auf beiden Knoten als „worker-node1“ bzw. „worker-node2“ fest

~]# 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

Schritt 2:Kubernetes-Repositories auf beiden Worker-Knoten konfigurieren

~]# 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

Schritt 3:Installieren Sie kubeadm und das Docker-Paket auf beiden Knoten

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

Docker-Dienst starten und aktivieren

[[email protected] ~]# systemctl docker neu starten &&systemctl docker aktivieren[[email protected] ~]# systemctl docker neu starten &&systemctl docker aktivieren

Schritt 4:Verbinden Sie jetzt die Worker-Knoten mit dem Master-Knoten

Um Worker-Knoten mit dem Master-Knoten zu verbinden, ist ein Token erforderlich. Immer wenn der Kubernetes-Master initialisiert wird, erhalten wir in der Ausgabe Befehl und Token. Kopieren Sie diesen Befehl und führen Sie ihn auf beiden Knoten aus.

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

Die Ausgabe des obigen Befehls würde in etwa so aussehen

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

Die Ausgabe wäre so etwas wie unten

Überprüfen Sie nun den Knotenstatus vom Master-Knoten mit dem kubectl-Befehl

 [[E-Mail geschützt] ~]# kubectl Get nodesName Status Age Versionk8s-Master Ready 2H v1.7.5Worker-Node1 Ready 20m v1.7.5Worker-Node2 Ready 18m v1.7.5 [[E-Mail Protected] ~]#  

Wie wir sehen können, befinden sich Master- und Worker-Knoten im Bereitschaftsstatus. Dies kommt zu dem Schluss, dass Kubernetes 1.7 erfolgreich installiert wurde und wir auch erfolgreich zwei Worker-Knoten beigetreten sind. Jetzt können wir Pods und Dienste erstellen.

Bitte teilen Sie uns Ihr Feedback und Ihre Kommentare mit, falls dieser Artikel Ihnen hilft, die neueste Version von Kubernetes 1.7 zu installieren


Cent OS
  1. So installieren Sie phpMyAdmin auf RHEL 8 / CentOS 8

  2. So installieren Sie P7Zip auf RHEL 8 / CentOS 8

  3. So installieren Sie Icinga 2 unter CentOS 8 / RHEL 8

  4. So installieren Sie MongoDB auf CentOS 8 / RHEL 8

  5. So installieren Sie Firefox 10 auf CentOS 6 / RHEL 6

So installieren Sie Maven auf RHEL 8 / CentOS 8

So installieren Sie cpan auf RHEL 8 / CentOS 8

So installieren Sie Ruby auf RHEL 8 / CentOS 8

So installieren Sie Docker CE auf RHEL 8 / CentOS 8

So installieren Sie VirtualBox 6.0 unter CentOS 8 / RHEL 8

So installieren Sie PHP 7.4 unter CentOS 8 / RHEL 8