Kapitel 8. Benutzerdefinierte API-Server

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

Als Alternative zu CustomResourceDefinitions kannst du auch einen benutzerdefinierten API-Server verwenden. Benutzerdefinierte API-Server können API-Gruppen genauso mit Ressourcen versorgen wie der Haupt-API-Server von Kubernetes. Im Gegensatz zu CRDs gibt es bei einem benutzerdefinierten API-Server kaum Beschränkungen, was du tun kannst.

In diesem Kapitel werden zunächst einige Gründe genannt, warum CRDs möglicherweise nicht die richtige Lösung für deinen Anwendungsfall sind. Es beschreibt das Aggregationsmuster, das es ermöglicht, die Kubernetes-API-Oberfläche mit einem eigenen API-Server zu erweitern. Schließlich lernst du, wie du einen benutzerdefinierten API-Server mit Golang implementierst.

Anwendungsfälle für benutzerdefinierte API-Server

Ein Custom API Server kann anstelle von CRDs verwendet werden. Er kann alles, was CRDs können, und bietet nahezu unbegrenzte Flexibilität. Das hat natürlich seinen Preis: die Komplexität von Entwicklung und Betrieb.

Werfen wir einen Blick auf die Grenzen von CRDs zum Zeitpunkt der Erstellung dieses Artikels (als Kubernetes 1.14 die stabile Version war). CRDs:

  • Verwende etcd als Speichermedium (oder was auch immer der Kubernetes-API-Server verwendet).

  • Unterstützt kein Protobuf, nur JSON.

  • Unterstützt nur zwei Arten von Subressourcen: /status und /scale (siehe ...

Get Kubernetes programmieren now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.