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.

Índice de contenidos
  1. Instalación de Minikube
  2. Inicio de su clúster de Kubernetes
  3. Uso de su clúster con Kubectl
  4. Acceso al panel de Kubernetes
  5. Habilitación del registro de imágenes
  6. Cambiar la versión de Kubernetes
  7. Uso de múltiples nodos
  8. Habilitación del acceso remoto
  9. Eliminación de Minikube
  10. Conclusión

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.

imagen de ejecutar un contenedor NGINX en Minikube

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.

imagen de la ejecución del panel de control de Kubernetes en Minikube

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

Subir Change privacy settings