Cómo instalar Kubernetes con Minikube en Ubuntu 20.04
Minikube es una herramienta de código abierto que te ayuda a configurar un clúster Kubernetes de un solo nodo en tu máquina local. Facilita la ejecución de un clúster Kubernetes de un solo nodo en tu ordenador personal para el trabajo diario de desarrollo. Es multiplataforma y puede instalarse en macOS, Linux y Windows.
En este tutorial, te mostraremos cómo instalar Minikube en un servidor Ubuntu 20.04.
Requisitos previos
- Escritorio Ubuntu 20.04 instalado en tu sistema.
- Mínimo 4 GB de RAM y 2 o más núcleos de CPU.
- La virtualización de hardware debe estar activada en tu sistema local.
- El servidor debe tener configurada una contraseña de root.
Cómo empezar
Antes de empezar, se recomienda actualizar los paquetes de tu sistema a la última versión. Puedes actualizarlos ejecutando el siguiente comando:
apt-get update -y
Una vez actualizados todos los paquetes, instala otras dependencias ejecutando el siguiente comando:
apt-get install curl wget apt-transport-https virtualbox virtualbox-ext-pack -y
Cuando hayas terminado, puedes pasar al siguiente paso.
Instalar Docker
A continuación, tendrás que instalar Docker en tu sistema. Puedes instalarlo ejecutando el siguiente comando:
apt-get install docker.io -y
Una vez instalado Docker, inicia el servicio Docker y habilítalo para que se inicie al reiniciar el sistema:
systemctl start docker systemctl enable docker
Ahora puedes verificar la versión de Docker mediante el siguiente comando:
docker --version
Deberías ver la versión de Docker en la siguiente salida:
Docker version 19.03.8, build afacb8b7f0
Una vez que hayas terminado, puedes pasar al siguiente paso.
Instalar Minikube
Por defecto, Minikube no está disponible en el repositorio por defecto de Ubuntu. Así que tendrás que descargar el paquete binario de Minikube desde su sitio web oficial. Puedes descargarlo con el siguiente comando:
wget https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
Una vez finalizada la descarga, copia el binario descargado a la ruta del sistema con el siguiente comando:
cp minikube-linux-amd64 /usr/local/bin/minikube
A continuación, proporciona permiso de ejecución con el siguiente comando:
chmod 755 /usr/local/bin/minikube
Ahora puedes verificar la versión de Minikube con el siguiente comando:
minikube version
Deberías obtener la siguiente salida:
minikube version: v1.16.0 commit: 9f1e482427589ff8451c4723b6ba53bb9742fbb1
Una vez que hayas terminado, puedes pasar al siguiente paso.
Instalar Kubectl
A continuación, tendrás que instalar Kubectl y otras herramientas para gestionar aplicaciones en Kubernetes. En primer lugar, añade la clave GPG con el siguiente comando:
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
A continuación, añade el repositorio kubectl con el siguiente comando:
echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" | tee /etc/apt/sources.list.d/kubernetes.list
Una vez añadido el repositorio, actualiza la caché del repositorio e instala el Kubectl ejecutando el siguiente comando:
apt-get update -y apt-get install kubectl kubeadm kubectl -y
Una vez instalados todos los paquetes, puedes pasar al siguiente paso.
Iniciar Minikube
Llegados a este punto, todos los paquetes necesarios están instalados. Ahora puedes iniciar Minikube con el siguiente comando:
minikube start
Deberías obtener la siguiente salida:
* minikube v1.16.0 on Ubuntu 20.04 (kvm/amd64) * Using the none driver based on user configuration * Starting control plane node minikube in cluster minikube * Running on localhost (CPUs=2, Memory=3936MB, Disk=100726MB) ... * OS release is Ubuntu 20.04 LTS * Preparing Kubernetes v1.20.0 on Docker 19.03.8 ... - kubelet.resolv-conf=/run/systemd/resolve/resolv.conf > kubectl.sha256: 64 B / 64 B [--------------------------] 100.00% ? p/s 0s > kubeadm.sha256: 64 B / 64 B [--------------------------] 100.00% ? p/s 0s > kubelet.sha256: 64 B / 64 B [--------------------------] 100.00% ? p/s 0s > kubeadm: 37.40 MiB / 37.40 MiB [---------------] 100.00% 27.29 MiB p/s 1s > kubectl: 38.37 MiB / 38.37 MiB [---------------] 100.00% 27.60 MiB p/s 1s > kubelet: 108.69 MiB / 108.69 MiB [-------------] 100.00% 42.08 MiB p/s 3s - Generating certificates and keys ... - Booting up control plane ... - Configuring RBAC rules ... * Configuring local host environment ... * ! The 'none' driver is designed for experts who need to integrate with an existing VM * Most users should use the newer 'docker' driver instead, which does not require root! * For more information, see: https://minikube.sigs.k8s.io/docs/reference/drivers/none/ * ! kubectl and minikube configuration will be stored in /root ! To use kubectl or minikube commands as your own user, you may need to relocate them. For example, to overwrite your own settings, run: * - sudo mv /root/.kube /root/.minikube $HOME - sudo chown -R $USER $HOME/.kube $HOME/.minikube * * This can also be done automatically by setting the env var CHANGE_MINIKUBE_NONE_USER=true * Verifying Kubernetes components... * Enabled addons: storage-provisioner, default-storageclass * Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default
Puedes comprobar la información del cluster con el siguiente comando:
kubectl cluster-info
Deberías obtener la siguiente salida:
Kubernetes control plane is running at https://45.58.38.77:8443 KubeDNS is running at https://45.58.38.77:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
Puedes comprobar la configuración por defecto de Kubectl con el siguiente comando:
kubectl config view
Deberías obtener la salida siguiente:
apiVersion: v1 clusters: - cluster: certificate-authority: /root/.minikube/ca.crt server: https://45.58.38.77:8443 name: minikube contexts: - context: cluster: minikube namespace: default user: minikube name: minikube current-context: minikube kind: Config preferences: {} users: - name: minikube user: client-certificate: /root/.minikube/profiles/minikube/client.crt client-key: /root/.minikube/profiles/minikube/client.key
Puedes comprobar todos los nodos en ejecución con el comando siguiente:
kubectl get nodes
Deberías obtener la siguiente salida:
NAME STATUS ROLES AGE VERSION ubuntu2004 Ready control-plane,master 2m24s v1.20.0
Para comprobar el estado de Minikube, ejecuta el siguiente comando:
minikube status
Deberías obtener la siguiente salida:
minikube type: Control Plane host: Running kubelet: Running apiserver: Running kubeconfig: Configured timeToStop: Nonexistent
Una vez que hayas terminado, puedes pasar al siguiente paso.
Acceder al panel de control de Kubernetes
Minikube viene con un montón de complementos que puedes activar o desactivar según tus necesidades. Puedes listar todos los complementos con el siguiente comando:
minikube addons list
Deberías obtener la siguiente salida:
|-----------------------------|----------|--------------| | ADDON NAME | PROFILE | STATUS | |-----------------------------|----------|--------------| | ambassador | minikube | disabled | | csi-hostpath-driver | minikube | disabled | | dashboard | minikube | disabled | | default-storageclass | minikube | enabled ? | | efk | minikube | disabled | | freshpod | minikube | disabled | | gcp-auth | minikube | disabled | | gvisor | minikube | disabled | | helm-tiller | minikube | disabled | | ingress | minikube | disabled | | ingress-dns | minikube | disabled | | istio | minikube | disabled | | istio-provisioner | minikube | disabled | | kubevirt | minikube | disabled | | logviewer | minikube | disabled | | metallb | minikube | disabled | | metrics-server | minikube | disabled | | nvidia-driver-installer | minikube | disabled | | nvidia-gpu-device-plugin | minikube | disabled | | olm | minikube | disabled | | pod-security-policy | minikube | disabled | | registry | minikube | disabled | | registry-aliases | minikube | disabled | | registry-creds | minikube | disabled | | storage-provisioner | minikube | enabled ? | | storage-provisioner-gluster | minikube | disabled | | volumesnapshots | minikube | disabled | |-----------------------------|----------|--------------|
A continuación, lista todas las imágenes contenedoras que se ejecutan en el clúster con el siguiente comando:
kubectl get pods --all-namespaces
Deberías obtener el siguiente resultado:
NAMESPACE NAME READY STATUS RESTARTS AGE kube-system coredns-74ff55c5b-skf9d 1/1 Running 0 3m45s kube-system etcd-ubuntu2004 1/1 Running 0 3m54s kube-system kube-apiserver-ubuntu2004 1/1 Running 0 3m54s kube-system kube-controller-manager-ubuntu2004 1/1 Running 0 3m54s kube-system kube-proxy-w8q6d 1/1 Running 0 3m45s kube-system kube-scheduler-ubuntu2004 1/1 Running 0 3m54s kube-system storage-provisioner 1/1 Running 0 3m59s
A continuación, activa el panel de control de Kubernetes y obtén la URL del panel de control con el siguiente comando:
minikube dashboard --url
Deberías obtener el siguiente resultado:
* Enabling dashboard ... * Verifying dashboard health ... * Launching proxy ... * Verifying proxy health ... http://127.0.0.1:36499/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/ You can now access and manage the Kubernetes cluster using the URL http://127.0.0.1:36499/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/
Conclusión
En la guía anterior, has aprendido a instalar Minikube y a utilizarlo para configurar un clúster Kubernetes en Ubuntu 20.04. Ahora puedes utilizar Minikube para configurar un clúster Kubernetes localmente y gestionarlo desde el navegador web. No dudes en preguntarme si tienes alguna duda.