Hinweis: Der folgende Artikel hilft Ihnen dabei: So verbessern Sie Ihre Kubernetes-Bereitstellung
Optimierung von Kubernetes-Apps und -Operationen
Erfahren Sie, wie Best Practices für Automatisierung und Konfiguration dazu beitragen können, in jeder Phase der Softwarebereitstellung Zeit zu sparen und Risiken zu reduzieren.
Bewertung der vorhandenen Infrastruktur
Kubernetes bietet Unternehmen die Flexibilität, ihre Workloads auf jeder Plattform auszuführen. Organisationen, die die Technologie einführen möchten, stehen jedoch häufig vor folgenden Problemen:
- Konfigurieren des Orchestrators
- Verwaltung der Plattform und der Container
- Anpassen der Architektur, um zustandsbehaftete Apps auszuführen
- Balancieren von Containern und verwalteten Diensten
Continuous Integration and Delivery (CI/CD)-Pipelines können dazu beitragen, diese Herausforderungen zu lindern, außerdem:
- Beschleunigen Sie Bereitstellungen
- Vereinfachen Sie das Umgebungsmanagement
- die Sicherheit verbessern
- Risiken reduzieren
- Routineaufgaben automatisieren
- Überwachung aktivieren
Die Wahl zwischen automatisierten und manuellen Vorgängen wird oft durch den Reifegrad einer Kubernetes-Bereitstellung bestimmt. Mit mehreren Anbieterdistributionen und einer Vielzahl unterstützter Anwendungstypen, Kubernetes Der Reifegrad kann von Organisation zu Organisation stark variieren.
Unternehmen, die ihren aktuellen Einführungsstand ermitteln und Verbesserungsmöglichkeiten identifizieren möchten, müssen Clustersicherheit, Hochverfügbarkeit, Plattformbetrieb und andere Faktoren berücksichtigen.
In diesem Artikel wird untersucht, wie Sie Kubernetes-Bereitstellungen verbessern können, indem Sie Anwendungen und Abläufe überarbeiten, Best Practices integrieren, externe Tools verwenden und Automatisierung bereitstellen.
Konzentration auf Anwendungen
Nachfolgend finden Sie einige Best Practices für die Bereitstellung von Anwendungen auf Kubernetes.
Passend einrichten Ressourcengrenzen und -anforderungen stellt sicher, dass Apps immer über genügend Arbeitsspeicher und CPU-Zeit verfügen, um reibungslos zu laufen. Dies erhöht die Clusterstabilität.
Von Anfang an Apps auf Kubernetes erstellen verkürzt die Entwicklungszyklen, da es möglich wird, Tests unter produktionsähnlichen Bedingungen durchzuführen.
Externalisierung von Konfigurationen Mit ConfigMaps und Secrets können Unternehmen App-Artefakte in mehreren Umgebungen testen.
Gesundheitschecks automatisieren fördert eine stabile Leistung und gibt Kubernetes die Möglichkeit, bei Bedarf Anwendungen neu zu starten oder den Netzwerkverkehr anzuhalten.
Implementierung von Firewalls und Sicherheitsrichtlinien trägt dazu bei, die potenziellen Auswirkungen eines Angriffs oder Fehlers zu minimieren.
Rationalisierung der Abläufe
Dieser Abschnitt enthält Empfehlungen zur Bereitstellung und Wartung von Kubernetes.
TerminoptimierungDie richtige Ressourcenzuweisung und Pod-Verteilung sind für eine sichere Bereitstellung und Skalierbarkeit von entscheidender Bedeutung.
Container-Image-Verwaltung Mit gängigen Schwachstellen und Gefährdungsscans sowie zeitnahen Sicherheitspatches stärken Sie Ihre Umgebung.
Authentifizierung und Autorisierung Gewährleistung eines sicheren Zugriffs auf die Kubernetes-API. Rollenbasierte Zugriffskontrolle und Dienstkonten ermöglichen die Einrichtung von Berechtigungen für die Benutzer und Gruppen des Orchestrators.
Clustermanagement umfasst die Automatisierung von Updates und Skalierung, die Gewährleistung einer hohen Verfügbarkeit sowie die Ermöglichung von Disaster Recovery und Geschäftskontinuität. Anbieterdistributionen von Kubernetes verfügen oft über wertvolles Know-how zur Implementierung solcher Funktionen. In der Dokumentation für Azure Kubernetes Service – der verwalteten Container-Orchestrierungsplattform von Microsoft – wird beispielsweise Folgendes vorgeschlagen:
- Verwendung verschiedener Netzwerkmodelle und Firewalls
- Sichern des SSH-Zugriffs des Knotens
- dynamische Bereitstellung von Speichervolumes und Backups
- Einrichten von Regionspaaren und Georeplikation von Container-Images
Nutzung von Best Practices und externen Tools
In diesem Teil wird untersucht, wie CI/CD eingesetzt, getestet und externe Dienste genutzt werden.
Wählen Sie die richtigen Werkzeuge die helfen, Ihre Entwicklungszyklen zu beschleunigen, zum Beispiel:
- keepn für den Aufbau und die Integration zuverlässiger CI/CD-Pipelines
- Terraform zur Automatisierung der Infrastrukturbereitstellung
- Istio spart Zeit beim Routing des Netzwerkverkehrs
Nutzen Sie Microservices zum Aufbau verteilter Systeme mit Komponenten, die Sie unabhängig skalieren und verwalten können.
Automatisieren Sie Testsinsbesondere Unit-, Integrations-, Leistungs- und Smoke-Tests, um künftig Zeit zu sparen.
Erstellen Sie eine CI/CD-Pipeline um sich wiederholende Prozesse von der Entwicklungsphase bis zur Produktionsbereitstellung und laufenden Wartung zu automatisieren.
Implementieren Sie die ÜberwachungProtokollierung, Nachverfolgung usw., um Einblicke in Ihre Apps und Plattform zu gewinnen.
Befolgen Sie die Empfehlungen von Experten
Als großer Kubernetes-Anbieter bietet Microsoft außerdem die folgenden Empfehlungen und Best Practices zur Beschleunigung von Bereitstellungen:
- Verwenden Sie die Domänenanalyse, um Microservices zu modellieren
- Entwerfen Sie Microservices so, dass sie domänengesteuert sind
- Identifizieren Sie die Grenzen von Microservices
Aufgrund der verteilten Natur einer auf Mikrodiensten basierenden Architektur empfiehlt Microsoft die Verwendung von CI/CD-Pipelines für Folgendes:
- Erstellen und Bereitstellen von Diensten, ohne andere zu beeinträchtigen
- Testversionen neuer Dienste in Entwicklungsumgebungen vor der Produktionsbereitstellung
- Stellen Sie neben der alten eine neue Version eines Dienstes bereit
- Aktivieren Sie erweiterte Zugriffskontrollrichtlinien
- Bereitstellungsrisiken verringern
Durch eine automatisierte Pipeline wird sichergestellt, dass die Produktionsbereitstellung auch im Fehlerfall stabil bleibt. Durch die Befolgung der CI/CD-Best Practices können Unternehmen neuen Code sicher und ohne Ausfallzeiten bereitstellen und bei Problemen schnell ein Rollback durchführen.
Die Automatisierung der Softwarebereitstellung und des Testens ist ein wichtiger Teil der Kubernetes-Reife, da sie dazu beiträgt, Releases zu beschleunigen und technische Schulden zu vermeiden. Der Aufbau des notwendigen Fachwissens kann jedoch kostspielig und zeitaufwändig sein. Die Partnerschaft mit einem vertrauenswürdigen Systemintegrator kann Unternehmen dabei helfen, den Prozess zu beschleunigen und das Beste aus ihrer Kubernetes-Bereitstellung herauszuholen.