Kubernetes

Kubernetes-Cluster auf DigitalOcean einrichtenO

Kubernetes-Cluster auf DigitalOcean einrichtenO

Kubernetes ist eine der wenigen Technologien, mit denen die Leute Probleme haben, nicht weil sie kompliziert und schwer zu verstehen ist, sondern weil sie für die Ausführung auf Server-Hardware entwickelt wurde und nicht so einfach auf einem typischen Heimcomputer simuliert werden kann. Glücklicherweise gibt es eine Vielzahl von Cloud-gehosteten Plattformen, die eine erschwingliche Infrastruktur bieten, um mit Technologien wie Kubernetes zu experimentieren und sie zu verstehen.Als Voraussetzung empfehle ich Ihnen, unsere Beiträge zur Architektur von Kubernetes und zu Nodes und Pods, den Bausteinen eines Kubernetes-Clusters, durchzulesen.Obwohl es viele gehostete Lösungen für Kubernetes gibt, werden wir alles von Grund auf auf DigitalOcean bereitstellen, einer Cloud-Hosting-Lösung, die sich insbesondere an Entwickler richtet.

Eine VPS-Instanz auf dieser Plattform wird als Droplet bezeichnet. Um Kubernetes auszuführen, benötigen Sie mindestens 2 GB RAM und wir werden für diese Demo die Droplets der Option $20/Monat verwenden. Sie werden auch pro Stunde berechnet. Wenn Sie also ein paar Stunden experimentieren und dann alle Tröpfchen zerstören, zahlen Sie am Ende nicht mehr als ein paar Dollar.

Jetzt haben wir zwei Maschinen, eine mit der Bezeichnung „Master“ und eine andere als Worker-Knoten. Also konfigurieren wir zuerst den Master.


Konfigurieren des Master-Knotens

Um den Master-Knoten zu konfigurieren, verwenden Sie eine SSH-Verbindung mit der öffentlichen IP oder verwenden Sie die von DigitalOcean bereitgestellte Konsole, um als Root-Benutzer auf das Terminal zuzugreifen.

Die ersten Befehle sind die grundlegenden Haushaltsbefehle:

$ apt-Update && apt-Upgrade -y

Dann holen wir die erforderlichen gpg-Schlüssel und fügen sie unserer Liste der vertrauenswürdigen Remote-Repositorys hinzu.

$ curl -s https://Pakete.Wolke.Google.com/apt/doc/apt-key.gpg | apt-Schlüssel hinzufügen -
$ Katze < /etc/apt/sources.list.d/kubernetes.list
deb http://apt.Kubernetes.io/ kubernetes-xenial main
EOF
$ apt-Update

Wenn Sie das apt-Update zum zweiten Mal ausführen, wird das System mit dem offiziellen Kubernetes-Repository auf den neuesten Stand gebracht. Jetzt installieren wir die erforderlichen Pakete.

$ apt install docker.io
#Docker ist für die Containerisierung von Apps erforderlich.
$ apt install kubelet kubeadm kubectl kubernetes-cni

Der letzte Befehl installiert einige Pakete, von denen jedes aus verschiedenen Gründen wichtig ist:

  1. Kubeadm: Bootstraps und Initialisierung von Kubernetes auf einem Knoten. Es kann verwendet werden, um einem Droplet die Rolle des Master-Knotens oder des Worker-Knotens zuzuweisen.
  2. Kubelet: Es ist ein Hintergrundprozess, der mit dem Master-Knoten spricht und von diesem angeforderte Aktionen ausführt.
  3. Kubectl: Es ist das Befehlszeilentool, mit dem Entwickler und Betriebspersonal mit dem Kubernetes-Cluster interagieren und ihn steuern können.
  4. Kubernetes-cni: Es ist das Container Networking Interface, das für die interne Kommunikation zwischen Pods und auch für die externe Kommunikation erforderlich ist.

Nachdem wir nun alle erforderlichen Pakete installiert haben, ist es an der Zeit, den Master-Knoten zu initialisieren. Führen Sie Folgendes aus:

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

Stellen Sie sicher, dass Sie die letzte Variable $DROPLET_IP_ADDRESS durch die öffentliche IP Ihres Masterknotens ersetzen. Wenn alles geklappt hat, wäre dies Ihre Ausgabe:

Stellen Sie sicher, dass Sie die letzte Zeile „kubeadm join -token…“ kopieren, da diese die erforderlichen Sicherheitsanmeldeinformationen enthält, die ein Worker-Knoten zum Beitritt zum Cluster benötigen würde.

Auf jedem Master-Knoten läuft ein API-Server, den der obige Befehl dem Pod-Netzwerk und auch der Befehlszeilenschnittstelle zur Verfügung stellt, kubectl, sowie zu einer optionalen Web-Benutzeroberfläche.

Hinweis: Sie können die öffentliche IP-Adresse Ihres Droplets für die kubeadm init Befehl, aber wenn Sie Ihren Master-Knoten vom Rest der Welt isolieren möchten, möchten Sie vielleicht die private IP-Funktion von DigitalOcean verwenden, die von verschiedenen Pods auf verschiedenen Knoten verwendet wird, um miteinander zu kommunizieren. Sie können später nur die Front-End-Dienste bereitstellen, wenn Ihr Projekt zum Tragen kommt.

Okay, ein letzter Schritt, bevor wir den Zustandsbericht auf unserem Masterknoten sehen. Vielleicht möchten Sie Folgendes ausführen:

$ mkdir -p $HOME/.kube
$ cp /etc/kubernetes/admin.conf $HOME/.kube
$ chown $(id -u):$(id -g) $HOME/admin.conf
$ kubectl create -f
https://roh.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml --namespace=kube-system

Flannel wird im letzten Befehl installiert, der die für Container erforderliche Layer-3-Netzwerkfunktionalität bereitstellt.
Jetzt können wir laufen,

$ kubectl Get-Knoten
$ kubectl get pods -all-namespaces

Das würde uns den Zustand aller Knoten und aller Pods in diesem Cluster anzeigen, der derzeit nur einer ist. Es ist also an der Zeit, das zweite Droplet zu konfigurieren und in einen Kubernetes-Worker-Knoten zu konvertieren.


Die Minions oder Worker Nodes konfigurieren

Viele Minion-Konfigurationen werden eine Wiederholung dessen sein, was wir oben gemacht haben, sie stammen von kubeadm Befehl, dass die Straße sich zu trennen beginnt.

So konfigurieren Sie Ihren Worker-Knoten, indem Sie alle Befehle bis einschließlich der Installation von Paketen wiederholen,

$ apt install kubelet kubeadm kubectl kubernetes-cni

Um das Droplet dann als Kubernetes-Knoten zu initialisieren, führen Sie den Befehl aus, der auf dem Master-Knoten generiert wurde, nach Abschluss vonkubeadm init.

$ kubeadm Join --token 3c37b5.08ed6cdf2e4a14c9
159.89.25.245:6443 --discovery-token-ca-cert-hash
sha256:52f99432eb33bb23ff86f62255ecbb

Bitte beachten Sie, dass der Inhalt, der Ihrem Token-Flag folgt, die IP-Adresse und die sha256-Prüfsumme in Ihrem Fall alle sehr unterschiedlich sein werden. Das ist es! Sie haben einen neuen Knoten als Mitglied des Kubernetes-Clusters. Sie können dies bestätigen, indem Sie die Knoten und Pods auflisten, die auf diesem Cluster ausgeführt werden.


Fazit

Jetzt ist es an der Zeit, dass Sie Ihre dockerisiert Anwendung in diesem Cluster und zögern Sie nicht, mehr Tröpfchen zu spinnen und verwenden Sie die kubeadm beitreten um neue Mitglieder zu Ihrem Kubernetes-Cluster hinzuzufügen.

So entwickeln Sie ein Spiel unter Linux
Vor einem Jahrzehnt hätten nicht viele Linux-Benutzer vorhergesagt, dass ihr Lieblingsbetriebssystem eines Tages eine beliebte Spieleplattform für kom...
Open-Source-Ports kommerzieller Spiele-Engines
Kostenlose, quelloffene und plattformübergreifende Spiel-Engine-Nachbildungen können verwendet werden, um sowohl alte als auch einige der relativ neue...
Beste Befehlszeilenspiele für Linux
Die Befehlszeile ist nicht nur Ihr größter Verbündeter bei der Verwendung von Linux – sie kann auch eine Quelle der Unterhaltung sein, da Sie damit vi...