如何在 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
希望可以帮助您解决问题。
我正在尝试按照 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
希望可以帮助您解决问题。