Bartosz Tkaczewski: Zarządzanie kontenerami może być proste, a nawet przyjemne. Na prezentacji dowiesz się, jak szybko uruchomić klaster na chmurze Googla oraz jak w szybki i wygodny sposób wdrożyć aplikację. Nie zabraknie liźnięcia technikaliów – tych podstawowych i tych nie do końca oczywistych. Aby wilk był syty, a i owca nadal beczała.
Link do repozytorium: https://github.com/tkaczu/uszanowanko-k8s
2. O mnie
Bartosz „tkaczu” Tkaczewski
DevOps Engineer w TSH
Developer „w czasie wolnym”
Kontakt:
email: bart@tsh.io
twitter: @btkaczewski
GH: tkaczu
2
3. Plan prezentacji
Kubernetes - co to jest, jak działa?
Jak to ustrojstwo zainstalować …
Jak na nim coś zrobić …
Co jeszcze moglibyśmy na nim zrobić …
Pytanka
3
4. - co to jest?
System do zarządzania skonteneryzowanymi
aplikacjami w chmurze umożliwiający wygodny i
przewidywalny sposób deployowania aplikacji, jak
również skalowania i inne różne wodotryski!
4
9. - pod
9
Container
Container
Najmniejsza jednostka w k8s
Grupuje kontenery
Dzieli storage
Ustawia je zawsze na jednym NODE
Każdy POD ma swój adres IP
Kontenery wewnątrz widzą się
po localhoście
POD powinny być stateless - nie
przywiązujemy się do czasu ich istnienia
Pod
10. Dzięki niemu pody mogą
komunikować się między
sobą jak również serwis
może zostać wystawiony
na świat
10
- Serwis
Container
Container
Pod
Serwis
11. „Dokument” opisujący - w jaki sposób, w jakiej
liczbie, z jakimi parametrami etc … - pody
mają zostać uruchomione
11
- Deployment
13. 13
- SaSS/IaSS
Google
GKE - Google Kubernetes Engine
https://cloud.google.com/kubernetes-engine/
AWS
EKS - Amazon Elastic Container Service for Kubernetes
https://aws.amazon.com/eks/
Azure
AKS - Azure Kubernetes System
https://azure.microsoft.com/pl-pl/services/container-service/
17. Kubectl ważne polecenia
kubectl get pods - pokazuje listę podów
kubectl describe pod - opisuje pod
kubectl get svc - pokazuje listę serwisów
kubectl top pods - pokazuje ‚top’ na podach
kubectl get nodes - pokazuje nody działające w klastrze
kubectl apply - wdraża/nanosi nasze manifesty
kubectl exec - podłącza się do działającego poda
kubectl delete pod- usuwa poda
17
18. Przykład #1 - nginx-intro
Co to jest manifest?
Jak go napisać?
Jak go wdrożyć?
Jak go usunąć?
18
19. Przykład #2 - wordpress-single
19
Wdrożymy wordpressa
Czyli dodamy bazę danych
Oczywiście zepniemy to w całość
Będziemy z siebie dumni
20. Przykład #3 - wordpress-multi
20
Wydzielimy bazę danych do osobnego poda
Podłączymy się do niej przez serwis
Poznamy configmapy
21. HPA (Horizonal Pod Autoscaler) -
automatycznie skaluje nasze pody
obserwując wskazane przez nas metryki -
np użycie CPU bądź RAM
21
- HPA
22. Przykład #4 - wordpress-multi-hpa
22
„SZYBKI DDOS”
Skalujemy apkę
Duma zacznie nas rozpierać
23. Program, który pomoże nam zarządzać
naszymi aplikacjami - deployować, skalować,
usuwać. Umożliwia nam parametryzowanie
manifestów
23
Helm
24. Przykład #5 - wordpress-helm
24
Parametryzujemy manifesty
Reużywamy je - przecież jesteśmy leniuchami
Odpalamy farmę wordpressów