Kubernetes mit Go erweitern

Über selbst geschriebene Controller lassen sich Kubernetes-Cluster um eigene, anwendungsspezifische Funktionen erweitern. Eine geeignete Sprache ist Go.

Lesezeit: 6 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen
Von
Inhaltsverzeichnis

Einem Cluster wird in Kubernetes der gewünschte Zustand über die API mitgeteilt, im Gegensatz zu direkten Installations- und Konfigurationskommandos. Aus Benutzersicht geschieht dies mit dem Kommando kubectl und Dateien im YAML-Format. Diese beinhalten eine Beschreibung der Ressourcen wie Pods, ReplicaSets, Deployments und Services. Was der User über die API anlegt, schreibt Kubernetes in die Datenbank etcd.

Diese Änderungen werden nicht unmittelbar ausgeführt wie in einem Level-driven Command oder einem Event Model. Tools wie kube-scheduler lesen die Datenbank aus, konfigurieren Nodes für die Pods und aktualisieren die Einträge. Diese Arbeitsweise wird als Edge-driven bezeichnet und spielt durch die robuste Arbeitsweise gerade in verteilten Umgebungen ihren Vorteil aus.

Die auf diesen Nodes betriebenen Kubelets erfahren nun über die API und deren Zugriff auf die etcd, was sie zu installieren und zu konfigurieren haben. Sie stellen den gewünschten Zustand her und melden dies wieder über die API zurück. Diesen Regelkreis bezeichnet man als Controller-Pattern. Komponenten wie Node Controller, Replication Controller, Endpoints Controller oder Service Account und Token Controller enthalten das Pattern.

Immer mehr Wissen. Das digitale Abo für IT und Technik.

  • Zugriff auf alle Inhalte von heise+
  • exklusive Tests, Ratgeber & Hintergründe: unabhängig, kritisch fundiert
  • c't, iX, Technology Review, Mac & i, Make, c't Fotografie direkt im Browser lesen
  • einmal anmelden – auf allen Geräten lesen - monatlich kündbar
  • erster Monat gratis, danach monatlich 9,95 €
  • Wöchentlicher Newsletter mit persönlichen Leseempfehlungen des Chefredakteurs
GRATIS-Monat beginnen Jetzt GRATIS-Monat beginnen Mehr Informationen zu heise+