Poo*_*rna 10 containers docker kubernetes amazon-eks
目前,我们正在 kuberenetes 上使用dind(我们没有从主机安装 docker.sock)来构建容器映像,并在容器内运行容器以运行单元测试。随着Kubernetes中 Dockershim 的弃用,我正在尝试分析 dind 是否仍然可以在没有 dockershim 且使用 Containerd 运行时的 Kubernetes 上运行。
我尝试在 gcp 和 aws eks 上运行 dind pod,并使用 kubernetes 1.21 版本的 containerd 容器运行时。它在特权模式下工作没有任何问题。但我很困惑它如何工作,因为dind是docker中的docker而不是containerd中的docker。我做了一些研究,但仍然无法弄清楚它是如何工作的以及它是否适用于 kubernetes 1.24 版本。有人可以帮忙吗?
我使用下面的规范使用 containerd 运行时在 kubernetes 上进行测试
apiVersion: v1
kind: Pod
metadata:
creationTimestamp: null
labels:
run: dind
name: dind
spec:
containers:
- image: docker:20.10.12-dind
name: dind
ports:
- containerPort: 2375
securityContext:
privileged: true
env:
- name: DOCKER_TLS_CERTDIR
value: ''
- name: client
image: ubuntu:latest
command:
- sleep
- infinity
env:
- name: DOCKER_HOST
value: tcp://localhost:2375
Run Code Online (Sandbox Code Playgroud)
尽管名称为 docker-in-docker,但它实际上是 docker-in-any-company-CRI-runtime。该条款证实了这一点(来源https://kubernetes.io/blog/2020/12/02/dockershim-faq/#will-my-existing-docker-images-still-work):
是的,从 docker build 生成的映像将适用于所有 CRI 实现。您现有的所有图像仍将完全相同。
所以如果你不使用/var/run/docker.sock你就很好。
| 归档时间: |
|
| 查看次数: |
3172 次 |
| 最近记录: |