Laboratorinio darbo tikslas - paleisti savo mikroservisą Kubernetes clusteryje, kuris yra Microsoft Azure Cloude (AKS).
Laboratorinio darbo žingsniai ir įvertinimas už kiekvieną žingsnį yra žemiau. Prieš pradėdami užsiregistruokite laboratoriniam darbui: čia
-
Github ir Dockerhub repo paruošimas (4 balai)
-
Susigeneruokite ssh rsa public ir private raktų porą panaudodami
ssh-keygen
programą terminale$ ssh-keygen
-
Public key įdėti į savo github paskyrą
-
Sukurkite tcentric/cloud-lab fork’ą savo github paskyroje - 2 balai
-
Nusiklonuokite savo nuforkintą github repo lokaliai su
git clone
. Visi kodo pakeitimai bus daromi lokaliai -
Sukurtame forke įjungti ir sukonfigūruoti Github Actions. Action'as konfigūruojasi paprastai, sukurkite aplanką
.github/workflows
, į jį įdėkite šį failą (pakeisti <JŪSŲ DOCKERHUB USERNAME> į savo) Failo pavadinimas turi būti release.yml - 2 balai Atkreipkite dėmesį į lygiavimą Išsaugoję failą galite pasižiūrėti ar lygiavimas tiesingas atsidarę release workflow savo github repo (github.com)name: Publish Release on: release: types: [published] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - name: Define vars run: | echo ${{ github.ref }} | cut -d '/' -f 3 > DOCKER_TAG - name: Build and push docker image run: | docker build --tag <JŪSŲ DOCKERHUB USERNAME>/cloud-lab:$(cat DOCKER_TAG) . docker login --username ${{ secrets.DOCKER_USER }} --password ${{ secrets.DOCKER_TOKEN }} docker push <JŪSŲ DOCKERHUB USERNAME>/cloud-lab:$(cat DOCKER_TAG)
-
Docker HUB paruošimas - 1 balas
- Sukurkite repozitoriją "cloud-lab"
- Sugeneruokite personal access token'ą ir išsaugokite vėlesniam panaudojimui
-
Sukonfigūruokite du secret environment variables Github’e
- DOCKER_TOKEN – dockerhub personal token (iš prieš tai buvusio žingsnio)
- DOCKER_USER – dockerhub username
-
Pakeitimus išsaugokite savo github repozitorijoje panaudojant git commit ir git push
-
-
Konteinerizuotos aplikacijos paleidimas Kubernetes clusteryje (1 balas)
- Parsisiųskite kubeconfig'ą su komanda:
mkdir ~/.kube && curl -X GET -s https://b79d2d57-c967-4074-948e-3ad103dccedb.lab.cloudcat.online/kubeconfig/<JŪSŲ github username> > ~/.kube/config
- Sukurkite naują release savo github repo, pavadinkite jį v0.1 - 1 balas
- Paruoškite kubernetes manifestus (įrašyti informaciją prie TODO pažymėtų vietų) žiūrėti čia
- Nusiųskite manifestus į kubernetes clusterį su komanda:
kubectl apply -f infrastructure/k8s/
1 balas - Atskirame terminalo lange įvykdykite komandą
kubectl port-forward svc/lab 8080:80
- Naršyklėje atsidarykite: http://localhost:8080 - tai jūsų aplikacija Kuebrnetes clusteryje. Ji automatiškai tikrinis 4 etapo užduotis ir matysite, kada užduotis bus įvykdyta
- Parsisiųskite kubeconfig'ą su komanda:
-
API serviso pakeitimai ir deploymentas (3 balai)
- Pridėti papildomą http endpointą į API servisą /{username} žiūrėti čia - 1 balas
- Naujai pridėtas endpointas turėtų grąžinti Sha256 username'o hashą žiūrėti čia
- Pakeitimus išsaugoti savo git repo su git commit ir git push
- Adarykite naują release githube, pavadinkite jį v0.2
- Po to, kai github Actions subuildins naują Docker image'ą, atnaujinkinte jį savo kubernetes deploymente su komanda:
kubectl set image deploy app=<jusu dockerhub username>/cloud-app:v0.2
- 2 balai