Service Mesh Istio

Mettre en place le service mesh (Istio)

Installation Istio

Installation Istio Docs Installation Istio Docs

Nous pouvons décrire Istio comme un outil de la couche 7 du réseau pour gérer la connectivité. C’est certainement quelque chose que vous voulez (ou même désirez) si vous avez OpenShift. Depuis la version 3.11, Istio est un aperçu de la technologie. Une fois mis au point, il sera pris en charge par Red Hat dans l’environnement de production.

installer Istio sur OKD :

git clone https://github.com/Maistra/openshift-ansible.git -b maistra-0.7
cd openshift-ansible/istio

Au début, vous devez activer des webhooks spéciaux qui remplacent le comportement par défaut du serveur API de Kubernetes. Ils permettent de modifier la création et la validation d’objets comme le déploiement, le pod, etc. Istio utilise ces webhooks pour injecter son instrumentation intelligente.

mv master-config.path /etc/origin/master/
cd /etc/origin/master
cp master-config.yaml master-config.yaml.pre-istio
oc ex config patch master-config.yaml.pre-istio -p "$(cat master-config.patch)" > master-config.yaml.new
echo "Analyze config file if everything is OK"
less master.config.new
mv master-config.yaml.new master-config.yaml
/usr/local/bin/master-restart api
/usr/local/bin/master-restart controllers

La mise à jour est terminée. Nous devons maintenant modifier les fichiers d’installation pour OKD.

cd ~/openshift-ansible/istio
vi istio_community_operator_template.yaml

Vous devez vous assurer que ce fichier contient :

name: OPENSHIFT_DEPLOYMENT_TYPE
value: origin

Jaeger va tracer les charges utiles de votre réseau échangées par les services tandis que Kiali va vous montrer les chemins entre les applications en réseau - donc essentiellement le flux du réseau.

oc new-project istio-operator
oc new-app -f istio_community_operator_template.yaml --param OPENSHIFT_ISTIO_MASTER_PUBLIC_URL=<URL_OPENSHIFT> --param OPENSHIFT_RELEASE=v3.11.0

Pour connaitre la valeur correspondant au paramètre OPENSHIFT_ISTIO_MASTER_PUBLIC_URL, faire la commande ‘oc version’ et récupérer l’URL.

Vérifier

Les instructions ci-dessus créeront un nouveau déploiement dans le cadre du projet Istio-operator, exécutant l’opérateur responsable de la gestion de l’état du plan de contrôle Istio par le biais de la ressource personnalisée.

Pour vérifier que l’opérateur est correctement installé, accédez aux journaux du pod opérateur en utilisant la commande suivante :

oc logs -n istio-operator $(oc -n istio-operator get pods -l name=istio-operator --output=jsonpath={.items..metadata.name})

et recherchez des résultats similaires à ceux qui suivent

time="2020-04-07T20:00:58Z" level=info msg="Go Version: go1.11.2"
time="2020-04-07T20:00:58Z" level=info msg="Go OS/Arch: linux/amd64"
time="2020-04-07T20:00:58Z" level=info msg="operator-sdk Version: 0.0.5+git"
time="2020-04-07T20:00:58Z" level=info msg="Metrics service istio-operator created"
time="2020-04-07T20:00:58Z" level=info msg="Watching resource istio.openshift.com/v1alpha1, kind Installation, namespace istio-operator, resyncPeriod 0"

Mise à jour des nœuds

Afin d’exécuter l’application Elasticsearch, il est nécessaire d’apporter un changement à la configuration du noyau sur chaque nœud, ce changement sera géré par le service sysctl.

Effectuez les modifications suivantes sur chaque nœud de votre installation

Créez un fichier nommé /etc/sysctl.d/99-elasticsearch.conf avec le contenu suivant :

vm.max_map_count = 262144

Exécutez la commande suivante :

sysctl vm.max_map_count=262144

Operator est une application cool qui attend les configurations d’installation comme une définition de ressource personnalisée et gère ensuite le déploiement d’Istio. Déclenchons l’installation.

oc create -f cr-minimal.yaml

Vérification du plan de contrôle de l’istio

L’opérateur créera l’espace de noms istio-système et exécutera le travail d’installation. Cette tâche consiste à configurer le plan de contrôle d’Istio à l’aide de playbooks Ansible. La progression de l’installation peut être suivie soit par l’observation des pods, soit par la sortie du journal du pod openshift-ansible-istio-installateur-job. Pour observer la progression des pods, exécutez la commande suivante :

oc get pods -n istio-system -w

Une fois que le travail d’installation de l’openshift-ansible-istio-installateur est terminé, exécutez oc get pods -n istio-system et vérifiez que vous avez l’état similaire à ce qui suit.

NAME                                          READY     STATUS      RESTARTS   AGE
3scale-istio-adapter-7df4db48cf-sc98s         1/1       Running     0          13s
elasticsearch-0                               1/1       Running     0          29s
grafana-c7f5cc6b6-vg6db                       1/1       Running     0          33s
istio-citadel-d6d6bb7bb-jgfwt                 1/1       Running     0          1m
istio-egressgateway-69448cf7dc-b2qj5          1/1       Running     0          1m
istio-galley-f49696978-q949d                  1/1       Running     0          1m
istio-ingressgateway-7759647fb6-pfpd5         1/1       Running     0          1m
istio-pilot-7595bfd696-plffk                  2/2       Running     0          1m
istio-policy-779454b878-xg7nq                 2/2       Running     2          1m
istio-sidecar-injector-6655b6ffdb-rn69r       1/1       Running     0          1m
istio-telemetry-dd9595888-8xjz2               2/2       Running     2          1m
jaeger-agent-gmk72                            1/1       Running     0          25s
jaeger-collector-7f644df9f5-dbzcv             1/1       Running     1          25s
jaeger-query-6f47bf4777-h4wmh                 1/1       Running     1          25s
kiali-7cc48b6cbb-74gcf                        1/1       Running     0          17s
openshift-ansible-istio-installer-job-fbtfj   0/1       Completed   0          2m
prometheus-5f9fd67f8-r6b86                    1/1       Running     0          1m

Désinstaller Maistra

Suppression du plan de contrôle

L’étape suivante consiste à retirer Istio d’une installation existante. Elle peut être exécutée par tout utilisateur ayant accès à la suppression de la CustomResource.

oc delete -n istio-operator installation istio-installation

La suppression de la CustomResource (Installation) indiquera à l’opérateur Istio de commencer à désinstaller tout ce qu’il a installé. Cela créera un emploi dans le projet istio-system appelé openshift-ansible-istio-removal-job. Une fois ce travail terminé, l’opérateur supprimera le projet istio-system. À ce stade, vous pouvez passer à l’étape suivante.

Supprimession de l’opérateur

Afin de retirer proprement l’opérateur, exécutez ce qui suit :

Pour les images communautaires, exécutez

oc process -f istio_community_operator_template.yaml | oc delete -f -

Le projet istio-opertor peut maintenant être supprimé.

oc delete project istio-operator