Kubernetes-Spickzettel: Architektur, Komponenten, Befehlsblatt

Veröffentlicht: 2020-12-15

Kubernetes ist zu einem wesentlichen Bestandteil der Industrie geworden und verändert die Welt der Technologie. Janet Kuo, die Co-Vorsitzende von KubeCon, ging auf die Funktionen von Kubernetes und ihre Bedeutung in der kommenden Zeit ein. Sie spricht über die Kubernetes-Erweiterungen und -Lösungen, die die Welt verändern werden .

Dieser Spickzettel dient als Referenz für Berufstätige bei der Implementierung von Kubernetes. Es enthält alle notwendigen Details, um Anfängern zu helfen, die neu bei Kubernetes sind. Das Kubernetes Cheat Sheet ist ein schnelles und praktisches Medium, um sich auf alle wesentlichen Konzepte und Befehle von Kubernetes zu beziehen.

Inhaltsverzeichnis

Über Kubernetes

Eine Open-Source-Plattform für die automatische Bereitstellung und Skalierung von Containern über die Cluster von Hosts hinweg, um eine containerzentrierte Infrastruktur bereitzustellen, ist als Kubernetes bekannt (auch bekannt als „Kube“ oder k8s). Es ermöglicht eine einfache und effiziente Verwaltung verschiedener Hosts, auf denen Linux-Container ausgeführt werden, indem sie geclustert werden.

Kubernetes ist eine Plattform, die darauf ausgelegt ist, den Lebenszyklus von containerisierten Anwendungen und Diensten vollständig zu verwalten. Ein Kubernetes-Benutzer kann definieren, wie eine Anwendung ausgeführt und mit verschiedenen Anwendungen interagiert werden soll.

Benutzer können mit Kubernetes den Datenverkehr zwischen verschiedenen Versionen von Anwendungen umschalten, Aktualisierungen durchführen, die Dienste hoch- und herunterskalieren usw. Es bietet Benutzern ein hohes Maß an Flexibilität, Zuverlässigkeit und Leistung bei der Verwaltung von Anwendungen.

Einige der Hauptfunktionen von Kubernetes sind:

  • Maximieren Sie Ressourcen, indem Sie die Hardware besser nutzen.
  • Ein Container-Orchestrator über mehrere Hosts hinweg.
  • Automatisieren Sie den Bereitstellungsprozess und Updates.
  • Kann einen Linux-Container ausführen.
  • Die automatische Skalierung hilft beim Starten von Containern auf Clusterknoten.
  • Skalieren Sie nach Bedarf nach oben und unten.
  • Selbstheilung durch Ersetzen, Umplanen und Neustarten der toten Container.
  • Automatisierte Rollbacks und Rollouts.
  • Load-Balancing und Diensterkennung.
  • Automatischer Neustart, automatische Platzierung und automatische Replikation usw.

Lesen Sie: Deep-Learning-Algorithmus

Architektur von Kubernetes

Die Architektur von Kubernetes besteht aus Schichten: Höhere und niedrigere Schichten. Die Komplexität der Abstraktion der höheren Schicht findet sich in den unteren Schichten wieder. Die einzelnen physischen oder virtuellen Maschinen werden zu einem Cluster zusammengefasst. Für die Kommunikation zwischen den einzelnen Servern wird ein gemeinsam genutztes Netzwerk verwendet. Genau wie andere verteilte Plattformen hat Kubernetes also (mindestens) einen Master und mehrere Rechenknoten.

  • Der Master von Kubernetes plant die Bereitstellungen, stellt die API bereit und verwaltet den gesamten Kubernetes-Cluster.
  • Der Knoten führt eine Containerlaufzeit, einen Agenten für die Kommunikation mit dem Master und andere Überwachungskomponenten, Protokollierung usw. aus.

Komponenten der Kubernetes-Architektur

Werfen wir einen Blick auf den Zweck und die Komponenten von Master und Nodes in der Kubernetes-Architektur.

Meister

Der Master behält den gewünschten Zustand des Clusters bei. Da es den gesamten Cluster verwaltet, wird es Master genannt. Es beinhaltet:

  • API-Server: Kubernetes-API-Server
  • Scheduler: Wird für die Pod-Planung in Worker-Knoten verwendet
  • Controller: Verwaltet die Pod-Replikation
  • Etcd: Ein Metadatendienst

Knoten

Es enthält notwendige Dienste, die für den Betrieb der Pods wichtig sind. Der Master verwaltet die Knoten. Es wird auch Minion genannt. Es beinhaltet:

  • Pod: Gruppe von Containern
  • Docker: Containerbasierte Technologie, Benutzerbereich des Betriebssystems.
  • Kubelet: Container-Agenten, die für die Wartung des Satzes von Pods verantwortlich sind.
  • Kube-Proxy: Leitet Datenverkehr weiter, der vom Dienst in einen Knoten kommt

Lassen Sie uns nun die wichtigen Befehle von Kubernetes verstehen.

Kubectl-Befehle

Kubectl ist das Befehlszeilentool für Kubernetes. Die grundlegenden Kubectl-Befehle können unterteilt werden in:

  • Pod- und Container-Introspektion
  • Cluster-Introspektion
  • Debuggen
  • Schnellbefehle
  • Objekte

Pods und Container-Introspektion

Funktionalität Befehl
Zur Beschreibung von Pod-Namen Kubectl beschreibt pod<name>
Zum Auflisten aller aktuellen Pods Kubectl bekommt Schoten
Zum Auflisten aller Replikationscontroller Kubectl bekommt rc
Zum Anzeigen des Namens des Replikationscontrollers Kubectl beschreibt rc <Name>
Zum Auflisten von Replikationscontrollern in einem Namespace Kubectl bekommt rc –namespace="namespace"
Zum Anzeigen eines Dienstnamens Kubectl beschreibt svc<name>
Für Listendienste Kubectl erhält CVC
Zum kontinuierlichen Beobachten von Knoten. Kubectl erhält Knoten -w
Zum Löschen eines Pods Kubectl löscht Pod <Name>

Cluster-Introspektion

Funktionalität Befehl
Zum Abrufen von versionbezogenen Informationen Kubectl-Version
Zum Abrufen von Konfigurationsdetails Kubectl-Konfigurationsansicht
Zum Abrufen von clusterbezogenen Informationen Kubectl-Cluster-Info
Zum Abrufen von Informationen über einen Knoten Kubectl beschreibt node<node>

Debugging-Befehle

Funktionalität Befehl
Zum Anzeigen von Metriken für einen Pod Kubectl Top Pod
Zum Anzeigen von Metriken für einen Knoten Kubectl oberster Knoten
Zum Ansehen von Kubelet-Protokollen Beobachten Sie -n 2 cat/var/log/kublet.log
Zum Abrufen von Protokollen vom Dienst für den Container Kubectl-Protokolle -f<Name>>[-c<$Container>]
Für die Ausführung des Befehls auf Service durch Auswahl eines Containers Kubectl exec<Dienst><Befehle>[-c<$Container>]

Schnellbefehle

Die folgenden Schnellbefehle werden oft verwendet und sind daher sehr nützlich.

Funktionalität Befehl
Zum Starten eines Pods mit einem Namen und einem Bild. Kubectl run<name> – image=<image-name>
Zum Erstellen eines in <manifest.yaml> beschriebenen Dienstes Kubectl create -f <manifest.yaml>
Zum Skalieren des Replikationszählers, um die Anzahl der Instanzen zu zählen. Kubectl-Skalierung –replicas=<count>rc<name>
Zum Zuordnen des externen Ports zum internen Replikationsport. Expose rc<name> –port=<extern>–target-port=<internal>
Zum Stoppen aller Pods in <n> Kubectl drain<n> – delete-local-data – force –ignore-daemonset
Zum Erstellen eines Namensraums. Kubectl erstellt Namespace <Namespace>
Damit der Master-Knoten Pods ausführen kann. Kubectltaintnodes –all-node-role.kuernetes.io/master-

Objekte

Einige der vertrauten Objekte, die in Kubernetes verwendet werden, sind wie folgt:

Liste gemeinsamer Objekte
Alle Controller-Revisionen
cm= conf gmaps Clusterrollenbindungen
Zeitgesteuerte Aufgaben cs=Komponentenstatus
Deploy=Bereitstellungen Grenzen = Grenzbereiche
ev= Ereignisse hpa= horizontale Pod-Autoskalierung
Arbeitsplätze ds= Daemon-Sets
Nein = Knoten ns= Namensräume
po= Hülsen Pod-Voreinstellung
Psp= Pod-Sicherheitsrichtlinien Pv= persistente Volumes
quote= Ressourcenquoten rs= Replikatsätze
Rollen rc= Replikationscontroller
sc= Speicherklassen pdb= Pod-Verteilungsbudgets
Clusterrollen Geheimnisse
crd=benutzerdefinierte Ressourcendefinition Pod-Vorlagen
csr= Zertifikatsignierungsanforderungen sa= Dienstkonten
Netpol-Netzwerkrichtlinien Rollenbindungen
ing = eindringen pvc= persistente Volumenansprüche
ep=Endpunkte sts= zustandsbehaftete Sätze

Lesen Sie auch: Regularisierung im Deep Learning

Kubernetes-Befehls-Spickzettel

Alle grundlegenden Informationen über Kubernetes, seine Architektur und Befehle sind im folgenden Kubernetes-Spickzettel aufgeführt:

Wenn Sie mehr über Deep-Learning-Techniken und maschinelles Lernen erfahren möchten, sehen Sie sich das PG-Diplom in maschinellem Lernen und KI von IIIT-B & upGrad an, das für Berufstätige konzipiert ist und mehr als 450 Stunden strenge Schulungen, mehr als 30 Fallstudien und Aufgaben, IIIT-B-Alumni-Status, mehr als 5 praktische praktische Abschlussprojekte und Arbeitsunterstützung bei Top-Unternehmen.

Was ist Kubernetes?

Kubernetes ist eine Open-Source-Plattform zur Automatisierung der Bereitstellung, Skalierung und Verwaltung von Containern. Ein Container ist ein betriebsbereites Softwarepaket, das alles enthält, was zum Ausführen der Anwendung erforderlich ist: Code, Laufzeitumgebung, Anwendung und Systembibliotheken. Die Container sind wie logische Anwendungseinheiten, und wenn Kubernetes sie gruppiert, wird es einfach, die Container zu verwalten und zu erkennen. Diese Container werden hostübergreifend bereitgestellt und skaliert, um eine containerzentrierte Infrastruktur bereitzustellen. Kurz gesagt, es ist eine Plattform, die den gesamten Lebenszyklus von containerisierten Anwendungen verwaltet.

Was sind die Hauptkomponenten der Kubernetes-Architektur?

Es gibt zwei Hauptkomponenten in der Kubernetes-Architektur – Master-Knoten und Worker-Knoten. Ein Knoten ist der Hauptarbeitscomputer, der wichtig ist, um eine Gruppe von Clustern namens Pods auszuführen. Der gesamte Cluster wird vom Master-Knoten verwaltet, während der Worker-Knoten die vom Master-Knoten zugewiesenen Aufgaben ausführt. Diese Knoten enthalten viele eingebaute Komponenten. Der Master-Knoten enthält Kubernetes API Server, Kubernetes Scheduler, Kubernetes Controller und Etcd. Der Worker-Knoten hat Pod, Docker, Kubelet und Kube-Proxy.

Was machen kubelet und kube-proxy?

Kubelet, das in jedem Knoten vorhanden ist, stellt sicher, dass Container in einem Pod gut laufen. Dazu nimmt es eine Reihe von PodSpecs, die hauptsächlich über apiserver bereitgestellt werden, und überprüft die in diesen PodSpecs vorhandenen Container. Eine PodSpec ist ein YAML- oder JSON-Objekt, das einen Pod beschreibt. Kubernetes Network Proxy, auch bekannt als Kube-Proxy, verwaltet Netzwerkregeln auf Knoten. Die Kommunikation von Netzwerksitzungen innerhalb oder außerhalb des Clusters zu Pods ist über diese Netzwerkregeln möglich. Kube-Proxy leitet den Datenverkehr weiter, wenn die Paketfilterungsebene des Betriebssystems nicht verfügbar ist.