Cómo iniciar un clúster local de Kubernetes con Minikube
Minikube es una distribución mínima de Kubernetes diseñada para uso de desarrollo local. Se desarrolló como parte del proyecto Kubernetes e incluye implementaciones de todas las características principales del clúster.
Minikube funciona en hosts Linux, Mac y Windows. Puede usar contenedores o un entorno de máquina virtual para ejecutar su clúster y sus cargas de trabajo. Estos son todos los tiempos de ejecución admitidos:
- Estibador
- Podman
- KVM
- Hiper-V
- Hiperkit
- Paralelas
- caja virtual
- vmware
Asegúrese de tener instalada una de estas tecnologías antes de continuar con esta guía. El proceso de configuración de Minikube detectará automáticamente los tiempos de ejecución disponibles y aplicará una configuración adecuada. Le mostraremos cómo completar su implementación y comenzar a usar Minikube.
Instalación de Minikube
En esta guía, nos estamos enfocando en los sistemas Linux x86. Si está utilizando Windows, Mac o una plataforma de CPU diferente, consulte la documentación de Minikube para obtener la información de configuración más detallada. Después del procedimiento de instalación inicial, el uso básico de Minikube es idéntico en todos los sistemas compatibles.
Los usuarios de Linux pueden elegir entre una descarga binaria directa o un paquete Debian/RPM. Usaremos la descarga binaria en este ejemplo.
$ curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 $ sudo install minikube-linux-amd64 /usr/local/bin/minikube
Minikube ahora estará instalado y listo para usar.
Inicio de su clúster de Kubernetes
Inicie su clúster de Minikube con el minikube start
dominio:
$ minikube start minikube v1.25.2 on Ubuntu 20.04 Automatically selected the docker driver. Other choices: kvm2, ssh Starting control plane node minikube in cluster minikube Pulling base image ... Downloading Kubernetes v1.23.3 preload ...
Minikube descargará e iniciará automáticamente la última versión de Kubernetes. Este proceso puede tardar varios minutos en completarse. La salida del comando indicará el progreso y mostrará las acciones que realiza Minikube. En el ejemplo anterior, puede ver que se seleccionó el controlador Docker para alojar su clúster. Consulte la documentación del controlador de Minikube si su plataforma de contenedores o pila de virtualización no se detecta automáticamente.
Uso de su clúster con Kubectl
Minikube modifica su entorno para que pueda conectarse a su clúster mediante una instalación de Kubectl existente. Agregará un minikube
contexto a su KUBECONFIG
archivo que apunta a su clúster de Minikube.
Minikube también incluye una versión integrada de Kubectl a la que puede acceder con el minikube kubectl
dominio. Esto es útil si aún no tiene Kubectl instalado o su binario existente es una versión diferente a su clúster de Minikube.
# Uses the Kubectl version that's bundled with Minikube $ minikube kubectl get pods
En el resto de esta guía, le mostraremos el plano kubectl
comando y suponga que está apuntando a su clúster de Minikube. Puede configurar un alias de shell para usar el paquete Kubectl de Minikube sin prefijarlo con minikube
cada vez:
$ alias kubectl="minikube kubectl"
Con Minikube live y Kubectl disponibles, ahora puede agregar aplicaciones a su clúster de Kubernetes:
$ kubectl create deployment nginx --image=nginx:latest deployment.apps/nginx created $ kubectl expose deployment nginx --type=LoadBalancer --port=80 service/nginx exposed
los minikube service
El comando proporciona la URL expuesta de un servicio:
$ minikube service nginx --url http://192.168.49.2:31599
Pegue la URL en su navegador web (o ejecute el comando sin el --url
bandera) para ver su servicio.
Acceso al panel de Kubernetes
Minikube proporciona el panel de control de Kubernetes como una función integrada opcional. ejecutar el minikube dashboard
Comando para descargar los componentes del tablero e iniciar la interfaz en una nueva pestaña del navegador.
Puede usar el tablero para administrar sus recursos y visualizar su actividad. Mantener el minikube dashboard
comando que se ejecuta en su terminal mientras interactúa con el tablero. Termine el comando con la secuencia de teclas Ctrl + C cuando haya terminado.
Habilitación del registro de imágenes
Minikube incluye un registro de imágenes como complemento opcional. Esto le permite almacenar las imágenes de su contenedor dentro de Minikube, haciéndolas disponibles para su implementación dentro de su clúster.
Primero habilite el complemento de registro:
$ minikube addons enable registry
A continuación, etiquete su imagen para que haga referencia al registro de Minikube. El registro escucha en el puerto 5000 en la dirección IP proporcionada por el minikube ip
dominio.
$ docker tag my-image:latest $(minikube ip):5000/my-image:latest
Antes de que pueda enviar, Docker debe configurarse para aceptar la URL como un registro inseguro. Agrégalo a la insecure-registries
campo dentro de su /etc/docker/daemon.json
archivo para que Docker permita el acceso HTTP.
{ "insecure-registries": ["192.168.49.2:5000"] }
Reemplace la dirección IP con la que muestra su minikube ip
dominio. Reinicie Docker con el systemctl restart docker
dominio.
Ahora puede insertar su imagen en su registro de Minikube:
$ docker push $(minikube ip):5000/my-image:latest
Se requiere un paso final antes de que los pods en su clúster puedan consumir esta imagen. El tiempo de ejecución del contenedor de Minikube también debe configurarse para permitir el acceso no seguro al registro. Puede habilitar esto incluyendo el --insecure-registry
marca cuando corres minikube start
. La dirección IP debe hacer referencia a la IP de clúster predeterminada de su instalación de Minikube. Puedes obtener esto ejecutando kubectl get services
y mirando el CLUSTER-IP
Para el kubernetes
Servicio. Luego detenga Minikube y reinícielo con la bandera extra.
$ kubectl get service NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 63m $ minikube stop $ minikube start --insecure-registry 10.96.0.1/24
Cambiar la versión de Kubernetes
Minikube usa de manera predeterminada la última versión disponible de Kubernetes. Para cambiar a una versión específica, incluya el --kubernetes-version
marca cuando inicias tu clúster:
$ minikube start --kubernetes-version=v1.23.0
Puede ejecutar varios clústeres al mismo tiempo, cada uno con diferentes versiones de Kubernetes, creando varios perfiles distintos. los --profile
flag selecciona el perfil al que apuntar para un comando en particular.
$ 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
Uso de múltiples nodos
Minikube admite múltiples nodos virtuales. Esto le permite probar cómo se escala su aplicación en los nodos disponibles sin implementar nuevo hardware físico.
Este ejemplo crea un clúster con tres nodos:
$ minikube start --nodes 3
Puede verificar que hay varios nodos disponibles enumerándolos con Kubectl:
$ kubectl get nodes NAME STATUS ROLES AGE VERSION 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
Habilitación del acceso remoto
Minikube no acepta tráfico entrante de forma predeterminada. Está diseñado para uso local y no está reforzado para atender solicitudes externas. Todavía puede habilitar el acceso remoto a las cargas de trabajo en su clúster cambiando la dirección de escucha del plano de control. Solo haga esto después de evaluar completamente los riesgos: su red estará expuesta al mundo exterior.
$ minikube start --listen-address=0.0.0.0
El reenvío de puertos es una solución más segura cuando necesita abrir el acceso a un servicio específico. Usa el de Kubectl port-forward
comando para crear una ruta desde un puerto de host a uno de sus servicios:
$ kubectl port-forward service/nginx 8080:80
Ya puedes visitar localhost:8080
para acceder al servicio NGINX creado anteriormente en esta guía. El puerto 8080 en su host está vinculado al puerto 80 del servicio.
Eliminación de Minikube
Una de las ventajas de Minikube es su facilidad de extracción. Si decide que Minikube no es para usted, ejecute el delete
comando para eliminar todo lo que agregó a su sistema:
$ minikube delete
Una opción menos destructiva es minikube stop
lo que detendrá su clúster pero dejará todos los recursos intactos. Puede reiniciar su clúster usando el minikube start
dominio.
Conclusión
Minikube es una distribución de Kubernetes autónoma que utiliza contenedores o virtualización para ejecutar un clúster en su máquina local. Es compatible con el proyecto upstream Kubernetes. Minikube es una implementación de Kubernetes con funciones completas que agrupa el panel de control de Kubernetes, el soporte de red, el almacenamiento persistente y los tiempos de ejecución de contenedores intercambiables.
Puede obtener más información sobre Minikube en la documentación oficial. Como alternativa, comience a usar los comandos familiares de Kubectl para administrar su clúster e implementar nuevas cargas de trabajo. Ahora tiene un entorno local de Kubernetes en pleno funcionamiento para crear y probar sus aplicaciones.
Descubre más contenido