Quiero usar Kubeflow para verificarlo y ver si se ajusta a mis proyectos. Quiero implementarlo localmente como un servidor de desarrollo para poder verificarlo, pero tengo Windows en mi computadora y Kubeflow solo funciona en Linux. No tengo permitido el arranque dual de esta computadora, podría instalar una máquina virtual, pero pensé que sería más fácil usar la ventana acoplable, y me equivoqué. Entonces, el problema es que quiero instalar Kubernetes en un contenedor docker, ahora mismo este es el Dockerfile que he escrito:
# Docker file with local deployment of Kubeflow FROM ubuntu:18.04 ENV USER=Joao ENV PASSWORD=Password ENV WK_DIR=/home/${USER} # Setup Ubuntu RUN apt-get update -y RUN apt-get install -y conntrack sudo wget RUN useradd -rm -d /home/${USER} -s /bin/bash -g root -G sudo -u 1001 -p ${PASSWORD} ${USER} WORKDIR ${WK_DIR} # Installing Docker CE RUN apt-get install -y apt-transport-https ca-certificates curl software-properties-common RUN curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - RUN add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable" RUN apt-get update -y RUN apt-get install -y docker-ce docker-ce-cli containerd.io # Installing Kubectl RUN curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.15.0/bin/linux/amd64/kubectl RUN chmod +x ./kubectl RUN mv ./kubectl /usr/local/bin/kubectl # Installing Minikube RUN curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 RUN install minikube-linux-amd64 /usr/local/bin/minikube ENV PATH="${PATH}:${WK_DIR}" COPY start.sh start.sh CMD sh start.shCon esto, solo para facilitar la implementación, también tengo un docker-compose.yaml que se ve así:
services: kf-local: build: . volumes: - path/to/folder:/usr/kubeflow privileged: trueY start.sh se ve así:
service docker start minikube start \ --extra-config=apiserver.service-account-issuer=api \ --extra-config=apiserver.service-account-signing-key-file=/var/lib/minikube/certs/apiserver.key \ --extra-config=apiserver.service-account-api-audiences=api \ --driver=dockerEl problema es que cada vez que intento ejecutar esto me sale el error:
X Exiting due to DRV_AS_ROOT: The "docker" driver should not be used with root privileges.Intenté crear un usuario y ejecutarlo desde allí también, pero luego no puedo ejecutar sudo, ¿alguna idea de cómo podría instalar Kubernetes en un contenedor Docker?
Como pensó, tenía razón en caso de usar VM y sería fácil probarlo.
En lugar de configurar Kubernetes en la ventana acoplable, puede usar el contenedor base de Linux para las pruebas de desarrollo.
Hay un contenedor de Linux disponible como contenedor LXC. Docker es una especie de contenedor de aplicaciones, mientras que, en palabras simples, LXC es como una máquina virtual para pruebas de desarrollo local. puede instalar las cosas en lugar de la ventana acoplable configurando la aplicación dentro de la imagen.
lea algunos detalles sobre lxc: https://medium.com/@harsh.manvar111/lxc-vs-docker-lxc-101-bd49db95933a
también puede ejecutarlo en Windows y probarlo en: https://linuxcontainers.org/
Si ha leído la documentación de Kubeflow , también hay una opción multipaso
Multipass crea una máquina virtual Linux en sistemas Windows, Mac o Linux. La máquina virtual contiene un sistema operativo Ubuntu completo que luego se puede usar para implementar Kubernetes y Kubeflow.
Obtenga más información sobre Multipass: https://multipass.run/#install
Los permisos de usuario insuficientes en los grupos de Docker y el directorio de minikube provocan este error ("X Saliendo debido a DRV_AS_ROOT: el controlador "Docker" no debe usarse con privilegios de root").
Puede corregir ese error agregando su usuario al grupo docker y configurando permisos para el directorio de perfil de minikube (cambie $USER con su nombre de usuario en los dos comandos a continuación):
sudo usermod -aG docker $USER && newgrp docker sudo chown -R $USER $HOME/.minikube; chmod -R u+wrx $HOME/.minikube