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 von istioctl 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, um istioctl 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).

Auswahl des Namespace istio-system

  • Erkunden der BookInfo-App, die auf OpenShift bereitgestellt wurde (wählen Sie den Namespace bookinfo).

Auswahl des Namespace bookinfo

  • Vertieftes Erkunden der BookInfo-App.

Vertieftes Erkunden des API Mesh

  • Verwendung der BookInfo-Webanwendung und Aufrufe der BookInfo-APIs.

Verwendung der auf OpenShift bereitgestellten BookInfo-App

  • Die Istio-Addons: Tracing mit Zipkin.

Tracing mit Zipkin

  • Die Istio-Addons: Erkundung von Metriken mit Grafana.

Erkundung von Metriken mit Grafana

  • Die Istio-Addons: Anzeigen der Flüsse mit ServiceGraph.

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.

Über das Projekt

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).

Installieren
ansible-galaxy install chilcano.istio
GitHub Repository
Lizenz
Unknown
Downloads
98
Besitzer
Crypto, PKI, DevSecOps, Cloud & Cyber Security, SOA, API & Service Mesh.