¿Cómo ejecutar un clúster local de Kubernetes con Minikube?
Minikube es una distribución mínima de Kubernetes diseñada para su uso en el desarrollo local. Fue desarrollado como parte del proyecto Kubernetes e incluye implementaciones de todas las funciones principales del clúster.
Minikube se ejecuta 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. Aquí están todos los tiempos de ejecución compatibles:
- Estibador
- Podman
- KVM
- Hiper-V
- Hiperkit
- paralelas
- caja virtual
- vmware
Antes de continuar con esta guía, asegúrese de tener instalada una de estas tecnologías. El proceso de instalación de Minikube detectará automáticamente los tiempos de ejecución disponibles y aplicará la configuración adecuada. Le mostraremos cómo completar la implementación y comenzar a usar Minikube.
Instalación del minicubo
En esta guía, nos centraremos en los sistemas Linux x86. Si está utilizando Windows, Mac u otra plataforma de CPU, 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 directa del binario o un paquete Debian/RPM. En este ejemplo, utilizaremos una descarga binaria.
$ 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 un clúster de Kubernetes
Inicie su clúster de Minikube con el minikube start
comando:
$ minikube start
minikube v1.25.2 en Ubuntu 20.04
Seleccionó automáticamente el controlador de la ventana acoplable. Otras opciones: kvm2, ssh
Inicio del nodo del plano de control minikube en el clúster minikube
tirando de la imagen base. ..
Downloading Kubernetes v1.23.3 preload. ..
Minikube descargará y ejecutará automáticamente la última versión de Kubernetes. Este proceso puede tardar varios minutos. La salida del comando indicará el progreso y mostrará las acciones que Minikube está tomando. En el ejemplo anterior, puede ver que se eligió el controlador Docker para alojar su clúster. Consulte la documentación del controlador Minikube si su plataforma de contenedor 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 utilizando su instalación de Kubectl existente. Agregará minikube
un contexto a su archivo KUBECONFIG
que apunta a su clúster de Minikube.
Minikube también incluye una versión integrada de Kubectl a la que puede acceder con un minikube kubectl
comando. Esto es útil si aún no tiene Kubectl instalado, o si su binario existente difiere de su versión de clúster de Minikube.
# Uses the Kubectl version that's bundled with Minikube
$ minikube kubectl get pods
En el resto de este tutorial, mostraremos un kubectl
comando simple y supondremos que apunta a su clúster de Minikube. Puede configurar un alias de shell para usar el Kubectl relacionado con Minikube sin un prefijo minikube
cada vez:
$ alias kubectl="minikube kubectl"
Ahora que Minikube live y Kubectl están disponibles, puede agregar aplicaciones a su clúster de Kubernetes:
$ kubectl create deployment nginx --image=nginx:latest
deployment.apps/nginx creado
$ kubectl expose deployment nginx --type=LoadBalancer --port=80
service/nginx exposed
El comando minikube service
proporciona la URL pública del servicio:
$ minikube service nginx --url
http://192.168.49.2:31599
Pegue la URL en su navegador web (o ejecute el comando sin --url
bandera) para ver su servicio.
Acceso al panel de control de Kubernetes
Minikube proporciona el Panel de control de Kubernetes como una función integrada opcional. Ejecute minikube dashboard
el comando para cargar los componentes del tablero e inicie la interfaz en una nueva pestaña del navegador.
Puede usar el tablero para administrar sus recursos y visualizar su actividad. Mantenga minikube dashboard
el comando en la terminal mientras interactúa con el panel de control. Cuando haya terminado, finalice el comando con Ctrl+C.
Habilitación del registro de imágenes
Minikube incluye un registro de imágenes como extra opcional. Esto le permite almacenar imágenes de contenedores 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
Luego etiquete su imagen para que apunte al registro de Minikube. El registro está escuchando en el puerto 5000 en la dirección IP proporcionada minikube ip
por el comando.
$ docker tag my-image:latest $(minikube ip):5000/my-image:latest
Antes de que pueda enviar, Docker debe estar configurado para aceptar la URL como un registro no seguro. Agréguelo a un insecure-registries
cuadro dentro de su /etc/docker/daemon.json
archivo para que Docker permita el acceso HTTP.
Reemplace la dirección IP con la especificada en su minikube ip
comando. Reinicie Docker con el systemctl restart docker
comando.
Ahora puede enviar su imagen al registro de Minikube:
$ docker push $(minikube ip):5000/my-image:latest
Antes de que los módulos en su clúster puedan usar esta imagen, se debe completar un paso final. El tiempo de ejecución del contenedor de Minikube también debe configurarse para permitir el acceso al registro no seguro. Puede habilitar esto habilitando --insecure-registry
el indicador de inicio minikube start
. La dirección IP debe ser relativa a la dirección IP del clúster predeterminado de su instalación de Minikube. Puede obtener esto ejecutando kubectl get services
y mirando el CLUSTER-IP
servicio kubernetes
. Luego detenga Minikube y reinícielo con una bandera adicional.
$ kubectl get service
NOMBRE TIPO CLÚSTER-IP IP EXTERNA PUERTO(S) EDAD
kubernetes ClusterIP 10.96.0.1 <ninguno> 443/TCP 63m
$ minikube stop
$ minikube start --insecure-registry 10.96.0.1/24
Cambiar la versión de Kubernetes
Minikube utiliza la última versión de Kubernetes disponible de forma predeterminada. Para cambiar a una versión específica, habilite --kubernetes-version
la bandera al iniciar el 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 separados. La bandera --profile
selecciona el perfil de destino 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 varios 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
NOMBRE ESTADO FUNCIONES EDAD VERSIÓN
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
Habilitar el acceso remoto
Minikube no acepta tráfico entrante de forma predeterminada. Está diseñado para uso local y no está diseñado 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. Haga esto solo después de una evaluación de riesgos completa: su red estará abierta 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. Use el comando Kubectl port-forward
para crear una ruta desde un puerto de host a uno de sus servicios:
$ kubectl port-forward service/nginx 8080:80
Ahora puede visitar localhost:8080
para acceder al servicio NGINX creado anteriormente en este tutorial. El puerto 8080 de su host está asignado al puerto 80 del servicio.
Eliminar un minicubo
Una de las ventajas de Minikube es que es fácil de desinstalar. Si decide que Minikube no es para usted, ejecute delete
el comando para eliminar todo lo que ha agregado a su sistema:
$ minikube delete
Una opción menos destructiva es minikube stop
detener su clúster, pero dejar intactos todos los recursos. Puede reiniciar su clúster con el minikube start
comando.
Conclusión
Minikube es una distribución independiente de Kubernetes que utiliza contenedores o virtualización para ejecutar un clúster en su máquina local. Lo mantiene el proyecto upstream Kubernetes. Minikube es una implementación completa de Kubernetes que incluye el panel de control de Kubernetes, soporte de red, almacenamiento persistente y 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 de Kubernetes local totalmente funcional para crear y probar sus aplicaciones.
Deja una respuesta