Cha*_*dra 2 docker kubernetes dockerfile
我想在容器中运行'kubectl'命令,所以我想在构建Docker映像时通过容器安装kubectl。任何帮助表示赞赏!
Pet*_*rch 23
kubectl是用go编写的,所以是完全独立的。
因此,您可以从另一个已包含它的容器中复制它。就像我在这里所做的那样,从以下位置复制它bitnami/kubectl:1.20.9:
FROM bitnami/kubectl:1.20.9 as kubectl
FROM ubuntu-or-whatever-image:tag
# Do whatever you need to with the
# ubuntu-or-whatever-image:tag image, then:
COPY --from=kubectl /opt/bitnami/kubectl/bin/kubectl /usr/local/bin/
Run Code Online (Sandbox Code Playgroud)
我更喜欢这个而不是摆弄curl,因为现在你正在利用 Docker 缓存bitnami/kubectl:1.20.9图像的能力。
Ala*_*ier 21
把它放在你的 Dockerfile 中
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
Run Code Online (Sandbox Code Playgroud)
您只需要将kubectl(例如/usr/local/bin/kubectl)二进制文件和kubeconfig(例如/root/.kube/config)映射到您的容器中。
例如(用于部署的yaml文件):
containers:
- image: container-image-name
name: container-name
volumeMounts:
- name: kubectl-binary
mountPath: /usr/local/bin/kubectl
readOnly: true
- name: kubectl-config
mountPath: /root/.kube/config
readOnly: true
volumes:
- name: kubectl-binary
hostPath:
path: /usr/local/bin/kubectl
- name: kubectl-config
hostPath:
path: /root/.kube/config
Run Code Online (Sandbox Code Playgroud)
聚苯乙烯
使用以下命令kubectl在每个节点上下载二进制文件,然后复制/root/.kube/config到每个节点:
$ curl -L https://dl.k8s.io/v1.10.6/bin/linux/amd64/kubectl -o /usr/local/bin/kubectl
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3962 次 |
| 最近记录: |