Immer größere Datenmengen bei gleichzeitig steigenden Anforderungen an die Sicherheit sowie Zugriffsmöglichkeiten stellen Administratoren vor neue ... (mehr)

Anwendungen auf Kubernetes

Wer keine eigenen Container-Anwendungen für Kubernetes entwickelt oder Inspiration dafür sucht, kann einen Blick auf Helm werfen, einen Paketmanager für Kubernetes, der in sogenannten Charts die Installationsanweisungen für verteilte Containeranwendungen festlegt. Für die Installation von Helm müssen Sie nur das Binary von der Homepage herunterladen, Ausführungsrechte vergeben und es irgendwo ablegen, wo die Shell es findet. Danach rufen Sie »helm init« auf, damit die Serverkomponente namens "Tiller" im Kubernetes-Cluster installiert wird. Derzeit gibt es im Helm-Repository etwa 150 Anwendungen, die zum Deployment in Kubernetes bereit sind. Die verteilte Storage-Software Minio installieren Sie beispielsweise so:

$ helm install stable/minio

Per Default läuft Minio im Standalone-Modus, aber Sie können die Software in den Distributed-Modus umschalten, während sie schon läuft. Dazu lassen Sie sich von Helm die per ConfigMap änderbaren Werte in eine Yaml-Datei schreiben. Dann editieren Sie sie und ändern in einer der ersten Zeilen den Wert bei "mode:" von "standalone" auf "distributed". Anschließend teilen Sie die Änderungen per Helm dem Kubernetes-Cluster mit, der sie umsetzt:

$ helm inspect values stable/minio > minio-values.yml
$ vi minio-values.yml
$ helm upgrade -f minio-values.yml honest-crocodile stable/minio

Den öffentlichen Hostnamen, der über einen Kubernetes-Service mit LoadBalancer realisiert ist, der wiederum einer Instanz eines Elastic Load Balancer (ELB) entspricht, finden Sie dann mit diesem Aufruf heraus:

$ kubectl get svc --namespace default -l app=honest-crocodile-minio -o wide

Die für den Zugriff nötigen Keys verrät der Aufruf von »helm inspect values« . Wenn Sie sich nun den Service genauer ansehen, stellen Sie fest, dass hinter dem LoadBalancer insgesamt vier Instanzen von Minio laufen:

$ kubectl describe svc honest-crocodile-minio
...
Endpoints: 100.96.4.8:9000,100.96.4.9:9000,100.96.5.8:9000 + 1 more...

Auf die gleiche Art lassen sich per Helm beispielsweise ein MySQL-HA-Cluster und Anwendungen wie Moodle oder Drupal installieren. Um den Cluster zu überwachen, bietet sich neben dem Kubernetes-Dashboard das mit Grafana zusammenarbeitende Heapster an (Bild 4).

Bild 4: Mit Grafana zeigt Heapster konfigurierbare Leistungsdaten eines Kubernetes-Clusters grafisch an.

Fazit

Kops ist ein brauchbares Commandline-Tool für das Management von Kubernetes-Clustern in der Amazon-Cloud; der Support von Google Cloud Engine und vSphere befindet sich (noch?) im Alpha-Stadium. Dabei beschränkt es sich nicht auf die Installation einzelner Cluster, sondern kann duchaus auch hochverfügbare Installationen in mehreren Availability Zones einrichten.

Konkurrenz bekommt es von den neuen Amazon-Diensten für Kubernetes. Letztlich haben Kubernetes-Betreiber mit Kops mehr Kontrolle beim Betrieb eines Clusters, müssen aber auch mehr selber leisten, etwa beim Upgrade eines Clusters, bei dem Kops aber hilft.

Link-Codes

[1] Kops: https://github.com/kubernetes/kops/

[2] Helm: http://helm.sh/

Ähnliche Artikel

comments powered by Disqus
Mehr zum Thema

Kubernetes-Paketmanager Helm 2.0 veröffentlicht

Die neueste Version des Kubernetes-Paketmanagers bringt neue Features und verbessert die Benutzbarkeit.

Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023