我有 Azure devops 管道,在 AKS 上构建 dockerfile,因为 AKS 正在弃用最新版本的 docker,请建议最佳做法是在 AKS 集群上构建没有 docker 的 dockerfile。在 Kaniko 上探索,在没有 docker 的情况下构建 buildah..
2 回答
什么也没有变。您仍然可以在您的开发人员或 CI 系统上使用docker build
和docker push
来构建 Docker 映像并将其推送到存储库。唯一的区别是,在您的 Kubernetes 集群中使用 Docker 作为容器后端不再是受支持的选项,但这是您的应用程序不知道或不关心的低级别管理员级别的决定。
除非您以某种方式在 Kubernetes 集群中使用主机 docker 套接字进行构建,否则此更改不会影响您。如果您从 Kubernetes 集群中的主机安装 docker 套接字,我认为这是您想要解决的安全问题。
Docker Desktop 将 docker 引擎作为容器运行在 containerd 之上,允许开发人员在该环境中构建和运行容器。类似的可以使用在容器内运行 docker 引擎的 DinD 构建模式完成,不同之处在于底层容器管理工具是 containerd 而不是完整的 docker 引擎,但容器化的 docker 引擎对此无动于衷。
作为在完整的 docker 引擎中构建的替代方案,我建议查看buildkit,它是 20.10 以来 docker 中当前的默认构建工具。它使用 containerd,并且他们提供了一系列清单,以作为独立构建器直接在 kubernetes 中运行构建。