Kubernetes Architektur Komponenten

In meinem vorherigen Beitrag habe eine allgemeine Kubernetes-Architektur beschrieben, in folgendem Beitrag möchte ich die Abstraktionsebenen und einige weiteren Komponenten des Kubernetes-Clusters näher beleuchten.

ReplicaSet

Wie wir bereits aus dem vorherigen Blogbeitrag wissen, ist ein Pod die kleinste Deployment-Einheit, die die eigentlichen Container beinhaltet.

Der ReplicaSet ist ein weiteres Abstraktionslevel.  Aus Sicht der Aufbau eines yaml-Definition-Files ist der ReplicaSet ein Parent-Objekt und der Pod ein Child-Objekt.

  • ReplicaSet sorgt dafür, dass eine vordefinierte Instanzenanzahl eines Pods gestartet wird und in Falle eines Pod-Ausfalls weiterhin konstant gehalten bzw. ausgeführt wird.
  • ReplicaSet ist ein Nachfolger von Replica Controller. Der wesentliche Unterschied zwischen den beiden Besteht darin, dass ein weitetes Konfigurationsfeld Selector

Deployment

Das Deployment ist ein weiteres Level in der Abstraktionshierarchie und steuert sowohl die ReplicaSets als auch die Pods. Man konnte ein Deployment als eine Weiterentwicklung des ReplicaSets bezeichnen.

Je nach Konfiguration verfügt ein Deployment über eine breite Palette an Funktionen:

  • Erstellen und Aktualisieren von ReplicaSet und Pods
  • vergrößern / verkleinern des Deployments
  • anhalten / fortsetzen des Deployments
  • Rollback auf die vorherige Version, ohne dass der Benutzer es merkt.

Es wird von Hersteller ausdrücklich empfohlen, ein Deployment anstelle des ReplicaSets zu verwenden.

Labels / Selectors

Ein Label ist ein Schlüssel-Wertpaar, das dazu dient, die Kubernetes-Objekte zu identifizieren bzw. organisieren. Die Labels können zum Gruppieren und Auswählen von Teilmengen von Objekten verwendet werden. Die Labels können einem Objekt während der Erstellung hinzugefügt und danach jederzeit geändert werden.

Selectors werden verwendet, um eine Reihe von Objekten in Kubernetes zu identifizieren.

Services

Ein Kubernetes Services ist sowohl eine weitere Abstraktion als auch ein REST Objekt.

Insgesamt gibt es vier Service-Typen:

  • ClusterIP
  • NodePort
  • Headless
  • LoadBalancer

Kubernetes Services explained | ClusterIP vs NodePort vs LoadBalancer vs Headless Service

Namespaces

Namespace bietet die Möglichkeit den Kubernetes-Cluster in kleinere Einheiten (Arbeitsbereiche) aufzuteilen. Auf dieser Art und Weise können Sie z.B. dem Entwickler-Teams einen eigenen Bereich zuweisen, damit die weiteren Bereiche nicht beeinträchtigt werden. Standartmäßig werden alle Ressourcen in einem default-Namespace erstellt.

StatefulSet

Analog zu den Deployments sind die StatefulSets zur Verwaltung der Pods vorgesehen.

Die Verwendung von SatefulSet ist dann notwendig, wenn für die laufende Pods eine bestimmte und eindeutige Konfiguration vorgesehen und notwendig wird.  SatefulSet kann garantieren, dass die Pods z.B. in der richtigen Reihenfolge bereitgestellt werden, den Zugriff auf denselben Speicher beibehalten oder eine gleiche und eindeutige Netzwerkkennung bekommen. Wenn Sie z.B. MySQL bereitstellen möchten, wird Ihnen der StatefulSet garantieren, dass der Master-Server immer der Master-Server bleibt.

DaemonSets

Der DaemonSet eine weitere Control-Funktion in Kubernetes-Cluster. Der DaemonSet sorgt dafür, dass die Pods auf allen oder auf bestimmten (Node Affinity) Nodes ausgeführt werden. Ein DaemonSet erstellt standardmäßig auf jedem Knoten einen Pod.

Secrets

Ein Secret dient zur Speicherung von vertraulichen Daten wie z.B. Benutzernamen, Kennwörter , Token und Schlüssel. Andernfalls werden die Benutzernamen und Kennwörter im Klartext in Pod-Spezifikationen eingegeben.

Ingress

Ein Ingress ein API-Objekt, welcher in den meisten Fällen auf einem separaten Node installiert wird und eine Rolle des externen Load Balancer übernimmt. Der Zugriff von externen Benutzern auf die Cluster-Ressourcen findet immer über den Ingress statt.

Wir nutzen Cookies auf unserer Website. Einige von ihnen sind essenziell für den Betrieb der Seite, während andere uns helfen, diese Website und die Nutzererfahrung zu verbessern (Tracking Cookies). Sie können selbst entscheiden, ob Sie die Cookies zulassen möchten. Bitte beachten Sie, dass bei einer Ablehnung womöglich nicht mehr alle Funktionalitäten der Seite zur Verfügung stehen.