Na początek kupuj absolutnie najtańsze narzędzia, jakie możesz znaleźć. Potem uaktualnij te, których często używasz. Jeśli finalnie któregoś z nich używasz do pracy, kup najlepsze, na jakie Cię stać.

Kevin Kelly

W tym poradniku skupię się na instalacji i pierwszym uruchomieniu minikube na systemie Linux, Debian 12.

minikube to narzędzie umożliwiające uruchomienie na lokalnej maszynie pojedynczego klastra K8s. Bez konieczności posiadania klastra będziemy mieli możliwość eksperymentowania, rozwijania i testowania aplikacji w lokalnym środowisku K8s. Musimy się liczyć, że skala naszego projektu będzie silnie zależeć od możliwości naszej lokalnej maszyny i prawdopodobnie będzie dużo mniejsza od możliwości środowiska produkcyjnego. Tym nie mniej lokalne uruchamianie i zarządzanie lokalnym środowiskiem K8s będzie przydatne do nauki, testowania i debugowania aplikacji przed ich wdrożeniem na większych klastrach produkcyjnych.

Minikube/Documentation/Get Started!. Na stronie opisane są minimalne wymagania jakie musi spełniać system by zainstalować minikube.

Krok 1, instalacja Dockera i narzędzi z nim związanych:

Moim ulubionym menadżerem kontenerów jest Docker. Instalujemy go poleceniem:

sudo apt install docker
sudo apt install docker-compose

Krok 2, instalacja minikube z wykorzystaniem gotowej binarki:

minikube może zostać zainstalowany na systemie Linux jako plik binarny, lub jako archiwum z pakietem. W moim wypadku wybór padł na plik binarny, bo czemu nie:

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube

Krok 3, Uruchomienie minikube

Działanie minikube możesz sprawdzić poleceniem minikube start, oraz minikube status

sebastian@beta ~ $minikube start
minikube v1.32.0 na Debian 12.2
Automatycznie wybrano sterownik docker
Using Docker driver with root privileges
Starting control plane node minikube in cluster minikube
Pulling base image ...
Downloading Kubernetes v1.28.3 preload ...
> preloaded-images-k8s-v18-v1...:  403.35 MiB / 403.35 MiB  100.00% 5.25 Mi
> gcr.io/k8s-minikube/kicbase...:  453.90 MiB / 453.90 MiB  100.00% 5.61 Mi
Creating docker container (CPUs=2, Memory=3900MB) ...
Przygotowywanie Kubernetesa v1.28.3 na Docker 24.0.7...
 ▪ Generating certificates and keys ...
 ▪ Uruchamianie płaszczyzny kontrolnej ...
 ▪ Konfigurowanie zasad RBAC ...
Configuring bridge CNI (Container Networking Interface) ...
 ▪ Using image gcr.io/k8s-minikube/storage-provisioner:v5
Verifying Kubernetes components...
Enabled addons: storage-provisioner, default-storageclass
kubectl not found. If you need it, try: 'minikube kubectl -- get pods -A'
Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default

sebastian@beta ~ $minikube status
minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured

sebastian@beta ~ $minikube stop

Krok 4, instalacja kubectl

Jednym z problemów naszej instalacji jest brak narzędzia kubectl służącego do interakcji z klastrem. Możemy je zainstalować w systemie za pomocą poleceń

sebastian@beta ~ $ curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sebastian@beta ~ $sudo install kubectl /usr/local/bin/kubectl

lub też skorzystać z podpowiedzi i powierzyć to zadanie minikube

minikube kubectl -- get pods -A

Krok 5, ponowne uruchomienie kubectl

Obie wersje sprawdzą się równie dobrze. Ponowne uruchomienie minikube będzie tym razem wyglądało inaczej:

sebastian@beta $minikube start 
minikube v1.32.0 na Debian 12.2 
Using the docker driver based on existing profile 
Starting control plane node minikube in cluster minikube 
Pulling base image ... 
Updating the running docker "minikube" container ... 
Przygotowywanie Kubernetesa v1.28.3 na Docker 24.0.7... 
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

Od tej chwili możemy się cieszyć w pełni działającym minikube. Wykorzystamy to narzędzie w innych poradnikach.

Artykuł dodano 2023-12-03