[et_pb_section bb_built=”1″ next_background_color=”#f1f1f1″][et_pb_row][et_pb_column type=”4_4″][et_pb_text _builder_version=”3.0.105″ background_layout=”light”]
Ein momentan besonders intensiv und kontrovers diskutiertes Thema ist das neue Deployment von Kubernetes, das das Verwalten und Konfigurieren von Kubernetes und Bosh langfristig vereinfachen soll. Heute möchten wir es nicht verpassen, Euch unsere Meinung zum PKS näherzubringen – natürlich nicht, ohne einige (wichtige) offene Fragen für uns und sicherlich auch für den ein oder anderen User aufzuwerfen.
[/et_pb_text][/et_pb_column][/et_pb_row][et_pb_row _builder_version=”3.0.105″ use_custom_gutter=”on”][et_pb_column type=”4_4″][et_pb_text _builder_version=”3.0.105″ background_layout=”light”]
Einen Aspekt wollen wir direkt am Anfang unbedingt herausstellen:
PKS ist keine Alternative, sondern dient der Vervollständigung der Services rund um die Plattformen von Pivotal. Dieser Aspekt wird einmal mehr deutlich, indem Pivotal PKS auch wie folgt beschreibt:
Wofür steht das Kubernetes Deployment jetzt genau?
Ähnlich wie bei CF gibt es auch für PKS eine Open Source Variante “Kubo” (Kubernetes/Bosh) und seit kurzer Zeit gibt es nun ein Bosh basierendes Kubernetes Deployment: https://github.com/cloudfoundry-incubator/kubo-deployment
[/et_pb_text][et_pb_text _builder_version=”3.0.105″ background_layout=”light”]
Im Folgenden geht es darum zu zeigen, wie Ihr mit dem Deployment von Kubo auf bosh-lite bzw. OpenStack arbeitet. Dabei wollen wir herausstellen, wie man mit ein paar kleinen Kniffen eine vollständig lauffähigen Kubernetes Cluster aktivieren kann.
[/et_pb_text][/et_pb_column][/et_pb_row][/et_pb_section][et_pb_section bb_built=”1″ next_background_color=”#ffffff” prev_background_color=”#ffffff” _builder_version=”3.0.105″ background_color=”#f1f1f1″][et_pb_row][et_pb_column type=”4_4″][et_pb_text admin_label=”Technische Einleitung” _builder_version=”3.0.105″ background_layout=”light”]
Welcher Aspekt fällt zu Beginn der Nutzung von Kubo direkt auf?
Das ist ganz eindeutig der Aufbau des Repositories zum Deployment an sich. Leider haben die Autoren einen Aspekt aus unserer Sicht vernachlässigt: Sie haben sich nicht darauf konzentriert, die Stärken von modularen Bosh Manifest mit Bosh 2 zu nutzen. Das zeigt sich vor allem dadurch, dass anstelle von modularen Bosh Deployment Files das Repository voll von Shell Scripten (Januar 2018) ist.
Die gute Nachricht in diesem Zusammenhang: Es gibt Licht am Ende des Tunnels! Denn glücklicherweise wurden einige Anstrengungen unternommen, das Repository in die notwendig Richtung zu migrieren … wir halten euch natürlich auf dem Laufenden, sobald es hier Neuigkeiten gibt.
Des Weiteren sieht das aktuell kubo-deployment vor, einen dedizierten Director zu deployen, wobei durchaus die Sinnhaftigkeit zu hinterfragen ist
[/et_pb_text][/et_pb_column][/et_pb_row][/et_pb_section][et_pb_section bb_built=”1″ prev_background_color=”#f1f1f1″][et_pb_row][et_pb_column type=”4_4″][et_pb_text _builder_version=”3.0.105″ background_layout=”light”]
Und was sollte hinsichtlich des Deployments herausgestellt werden?
Zu Beginn ist es uns besonders wichtig, eines zu betonen: Wir werden keine Shell Scripte verwenden. Stattdessen sollte das Resultat ein Deployment auf Basis eines 5 Zeilen Shell Kommandos sein, das wie folgt aussieht:
bosh deploy -d kubo manifests/cfcr.yml -o manifests/ops-files/vm-types.yml -v master_vm_type=default -v worker_vm_type=default -o manifests/ops-files/replace-name.yml -v deployment_name=kubo -o manifests/ops-files/use-runtime-config-bosh-dns.yml -o manifests/ops-files/availability-zones.yml
Welches “Rüstwerkzeug” ist dazu notwendig? Für eine erfolgreiche Realisierung solltet Ihr auf diese Schritte achten:
Danach solltet Ihr das Repository auschecken via git clone https://github.com/cloudfoundry-incubator/kubo-deployment
Nach dem erfolgreichen Checkout war es notwendig zwei Files unter manifests/ops-files hinzuzufügen:
availability-zones.yml
- type: remove path: /instance_groups/name=master/azs
- type: remove path: /instance_groups/name=worker/azs
replace-name.yml
- type: replace path: /name value: ((deployment_name))
[/et_pb_text][et_pb_text _builder_version=”3.0.105″ background_color=”#a8d1dd” background_layout=”light” custom_padding=”10px|10px|10px|10px”]
Ersteres ist nur notwendig, wenn keine Availability-Zones vorhanden sind (bosh-lite bspw)
Replace-name.yml ist notwendig, um zu verhindern, dass jedes Deployment cfcr genannt wird und somit nur ein paralleles Deployment möglich ist
Wurde dies erfolgreich im Repository hinzugefügt, ist es danach möglich Kubo gegen einen existierenden Director zu deployen
[/et_pb_text][et_pb_text _builder_version=”3.0.105″ background_layout=”light”]
An dieser Stelle kommen wir jetzt zu den anfangs erwähnten offenen Fragen:
[/et_pb_text][et_pb_image _builder_version=”3.0.105″ src=”/wp-content/uploads/2018/03/screen1.png” show_in_lightbox=”on” url_new_window=”off” use_overlay=”off” always_center_on_mobile=”on” force_fullwidth=”off” show_bottom_space=”on” /][/et_pb_column][/et_pb_row][/et_pb_section]