【问题标题】:Should I start learning kubernetes before or after the removal of the dockershim component?我应该在删除 dockershim 组件之前还是之后开始学习 kubernetes?
【发布时间】:2021-12-09 03:24:36
【问题描述】:

我开始使用 Docker 已经有一段时间了,我也一直在计划学习 Kubernetes,但注意到它将删除启用 Docker 的 dockershim 组件作为 1.23 版中的 Kubernetes 容器运行时。

我只是想了解我应该开始使用 docker 和 dockershim 在 1.22 版本上学习 Kubernetes,还是等到 dockershim 支持结束并开始遵循新的学习路径?

我其实很担心,因为我的一些项目使用 Unix Socket docker.sock 来收集容器数据。

所有答案和 cmets 将不胜感激。

【问题讨论】:

    标签: docker kubernetes unix-socket


    【解决方案1】:

    “Kubernetes 正在移除 Docker 支持”实际上是一个非常低级的细节。除非您实际管理集群,否则您不会注意到或关心。如果您的项目需要使用分布在多个系统中的多个副本运行,那么学习 Kubernetes 可能是有意义的,并且没有特别的理由要等到这种内部更改完成。您仍然需要了解详细信息,例如如何构建 Docker 映像并将它们推送到存储库以有效地开发在 Kubernetes 上运行的应用程序。

    我的一些项目使用 docker socket docker.sock

    这在 Kubernetes 上不起作用。一般来说,Kubernetes 的安全控制比 Docker 强得多。一方面,这意味着您可以将 ServiceAccount 配置为有权在特定命名空间中创建新 Pod,而无需授予它在任何地方读取 Secret 的权限。另一方面,这也意味着容器通常会被禁止用于可能危及主机的事情。 (例如,我理解完全禁止 hostPath 卷的情况并不少见。)即使您的 Kubernetes 在下面运行 Docker,您也可能无法访问 Docker 套接字,如果可以,您会看到很多Kubernetes 内部,它们只会是当前节点上运行的东西。

    您应该重新审视您的应用程序是否真的需要访问 Docker 套接字。在许多情况下,像 RabbitMQ 这样的作业队列可以取代动态启动容器的需要。您提到了监控需求,并且可能有现成的项目可以满足这一需求。在最坏的情况下,您可能需要更新您的应用程序以同时支持 Docker 和 Kubernetes API,具体取决于它的运行位置。

    【讨论】:

    • 很好的解释+1。
    猜你喜欢
    • 1970-01-01
    • 2010-10-08
    • 1970-01-01
    • 2010-11-28
    • 1970-01-01
    • 1970-01-01
    • 2011-07-17
    • 1970-01-01
    • 2017-03-03
    相关资源
    最近更新 更多