Kubernetes: Erste Schritte
Erfahren Sie, wie Sie mit der Bereitstellung und Verwaltung von Containeranwendungen beginnen können.
Einführung zu Containern
Bevor Sie mit der Verwendung von Kubernetes beginnen, ist es wichtig zu verstehen, wie die Containerisierung funktioniert.
So wie die Transportbranche physische Container verwendet, um verschiedene Ladungen für den Transport in Schiffen, Zügen, Lastwagen und Flugzeugen zu isolieren, verwenden Softwareentwicklungstechnologien zunehmend das Konzept der „Containerisierung“.
Ein einzelnes Softwarepaket – der sogenannte Container – bündelt den Code einer Anwendung zusammen mit den zugehörigen Konfigurationsdateien, Bibliotheken und den für die Ausführung der Anwendung erforderlichen Abhängigkeiten. Auf diese Weise können Entwickler und IT-Experten Anwendungen schneller und sicherer erstellen und bereitstellen.
Die Containerisierung bietet die Vorteile der Isolierung, Portabilität, Flexibilität, Skalierbarkeit und Kontrolle für den gesamten Workflow einer Anwendung. Ein Container, der vom Hostbetriebssystem abstrahiert ist, ist eigenständig und wird portabler. Er kann über beliebige Plattformen oder Clouds hinweg einheitlich und konsistent für jede Infrastruktur ausgeführt werden.
Kubernetes-Komponenten und -Konzepte
Cluster
Auf höchster Ebene ist Kubernetes als Cluster von virtuellen oder lokalen Computern organisiert. Diese Computer werden als Knoten bezeichnet und sie teilen sich Compute-, Netzwerk- und Speicherressourcen. Jeder Cluster verfügt über einen Masterknoten, der mit einem oder mehreren Workerknoten verbunden ist. Die Workerknoten sind für die Ausführung von Gruppen von Containeranwendungen und -workloads (sogenannte Pods) verantwortlich, und der Masterknoten verwaltet, welche Pods auf welchen Workerknoten ausgeführt werden.
Steuerebene
Damit der Masterknoten mit den Workerknoten kommunizieren kann und eine Person mit dem Masterknoten kommunizieren kann, umfasst Kubernetes eine Reihe von Objekten, die zusammen die Steuerungsebene bilden.
Entwickler und Bediener interagieren mit dem Cluster in erster Linie über den Masterknoten, indem sie kubectl verwenden, eine Befehlszeilenschnittstelle, die für ihr lokales Betriebssystem installiert wird. Über kubectl an den Cluster ausgegebene Befehle werden von kube-apiserver empfangen, der Kubernetes-API, die sich auf dem Masterknoten befindet. Anschließend werden Anforderungen von kube-apiserver an den kube-controller-manager im Masterknoten übermittelt, der wiederum für die Verarbeitung der Workerknotenvorgänge verantwortlich ist. Befehle vom Masterknoten werden vom Kubelet auf den Workerknoten empfangen.
Bereitstellen von Apps und Workloads
Der nächste Schritt zum Einstieg in Kubernetes ist die Bereitstellung von Apps und Workloads. Der Masterknoten verwaltet den aktuellen Zustand des Kubernetes-Clusters und der Konfiguration jederzeit in der „etcd“, einer Datenbank für den Schlüsselwertspeicher. Um Pods mit Ihren Containeranwendungen und -workloads auszuführen, beschreiben Sie dem Cluster einen neuen gewünschten Zustand in Form einer YAML-Datei. Der kube-controller-manager übernimmt die YAML-Datei und beauftragt den kube-scheduler mit der Entscheidung, welche Workerknoten die App oder der Workload basierend auf vorgegebenen Einschränkungen ausführen soll. In Abstimmung mit dem Kubelet der einzelnen Workerknoten startet der Kube-Scheduler die Pods, überwacht den Zustand der Computer und ist insgesamt für die Ressourcenverwaltung zuständig.
In einer Kubernetes-Bereitstellung wird der von Ihnen beschriebene gewünschte Zustand zum aktuellen Zustand in der etcd, aber der vorherige Zustand geht nicht verloren. Kubernetes unterstützt Rollbacks, parallele Updates und die Unterbrechung von Rollouts. Darüber hinaus verwenden Bereitstellungen ReplicaSets im Hintergrund, um sicherzustellen, dass die angegebene Anzahl identisch konfigurierter Pods ausgeführt wird. Wenn ein oder mehrere Pods ausfallen, werden sie vom ReplicaSet ersetzt. Somit ist Kubernetes Self-healing-fähig.
Strukturieren und Sichern von Kubernetes-Umgebungen
Mit Ihrer bereitgestellten App oder Workload ist der letzte Schritt beim Einstieg mit Kubernetes die Organisation und das Bestimmen, wer oder was Zugriff darauf hat. Durch die Erstellung eines Namespace, einer Gruppierungsmethode innerhalb von Kubernetes, können Dienste, Pods, Controller und Volumes einfach zusammenarbeiten und gleichzeitig von anderen Teilen des Clusters isoliert werden. Verwenden Sie auch das Kubernetes-Konzept der Namespaces, um konsistente Konfigurationen auf Ressourcen anzuwenden.
Darüber hinaus enthält jeder Workerknoten einen Kube-Proxy, der bestimmt, wie von außen auf verschiedene Aspekte des Clusters zugegriffen werden kann. Speichern Sie sensible nicht öffentliche Informationen wie Token, Zertifikate und Kennwörter in Geheimnissen (ein weiteres Kubernetes-Objekt), die bis zur Laufzeit codiert sind.
Geben Sie schließlich an, wer welche Teile des Clusters anzeigen und mit ihnen auf welche Weise interagieren darf, indem Sie die rollenbasierte Zugriffssteuerung (RBAC) verwenden.
Implementieren einer vollständig verwalteten Kubernetes-Lösung
Verwalten Ihrer gehosteten Kubernetes-Umgebung mit Azure Kubernetes Service (AKS) Stellen Sie containerisierte Apps ohne Erfahrung in der Containerorchestrierung bereit, und verwalten Sie sie anschließend. Stellen Sie bei Bedarf Ressourcen bereit, aktualisieren und skalieren Sie sie – ohne Ihre Apps offline zu nehmen.
Kubernetes-Schnellstart: Einsatzbereit in 50 Tagen
Verwenden Sie diese schrittweise Anleitung für die ersten Schritte mit Kubernetes und um praktische Erfahrungen mit Komponenten, Funktionen und Lösungen von Kubernetes zu sammeln.
Befolgen des Kubernetes-Lernpfads