chilcano.istio

Rola Ansible: Istio

Jest to rola Ansible, która wdraża Istio (https://istio.io) w lokalnym klastrze OpenShift, zazwyczaj tworzonym za pomocą Minishift (https://www.openshift.org/minishift). Ta rola wykonuje następujące zadania:

  • Sprawdza, czy OpenShift działa lokalnie.
  • Pobiera i instaluje określoną wersję lub najnowszą wersję Istio.
  • Używa najnowszego binarnego pliku oc z ~/.minishift/cache/oc/<WERSJA>/<OS>/ oraz istioctl z pobranego pliku binarnego Istio.

Wymagania wstępne

  • Ansible 2.3+
  • Przed uruchomieniem roli, oczyść sesję terminala z jakichkolwiek zmiennych środowiskowych DOCKER*.
  • Wymagany jest dostęp sudo na hoście do instalacji istioctl (opcjonalne).
  • OpenShift działa lokalnie. Zobacz https://galaxy.ansible.com/chilcano/minishift, aby uruchomić OpenShift w VM.

Obserwacje

Rola Ansible Istio była testowana z:

  • minishift v1.11.0+4459917
  • kubernetes 3.7
  • istio 0.2.7
  • VirtualBox 5.1.30
  • macOS High Sierra, wersja 10.13.2 (17C88)

Domyślne zmienne roli

Domyślne zmienne znajdują się w defaults/main.yml.

Przykładowy Playbook

Zobacz plik sample-1-istio.yml dla przykładu.

$ cat sample-1-istio.yml
---
- name: Zainstaluj Istio.
  hosts: Pisc0
  connection: local
  gather_facts: yes
  vars:
    vm: openshift0

  roles:
    - role: chilcano.istio
      istio:
        action_to_trigger: clean  # [ wdrażaj | czyść ]
        action:
          deploy:
            istioctl: true    # istioctl
            core: true        # komponenty podstawowe
            addons: true      # prometheus, grafana, zipkin, servicegraph
            sample_apps: true # bookinfo
        minishift:
          profile: "{{ vm }}"
        openshift:
          project: istio-system    # domyślnie
          hostname: "{{ vm }}"
          admin_usr: "system:admin"
          admin_pwd: anypassword
          istio_usr: developer
          istio_pwd: anypassword
        repo:
          #release_tag_name: ""   # najnowsza
          release_tag_name: "0.2.7"
          #release_tag_name: "0.2.6"

Używanie roli Ansible

Zainstaluj rolę:

$ sudo ansible-galaxy install chilcano.istio

Skopiuj playbook z ścieżki do ról do bieżącego katalogu roboczego:

$ cp ${ANSIBLE_ROLES_PATH}/chilcano.istio/sample-1-istio.yml .

Utwórz plik inventory

$ echo $(hostname) > ./inventory

Uruchom playbook:

$ ansible-playbook -i inventory --ask-become-pass sample-1-istio.yml

Po zakończeniu wykonywania Playbooka sprawdź, czy wszystkie Pod-y, Usługi itp. zostały wdrożone i działają.

$ eval $(minishift oc-env)

$ oc project bookinfo

$ oc status
W projekcie bookinfo na serwerze https://192.168.99.100:8443

svc/details - 172.30.118.151:9080
  pod/details-v1-1464079269-wxfl5 działa 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 działa 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 działa 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 działa istio/examples-bookinfo-reviews-v1:0.2.3, docker.io/istio/proxy_debug:0.2.7
  pod/reviews-v2-3096629009-2cfht działa istio/examples-bookinfo-reviews-v2:0.2.3, docker.io/istio/proxy_debug:0.2.7
  pod/reviews-v3-1994447391-ws74d działa istio/examples-bookinfo-reviews-v3:0.2.3, docker.io/istio/proxy_debug:0.2.7

Zobacz szczegóły za pomocą 'oc describe <resource>/<name>' lub wyświetl wszystko za pomocą 'oc get all'.

$ oc get pods
NAZWA                              GOTOWY     STATUS     RESTARTY   WIEK
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
NAZWA                              GOTOWY     STATUS     RESTARTY   WIEK
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
NAZWA                              GOTOWY     STATUS            RESTARTY   WIEK
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
NAZWA                              GOTOWY     STATUS    RESTARTY   WIEK
details-v1-1464079269-wxfl5       2/2       Działa   0          7m
productpage-v1-3915871613-p2cp6   2/2       Działa   0          7m
ratings-v1-327106889-rvqpv        2/2       Działa   0          7m
reviews-v1-3806695627-2xkg6       2/2       Działa   0          7m
reviews-v2-3096629009-2cfht       2/2       Działa   0          7m
reviews-v3-1994447391-ws74d       2/2       Działa   0          7m

Na koniec zobaczysz Istio i aplikację BookInfo działającego w twoim klastrze OpenShift. Statusy Init:0/2, Init:1/2 oraz PodInitializing oznaczają, że aplikacja BookInfo jest w trakcie inicjalizacji/startu i nie jest jeszcze gotowa do użycia.

Wszystkie obrazy poniżej zostały zrobione z aplikacji Weave Scope. Jest to narzędzie do zarządzania, monitorowania i wizualizacji twojego klastra OpenShift. Jeśli chcesz je zainstalować, możesz użyć roli Ansible Weave Scope, którą stworzyłem dla ciebie (https://github.com/chilcano/ansible-role-weave-scope).

  • Badanie wszystkich komponentów Istio (wybierz przestrzeń nazw istio-system).

Wybieranie przestrzeni nazw istio-system

  • Badanie aplikacji BookInfo wdrożonej na OpenShift (wybierz przestrzeń nazw bookinfo).

Wybieranie przestrzeni nazw bookinfo

  • Dogłębne badanie aplikacji BookInfo.

Dogłębne badanie API Mesh

  • Użycie aplikacji internetowej BookInfo i wykonywanie zapytań do interfejsów API BookInfo.

Użycie aplikacji BookInfo wdrożonej na OpenShift

  • Dodatki Istio: Śledzenie za pomocą Zipkin.

Śledzenie za pomocą Zipkin

  • Dodatki Istio: Badanie wskaźników za pomocą Grafany.

Badanie wskaźników za pomocą Grafany

  • Dodatki Istio: Wyświetlanie przepływów za pomocą ServiceGraph.

Wyświetlanie przepływów za pomocą ServiceGraph

Licencja

MIT / BSD

Informacje o autorze

Ta rola została stworzona w 2017 roku przez Roger Carhuatocto, autora bloga HolisticSecurity.io.

O projekcie

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

Zainstaluj
ansible-galaxy install chilcano.istio
Licencja
Unknown
Pobrania
98
Właściciel
Crypto, PKI, DevSecOps, Cloud & Cyber Security, SOA, API & Service Mesh.