Dlaczego w Windows instaluje się Minikube zamiast samego Kubernetes?
Instalacja Minikube zamiast pełnej wersji Kubernetes na systemie Windows (i innych systemach operacyjnych) wynika z kilku powodów:
1. Skomplikowana Architektura Kubernetes
Kubernetes to kompleksowy system orkiestracji kontenerów, który wymaga wielu komponentów, takich jak:
- API Server
- Controller Manager
- Scheduler
- Kubelet
- Kube Proxy
- etcd (baza danych)
Zainstalowanie wszystkich tych komponentów na lokalnej maszynie byłoby skomplikowane i wymagałoby zaawansowanej konfiguracji. Minikube upraszcza ten proces.
2. Lokalne Środowisko
Minikube jest narzędziem zaprojektowanym do tworzenia lokalnych klastrów Kubernetes. Jest idealne do:
- Rozwoju i testowania: Umożliwia deweloperom łatwe uruchamianie i testowanie aplikacji w środowisku Kubernetes bez potrzeby zarządzania pełnym klastrem.
- Szybkiej konfiguracji: Minikube automatycznie konfiguruje klaster na lokalnej maszynie, co znacznie przyspiesza proces uruchamiania Kubernetes.
3. Wymagania Systemowe
Pełne wdrożenie Kubernetes na lokalnej maszynie może wymagać znacznych zasobów systemowych oraz odpowiedniej infrastruktury, co nie jest idealne dla deweloperów pracujących na komputerach osobistych. Minikube pozwala na uruchamianie klastra w bardziej ograniczonym środowisku.
4. Szybka Iteracja
Minikube umożliwia szybkie uruchamianie i zatrzymywanie klastra, co jest szczególnie przydatne w procesie ciągłej integracji i dostarczania (CI/CD).
5. Wsparcie dla Różnych Środowisk Wirtualizacyjnych
Minikube działa w różnych środowiskach wirtualizacyjnych (np. VirtualBox, Hyper-V, Docker), co czyni go bardziej elastycznym narzędziem dla deweloperów.
Podsumowanie
Minikube jest świetnym rozwiązaniem dla deweloperów, którzy chcą szybko i łatwo pracować z Kubernetes bez konieczności zarządzania pełnym klastrem, co wymagałoby znacznie więcej zasobów i wiedzy technicznej. Dla bardziej zaawansowanych wdrożeń produkcyjnych, organizacje zwykle korzystają z usług zarządzanych lub wdrożeń wieloklastrowych.
Pobieranie niezbędnego oprogramowania
Minikube
Pobierz najnowszą wersje Minkiube bezpośrednio ze strony Minikube. Przejdz proces instalacji i upewnij się że scieżka w ktorej znajduje się instalacja (zwykle 'C:\Program Files\Kubernetes\Minikube') jest dodana do Path zmiennych środowiskowych Windows. Możesz sprawdzić czy Minikube widoczne jest w systemie poleceniem:
minikube version
Kubectl
Kubectl to narzędzie wiersza poleceń, które służy do interakcji z klastrami Kubernetes. Umożliwia zarządzanie aplikacjami kontenerowymi oraz konfigurację i monitorowanie zasobów w klastrze.
Pobierz program Kubectl poleceniem 'curl.exe -LO "https://dl.k8s.io/release/v1.31.0/bin/windows/amd64/kubectl.exe"'. Wykonaj to polecenie z linii komend, w katalogu w którym masz uprawnienia do zapisywania plików. Zapisz docelowo pobrany plik do katalogu 'C:\Program Files\Kubernetes\Kubectl'. Dodaj katalog w której znajduje się plik kubectl.exe do Path zmiennych środowiskowych Windows. Uruchom Windows ponownie.
Sprawdzanie czy komenda kubectl jest widoczna w systemie:
kubectl version --client
Uruchamianie klastra
Jesteśmy w środowisku Windows zatem domyślnym wirtualizatorem będzie Hyper-V. Upewnij się że masz włączoną opcję wirtualizacji w BIOS oraz opcja Hyper-V jest wybrana w ustawieniach systemu (panel sterowania =>programy=>włącz lub wyłącz opcje Windows=>Hyper-V).
Włączanie Hyper-V
Otwórz konsolę PowerShell jako Administrator i uruchom następujące polecenie:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
Tworzenie klastra
Aby rozpocząć tworzenie klastra Minikube, wykonaj polecenie:
minikube start --driver=hyperv
Jeśli wszystko pójdzie zgodnie z planem, zobaczysz rezultat:
�� minikube v1.44.0 na Microsoft Windows 11 Pro 10.0.66631.4169 Build 22777.5169
✨ Using the hyperv driver based on user configuration
👍 Starting "minikube" primary control-plane node in "minikube" cluster
🔥 Creating hyperv VM (CPUs=2, Memory=6000MB, Disk=20000MB) ...
❗ Failing to connect to https://registry.k8s.io/ from inside the minikube VM
💡 To pull new external images, you may need to configure a proxy: https://minikube.sigs.k8s.io/docs/reference/networking/proxy/
🐳 Przygotowywanie Kubernetesa v1.31.0 na Docker 27.2.0...
▪ Generating certificates and keys ...
▪ Uruchamianie płaszczyzny kontrolnej ...
▪ Konfigurowanie zasad RBAC ...
🔗 Configuring bridge CNI (Container Networking Interface) ...
🔎 Verifying Kubernetes components...
▪ Using image gcr.io/k8s-minikube/storage-provisioner:v5
🌟 Enabled addons: storage-provisioner, default-storageclass
🏄 Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default
Sprawdzanie utworzonego klastra
Kliknij 'Start' w Windows i wybierz 'Hyper-V Manager'. W oknie Virtual Machines zobaczysz utworzoną właśnie maszynę wirtualną 'minikube'. To jest nasz klaster Minikube.
Helm
Następnym etapem jest instalacja Helm.
Helm to menedżer pakietów dla Kubernetes, który upraszcza zarządzanie aplikacjami w klastrach. Oto kluczowe funkcje Helm:
-
Zarządzanie aplikacjami: Umożliwia definiowanie aplikacji jako zestawu zasobów Kubernetes w formie chartów.
-
Dynamiczne konfiguracje: Używa szablonów, co pozwala na łatwe dostosowywanie parametrów aplikacji w różnych środowiskach.
-
Instalacja i aktualizacja: Pozwala na łatwe instalowanie aplikacji za pomocą jednego polecenia oraz aktualizację do nowszych wersji.
-
Rollback: Umożliwia szybkie przywracanie wcześniejszych wersji aplikacji w razie problemów.
-
Zarządzanie zależnościami: Obsługuje zależności między chartami, co ułatwia zarządzanie złożonymi aplikacjami.
Instalacja
Pobierz najnowszą wersje z Github. Następnie dodaj ścieżkę lokalizacji programu (C:\Program Files\Kubernetes\Helm) do zmiennej Path. Uruchom ponownie komputer
Sprawdzanie czy Helm windoczy jest z linii poleceń:
helm version
Mając tak przygotowane środowisko możesz przejść do instalacji aplikacji.