So führen Sie Daten auf Kubernetes aus: 6 Grundprinzipien


Kubernetes ist schnell zum Industriestandard werden, mit bis zu 94% der Organisationen, die ihre Dienste und Anwendungen auf der Container-Orchestrierungsplattform bereitstellen, laut einer Umfrage. Einer der Hauptgründe, warum Unternehmen auf Kubernetes setzen, ist die Standardisierung, die fortgeschrittenen Benutzern Produktivitätssteigerungen von bis zu zwei Mal ermöglicht.

Die Standardisierung auf Kubernetes gibt Unternehmen die Möglichkeit, beliebige Workloads überall bereitzustellen. Aber es fehlte ein Teil: Die Technologie ging davon aus, dass Workloads kurzlebig waren, was bedeutet, dass nur zustandslose Workloads sicher auf Kubernetes bereitgestellt werden konnten. Die Community hat jedoch kürzlich das Paradigma geändert und Funktionen wie StatefulSets und Storage Classes eingeführt, die die Verwendung von Daten auf Kubernetes ermöglichen.

Das Ausführen von zustandsbehafteten Workloads auf Kubernetes ist zwar möglich, aber immer noch eine Herausforderung. In diesem Artikel stelle ich Möglichkeiten zur Umsetzung vor und warum es sich lohnt.

Mach es nach und nach

Kubernetes ist auf dem Weg, so beliebt zu werden wie Linux und die De-facto-Methode, jede Anwendung überall und verteilt auszuführen. Die Verwendung von Kubernetes erfordert das Erlernen vieler technischer Konzepte und Vokabeln. Neueinsteiger könnten beispielsweise mit den vielen logischen Einheiten von Kubernetes wie Containern, Pods, Knoten und Clustern zu kämpfen haben.

Wenn Sie Kubernetes noch nicht in der Produktion ausführen, springen Sie nicht direkt in Daten-Workloads. Beginnen Sie stattdessen damit, zustandslose Anwendungen zu verschieben, um Datenverluste zu vermeiden, wenn die Dinge seitwärts gehen.

Wenn Sie keinen Operator finden, der Ihren Anforderungen entspricht, machen Sie sich keine Sorgen, denn die meisten von ihnen sind Open Source.

Verstehen Sie die Einschränkungen und Besonderheiten

Sobald Sie mit allgemeinen Kubernetes-Konzepten vertraut sind, tauchen Sie in die Besonderheiten für zustandsbehaftete Konzepte ein. Da Anwendungen beispielsweise unterschiedliche Speicheranforderungen wie Leistungs- oder Kapazitätsanforderungen haben können, müssen Sie das richtige zugrunde liegende Speichersystem bereitstellen.

Was die Branche allgemein Speicherprofile nennt, wird in Kubernetes als Speicherklassen bezeichnet. Sie bieten eine Möglichkeit, die verschiedenen Arten von Klassen zu beschreiben, auf die ein Kubernetes-Cluster zugreifen kann. Speicherklassen können unterschiedliche Quality-of-Service-Level haben, wie z. B. E/A-Vorgänge pro Sekunde pro GiB, Sicherungsrichtlinien oder willkürliche Richtlinien, wie z. B. Bindungsmodi und zulässige Topologien.

Eine weitere wichtige Komponente, die es zu verstehen gilt, ist StatefulSet. Es ist das Kubernetes-API-Objekt, das zur Verwaltung zustandsbehafteter Anwendungen verwendet wird, und bietet wichtige Funktionen wie:

  • Stabile, eindeutige Netzwerkkennungen, mit denen Sie das Volumen verfolgen und sie nach Belieben trennen und wieder anfügen können;
  • Stabile, dauerhafte Speicherung, damit Ihre Daten sicher sind;
  • Geordnete, reibungslose Bereitstellung und Skalierung, die für viele Tag-2-Vorgänge erforderlich ist.

Obwohl StatefulSet ein erfolgreicher Ersatz für das berüchtigte PetSet (jetzt veraltet) war, ist es immer noch unvollkommen und hat Einschränkungen. Beispielsweise hat der StatefulSet-Controller keine integrierte Unterstützung für die Größenänderung von Volumes (PVC). – was eine große Herausforderung darstellt, wenn die Größe Ihres Anwendungsdatensatzes über die derzeit zugewiesene Speicherkapazität hinaus anwächst. Es gibt Problemumgehungenaber solche Einschränkungen müssen rechtzeitig verstanden werden, damit das Engineering-Team weiß, wie es damit umgeht.

source-116

Leave a Reply