Commit 79b37805 authored by Nane Kratzke's avatar Nane Kratzke
Browse files

Übung 01

parent 7f809cf7
stages:
- deploy
- inject
- instrument
- evolution
- teardown
......@@ -23,7 +23,7 @@ yelb-evolution:
- kubectl apply -f deploy/yelb-istio-config.yaml
istio:
stage: inject
stage: instrument
image: $KUBECTL
when: manual
script:
......
......@@ -32,14 +32,29 @@ In diesem Lab werden Sie:
## Vorbereitung
1. [Forken](https://git.mylab.th-luebeck.de/cloud-native/lab-observability/-/forks/new) Sie sich bitte dieses [Repository](https://git.mylab.th-luebeck.de/cloud-native/lab-observability).
2. Setzen Sie bitte in Gitlab für das in Schritt 1 geforkte Repository die `KUBECONFIG` Variable in `Einstellungen -> CI/CD -> Variables` auf den Inhalt der Kubeconfig-Datei, die Sie für dieses Modul als Access Credential für den bereitgestellten Kubernetes Cluster erhalten haben (Type: `File`).
3. Installieren Sie [istio](https://istio.io) auf Ihrem lokalen System gem. diesen [Anweisungen](https://istio.io/latest/docs/setup/getting-started/#download). ***Hinweis:** Sie müssen istio nicht auf dem Kubernetes-Cluster installieren, der Cluster ist bereits entsprechend konfiguriert. Sie müssen auf Ihrem lokalen System nur `istioctl` nutzen können.*
4. Installieren Sie **[Python 3](https://www.python.org/downloads)** (falls noch nicht geschehen).
5. Installieren Sie einen HTTP Load Generator wie bspw. **[salvo](https://github.com/tarekziade/salvo)** mittels `pip install salvo` oder `python3 -m install salvo` (je nachdem wie Ihre Python-Umgebung aufgesetzt ist). *Sie können mit anderen HTTP Load Generatoren arbeiten. Diese Anleitung basiert jedoch auf `salvo`.*
2. Setzen Sie bitte in **Gitlab** für das in Schritt 1 geforkte Repository die `KUBECONFIG` Variable in `Einstellungen -> CI/CD -> Variables` auf den Inhalt der Kubeconfig-Datei, die Sie für dieses Modul als Access Credential für den bereitgestellten Kubernetes Cluster erhalten haben (Type: `File`).
3. **Falls noch nicht geschehen:** Installieren Sie **[Lens](https://k8slens.dev)** und ergänzen Sie den bereitgestellten Cluster, den Sie in Schritt 2 auch für die Build-Pipeline eingerichtet haben.
4. Installieren Sie **[istio](https://istio.io)** auf Ihrem lokalen System gem. diesen [Anweisungen](https://istio.io/latest/docs/setup/getting-started/#download). ***Hinweis:** Sie müssen istio nicht auf dem Kubernetes-Cluster installieren, der Cluster ist bereits entsprechend konfiguriert. Sie sollten auf Ihrem lokalen System allerdings `istioctl` im Terminal nutzen können.*
5. Installieren Sie **[Python 3](https://www.python.org/downloads)** (falls noch nicht geschehen).
6. Installieren Sie einen **HTTP Load Generator** wie bspw. **[salvo](https://github.com/tarekziade/salvo)** mittels `pip install salvo` oder `python3 -m install salvo` (je nachdem wie Ihre Python-Umgebung aufgesetzt ist). *Sie können auch mit anderen HTTP Load Generatoren arbeiten. Diese Anleitung basiert jedoch auf `salvo`.*
## Übung 01: Deployen von Yelb
- to be done
- Machen Sie sich bitte mit der Build-Pipeline dieses Projekts vertraut. Versuchen Sie die `.gitlab-ci.yml`-Datei nachzuvollziehen.
- Triggern Sie bitte einen Build dieser Build-Pipeline (bspw. mit einem Commit).
- Öffnen Sie unter `CI/CD -> Pipelines` die letzte gestartete Build-Pipeline. Diese sollte aus den Stages `deploy`, `inject` , `evolution` und `teardown` bestehen.
- In der `deploy` Stage sollte der Job `yelb` erfolgreich abgeschlossen worden sein und damit die *Yelb* Applikation in K8s erfolgreich deployed worden sein.
- Alle weiteren Jobs in den Folgestages sind noch nicht ausgeführt worden. Diese Jobs werden Sie in den folgenden Übungen starten.
- Öffnen Sie nun Lens, um Einblick in Ihr gerade getriggertes Deployment zu bekommen.
- Sie sollten unter `Workloads -> Deployments` vier Deployments sehen: `yelb-ui`, `yelb-db`, `yelb-appserver-v1` und `redis-server`.
- Sie sollten unter `Network -> Services` vier gleichnamige Services sehen: `yelb-ui`, `yelb-db`, `yelb-appserver-v1` und `redis-server`
- Leiten Sie nun den Port des `yelb-ui` Service an Ihren lokalen Rechner weiter, indem Sie im Lens Terminal folgendes eingeben:
```bash
kubectl port-forward svc/yelb-ui 8888:80
```
Sie können anschließend unter [http://localhost:8888](http://localhost:8888) auf die Yelb-Applikation zugreifen und sollten folgendes sehen:
![Yelb-Screenshot](yelb-ui.png)
- Versuchen Sie anschließend anhand der K8s-Manifest-Datei `deploy/yelb.yaml` vor dem geistigen Auge nachzuvollziehen, wie die Applikation wohl aufgebaut ist.
## Übung 02: Instrumentieren einer Applikation mittels eines Service Meshs [(istio)](https://istio.io)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment