Minikube è uno strumento open source che consente di eseguire localmente un cluster Kubernetes a nodo singolo su un server.
Minikube è progettato per facilitare agli sviluppatori la configurazione di un ambiente Kubernetes per scopi di sviluppo e test locali.
PREREQUISITI
Ubuntu 22.04 LTS Server
Minimo 2GB di Ram
Minimo 2 vCPU
20GB di Spazio disco minimo
Docker / Virtual Machine Manager
Account di root o user con diritti di sudo
Per installare Docker su Ubuntu 22.04 seguire il tutorial seguente:
Installazione di Docker e Docker Compose su Ubuntu Server 22.04
INSTALLAZIONE DI MINIKUBE
Applicare tutti gli aggiornamenti con i seguenti comandi:
0 1 |
sudo apt update -y sudo apt upgrade -y |
Dopo il termine degli aggiornamenti riavviare il server con il comando:
0 |
sudo reboot |
Installare le dipendenze Minikube con il comando:
0 |
sudo apt install -y curl wget apt-transport-https |
Scaricare l’ultima versione di Minikube con il comando:
0 |
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 |
Una volta scaricato il binario copiarlo nel percorso /usr/local/bin e impostare su di esso i permessi eseguibili con il comando:
0 |
sudo install minikube-linux-amd64 /usr/local/bin/minikube |
Verificare la versione di Minikube installata con il comando:
0 |
minikube version |
Se è tutto OK dovremmo vedere questo output:
0 1 |
minikube version: v1.31.2 commit: fd7ecd9c4599bef9f04c0986c4a0187f98a4396e |
NOTA BENE: durante la stesura di questo tutorial la versione installata è la 1.31.2
Kubectl è un’utilità della riga di comando utilizzata per interagire con il cluster Kubernetes.
Viene utilizzato per gestire distribuzioni, servizi, pod ecc.
Utilizzare il comando curl di seguito per scaricare la versione più recente di kubectl
0 |
curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl |
Una volta scaricato kubectl, impostare le autorizzazioni eseguibili sul binario kubectl e spostarlo nel percorso /usr/local/bin con i seguenti comandi:
0 1 |
chmod +x kubectl sudo mv kubectl /usr/local/bin/ |
Verificare la versione di Kubectl con il comando:
0 |
kubectl version -o yaml |
Se è tutto Ok dovremmo vedere il seguente output
0 1 2 3 4 5 6 7 8 9 10 11 12 |
clientVersion: buildDate: "2023-09-13T09:35:49Z" compiler: gc gitCommit: 89a4ea3e1e4ddd7f7572286090359983e0387b2f gitTreeState: clean gitVersion: v1.28.2 goVersion: go1.20.8 major: "1" minor: "28" platform: linux/amd64 kustomizeVersion: v5.0.4-0.20230601165947-6ce0bf390ce3 The connection to the server localhost:8080 was refused - did you specify the right host or port? |
Avviare Minikube con il driver docker con il comando:
0 |
minikube start --driver=docker |
Se Minikube è partito correttamante dovremmo vedere un output come di seguito:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
* minikube v1.31.2 on Ubuntu 22.04 * Using the docker driver based on user configuration * Using Docker driver with root privileges * Starting control plane node minikube in cluster minikube * Pulling base image ... * Downloading Kubernetes v1.27.4 preload ... > preloaded-images-k8s-v18-v1...: 393.21 MiB / 393.21 MiB 100.00% 32.00 M > gcr.io/k8s-minikube/kicbase...: 447.62 MiB / 447.62 MiB 100.00% 33.80 M * Creating docker container (CPUs=2, Memory=2200MB) ... * Preparing Kubernetes v1.27.4 on Docker 24.0.4 ... - Generating certificates and keys ... - Booting up control plane ... - Configuring RBAC rules ... * Configuring bridge CNI (Container Networking Interface) ... - Using image gcr.io/k8s-minikube/storage-provisioner:v5 * Verifying Kubernetes components... * Enabled addons: storage-provisioner, default-storageclass * Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default |
Quindi verificare lo stato di Minikube con il comando:
0 |
minikube status |
Dovremmo quindi vedere il seguente output:
0 1 2 3 4 5 |
minikube type: Control Plane host: Running kubelet: Running apiserver: Running kubeconfig: Configured |
Verificare le info relative al cluster con il comando:
0 |
kubectl cluster-info |
Dovremmo vedere il seguente output:
0 1 2 |
Kubernetes control plane is running at https://192.168.49.2:8443 CoreDNS is running at https://192.168.49.2:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'. |
Quindi verificare la versione di Kubernetes con il comando:
0 |
kubectl get nodes |
Dovremmo vedere il seguente output
0 1 |
NAME STATUS ROLES AGE VERSION minikube Ready control-plane 3m51s v1.27.4 |
Per impostazione predefinita solo un paio di componenti aggiuntivi sono abilitati durante l’installazione di minikube.
Per vedere i componenti aggiuntivi di minikube, eseguire il comando:
0 |
minikube addons list |
Nella schermata sovrastante sono presenti tutti i componenti aggiuntivi installabili.
Per abilitare un componente aggiuntivo eseguire il comando:
0 |
minikube addons enable <addon-name> |
Provvedere quindi all’abilitazione della Dashboard di Kubernetes con il comando:
0 |
minikube dashboard |
Dovremmo vedere il seguente output:
0 1 2 3 4 5 6 7 8 9 10 11 |
* Enabling dashboard ... - Using image docker.io/kubernetesui/dashboard:v2.7.0 - Using image docker.io/kubernetesui/metrics-scraper:v1.0.8 * Some dashboard features require the metrics-server addon. To enable all features please run: minikube addons enable metrics-server * Verifying dashboard health ... * Launching proxy ... * Verifying proxy health ... * Opening http://127.0.0.1:44177/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/ in your default browser... http://127.0.0.1:44177/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/ |
Quindi installare il componente ingress con il comando:
0 |
minikube addons enable ingress |
Se è tutto OK dovremmo vedere un output come il seguente:
0 1 2 3 4 5 6 7 |
* ingress is an addon maintained by Kubernetes. For any concerns contact minikube on GitHub. You can view the list of minikube maintainers at: https://github.com/kubernetes/minikube/blob/master/OWNERS - Using image registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20230407 - Using image registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20230407 - Using image registry.k8s.io/ingress-nginx/controller:v1.8.1 * Verifying ingress addon... * The 'ingress' addon is enabled |
GESTIONE DI MINIKUBE
Di seguito i comandi principali per la gestione di Minikube:
Per fermare Minikube eseguire il comando:
0 |
minikube stop |
Per cancellare Minikube eseguire il comando:
0 |
minikube delete |
Per avviare Minikube eseguire il comando:
0 |
minikube start |
Nel caso in cui si desidera avviare il minikube con risorse più elevate come 4 GB RM e 8 CPU, eseguire i seguenti comandi nell’ordine:
0 1 2 3 |
minikube config set cpus 8 minikube config set memory 40196 minikube delete minikube start |
0 commenti