如何通过docker映像在kubernetes容器中安装kubectl
我想在容器中运行'kubectl'命令,所以我想在构建Docker映像时在容器中安装kubectl。如何通过docker映像在kubernetes容器中安装kubectl,docker,kubernetes,dockerfile,Docker,Kubernetes,Dockerfile,我想在容器中运行'kubectl'命令,所以我想在构建Docker映像时在容器中安装kubectl。 感谢您的帮助 您只需将kubectl(例如/usr/local/bin/kubectl)二进制文件和kubeconfig(例如/root/.kube/config)映射到您的容器中即可 例如(用于部署的yaml文件): 附言 使用以下命令在每个节点上下载kubectl二进制文件,并将/root/.kube/config复制到每个节点: $ curl -L https://dl.k8s.io/v1
感谢您的帮助 您只需将
kubectl
(例如/usr/local/bin/kubectl
)二进制文件和kubeconfig
(例如/root/.kube/config
)映射到您的容器中即可
例如(用于部署的yaml文件):
附言
使用以下命令在每个节点上下载kubectl
二进制文件,并将/root/.kube/config
复制到每个节点:
$ curl -L https://dl.k8s.io/v1.10.6/bin/linux/amd64/kubectl -o /usr/local/bin/kubectl
Weike的解决方案对我来说适用于不同的kubectl路径,如果有人想在Docker映像中安装kubectl,那么这里是Docker文件(如果我们想通过python客户端api访问集群,它还安装python和kubernetes python客户端api): 另外,这是我的部署文件,用于将kubectl二进制文件和配置映射到容器,以访问kubernetes容器中的kubectl,pod中的:
apiVersion: apps/v1
kind: Deployment
metadata:
name: support
labels:
app: support
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: support
template:
metadata:
labels:
app: support
spec:
terminationGracePeriodSeconds: 3
imagePullSecrets:
- name: mysecret
containers:
- name: support
image: image-name
command:
- "/bin/sh"
- "-c"
- "sleep infinity"
volumeMounts:
- name: kubectl-binary
mountPath: /usr/bin/kubectl
readOnly: true
- name: kubectl-config
mountPath: /etc/kubernetes/config
readOnly: true
volumes:
- name: kubectl-binary
hostPath:
path: /usr/bin/kubectl
- name: kubectl-config
hostPath:
path: /etc/kubernetes/config
如果你有docker,你可以做任何你想做的事情,因为你可以拉和启动任何图像。因此,如果要构建和部署:
docker login
docker build foo/bar .
docker push
docker run -v ~/.kube:/root/.kube lachlanevenson/k8s-kubectl set image deploy bar app=foo/bar
把这个放在你的档案里
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
RUN chmod +x ./kubectl
RUN mv ./kubectl /usr/local/bin
到目前为止你试过什么?你有Dockerfile吗?从您正在使用的POD访问Kubernetes API的现有模式?谢谢,在我的例子中,路径略有不同,但工作正常。对于kubectl-
/usr/bin/kubectl
对于config-/etc/kubernetes/config
docker login
docker build foo/bar .
docker push
docker run -v ~/.kube:/root/.kube lachlanevenson/k8s-kubectl set image deploy bar app=foo/bar
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
RUN chmod +x ./kubectl
RUN mv ./kubectl /usr/local/bin