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>/
orazistioctl
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 instalacjiistioctl
(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
).
- Badanie aplikacji BookInfo wdrożonej na OpenShift (wybierz przestrzeń nazw
bookinfo
).
- Dogłębne badanie aplikacji BookInfo.
- Użycie aplikacji internetowej BookInfo i wykonywanie zapytań do interfejsów API BookInfo.
- Dodatki Istio: Śledzenie za pomocą Zipkin.
- Dodatki Istio: Badanie wskaźników za pomocą Grafany.
- Dodatki Istio: 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.
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