Kubernetes mit Go erweitern
Im Duo besser
Ü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 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.