CIO Guide zu Managed Kubernetes

Lesezeit: 20 Minuten

alt text

INTRO

In unserem ersten Blogeintrag hatte ich über die generellen Vorteile von Kubernetes (kurz K8s) gesprochen. Heute möchte ich das Thema Managed Kubernetes vertiefen, da dies vermeintlich durch die Public Cloud Provider und kommerziellen Plattformen sehr einfach ist!

Kubernetes als Basis für moderne Container-Orchestrierung hat sich klar im Markt etabliert. Die Cloud Native Computing Foundation (kurz CNCF) koordiniert dahingehend alle K8s-Standards und es gibt keinen Hersteller mehr, der hier nicht an Board ist (Cisco, HPE, VMware, SAP oder NetApp - siehe Members).

Darüber hinaus hat der CNCF nun ein klares Projekt-Reifegradmodell initiiert, damit neue Kubernetes-Technologien auch eine entsprechende Enterprise-Readiness erreichen. Dies war dringend erforderlich, da eine unüberschaubare Anzahl an neuen Ideen aus der Community kamen. Nur Graduated Projekte haben auch wirklich den Reifegrad, dass diese sich als Standard etablieren - siehe aktuelle Projekte!

STATUS.QUO

Wird Kubernetes wirklich schon so häufig genutzt?

Wie auch die brandaktuellen Umfragen bei der Kubecon Europe 2020 zeigen, dominieren im Entwicklungsumfeld klar moderne Applikationsumgebungen auf Basis von Containern (Microservices) und Kubernetes-Plattformen. Gerade im europäischen Raum, wo sich viele innovative Entwickler tummeln, wird voll auf diesen technologischen Stack gesetzt!

alt text Quelle: State of Cloud Native Development Report, Aug 2020

Was sind die populärsten Container-as-a-Service Plattformen?

Durch die Komplexität einer eigenen, nativen Kubernetes-Architektur, werden immer stärker die Managed Kubernetes Plattformen der Public Cloud Provider genutzt, wie auch aktuelle Umfragen zeigen.

Das hat sicherlich auch damit zu tun, dass viele Unternehmen keine Kubernetes-Expertise haben und Entwickler somit wieder den kurzen Weg in die Public Cloud nehmen. Darüber hinaus bieten Google GKE, Azure AKS oder AWS Fargate eine verwaltete- und hochskalierbare Kubernetes-Architektur, die dem eigenen Rechenzentrum oder beim gängigen Hoster bei Weitem überlegen sind, egal wie viel “Hyper-Converged” angeboten wird!

alt text Quelle: State of Cloud Native Development Report, Aug 2020

HERAUSFORDERUNGEN

Da wir in den letzten 3 Jahren viel Erfahrung in Kubernetes-Projekten gesammelt haben, sowohl im konzeptionellen, als auch im betrieblichen Umfeld und in der Cloud-Native Community aktiv sind, kennen wir die gängigen Problemfelder nur zu gut!

alt text Quelle: Kubernetes 101 Link

Wo liegen nun konkret die Herausforderungen?

  • Vielzahl an kommerziellen K8s-Plattformen (OpenShift, Rancher, Platform9, VMware Tanzu, Nutanix Karbon)!

  • Bereitstellung einer Kubernetes Plattform ist nicht das Problem, jedoch die nachlagernden Komponenten für moderne Applikationsarchitektur (Hochverfügbarkeit, Service-Mesh, Load Balancing, Netzwerkkommunikation, Storage, Backup, Security, Container Registries)!

  • Managed Kubernetes in AWS, Azure oder Google bedeutet nicht “No-Ops”!

  • Kubernetes Betrieb ist ein komplexes Unterfangen und erfordert neue Ansätze im OPS (alles-ist-Code, enge Zusammenarbeit mit Entwickler, maximale Automatisierung, Full-Stack Monitoring)!

  • Design, Implementierung & Betrieb erfordern hohe Expertise!

Bereitstellung

Durch die hohe Standardisierung erfordert die Bereitsstellung der Kubernetes Infrastruktur und der übergeordneten Applikationsarchitektur eine durchgängige Automatisierung.

Alles-ist-Code ist das Credo und muss konsequent genutzt werden! Das ist für einen Entwickler leicht verständlich, jedoch für die klassische IT, mit Ihrer Aufteilung in Netzwerk-, Security-, Datenbank- oder System-Administrator, eine extrem hohe Hürde! In wenigen Konfigurationsvorlagen werden die Container, Applikation und erforderliche Kommunikation beschrieben, siehe Beispiel für ein PostgreSQL Helm Chart:

Inhalt Chart.yaml:

apiVersion: v1
name: postgresql
version: 8.6.4
appVersion: 11.7.0
deprecated: true
description:Chart for PostgreSQ
keywords:
- postgresql
- postgres
- database
- sql
- replication
- cluster
home: https://www.postgresql.org/
icon: https://bitnami.com/assets/stacks/postgresql/img/postgresql-stack-110x117.png
sources:
- https://github.com/bitnami/bitnami-docker-postgresql
maintainers: []
engine: gotpl

Dies ist nur ein Teilausschnitt, hier gehören noch eine Vielzahl an weiteren YAML-Dateien dazu, die auch die Konfigurationen der einzelnen Datenbank-Komponenten beschreiben.

Es erfordert gute Kentnisse in Konfigurationssprachen wie Helm, Kapitan und auch Terraform zur Bereitstellung der Infrastruktur, Applikation und Überwachungskomponenten. Darüber hinaus muss eine Continuous Delivery Pipeline genutzt werden, um eine konsistente Bereitstellung und auch die hohe Taktung von Veränderungen zu ermöglichen!

Monitoring

Wie auch im klassischen Cloud-Monitoring, ist im Kubernetes-Umfeld ein neuer Ansatz und Tool-Set erforderlich. Das Gute ist, dass K8s bereits für die Basisarchitektur aber auch für die darüberliegende Applikation dieses Thema vollumfänglich adressiert.

Jedoch erfordert dies auch hier hohe Kubernetes Expertise und Linux Know-How, um erforderliche Monitoring-Systeme aufzubauen und zu betreiben!

Hier eine vereinfachte Monitoring-Architektur, wie Sie gängig genutzt wird:

alt text Quelle: Sysdig Link


Auch hier tummeln sich natürlich wieder eine Vielzahl an kommerziellen und teuren Lösungen! Cloudeteer (eigener Kubernetes OPS.STACK auf Basis Open Source), aber auch die der einschlägigen Cloud-Native Konzerne, setzten auf reine Open Source Lösungen. Nachzuschlagen in der Observability and Analysis - Monitoring CNCF-Landscape.


Was erfordert ein Enterprise-grade Managed Kubernetes Betrieb?

Ein hohes Maß an Expertise, Automatisierung und kein weiteres (überteuertes) Tool für das Management! Dafür sind die Architekturen viel zu dynamisch und komplex!

Standardisierte Pipeline (Expertise > Methodik > Tool > Betrieb) ist Voraussetzung für eine sichere und wartbare Kubernetes-Infrastruktur.

Zusammenfassend lässt es sich am besten in diesem Schaubild darstellen:

alt text

Pipeline Factory, (c) 2020 CLOUDETEER GmbH

EMPFEHLUNGEN

  • Kubernetes Plattform sehr genau abwägen (RedHat OpenShift/SUSE Rancher On-Premises versus Managed Kubernetes in der Public Cloud). Netzwerkanforderungen, persistenter Storage und insbesondere das Thema Load-Balancing wird häufig unterschätzt!

  • Wenn hybride Aufbauten wirklich erforderlich sind, nutzen Sie zertifizierte und etablierte Kubernetes-Distributionen, die später auch auf Public Clouds problemlos unterstützt werden (Bsp. RedHat OpenShift) und vermeiden Sie Hersteller-proprietäre Lösungen, auch wenn Hyper-Converged toll klingen mag! Unterschätzen Sie nicht die zusätzlichen Kosten für diese kommerziellen Lösungen und am Ende des Tages läuft immer Kubernetes nativ unter der Haube!

  • Kubernetes selbst obliegt einer hohen Entwicklungsdynamik und mindestens jährlich wird ein neues Major Release bereitgestellt. Kurze Update-Zyklen sollten Sie zwingend berücksichtigen und somit maximaler Fokus auf automatisierte Bereitstellung der Plattform.

  • Da im Kubernetes-Umfeld Alles-ist-Code gehandhabt wird, müssen Sie sich intensiv mit Infrastructure-as-Code befassen (HELM Charts, Terraform). Jeder bereitgestellte Container, inklusive Applikation, wird darüber beschrieben und provisioniert!

  • Das Thema Kubernetes-Security wird immer zu spät angegangen! Schon zu Beginn sollte das Prinzip von “Container-Security-by-Design” gelten, egal ob der Container selbst auf Schwachstellen geprüft wird, oder die Kubernetes Infrastruktur auf gängige Security-Best-Practices. All diese Funktionen müssen Bestandteil Ihrer “Pipeline” werden!

  • Beobachten Sie kontinuierlich die Kubernetes Entwicklungen, da immer wieder ausgezeichnete Erweiterungen hinzukommen (Bsp. OperatorHub). Daher auch die CNCF Cloud Native Interactive Landscape als Voraussetzung für seine eigene Weiterentwicklung und Infrastruktur-Modernisierung verwenden!

FAZIT

Eine geeignete und sichere Kubernetes-Plattform sollte jedes Unternehmen für sich evaluieren. Denn Kubernetes ist schon lange kein Trend mehr, sondern Teil einer modernen IT-Infrastruktur!

Holen Sie sich externe Expertise, da echte Kubernetes-Experten rar am Markt sind!

Die sogenannte Kubernetes Day-2 Operation, also der langweilige Teil nach dem initialen Aufbau, sollte gut abgewägt werden.

Hier geht der Trend immer mehr zu Plattform Out-Sourcing und Fokus auf Modernisierung seiner Applikationsarchitektur - hierüber spreche ich nicht nur, weil wir als CLOUDETEER einen Managed Service hierzu anbieten! Nein, weil fehlende Expertise im Unternehmen und dahingehend ein Team aufzubauen, sehr teuer wird. Darüber hinaus besteht kein großer Mehrwert darin, den Kubernetes Plattform-Betrieb selbst durchzuführen!


Wir als CLOUDETEER haben auch durch unsere PIPELINE FACTORY und unseren OPS.STACK viel Erfahrung im Kubernetes-Umfeld gesammelt. Diskutieren Sie mit unseren Experten, oder folgen Sie unserem Video-Blog, in dem wir Kubernetes verständlich aufbereiten!


Wie immer freue ich mich auf Rückmeldungen und Ihre Meinung zu diesem Thema!

Fragen Sie uns!

Gerald Fehringer
CTO, Founder
CISSP, CISA, CISM, CCSP, Cloud Nerd-by-nature
E-Mail: gf |at] cloudeteer.de
Twitter: @zerohat