如何在 docker 中 运行 简单的 minikube?

how to run simple minikube inside docker?

我正在尝试按照 guide 上的说明进行操作,但在 docker 下。

我设置了一个文件夹:

.
├── Dockerfile
└── main.py
0 directories, 2 files

main.py 是:

#!/usr/bin/env python3

print("Docker is magic!")

Dockerfile 是:

FROM python:latest
COPY main.py /
CMD [ "python", "./main.py" ]

FROM python:3.7-alpine
COPY ./ /usr/src/app/
WORKDIR /usr/src/app
RUN apk add curl openssl bash --no-cache
RUN curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl" \
    && chmod +x ./kubectl \
    && mv ./kubectl /usr/local/bin/kubectl


kubectl create deployment hello-node --image=k8s.gcr.io/echoserver:1.4

kubectl expose deployment hello-node --type=LoadBalancer --port=38080

minikube start --driver=docker

kubectl get pods

当我 运行 docker 运行 python-test 我在终端看到:

Docker is magic!

但我没有看到 get pods 输出。

我的目标是在 docker 中 运行 一个简单的 minikube,它只打印 pods 的列表。这里有什么问题?

如果你想在 docker 容器中使用 kubernetes,我的建议是使用 k3d 。

k3d is a lightweight wrapper to run k3s (Rancher Lab’s minimal Kubernetes distribution) in docker.k3d makes it very easy to create single- and multi-node k3s clusters in docker, e.g. for local development on Kubernetes.

您可以通过Docker直接下载、安装和使用它。 有关更多信息,您可以按照 https://k3d.io/ 的官方文档进行操作。

要获取 pods 的列表,您不需要在 docker 容器内创建 k8s 集群。 你需要的是任何 k8s 集群的配置文件 . ├── Docker文件 ├-- 配置 └── main.py 0 个目录,3 个文件

之后:

FROM python:latest
COPY main.py /
CMD [ "python", "./main.py" ]

FROM python:3.7-alpine
COPY ./ /usr/src/app/
WORKDIR /usr/src/app
RUN apk add curl openssl bash --no-cache
RUN curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl" \
    && chmod +x ./kubectl \
    && mv ./kubectl /usr/local/bin/kubectl

COPY config ~/.kube/config
# now if you execute k get pods you can get the list of pods
#Example;
RUN kubectl get pods 

要获取此文件配置,您可以按照此 link Organizing Cluster Access Using kubeconfig Files

希望可以帮助您解决问题。