如何从 docker 容器连接到 minikube 集群?
How to connect to a minikube cluster from a docker container?
我有一个 运行ning minikube
集群。我可以轻松连接到它并使用 kubectl
应用更改。但是我想从 docker 容器中 运行 kubectl
。这是 Dockerfile:
FROM alpine:latest
RUN apk --no-cache add curl
# Install and configure kubectl
RUN curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
RUN mkdir -p ~/.local/bin/kubectl
RUN mv ./kubectl ~/.local/bin/kubectl
RUN chmod +x ~/.local/bin/kubectl/ -R
它基本上是一个安装了 kubectl
的简单 alpine
图像。
如何从此容器连接到我的 minikube
集群?
我必须将 ~/.kube
和 ~/.minikube
文件夹复制到图像中。这是新的 Dockerfile:
FROM alpine:latest
RUN apk --no-cache add curl
# Install and configure kubectl
RUN curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
RUN mkdir -p ~/.local/bin/kubectl
RUN mv ./kubectl ~/.local/bin/kubectl
COPY .kube /root/.kube
COPY .minikube /root/.minikube
RUN chmod +r ~/.kube/config
RUN chmod +x ~/.local/bin/kubectl/ -R
WORKDIR /root/.local/bin/kubectl/
你可以这样使用图片:
docker build . -t USERNAME/kubectl:latest
docker run USERNAME/kubectl:latest ./kubectl get pods
注意
.kube/config
文件是为主机系统创建的。所以你需要更改 .kube/config
文件中的一些路径以指向容器中的 .minikube
文件夹。
还要注意
~/.minikube
和 ~/.kube
是巨大的文件夹。将它们添加到您的 docker 构建上下文中可能会使您的构建非常缓慢。
您可能希望为此目的装载卷。
我有一个 运行ning minikube
集群。我可以轻松连接到它并使用 kubectl
应用更改。但是我想从 docker 容器中 运行 kubectl
。这是 Dockerfile:
FROM alpine:latest
RUN apk --no-cache add curl
# Install and configure kubectl
RUN curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
RUN mkdir -p ~/.local/bin/kubectl
RUN mv ./kubectl ~/.local/bin/kubectl
RUN chmod +x ~/.local/bin/kubectl/ -R
它基本上是一个安装了 kubectl
的简单 alpine
图像。
如何从此容器连接到我的 minikube
集群?
我必须将 ~/.kube
和 ~/.minikube
文件夹复制到图像中。这是新的 Dockerfile:
FROM alpine:latest
RUN apk --no-cache add curl
# Install and configure kubectl
RUN curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
RUN mkdir -p ~/.local/bin/kubectl
RUN mv ./kubectl ~/.local/bin/kubectl
COPY .kube /root/.kube
COPY .minikube /root/.minikube
RUN chmod +r ~/.kube/config
RUN chmod +x ~/.local/bin/kubectl/ -R
WORKDIR /root/.local/bin/kubectl/
你可以这样使用图片:
docker build . -t USERNAME/kubectl:latest
docker run USERNAME/kubectl:latest ./kubectl get pods
注意
.kube/config
文件是为主机系统创建的。所以你需要更改 .kube/config
文件中的一些路径以指向容器中的 .minikube
文件夹。
还要注意
~/.minikube
和 ~/.kube
是巨大的文件夹。将它们添加到您的 docker 构建上下文中可能会使您的构建非常缓慢。
您可能希望为此目的装载卷。