Explora la vista de Kubernetes
Docker Desktop incluye un servidor y un cliente de Kubernetes independientes, así como integración con la CLI de Docker, lo que te permite el desarrollo y pruebas locales de Kubernetes directamente en tu máquina.
El servidor de Kubernetes se ejecuta como un clúster de uno o varios nodos dentro de contenedores de Docker. Esta configuración ligera te ayuda a explorar las funciones de Kubernetes, probar cargas de trabajo y trabajar con la orquestación de contenedores en paralelo con otras funciones de Docker.
Activar Kubernetes
Con Docker Desktop versión 4.51 y posteriores, puedes administrar Kubernetes directamente desde la vista Kubernetes en el Panel de Docker Desktop.
- Abre el Panel de Docker Desktop y selecciona la vista Kubernetes.
- Selecciona Create cluster (Crear clúster).
- Elige el tipo de clúster:
- Kubeadm crea un clúster de un solo nodo y la versión la define Docker Desktop.
- kind crea un clúster de múltiples nodos y puedes definir la versión y el número de nodos. Para obtener información más detallada sobre cada tipo de clúster, consulta Método de aprovisionamiento del clúster.
- Opcional: Selecciona Show system containers (advanced) (Mostrar contenedores del sistema (avanzado)) para ver los contenedores internos al utilizar comandos de Docker.
- Selecciona Create (Crear).
Esto configura las imágenes necesarias para ejecutar el servidor de Kubernetes como contenedores e instala la herramienta de línea de comandos kubectl en tu sistema en /usr/local/bin/kubectl (Mac) o en C:\Program Files\Docker\Docker\resources\bin\kubectl.exe (instalaciones para todos los usuarios) o %LOCALAPPDATA%\Programs\DockerDesktop\resources\bin\kubectl.exe (instalaciones por usuario) (Windows). Si instalaste kubectl usando Homebrew o mediante algún otro método y experimentas conflictos, elimina /usr/local/bin/kubectl.
NoteDocker Desktop para Linux no incluye
kubectlpor defecto. Puedes instalarlo por separado siguiendo la guía de instalación de Kubernetes. Asegúrate de que el binario dekubectlesté instalado en/usr/local/bin/kubectl.
Las siguientes acciones también se desencadenan en el backend y en la máquina virtual de Docker Desktop:
- Generación de certificados y configuración del clúster.
- Descarga e instalación de componentes internos de Kubernetes.
- Arranque del clúster.
- Instalación de controladores adicionales para redes y almacenamiento.
Cuando Kubernetes está activado, su estado se muestra en el pie de página del Panel de Docker Desktop y en el menú de Docker.
Puedes comprobar qué versión de Kubernetes estás utilizando con:
$ kubectl version
Método de aprovisionamiento del clúster
Kubernetes en Docker Desktop se puede aprovisionar con los proveedores kubeadm o kind.
kubeadm es el proveedor más antiguo. Admite un clúster de un solo nodo, no permite seleccionar la versión de Kubernetes, es más lento de aprovisionar que kind y no es compatible con el aislamiento de contenedores mejorado
Enhanced Container Isolation (ECI), lo que significa que si ECI está activado, el clúster funciona pero no está protegido por ECI.
kind es el proveedor más reciente. Admite clústeres de múltiples nodos (para una configuración de Kubernetes más realista), te permite elegir la versión de Kubernetes, es más rápido de aprovisionar que kubeadm y es compatible con ECI. Cuando ECI está activado, el clúster de Kubernetes se ejecuta en contenedores de Docker sin privilegios, haciéndolo más seguro.
| Característica | kubeadm | kind |
|---|---|---|
| Soporte para clústeres de múltiples nodos | No | Sí |
| Selector de versión de Kubernetes | No | Sí |
| Velocidad de aprovisionamiento | ~1 min | ~30 segundos |
| Soportado por ECI | No | Sí |
| Funciona con el almacén de imágenes de containerd | Sí | Sí |
| Funciona con el almacén de imágenes de Docker | Sí | No |
Vista del panel (Dashboard view)
Cuando un clúster de Kubernetes está activado, la vista Kubernetes muestra un panel en vivo que incluye:
- Un selector de espacio de nombres (namespace) en la parte superior.
- Una lista en tiempo real de los recursos (pods, servicios, despliegues) en el espacio de nombres seleccionado.
- Actualizaciones automáticas cuando se crean, eliminan o modifican recursos.
Verificar la instalación
Confirma que tu clúster está en ejecución:
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
docker-desktop Ready control-plane 3h v1.29.1
Si kubectl está apuntando a otro entorno, cambia al contexto de Docker Desktop:
$ kubectl config use-context docker-desktop
TipSi no aparece ningún contexto, intenta:
- Ejecutar el comando en el Símbolo del sistema o en PowerShell.
- Configurar la variable de entorno
KUBECONFIGpara que apunte a tu archivo.kube/config.
Para obtener más información sobre kubectl, consulta la documentación de kubectl.
Editar o detener tu clúster
Cuando Kubernetes está activado:
- Selecciona Edit cluster (Editar clúster) para modificar la configuración. Por ejemplo, cambiar entre kubeadm y kind, o modificar el número de nodos.
- Selecciona Stop (Detener) para desactivar el clúster. Se muestra el progreso y la vista Kubernetes vuelve a la pantalla Create cluster. Esto detiene y elimina los contenedores de Kubernetes, y también elimina el comando
/usr/local/bin/kubectl.
Actualizar tu clúster
Los clústeres de Kubernetes no se actualizan automáticamente con las actualizaciones de Docker Desktop. Para actualizar el clúster, debes seleccionar manualmente Reset cluster (Restablecer clúster) en la configuración de Kubernetes.
Configurar un registro de imágenes personalizado para las imágenes del plano de control de Kubernetes
Docker Desktop utiliza contenedores para ejecutar el plano de control (control plane) de Kubernetes. Por defecto, Docker Desktop descarga las imágenes de contenedor asociadas desde Docker Hub. Las imágenes descargadas dependen del método de aprovisionamiento del clúster.
Por ejemplo, en el modo kind se requieren las siguientes imágenes:
docker.io/kindest/node:<tag>
docker.io/envoyproxy/envoy:<tag>
docker.io/docker/desktop-cloud-provider-kind:<tag>
docker.io/docker/desktop-containerd-registry-mirror:<tag>
En el modo kubeadm se requieren las siguientes imágenes:
docker.io/docker/desktop-kubernetes:<tag>
docker.io/docker/desktop-storage-provisioner:<tag>
docker.io/docker/desktop-vpnkit-controller:<tag>
docker.io/docker/desktop-kubernetes-etcd:<tag>
docker.io/docker/desktop-kubernetes-coredns:<tag>
docker.io/docker/desktop-kubernetes-pause:<tag>
docker.io/docker/desktop-kubernetes-apiserver:<tag>
docker.io/docker/desktop-kubernetes-controller-manager:<tag>
docker.io/docker/desktop-kubernetes-scheduler:<tag>
docker.io/docker/desktop-kubernetes-proxy:<tag>
Las etiquetas de las imágenes son seleccionadas automáticamente por Docker Desktop según diversos factores, incluida la versión de Kubernetes que se esté utilizando. Las etiquetas varían para cada imagen y pueden cambiar entre las versiones de Docker Desktop. Para mantenerte informado, consulta las notas de publicación de Docker Desktop.
NoteEn las versiones de Docker Desktop 4.44 o posteriores, puedes ejecutar
docker desktop kubernetes images listpara listar las imágenes de Kubernetes utilizadas por la versión instalada actualmente de Docker Desktop. Para obtener más información, consulta la CLI de Docker Desktop.
Para adaptarse a escenarios donde no se permite el acceso a Docker Hub, los administradores pueden configurar Docker Desktop para descargar las imágenes enumeradas anteriormente desde un registro diferente (por ejemplo, un espejo) utilizando la configuración KubernetesImagesRepository de la siguiente manera.
El nombre de una imagen se puede dividir en los componentes [registry[:port]/][namespace/]repository[:tag]. La configuración KubernetesImagesRepository permite a los usuarios anular la parte [registry[:port]/][namespace] del nombre de la imagen.
Por ejemplo, si Kubernetes en Docker Desktop está configurado en modo kind y KubernetesImagesRepository está configurado como my-registry:5000/kind-images, entonces Docker Desktop descargará las imágenes de:
my-registry:5000/kind-images/node:<tag>
my-registry:5000/kind-images/envoy:<tag>
my-registry:5000/kind-images/desktop-cloud-provider-kind:<tag>
my-registry:5000/kind-images/desktop-containerd-registry-mirror:<tag>
Estas imágenes deben clonarse/duplicarse a partir de sus respectivas imágenes en Docker Hub. Las etiquetas también deben coincidir con las que espera Docker Desktop.
El enfoque recomendado para configurar esto es el siguiente:
- Inicia Kubernetes utilizando el método de aprovisionamiento de clúster deseado:
kubeadmokind. - Una vez que Kubernetes se haya iniciado, utiliza:
- (Docker Desktop versión 4.44 o posterior)
docker desktop kubernetes images listpara listar las etiquetas de imagen que descargará la instalación actual de Docker Desktop. docker pspara ver las imágenes de contenedor utilizadas por Docker Desktop para el plano de control de Kubernetes.
- (Docker Desktop versión 4.44 o posterior)
- Clona o duplica esas imágenes (con las etiquetas correspondientes) en tu registro personalizado.
- Detén el clúster de Kubernetes.
- Configura la opción
KubernetesImagesRepositorypara que apunte a tu registro personalizado. - Reinicia Docker Desktop.
- Verify that the Kubernetes cluster is using the custom registry images using the
docker pscommand.
NoteLa configuración
KubernetesImagesRepositorysolo se aplica a las imágenes del plano de control utilizadas por Docker Desktop para configurar el clúster de Kubernetes. No tiene ningún efecto sobre otros pods de Kubernetes.
NoteEn las versiones de Docker Desktop 4.43 o anteriores, cuando utilizas
KubernetesImagesRepositoryy tienes activado Enhanced Container Isolation (ECI), añade las siguientes imágenes a la lista de imágenes de montaje de socket Docker de ECI:
[imagesRepository]/desktop-cloud-provider-kind:[imagesRepository]/desktop-containerd-registry-mirror:Estos contenedores montan el socket de Docker, por lo que debes añadir las imágenes a la lista de imágenes de ECI. De lo contrario, ECI bloqueará el montaje y Kubernetes no se se iniciará.
Resolución de problemas
- Si Kubernetes no se inicia, asegúrate de que Docker Desktop se esté ejecutando con suficientes recursos asignados. Comprueba Settings > Resources.
- Si los comandos de
kubectldevuelven errores, confirma que el contexto esté configurado endocker-desktop:Luego puedes intentar comprobar los logs de los contenedores del sistema de Kubernetes si has activado esa configuración.$ kubectl config use-context docker-desktop - Si experimentas problemas con el clúster después de una actualización, restablece tu clúster de Kubernetes. Restablecer un clúster de Kubernetes puede ayudar a resolver problemas al devolver el clúster a un estado limpio, eliminando malas configuraciones, datos dañados o recursos bloqueados que puedan estar causando problemas. Si el problema persiste, es posible que debas limpiar y purgar los datos, y luego reiniciar Docker Desktop.