es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Kubernetes no se puede iniciar en Docker Desktop sin acceso directo a internet.

Estoy ejecutando Docker Desktop 3.6.0 en Windows 10 con WSL2. Cuando intento habilitar Kubernetes, solo veo “Error al iniciar” dentro de la interfaz de usuario de Docker Desktop. Docker en sí funciona bien. No estoy seguro de cómo obtener más registros.

Aquí está la salida de kubectl version:

kubectl versión
versión.Info del cliente: {Principales: “1”, Menores: “21”, GitVersion: “v1.21.3”, GitCommit: “ca643a4d1f7bfe34773c74f79527be4afd95bf39”, Estado del árbol Git: “limpio”, Fecha de construcción: “2021-07-15T21:04:39Z”, Versión de Go: “go1.16.6”, Compilador: “gc”, Plataforma: “windows/amd64”;}
Error del servidor (InternalError): un error en el servidor (“”) ha impedido que se realice la solicitud

A partir de otras publicaciones, parece que se requiere una conexión a Internet para la configuración inicial:

https://stackoverflow.com/a/52765732/1100559
https://stackoverflow.com/a/63318739/1100559

La conexión a Internet directa no es posible en mi entorno de trabajo, solo puedo copiar manualmente las imágenes necesarias en mi PC. Tampoco tengo acceso de administrador.

¿Hay alguna manera de configurar Kubernetes manualmente en Docker Desktop o indicar de alguna manera dónde se pueden encontrar las imágenes requeridas?

Tengo un repositorio de Docker en Nexus donde puedo enviar las imágenes necesarias. He cambiado ~.docker\daemon.json y agregado mi repositorio de Docker en insecure-registries. Después de iniciar sesión por primera vez, Docker puede descargar imágenes desde allí y ejecutarlas.

Ya intenté restablecer o habilitar y deshabilitar Kubernetes. También la eliminación de ~/.kube/config no funcionó.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Como no se puede tener una conexión a internet para realizar la configuración inicial de Kubernetes en Docker Desktop, puede seguir los siguientes pasos manuales de configuración:

    1. Descargue manualmente las imágenes de Kubernetes necesarias desde una máquina que tenga acceso a internet y púshelas a su repositorio local de Docker Nexus.
    2. Cree un archivo de manifiesto de Kubernetes para implementar Kubernetes en Docker Desktop. Puede utilizar la siguiente plantilla:

    apiVersion: v1
    kind: Config
    clusters:
      - cluster:
          certificate-authority-data: <insertar-datos-de-autoridad-de-certificación>
          server: https://localhost:6443
        name: docker-desktop
    contexts:
      - context:
          cluster: docker-desktop
          user: docker-desktop
        name: docker-desktop
    current-context: docker-desktop
    users:
      - name: docker-desktop
        user:
          client-certificate-data: <insertar-datos-de-certificado-de-cliente>
          client-key-data: <insertar-datos-de-clave-de-cliente>
    

    Reemplace <insertar-datos-de-autoridad-de-certificación>, <insertar-datos-de-certificado-de-cliente> y <insertar-datos-de-clave-de-cliente> con los datos relevantes para su configuración.

    1. Abra una terminal de PowerShell como administrador y ejecute el siguiente comando:
    kubectl --kubeconfig=<ruta-al-archivo-de-manifiesto> apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.4.0/aio/deploy/recommended.yaml
    

    Reemplace <ruta-al-archivo-de-manifiesto> con la ruta real de su archivo de manifiesto.

    1. Después de que se complete la implementación, ejecute el siguiente comando para iniciar el Tablero de Kubernetes:
    kubectl --kubeconfig=<ruta-al-archivo-de-manifiesto> proxy
    

    Luego, acceda al panel a través de un navegador web y navegue hasta `http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/`.

    Tenga en cuenta que este método puede tener limitaciones y es posible que no cubra todas las características de la implementación estándar de Kubernetes. Además, asegúrese de tomar las precauciones de seguridad necesarias según corresponda para su configuración.</insertar-datos-de-autoridad-de-certificación></insertar-datos-de-autoridad-de-certificación>

Comments are closed.