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).
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.
Die neueste Version des Kubernetes-Paketmanagers bringt neue Features und verbessert die Benutzbarkeit.