4.3 KiB
Inżynieria uczenia maszynowego
12 czerwca 2024
14. Kubernetes
Kubernetes (aka. K8s) - system służący do automatyzacji:
deploymentu
skalowania
zarządzania
skonteneryzowanymi aplikacjami
Motywacja
- Kubernetes jest środowiskiem, w którym działa Kubeflow - system stworzony z myślą o rozwoju i deploymencie modeli ML
Instalacja
- Instalacja do nauki i eksperymentów (nieprodukcyjna): https://minikube.sigs.k8s.io/docs/start/
Hello Minikube - interaktywny samouczek
- Otwórz stronę: https://kubernetes.io/pl/docs/tutorials/hello-minikube/
- Kliknij na "Launch Terminal" i wykonuj polecenia w otwartym terminalu (możesz klikać na fragmentach kodu a same przekopiują się do terminala i uruchomią)
Większość interaktywnych samouczków z kubernetes.io przestała działać z końcem marca (https://kubernetes.io/blog/2023/02/14/kubernetes-katacoda-tutorials-stop-from-2023-03-31/), ale ten powyżej (i czasami niektóre inne, jeśli macie szczęście) wciąż działa
Terminologia
- Pod - (z angielskiego "strąk", np. strąk groszku, ale też grupa wielorybów <"pod of whales">) grupa jednego lub więcej kontenerów wraz z przynależnymi wolumenami (volumes), adresem IP i informacją jak mogą być uruchomione
- Node (węzeł) - pody (jeden lub więcej) są uruchamiane na węzłach - maszynach (fizycznych lub wirtualnych). Na każdym węźle jest uruchomiony proces "kublet", służący do komunikacji z "control plane", czyli serwerem kontrolującym klaster
Cluster - grupa węzłów
Service - abstrakcja zapewniająca stabilny dostęp do Podów. Ponieważ Pod-y są efemeryczne, mogą być uruchamiane automatczynie np. w wyniki awarii węzła. Service definiuje jakie Pod-y (np. z jaką etykietą) są dostępne pod danym portem (więcej informacji: https://kubernetes.io/docs/concepts/services-networking/service/)
Schemat klastra: https://kubernetes.io/docs/concepts/overview/components/