Jak uruchomić lokalny klaster Kubernetes za pomocą Minikube?
Minikube to minimalna dystrybucja Kubernetes przeznaczona do użytku w lokalnym rozwoju. Został opracowany w ramach projektu Kubernetes i zawiera implementacje wszystkich głównych funkcji klastra.
Minikube działa na hostach Linux, Mac i Windows. Może używać kontenerów lub środowiska maszyny wirtualnej do uruchamiania klastra i jego obciążeń. Oto wszystkie obsługiwane środowiska wykonawcze:
- Doker
- Podman
- KVM
- Hyper-V
- Hiperkit
- paralele
- wirtualne pudełko
- VMware
Przed kontynuowaniem tego przewodnika upewnij się, że masz zainstalowaną jedną z tych technologii. Proces instalacji Minikube automatycznie wykryje dostępne środowiska wykonawcze i zastosuje odpowiednią konfigurację. Pokażemy Ci, jak ukończyć wdrożenie i zacząć korzystać z Minikube.
Instalowanie minikostki
W tym przewodniku skupimy się na systemach Linux x86. Jeśli używasz systemu Windows, Mac lub innej platformy procesora, zapoznaj się z dokumentacją Minikube, aby uzyskać najbardziej szczegółowe informacje dotyczące konfiguracji. Po wstępnej procedurze instalacji podstawowe użycie Minikube jest identyczne we wszystkich obsługiwanych systemach.
Użytkownicy Linuksa mogą wybrać pomiędzy bezpośrednim pobraniem pliku binarnego lub pakietu Debian/RPM. W tym przykładzie użyjemy pobierania binarnego.
$ curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
$ sudo zainstaluj minikube-linux-amd64 /usr/local/bin/minikube
Minikube zostanie teraz zainstalowany i będzie gotowy do użycia.
Uruchamianie klastra Kubernetes
Uruchom klaster Minikube za pomocą minikube start
polecenia:
$ minikube start
minikube v1.25.2 na Ubuntu 20.04
Automatycznie wybrany sterownik dokera. Inne opcje: kvm2, ssh
Uruchamianie minikube węzła płaszczyzny sterowania w minikube klastra
ciągnięcie obrazu podstawowego. …
Downloading Kubernetes v1.23.3 preload. ..
Minikube automatycznie pobierze i uruchomi najnowszą wersję Kubernetes. Ten proces może potrwać kilka minut. Dane wyjściowe polecenia wskażą postęp i wyświetlą działania podejmowane przez Minikube. W powyższym przykładzie widać, że sterownik platformy Docker został wybrany do obsługi klastra. Zapoznaj się z dokumentacją sterownika Minikube, jeśli platforma kontenerowa lub stos wirtualizacji nie zostaną automatycznie wykryte.
Korzystanie z klastra z Kubectl
Minikube modyfikuje Twoje środowisko, dzięki czemu możesz łączyć się z klastrem przy użyciu istniejącej instalacji Kubectl. Doda minikube
kontekst do twojego pliku KUBECONFIG
, który jest skierowany do twojego klastra Minikube.
Minikube zawiera również dołączoną wersję Kubectl, do której można uzyskać dostęp za pomocą minikube kubectl
polecenia. Jest to przydatne, jeśli nie masz jeszcze zainstalowanego Kubectl lub jeśli istniejący plik binarny różni się od wersji klastra Minikube.
# Uses the Kubectl version that's bundled with Minikube
$ minikube kubectl get pods
W dalszej części tego samouczka pokażemy proste kubectl
polecenie i założymy, że jest ono skierowane do twojego klastra Minikube. Możesz skonfigurować alias powłoki, aby używać Kubectl powiązanego z Minikube bez prefiksu za minikube
każdym razem:
$ alias kubectl="minikube kubectl"
Teraz, gdy Minikube live i Kubectl są dostępne, możesz dodawać aplikacje do swojego klastra Kubernetes:
$ kubectl create deployment nginx --image=nginx:latest
Utworzono deployment.apps/nginx
$ kubectl expose deployment nginx --type=LoadBalancer --port=80
service/nginx exposed
Polecenie minikube service
udostępnia publiczny adres URL usługi:
$ minikube service nginx --url
http://192.168.49.2:31599
Wklej adres URL do przeglądarki internetowej (lub uruchom polecenie bez --url
flagi), aby wyświetlić swoją usługę.
Dostęp do panelu sterowania Kubernetes
Minikube udostępnia pulpit nawigacyjny Kubernetes jako opcjonalną wbudowaną funkcję. Uruchom minikube dashboard
polecenie, aby załadować komponenty pulpitu nawigacyjnego i uruchomić interfejs w nowej karcie przeglądarki.
Możesz użyć pulpitu nawigacyjnego, aby zarządzać swoimi zasobami i wizualizować ich aktywność. Trzymaj minikube dashboard
komendę w terminalu podczas interakcji z panelem sterowania. Kiedy skończysz, zakończ polecenie za pomocą Ctrl+C.
Włączanie rejestru obrazów
Minikube zawiera rejestr obrazów jako opcjonalny dodatek. Pozwala to na przechowywanie obrazów kontenerów w Minikube, udostępniając je do wdrożenia w klastrze.
Najpierw włącz dodatek rejestru:
$ minikube addons enable registry
Następnie oznacz obraz, aby wskazywał na rejestr Minikube. Rejestr nasłuchuje na porcie 5000 na adresie IP podanym minikube ip
przez polecenie.
$ docker tag my-image:latest $(minikube ip):5000/my-image:latest
Aby można było przesłać, Docker musi być skonfigurowany do akceptowania adresu URL jako niezabezpieczonego rejestru. Dodaj go do insecure-registries
pola wewnątrz /etc/docker/daemon.json
pliku, aby Docker zezwalał na dostęp HTTP.
Zastąp adres IP adresem określonym w minikube ip
poleceniu. Uruchom ponownie Docker za pomocą systemctl restart docker
polecenia.
Możesz teraz przesłać swój obraz do rejestru Minikube:
$ docker push $(minikube ip):5000/my-image:latest
Zanim moduły w klastrze będą mogły używać tego obrazu, należy wykonać ostatni krok. Środowisko uruchomieniowe kontenera Minikube musi być również skonfigurowane, aby umożliwić niezabezpieczony dostęp do rejestru. Możesz to włączyć, włączając --insecure-registry
flagę uruchamiania minikube start
. Adres IP powinien odnosić się do domyślnego adresu IP klastra instalacji Minikube. Możesz to uzyskać, uruchamiając kubectl get services
i patrząc na CLUSTER-IP
usługę kubernetes
. Następnie zatrzymaj Minikube i uruchom go ponownie z dodatkową flagą.
$ kubectl get service
NAZWA TYP KLASTRA-IP ZEWNĘTRZNY-IP PORT(Y) WIEK
kubernetes ClusterIP 10.96.0.1 <brak> 443/TCP 63m
$ minikube stop
$ minikube start --insecure-registry 10.96.0.1/24
Zmiana wersji Kubernetes
Minikube domyślnie używa najnowszej dostępnej wersji Kubernetes. Aby przełączyć się na określoną wersję, włącz --kubernetes-version
flagę podczas uruchamiania klastra:
$ minikube start --kubernetes-version=v1.23.0
Możesz uruchomić wiele klastrów jednocześnie, każdy z różnymi wersjami Kubernetes, tworząc wiele oddzielnych profili. Flaga --profile
wybiera profil docelowy dla konkretnego polecenia.
$ minikube start --profile v1.22 --kubernetes-version=v1.22.0
$ minikube start --profile v1.23 --kubernetes-version=v1.23.0
$ minikube --profile v1.22 kubectl get pods
Korzystanie z wielu węzłów
Minikube obsługuje wiele wirtualnych węzłów. Pozwala to przetestować skalowanie aplikacji w dostępnych węzłach bez wdrażania nowego sprzętu fizycznego.
Ten przykład tworzy klaster z trzema węzłami:
$ minikube start --nodes 3
Możesz sprawdzić, czy wiele węzłów jest dostępnych, wyświetlając je w Kubectl:
$ kubectl get nodes
NAZWA STATUS ROLE WIEK WERSJA
minikube Ready control-plane,master 71m v1.23.3
minikube-m02 Ready <none> 71m v1.23.3
minikube-m03 Ready <none> 71m v1.23.3
Włącz zdalny dostęp
Minikube domyślnie nie akceptuje ruchu przychodzącego. Jest przeznaczony do użytku lokalnego i nie jest przeznaczony do obsługi żądań zewnętrznych. Nadal możesz włączyć zdalny dostęp do obciążeń w klastrze, zmieniając adres nasłuchiwania płaszczyzny sterowania. Zrób to dopiero po pełnej ocenie ryzyka – Twoja sieć będzie otwarta na świat zewnętrzny.
$ minikube start --listen-address=0.0.0.0
Przekazywanie portów jest bezpieczniejszym rozwiązaniem, gdy trzeba otworzyć dostęp do określonej usługi. Użyj polecenia Kubectl port-forward
, aby utworzyć trasę z portu hosta do jednej z Twoich usług:
$ kubectl port-forward service/nginx 8080:80
Możesz teraz odwiedzić localhost:8080
, aby uzyskać dostęp do usługi NGINX utworzonej wcześniej w tym samouczku. Port 8080 na hoście jest mapowany na port 80 usługi.
Usuwanie minikostki
Jedną z zalet Minikube jest łatwość odinstalowania. Jeśli zdecydujesz, że Minikube nie jest dla Ciebie, uruchom delete
polecenie, aby usunąć wszystko, co dodało do systemu:
$ minikube delete
Mniej destrukcyjną opcją jest minikube stop
zatrzymanie klastra, ale pozostawienie wszystkich zasobów nietkniętych. Możesz ponownie uruchomić klaster za pomocą minikube start
polecenia.
Wniosek
Minikube to samodzielna dystrybucja Kubernetes, która używa kontenerów lub wirtualizacji do uruchamiania klastra na komputerze lokalnym. Jest utrzymywany przez nadrzędny projekt Kubernetes. Minikube to w pełni funkcjonalna implementacja Kubernetes, która obejmuje pulpit nawigacyjny Kubernetes, obsługę sieci, pamięć trwałą i wymienne środowiska wykonawcze kontenerów.
Możesz dowiedzieć się więcej o Minikube w oficjalnej dokumentacji . Możesz też zacząć używać znanych poleceń Kubectl, aby zarządzać klastrem i wdrażać nowe obciążenia. Masz teraz w pełni działające lokalne środowisko Kubernetes do tworzenia i testowania aplikacji.
Dodaj komentarz