chilcano.istio
Ansible Rolle: Istio
Eine Ansible Rolle, die Istio (https://istio.io) in einem lokal laufenden OpenShift-Cluster bereitstellt, das normalerweise mit Minishift (https://www.openshift.org/minishift) erstellt wird. Diese Rolle führt die folgenden Aufgaben aus:
- Überprüfen, ob OpenShift lokal läuft.
- Herunterladen und Installieren der angegebenen Version oder der neuesten von Istio.
- Verwendung der neuesten
oc
-Binärdatei aus~/.minishift/cache/oc/<VERSION>/<OS>/
und vonistioctl
aus der heruntergeladenen Istio-Binärdatei.
Voraussetzungen
- Ansible 2.3+
- Vor dem Ausführen der Rolle sollten alle DOCKER*-Umgebungsvariablen in Ihrer Terminal-Sitzung gelöscht werden.
sudo
-Zugriff auf Ihrem Host ist erforderlich, umistioctl
zu installieren (optional).- OpenShift sollte lokal laufen. Siehe
https://galaxy.ansible.com/chilcano/minishift
, um OpenShift in einer VM zum Laufen zu bringen.
Beobachtungen
Die Istio Ansible Rolle wurde getestet mit:
- minishift v1.11.0+4459917
- kubernetes 3.7
- istio 0.2.7
- VirtualBox 5.1.30
- macOS High Sierra, Version 10.13.2 (17C88)
Standard Rollenvariablen
Die Standardvariablen befinden sich in defaults/main.yml
.
Beispiel Playbook
Siehe die Datei sample-1-istio.yml
für ein Beispiel.
$ cat sample-1-istio.yml
---
- name: Istio installieren.
hosts: Pisc0
connection: local
gather_facts: yes
vars:
vm: openshift0
roles:
- role: chilcano.istio
istio:
action_to_trigger: clean # [ deploy | clean ]
action:
deploy:
istioctl: true # istioctl
core: true # Kernkomponenten
addons: true # prometheus, grafana, zipkin, servicegraph
sample_apps: true # bookinfo
minishift:
profile: "{{ vm }}"
openshift:
project: istio-system # standard
hostname: "{{ vm }}"
admin_usr: "system:admin"
admin_pwd: anypassword
istio_usr: developer
istio_pwd: anypassword
repo:
#release_tag_name: "" # neueste
release_tag_name: "0.2.7"
#release_tag_name: "0.2.6"
Verwendung der Ansible Rolle
Installieren Sie die Rolle:
$ sudo ansible-galaxy install chilcano.istio
Kopieren Sie das Playbook von Ihrem Rollenpfad in das aktuelle Arbeitsverzeichnis:
$ cp ${ANSIBLE_ROLES_PATH}/chilcano.istio/sample-1-istio.yml .
Erstellen Sie eine inventory
-Datei
$ echo $(hostname) > ./inventory
Führen Sie das Playbook aus:
$ ansible-playbook -i inventory --ask-become-pass sample-1-istio.yml
Nach Abschluss der Ausführung des Playbooks überprüfen Sie, ob alle Pods, Dienste usw. bereitgestellt und aktiv sind.
$ eval $(minishift oc-env)
$ oc project bookinfo
$ oc status
Im Projekt bookinfo auf dem Server https://192.168.99.100:8443
svc/details - 172.30.118.151:9080
pod/details-v1-1464079269-wxfl5 läuft istio/examples-bookinfo-details-v1:0.2.3, docker.io/istio/proxy_debug:0.2.7
svc/productpage - 172.30.163.171:9080
pod/productpage-v1-3915871613-p2cp6 läuft istio/examples-bookinfo-productpage-v1:0.2.3, docker.io/istio/proxy_debug:0.2.7
svc/ratings - 172.30.13.63:9080
pod/ratings-v1-327106889-rvqpv läuft istio/examples-bookinfo-ratings-v1:0.2.3, docker.io/istio/proxy_debug:0.2.7
svc/reviews - 172.30.233.119:9080
pod/reviews-v1-3806695627-2xkg6 läuft istio/examples-bookinfo-reviews-v1:0.2.3, docker.io/istio/proxy_debug:0.2.7
pod/reviews-v2-3096629009-2cfht läuft istio/examples-bookinfo-reviews-v2:0.2.3, docker.io/istio/proxy_debug:0.2.7
pod/reviews-v3-1994447391-ws74d läuft istio/examples-bookinfo-reviews-v3:0.2.3, docker.io/istio/proxy_debug:0.2.7
Details mit 'oc describe <resource>/<name>' anzeigen oder alles mit 'oc get all' auflisten.
$ oc get pods
NAME READY STATUS RESTARTS AGE
details-v1-1464079269-wxfl5 0/2 Init:0/2 0 1m
productpage-v1-3915871613-p2cp6 0/2 Init:0/2 0 1m
ratings-v1-327106889-rvqpv 0/2 Init:0/2 0 1m
reviews-v1-3806695627-2xkg6 0/2 Init:0/2 0 1m
reviews-v2-3096629009-2cfht 0/2 Init:0/2 0 1m
reviews-v3-1994447391-ws74d 0/2 Init:0/2 0 1m
$ oc get pods
NAME READY STATUS RESTARTS AGE
details-v1-1464079269-wxfl5 0/2 Init:1/2 0 2m
productpage-v1-3915871613-p2cp6 0/2 Init:1/2 0 2m
ratings-v1-327106889-rvqpv 0/2 Init:1/2 0 2m
reviews-v1-3806695627-2xkg6 0/2 Init:1/2 0 2m
reviews-v2-3096629009-2cfht 0/2 Init:1/2 0 2m
reviews-v3-1994447391-ws74d 0/2 Init:1/2 0 2m
$ oc get pods
NAME READY STATUS RESTARTS AGE
details-v1-1464079269-wxfl5 0/2 PodInitializing 0 3m
productpage-v1-3915871613-p2cp6 0/2 PodInitializing 0 3m
ratings-v1-327106889-rvqpv 0/2 PodInitializing 0 3m
reviews-v1-3806695627-2xkg6 0/2 PodInitializing 0 3m
reviews-v2-3096629009-2cfht 0/2 PodInitializing 0 3m
reviews-v3-1994447391-ws74d 0/2 PodInitializing 0 3m
$ oc get pods
NAME READY STATUS RESTARTS AGE
details-v1-1464079269-wxfl5 2/2 Running 0 7m
productpage-v1-3915871613-p2cp6 2/2 Running 0 7m
ratings-v1-327106889-rvqpv 2/2 Running 0 7m
reviews-v1-3806695627-2xkg6 2/2 Running 0 7m
reviews-v2-3096629009-2cfht 2/2 Running 0 7m
reviews-v3-1994447391-ws74d 2/2 Running 0 7m
Am Ende sehen Sie Istio und die BookInfo-App, die in Ihrem OpenShift-Cluster laufen. Die Statusanzeigen Init:0/2
, Init:1/2
und PodInitializing
zeigen, dass die BookInfo-App initialisiert/genutzt wird und noch nicht bereit ist.
Alle Bilder unten wurden von der Weave Scope-App aufgenommen. Dies ist ein Tool zur Verwaltung, Überwachung und Visualisierung Ihres OpenShift-Clusters. Wenn Sie es installieren möchten, können Sie die Weave Scope Ansible Rolle verwenden, die ich für Sie erstellt habe (https://github.com/chilcano/ansible-role-weave-scope).
- Erkunden aller Istio-Komponenten (wählen Sie den Namespace
istio-system
).
- Erkunden der BookInfo-App, die auf OpenShift bereitgestellt wurde (wählen Sie den Namespace
bookinfo
).
- Vertieftes Erkunden der BookInfo-App.
- Verwendung der BookInfo-Webanwendung und Aufrufe der BookInfo-APIs.
- Die Istio-Addons: Tracing mit Zipkin.
- Die Istio-Addons: Erkundung von Metriken mit Grafana.
- Die Istio-Addons: Anzeigen der Flüsse mit ServiceGraph.
Lizenz
MIT / BSD
Informationen über den Autor
Diese Rolle wurde 2017 von Roger Carhuatocto, Autor des HolisticSecurity.io Blogs, erstellt.
An Ansible Role that installs and configures Istio (https://istio.io) on an OpenShift cluster running locally that has been installed by using Minishift (https://www.openshift.org/minishift).
ansible-galaxy install chilcano.istio