1. 背景
Kubernetes 在 v1.20.0-rc.0版本中弃用了 kubelet中对Docker引擎的支持,对于 dockershim也将在下个版本中弃用。
2. 如何应对?
对于 Kubernetes 的最终用户,此次调整并不会有太大影响,Docker 可以继续构建容器镜像,这些镜像也能够在 Kubernetes 集群中正常运行。
如果不想被 Docker 绑定,可以跟着 Kubernetes 社区的技术栈生态使用 OCI兼容的客户端。
2.1 什么是OCI?
OCI(Open Container Initiative)是 Linux 基金会项目为容器设计的标准。它定义了运行容器时所需要遵循的镜像规范和运行时规范。
Docker 是该项目的成员,它使用 OCI 规范,并且扩展了额外的镜像 layout 和不同的运行时行为。
但也就意味着Docker 不再一家独大,遵循该标准的其他实现也可以活跃在 Kubernetes 舞台上,例如 兼容OCI 的运行时 runc,和轻量级的 cri-o,以及以安全著称的 rkt。
OCI 镜像特点:
1. 和 Docker 镜像类似,包含 manifest file, config layer, data layers
2. OCI 的 media type 和 Docker 不同
3. Artifactory 将 OCI 镜像的media type 存储在 manifest file 的属性页面上。
4. Artifactory 支持 OCI 的索引
2.2 Artifactory 的新版本支持 OCI 镜像管理
Artifactory 7.11 版本中,Artifactory 视OCI 镜像和 Docker为同等的内容,你可以使用 兼容OCI 的客户端推送 OCI 镜像到 Artifactory。
你的 OCI 镜像可以直接被推送到 Artifactory - 不需要通过 Docker 客户端推送。常用的 OCI 客户端可以使用:
containerd(ctr) – CNCF 项目
podman – 一个开源的 Pod manage 项目。
Docker.
2.3 Helm 3 支持
Artifactory Helm registries 现在也支持了 Helm 3 客户端.
Helm 3 提供了多项改进,包含的去除了 Tiller server,并且提供了更加成熟的合并 patch 的机制。同时 Helm 3 把之前的requirements.yaml合并到了 chart.yaml.
3. 开始试用 Artifactory
https://www.jfrogchina.com/artifactory/free-trial/
如果你还没有开始使用 Artifactory,可以从这里进行下载免费 30 天的试用,有任何问题可以通过微信公众号后台联系我们,或者发邮件到 info@jfrogchina.com. 谢谢