1

我有一个正在运行的minikube集群。我可以轻松连接到它并使用kubectl. 但我想kubectl从 docker 容器中运行。这是 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

它基本上是一个安装的简单alpine图像kubectl

如何minikube从这个容器连接到我的集群?

4

1 回答 1

2

我不得不将文件夹复制~/.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 构建上下文可能会使您的构建变得非常缓慢。

您可能需要为此目的安装卷。

于 2021-02-07T09:45:52.257 回答