Kubernetes Tutorial - Eine umfassende Anleitung für Kubernetes



Dieser Blog im Kubernetes Tutorial führt Sie mit einem Hands-on durch alle Konzepte des Container-Orchestrierungssystems.

Kubernetes ist eine Plattform, die die manuellen Prozesse bei der Bereitstellung von Containeranwendungen überflüssig macht. In diesem Blog im Kubernetes Tutorial werden Sie alle Konzepte dieser Multi-Container-Verwaltungslösung durchgehen.

Die folgenden Themen werden in diesem Tutorial behandelt:





Bevor ich in diesem Blog fortfahre, möchte ich Sie kurz über die Containerisierung informieren.

Bevor Container entstanden, hatten die Entwickler und die Tester immer einen Streit zwischen sich. Dies geschah normalerweise, weil das, was auf der Entwicklerseite funktionierte, auf der Testseite nicht funktionierte. Beide existierten in unterschiedlichen Umgebungen. Um solche Szenarien zu vermeiden, wurden nun Container eingeführt, sodass sich sowohl Entwickler als auch Tester auf derselben Seite befanden.



Ein Problem war auch der Umgang mit einer großen Anzahl von Containern. Manchmal wurden beim Ausführen von Containern auf der Produktseite nur wenige Probleme angesprochen, die in der Entwicklungsphase nicht vorhanden waren. Diese Art von Szenarien führte das Container Orchestration System ein.

Bevor ich mich eingehend mit dem Orchestrierungssystem befasse, möchte ich kurz die Herausforderungen auflisten, denen sich dieses System gegenübersieht.



wie man String Python umkehrt

Kubernetes Tutorial: Herausforderungen ohne Container-Orchestrierung

Herausforderungen ohne Container-Orchestrierung - Kubernetes Tutorial - Edureka

Wie Sie im obigen Diagramm sehen können, wenn mehrere Dienste in Containern ausgeführt werden, möchten Sie diese Container möglicherweise skalieren. In großen Industrien ist dies sehr schwierig. Dies liegt daran, dass sich die Kosten für die Wartung von Diensten und die Komplexität für die gleichzeitige Ausführung erhöhen würden.

Um zu vermeiden, dass Services manuell eingerichtet und die Herausforderungen bewältigt werden, war etwas Großes erforderlich. Hier kommt die Container Orchestration Engine ins Spiel.

Mit dieser Engine können wir mehrere Container so organisieren, dass alle zugrunde liegenden Maschinen gestartet werden, Container fehlerfrei sind und in einer Clusterumgebung verteilt werden. In der heutigen Welt gibt es hauptsächlich zwei solcher Motoren: Gouverneure & Hafenschwarm .

Kubernetes Tutorial: Kubernetes gegen Docker Swarm

Gouverneure und Hafenschwarm sind führende Container-Orchestrierungs-Tools auf dem heutigen Markt. Bevor Sie sie in Prod verwenden, sollten Sie wissen, was genau sie sind und wie sie funktionieren.

Außerdem werde ich im Blog tief in Kubernetes eintauchen, aber um mehr über Docker zu erfahren, können Sie darauf klicken .

Wie Sie dem obigen Bild entnehmen können, besitzt Kubernetes im Vergleich zu Docker Swarm eine großartige aktive Community und ermöglicht die automatische Skalierung in vielen Organisationen. In ähnlicher Weise verfügt Docker Swarm im Vergleich zu Kubernetes über einen einfach zu startenden Cluster, der jedoch auf die Funktionen der Docker-API beschränkt ist.

Nun, Leute, dies sind nicht die einzigen Unterschiede zwischen diesen Top-Tools. Wenn Sie die detaillierten Unterschiede zwischen diesen beiden Container-Orchestrierungswerkzeugen kennen möchten, können Sie auf klicken

Möchten Sie mehr über Kubernetes erfahren?

Wenn ich meine Wahl zwischen den beiden treffen könnte, müsste es Kubernetes sein, da Container für Aufgaben wie Planung, Lastausgleich und Verteilung verwaltet und mit der Außenwelt verbunden werden müssen.

Aber wenn Sie logisch denken, wäre Docker Swarm eine bessere Option, da es über Docker läuft, oder? Wenn ich Sie wäre, wäre ich definitiv verwirrt darüber, welches Tool ich verwenden soll. Aber hey, Kubernetes ist ein unbestrittener Marktführer und läuft auch auf Docker-Containern mit besseren Funktionen.

Nachdem Sie die Notwendigkeit von Kubernetes verstanden haben, ist es eine gute Zeit, die ich Ihnen sage Was ist Kubernetes?

Kubernetes Tutorial: Was ist Kubernetes?

ist eine Open Source System, das die Planung von Containern in einem Computercluster übernimmt und die Workloads verwaltet, um sicherzustellen, dass sie wie vom Benutzer beabsichtigt ausgeführt werden. Als Idee von Google bietet es eine hervorragende Community und arbeitet hervorragend mit allen Cloud-Anbietern zusammen, um eine zu werden Multi-Container-Management-Lösung.

Kubernetes Tutorial: Kubernetes Funktionen

Die Funktionen von Kubernetes sind wie folgt:

  • Automatisierte Planung: Kubernetes bietet einen erweiterten Scheduler zum Starten von Containern auf Clusterknoten basierend auf ihren Ressourcenanforderungen und anderen Einschränkungen, ohne die Verfügbarkeit zu beeinträchtigen.
  • Selbstheilungskräfte: Mit Kubernetes können Container ersetzt und neu geplant werden, wenn Knoten sterben. Außerdem werden Container getötet, die nicht auf benutzerdefinierte Integritätsprüfungen reagieren, und sie werden den Kunden erst angezeigt, wenn sie bereit sind, sie zu bedienen.
  • Automatisierte Rollouts und Rollbacks: Kubernetes führt Änderungen an der Anwendung oder ihrer Konfiguration durch und überwacht gleichzeitig den Anwendungszustand, um sicherzustellen, dass nicht alle Instanzen gleichzeitig beendet werden. Wenn etwas schief geht, können Sie mit Kubernetes die Änderung rückgängig machen.
  • Horizontale Skalierung und Lastausgleich: Kubernetes kann die Anwendung gemäß den Anforderungen mit einem einfachen Befehl, über eine Benutzeroberfläche oder automatisch basierend auf der CPU-Auslastung vergrößern und verkleinern.

Kubernetes Tutorial: Kubernetes Architektur

Kubernetes Architecture besteht aus folgenden Hauptkomponenten:

  • Hauptknoten
  • Worker / Slave-Knoten

Ich werde jeden von ihnen einzeln besprechen. Beginnen wir also zunächst mit dem Verständnis der Hauptknoten .

Hauptknoten

Der Masterknoten ist für die Verwaltung des Kubernetes-Clusters verantwortlich. Es ist hauptsächlich der Einstiegspunkt für alle Verwaltungsaufgaben. Es kann mehr als einen Masterknoten im Cluster geben, um die Fehlertoleranz zu überprüfen.

Wie Sie im obigen Diagramm sehen können, verfügt der Masterknoten über verschiedene Komponenten wie API-Server, Controller Manager, Scheduler und ETCD.

  • API-Server: Der API-Server ist der Einstiegspunkt für alle REST-Befehle, die zur Steuerung des Clusters verwendet werden.
  • Controller Manager: Ist ein Daemon, der den Kubernetes-Cluster reguliert und verschiedene nicht terminierende Regelkreise verwaltet.
  • Planer: Der Scheduler plant die Aufgaben für Slave-Knoten. Es speichert die Informationen zur Ressourcennutzung für jeden Slave-Knoten.
  • ETCD: ETCD ist ein einfacher, verteilter und konsistenter Schlüsselwertspeicher. Es wird hauptsächlich für die gemeinsame Konfiguration und Diensterkennung verwendet.

Worker / Slave-Knoten

Arbeitsknoten enthalten alle erforderlichen Dienste, um das Netzwerk zwischen den Containern zu verwalten, mit dem Masterknoten zu kommunizieren und den geplanten Containern Ressourcen zuzuweisen.

Wie Sie im obigen Diagramm sehen können, verfügt der Worker-Knoten über verschiedene Komponenten wie Docker Container, Kubelet, Kube-Proxy und Pods.

  • Docker Container: Docker wird auf jedem der Arbeitsknoten ausgeführt und führt die konfigurierten Pods aus
  • Kubelet: Kubelet erhält die Konfiguration eines Pods vom API-Server und stellt sicher, dass die beschriebenen Container betriebsbereit sind.
  • Kuba Proxy: Der Kube-Proxy fungiert als Netzwerk-Proxy und Load Balancer für einen Dienst auf einem einzelnen Worker-Knoten
  • Pods: Ein Pod ist ein oder mehrere Container, die logisch zusammen auf Knoten ausgeführt werden.

Wenn Sie eine detaillierte Erläuterung aller Komponenten der Kubernetes-Architektur wünschen, können Sie sich auf unsere beziehen Blog auf

Möchten Sie sich in Kubernetes zertifizieren lassen?

Kubernetes Tutorial: Kubernetes Fallstudie

Y. ahoo! JAPAN ist ein Webdienstleister mit Hauptsitz in Sunnyvale, Kalifornien. Als das Unternehmen die Hardware virtualisieren wollte, begann das Unternehmen mit der Verwendung OpenStack im Jahr 2012. Ihr internes Umfeld änderte sich sehr schnell. Aufgrund des Fortschritts der Cloud- und Containertechnologie wollte das Unternehmen jedoch die CapaMöglichkeit, Dienste auf verschiedenen Plattformen zu starten.

Problem: Wie erstelle ich Images für alle erforderlichen Plattformen aus einem Anwendungscode und stelle diese Images auf jeder Plattform bereit?

Zum besseren Verständnis beziehen Sie sich auf das folgende Bild. Wenn der Code in der Coderegistrierung geändert wird, werden Bare-Metal-Images, Docker-Container und VM-Images von Tools für die kontinuierliche Integration erstellt, in die Image-Registrierung verschoben und dann auf jeder Infrastrukturplattform bereitgestellt.


Konzentrieren wir uns nun auf den Container-Workflow, um zu verstehen, wie Kubernetes als Bereitstellungsplattform verwendet wurde. Sehen Sie sich das folgende Bild an, um einen Einblick in die Plattformarchitektur zu erhalten.

OpenStack-Instanzen werden mit Docker, Kubernetes, Calico usw. verwendet, um verschiedene Vorgänge wie Containernetzwerke, Containerregistrierung usw. auszuführen.

Wenn Sie mehrere Cluster haben, wird es schwierig, diese richtig zu verwalten?

Sie wollten lediglich einen einfachen OpenStack-Basiscluster erstellen, um die für Kubernetes erforderlichen Grundfunktionen bereitzustellen und die Verwaltung der OpenStack-Umgebung zu vereinfachen.

Durch die Kombination von Image-Erstellungsworkflow und Kubernetes wurde die folgende Toolchain erstellt, die den Code-Push bis zur Bereitstellung vereinfacht.

Länge des Arrays in Javascript


Diese Art von Toolchain stellte sicher, dass alle Faktoren für die Produktionsbereitstellung wie Mandantenfähigkeit, Authentifizierung, Speicherung, Netzwerk und Serviceerkennung berücksichtigt wurden.

So Leute, Yahoo! JAPAN hat mit Hilfe von eine Automatisierungs-Toolchain für die Bereitstellung von Code mit einem Klick auf Kubernetes erstellt, die unter OpenStack ausgeführt wird Google und Solinea .

Gouverneurs-Tutorial: Praktisch

In diesem Hands-On zeige ich Ihnen, wie Sie eine Bereitstellung und einen Dienst erstellen. Ich verwende eine Amazon EC2-Instanz, um Kubernetes zu verwenden. Nun, Amazon hat sich etwas ausgedacht Amazon Elastic Container Service zum Gouverneure (Amazon EKS) Dadurch können sie sehr schnell und einfach Kubernetes-Cluster in der Cloud erstellen. Wenn Sie mehr darüber erfahren möchten, können Sie auf den Blog verweisen

Schritt 1: Zuerst Erstellen Sie einen Ordner In diesem Bereich erstellen Sie Ihre Bereitstellung und Ihren Service. Verwenden Sie danach einen Editor und Öffnen Sie eine Bereitstellungsdatei .

mkdir handsOn cd handsOn vi Deploy.yaml

Schritt 2: Erwähnen Sie nach dem Öffnen der Bereitstellungsdatei alle Spezifikationen für die Anwendung, die Sie bereitstellen möchten. Hier versuche ich ein zu implementieren httpd Anwendung.

apiVersion: apps / v1 # Definiert die API-Versionsart: Deployment #Kinds-Parameter definiert, um welche Art von Datei es sich handelt. Hier handelt es sich um Deployment-Metadaten: name: dep1 # Speichert den Namen der Deployment-Spezifikation: # Unter Spezifikationen erwähnen Sie alle Die Spezifikationen für die Bereitstellungsreplikate lauten: 3 # Die Anzahl der Replikate beträgt 3. Selektor: matchLabels: app: httpd # Der zu durchsuchende Labelname lautet httpd template: metadata: labels: app: httpd #Template name wäre httpd spec: # Under Spezifikationen, Sie erwähnen alle Spezifikationen für die Container-Container: - Name: httpd #Name der Container wäre httpd-Image: httpd: neueste #Das Image, das heruntergeladen werden muss, ist httpd: neueste Ports: - containerPort: 80 #Die Anwendung würde auf Port 80 ausgesetzt sein

Schritt 3: Wenden Sie nach dem Schreiben Ihrer Bereitstellungsdatei die Bereitstellung mit dem folgenden Befehl an.

kubectl apply -f Deploy.yaml

Hier ist -f ein Flaggenname, für den verwendet wirdtDie AkteName.

Schritt 4: Sobald die Bereitstellung angewendet wurde, wird die Liste der Pods ausgeführt.

kubectl bekommen pods -o breit

Hier wird -o wide verwendet, um zu wissen, auf welchem ​​Knoten die Bereitstellung ausgeführt wird.

Schritt 5: Nachdem Sie eine Bereitstellung erstellt haben, müssen Sie jetzt einen Dienst erstellen. Verwenden Sie dazu erneut einen Editor und öffnen Sie ein Leerzeichen Bedienung. Yaml-Datei .

vi service.yaml

Schritt 6: Erwähnen Sie nach dem Öffnen einer Servicedatei alle Spezifikationen für den Service.

apiVersion: v1 # Definiert die API-Versionsart: Service #Kinds-Parameter definiert, um welche Art von Datei es sich handelt. Hier sind es Service-Metadaten: name: netsvc # Speichert den Namen der Service-Spezifikation: # Unter Spezifikationen erwähnen Sie alle Spezifikationen für den Diensttyp: NodePort-Selektor: App: httpd-Ports: -Protokoll: TCP-Port: 80 targetPort: 8084 #Zielportnummer ist 8084

Schritt 7: Wenden Sie nach dem Schreiben Ihrer Servicedatei die Servicedatei mit dem folgenden Befehl an.

kubectl apply -f service.yaml

Schritt 8: Verwenden Sie nun den folgenden Befehl, sobald Ihr Dienst angewendet wurde, um zu überprüfen, ob der Dienst ausgeführt wird oder nicht.

kubectl get svc

Schritt 9: Sehen Sie sich nun die Service-Spezifikationen an und überprüfen Sie, um welchen Endpunkt es sich handeltVerwenden Sie den folgenden Befehl.

kubectl beschreiben svc

Schritt 10: Verwenden Sie den folgenden Befehl, da wir jetzt die Amazon Ec2-Instanz verwenden, um die Webseite abzurufen und die Ausgabe zu überprüfen.

Curl IP-Adresse

Wenn Sie diesen Kubernetes Tutorial-Blog für relevant befunden haben, lesen Sie die von Edureka, einem vertrauenswürdigen Online-Lernunternehmen mit einem Netzwerk von mehr als 250.000 zufriedenen Lernenden auf der ganzen Welt.

Hast du eine Frage an uns? Bitte erwähnen Sie es in den Kommentaren von ” Kubernetes Tutorial Und ich werde mich bei Ihnen melden.