use minikube kubectl helm - juancamilocc/virtual_resources GitHub Wiki
Use of Minikube with Kubectl and Helm
Esto se ejecutó sobre una maquina con las siguientes caracterisiticas.
Feature | Value |
---|---|
OS Used | Ubuntu 20.04 LTS |
vCPU | 4 |
RAM (GB) | 8 |
Disk (GB) | 60 |
Home user | ubuntu |
Prerequisitos
- Docker y Docker compose
- Minikube
- Kubectl
- Helm chart
Primero se ejecuta un sudo apt-get update
y upgrade
para actualizar la maquina.
Instalación de Docker y Docker Compose
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl gnupg lsb-release software-properties-common net-tools
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
Una vez instalado Docker, se ejecuta el siguiente comando para evitar el uso de sudo y hacer más sencillo su uso.
sudo groupadd docker
sudo usermod -aG docker $USER
exec "$SHELL"
Para verificar que quedo bien instalado.
docker ps -a
#CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Nota: En caso de aparecer error, reiniciar la sesion y volver a probar.
Instalación Minikube, con driver docker
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
minikube start --driver=docker
Para verificar funcionamiento.
minikube status
#minikube
#type: Control Plane
#host: Running
#kubelet: Running
#apiserver: Running
#kubeconfig: Configured
Instalación de Kubectl
sudo apt-get update
sudo apt-get install -y ca-certificates curl
sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg
echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
sudo apt-get install -y kubectl
Instalación de Helm
curl https://baltocdn.com/helm/signing.asc | gpg --dearmor | sudo tee /usr/share/keyrings/helm.gpg > /dev/null
sudo apt-get install apt-transport-https --yes
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/helm.gpg] https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list
sudo apt-get update
sudo apt-get install helm
Verificar instalacion.
helm version
#version.BuildInfo{Version:"v3.10.2", GitCommit:"50f003e5ee8704ec937a756c646870227d7c8b58", GitTreeState:"clean", GoVersion:"go1.18.8"}
Instalación de chart kube-prometheus-stack
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
helm install prometheus prometheus-community/kube-prometheus-stack --namespace prometheus --create-namespace --wait
Nota: El ultimo comando puede tardar algunos minutos.
Verificamos los pods.
kubectl get pods -n prometheus
#NAME READY STATUS RESTARTS AGE
#alertmanager-prometheus-kube-prometheus-alertmanager-0 2/2 Running 1 (49s ago) 65s
#prometheus-grafana-9b686f8d4-gb8t8 3/3 Running 0 76s
#prometheus-kube-prometheus-operator-67b9b6866c-bqxkv 1/1 Running 0 76s
#prometheus-kube-state-metrics-56b85865-wrnq7 1/1 Running 0 76s
#prometheus-prometheus-kube-prometheus-prometheus-0 2/2 Running 0 65s
#prometheus-prometheus-node-exporter-l2mpw 1/1 Running 0 76s
Instalación de chart de mongodB
helm repo add my-repo https://charts.bitnami.com/bitnami
helm install mongodb my-repo/mongodb --namespace mongodb --create-namespace --wait
Verificamos el pod.
kubectl get pods -n mongodb
#NAME READY STATUS RESTARTS AGE
#mongodb-68c5cf6564-gws79 1/1 Running 0 62s
Por último podemos entrar al dashboard de nuestro cluster de kubernetes y ver de forma mas didactica nuestros recursos.
Para ello ejecutamos.
minikube dashboard
Nota: Este proceso puede tardar algunos minutos cuando es ejecutado por primera vez.
Debe mostrar un mensaje como el siguiente.
🤔 Verifying dashboard health ...
🚀 Launching proxy ...
🤔 Verifying proxy health ...
🎉 Opening http://127.0.0.1:32809/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/ in your default browser...
👉 http://127.0.0.1:32809/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/
Allí nos indica la dirección sobre la que se esta corriendo el dashboard, ingresamos a nuestro navegador.
En caso de tener una maquina virtual sobre una nube como Azure o AWS, es necesario realizar un tunel ssh para traer dicho puerto y poder visualizar el dashobard.
ssh minikube@<ip_maquina_virtual> -L <port_dashboard>:localhost<port_dashboard>