iX 4/2020
S. 144
Praxis
Containerorchestrierung

Kubernetes mit Go erweitern

Im Duo besser

Frank Müller

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

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 un­mittelbar 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.

Kommentieren