Nach neun Kubernetes-Veranstaltungen und sieben Jahren Arbeit mit dem Kubernetes-Projekt im Rahmen unserer eigenen Entwicklung haben wir viel Zeit damit verbracht, mit der Entwicklergemeinschaft zu sprechen. Bei jeder Veranstaltung, an der wir teilnehmen, sehen wir verschiedene Stadien der Einführung und erhalten Fragen zur Komplexität und Machbarkeit. Hier sind einige unserer wichtigsten Fragen und Antworten zu Kubernetes.
Das Wasser testen: Sollte ich Kubernetes für meine Anwendung einsetzen?
Billy Thompson, Linode's Hauptlösungsingenieur, hat die letzte KubeCon in Europa besucht. Hier ist, was er von Entwicklern gehört hat, die gerade erst mit Kubernetes experimentieren.
"Viele Leute waren noch dabei, Kubernetes zu erkunden und mit anderen Entwicklern zu sprechen, um mehr über die Plattform zu erfahren. In vielen Fällen waren sie dort, um so viel wie möglich zu lernen und diese Informationen an ihre Teams weiterzugeben. Man könnte sie als 'Erkundungsmissionen' bezeichnen, um zu entscheiden, ob Kubernetes in naher Zukunft für ihre Projekte in Frage kommt."
Dies war nicht völlig überraschend, und man darf nicht vergessen, dass K8s noch eine relativ neue Technologie ist. Trotz wichtiger Vorteile wie automatische Skalierung und Portabilität sind größere Änderungen an der Infrastruktur und den Anwendungen kostspielig und zeitaufwendig. Wenn Ihr altes System gut funktioniert, ist die Einführung einer neuen Plattform nur schwer zu rechtfertigen. Nichtsdestotrotz sollten Sie immer an die Zukunftssicherheit denken, wenn die Skalierung Ihrer Umgebung in ihrem aktuellen Zustand unweigerlich umständlich, unpraktisch oder unmöglich wird.
Entwerfen und Umstrukturieren: Was ist nötig, um Kubernetes zu nutzen?
Ganz gleich, ob Sie eine bestehende Anwendung überarbeiten oder von Grund auf neu beginnen wollen, lassen Sie uns darüber sprechen, was Sie für den Anfang brauchen. Ich habe Todd Becker, einen unserer Ingenieure, der sich der Linode Kubernetes Engine (LKE) widmet, gefragt, was er jemandem raten würde, der sich zum ersten Mal mit containerisierten Workloads beschäftigt. Ich wollte darüber sprechen, wie einschüchternd es sein kann, monolithische Anwendungen so umzugestalten, dass sie die Vorteile von Kubernetes oder anderen Cloud-nativen Tools wirklich nutzen.
"Um die Vorteile von Kubernetes voll auszuschöpfen, müssen viele Anwendungen angepasst werden. Die meisten Anwendungen können jedoch ohne großes Refactoring auf Kubernetes laufen und trotzdem erhebliche Vorteile bieten."
Obwohl es also ideal wäre, benötigen Sie nicht benötigen Sie eine vollständige Microservice-Architektur, um Kubernetes und Container zu nutzen. Sie können die Vorteile der Portabilität, Skalierbarkeit und Umgebungskonsistenz auch mit einer monolithischen Anwendung nutzen. Dabei handelt es sich jedoch um Verallgemeinerungen. Jede Anwendung wird ihre eigenen Anforderungen haben, aber es ist wichtig zu verstehen, dass Legacy-Anwendungen nicht unbedingt von der Containerisierung ausgeschlossen sind.
Bereit für Go: Was ist ein gutes Hilfsmittel für den Einstieg?
Wenn Sie bereit sind, mit der nativen Entwicklung für Kubernetes zu beginnen, können Tools und Methoden helfen, die Erfahrung zu rationalisieren. Kontinuierliche Integration und kontinuierliche Bereitstellung (CI/CD) verkürzen die Zeit von der Entwicklung bis zur Produktion.
Todd empfiehlt Skaffold, "den besten Freund des Kubernetes-Entwicklers", der 2019 von Google entwickelt wurde. Hier ist, was Todd sagt:
"Skaffold ist ein großartiges Tool für die Entwicklung auf Kubernetes. Es ermöglicht Entwicklern, ihre Entwicklungsumgebung in einem Kubernetes-Cluster zu hosten, statt lokal auf ihrem Rechner. Dadurch werden nicht nur wertvolle Rechenressourcen auf einem Laptop oder einer Workstation frei, sondern es ergeben sich auch eine Menge Arbeitsvorteile. Skaffold spiegelt Ihre Entwicklungs- und Produktionsumgebungen viel enger als nur das Schreiben eines Containers, indem die gesamte Umgebung in einem Kubernetes-Cluster bereitgestellt wird, und Sie können Ihren Entwicklungsarbeitsbereich mit anderen Ingenieuren teilen, um schneller zusammenzuarbeiten. Dies kann dazu beitragen, die Lücke zwischen Entwicklung und Betrieb zu schließen und alle mit Kubernetes vertraut zu machen."
So wie Todd Skaffold beschreibt, scheint es für die Kubernetes-Entwicklung fast unverzichtbar zu sein, dabei ist es noch nicht einmal drei Jahre alt. Die schieren Vorteile einer aufkommenden Technologie können zu einem Durchbruch bei der Akzeptanz führen, aber das ist ein weiterer wichtiger Aspekt des Zyklus. Wenn eine Plattform nach und nach, Tag für Tag, reift, sorgen mehr Nutzer dafür, dass mehr Menschen daran arbeiten, die Dinge zu vereinfachen. Dies kann ein Schneeballeffekt sein, vor allem bei Open-Source-Technologien, die Beiträge von einer größeren Gemeinschaft ermöglichen.
Schmerzpunkte und Anbieter: Wie kann ich meine Erfahrungen verbessern?
Sicherlich befindet sich nicht jeder in einem frühen oder einem Teststadium von Kubernetes. Eine beträchtliche Anzahl von Projekten setzt Kubernetes bereits in der Produktion ein. Deshalb habe ich mich an Billy Thompson gewandt, um zu erfahren, worüber diese Entwickler sprechen.
"Geschwindigkeit. Die Leute wollen Cluster schnell aufsetzen, und viele Anbieter erfüllen diese Erwartungen derzeit nicht. Selbst das Aufsetzen eines kleinen Clusters mit ephemerem Speicher kann in vielen Fällen über 20 Minuten dauern. Das kann quälend lange dauern, vor allem für Lehrkräfte oder Personen, die eine Live-Demonstration durchführen.
Was ist mit LKE?
"Ihre Cluster sind auf LKE mit Terraform in 2-3 Minuten."
Verwaltungstools und Kompatibilität sind ein weiteres großes Thema. Kubernetes kann sehr einschüchternd sein, aber es gibt einige freundliche und intuitive Benutzeroberflächen von Drittanbietern.
"Das war eine sehr häufig gestellte Frage. Die Leute verwenden Cloud-agnostische Tools wie Rancher und wollen die Möglichkeit haben, verschiedene Anbieter zu nutzen. Diese sind mit LKE kompatibel und können über das Linode-API oder Terraform implementiert werden."
Dies ist eine weitere Stufe der Reife einer neuen Technologie - sie wird benutzerfreundlich. Kubernetes hat sein eigenes Dashboard im April 2020 veröffentlicht, um die kubectl-Funktionalität auf eine Web-UI zu bringen, aber Lösungen von Drittanbietern gibt es schon etwas länger. Kontena Lens wurde 2019 zur GA und Rancher 1.0 wurde bereits 2016 veröffentlicht (etwa ein Jahr nach Kubernetes 1.0). Diese Tools sind verfügbar und zunehmend zugänglich. LKE installiert das Kubernetes Dashboard standardmäßig und kann über den Kubernetes Dashboard-Link für jeden Cluster im Linode Cloud Manager aufgerufen werden.
Wie geht es weiter?
Wir nähern uns einem Wendepunkt. Die Vorteile von Kubernetes durchbrechen die anfänglichen Herausforderungen bei der Einführung einer neuen Technologie und wir treten in einen sich selbst erhaltenden Zyklus ein: Mehr Entwickler, die K8s nutzen, erhöhen die Anzahl der K8s-Projekte, was wiederum die Nachfrage nach K8s-Entwicklern erhöht, da diese Projekte wachsen. Dies gilt auch für Dienstanbieter, die auf die steigende Nachfrage nach mehr Kubernetes-Unterstützung reagieren, indem sie neue Tools herausbringen und optimieren.
Heutzutage ist der Einsatz von Kubernetes in der Produktion für Ihre Anwendung sowohl praktisch als auch zugänglich. Es gibt kein Zurück mehr, und wir freuen uns darauf, mehr Entwicklern den Einstieg zu erleichtern.
Verwenden Sie Kubernetes und haben Sie etwas im Sinn, das Sie gerne auf LKE sehen würden? Lassen Sie es uns wissen.
Kommentare (1)
Kubernetes brings convenience and improves efficiency, but it also increases the cost of use