Kubernetes jest już praktycznie standardem jeśli chodzi o utrzymywanie i zarządzanie aplikacjami chmurowymi. Pozwala na łatwe skalowanie, wdrażanie nowych wersji w podejściu canary i rolling-upgrade, proste rollbacki, uruchamianie serverless i wiele więcej. Z pozoru może wydawać się trudny, ale tak naprawdę do uruchomienia wielu podstawowych scenariuszy nie potrzeba żadnej zaawansowanej wiedzy. Podczas prezentacji pokażę podstawowe założenia i jak składają się w jedną całość.
2. Co to jest Kubernetes?
Kubernetes (K8s) is an open-source system for automating
deployment, scaling, and management of containerized applications.
3. Co da mi Kubernetes?
● Zautomatyzowany deployment, rollback etc
● Zautomatyzowane skalowanie
● Łatwe zarządzanie małymi i dużymi klastrami serwerów
Inne:
● Proste dostawianie nowych środowisk - np. review apps
4. Dlaczego akurat Kubernetes?
● Oparty o 15 lat doświadczenia Google
● Praktycznie standard branżowy
○ Google Cloud
○ Microsoft Azure
○ Amazon AWS
○ IBM Bluemix
○ Digital Ocean
○ OVH
● Ogromna społeczność
● Sporo oficjalnych rozwiązań
5. Co oferuje K8s?
● Service discovery and load balancing
● Storage orchestration
● Automated rollouts and rollbacks
● Batch excecution
● Automatic binpacking
● Self-healing
● Secret and configuration management
● Horizontal scaling*
*Even better on Google Cloud
8. POD
● Podstawowa jednostka “budownicza”
● Idempotentny
● Efemeryczny
● Jeden lub wiele kontenerów - ściśle połączonych
○ Kontenery na jednej maszynie, współdzielą sieć (jeden IP, widzą się pod nazwą localhost)
○ Mogą współdzielić dysk
9. Node 1
Pod 1 Pod 2
Container 1
Container 2
Volume
Network
IPC
Container 1
24. Service
● Realizują service discovery i load balancing
● Różne typy
○ ClusterIp
○ NodePort
○ LoadBalancer
○ ExternalName
Service
matchLabel: nginx
Pod 1
label:
app: nginx
Pod 2
label:
app: nginx