• k8s 集群准备好升级到 v1.24 了吗?这里列出了需要注意的事项


      早在 2020 年 12 月,Kubernetes 就宣布弃用 Dockershim[1]。在 Kubernetes 中,dockershim 是一个软件 shim,它允许您将 Docker 引擎用作 Kubernetes 中的容器运行时。在即将发布的 v1.24 版本中,我们将移除 Dockershim,弃用和移除之间的间隔,符合项目在弃用后至少一年支持功能的政策[2]。如果您是集群操作员,则本指南包含您在此版本中需要了解的实际情况。此外,您需要做些什么来确保您的集群不会倒塌!

     

    1.首先,这对你有影响吗?

      如果您正在滚动自己的集群或不确定此删除是否会影响您,请保持安全并检查您是否对 Docker Engine 有任何依赖关系[3]

      请注意,使用 Docker Desktop 构建的应用程序容器,不是集群的 Docker 依赖项。由 Docker 创建的容器镜像符合开放容器倡议 (OCI)[4],这是一种 Linux 基金会治理结构,围绕容器格式和运行时定义行业标准。它们可以在 Kubernetes 支持的任何容器运行时上正常工作。

      如果您使用来自云提供商的托管 Kubernetes 服务,并且您没有显式更改容器运行时,那么您可能不需要做任何事。Amazon EKS、Azure AKS 和 Google GKE 现在都默认使用 containerd,但如果您有任何节点自定义,您应该确保它们不需要更新。要检查节点的运行时,请遵循找出节点上使用的容器运行时[5]

      无论您是滚动自己的集群还是使用来自云提供商的托管 Kubernetes 服务,您都可能需要迁移依赖于 Docker Engine 的遥测或安全代理[6]

     

    2.我有一个 Docker 依赖项。现在怎么办?

      如果您的 Kubernetes 集群依赖于 Docker Engine,并且您打算升级到 Kubernetes v1.24(出于安全和类似原因,您最终应该这样做),您需要将容器运行时从 Docker Engine 更改为其他内容或使用cri-dockerd[7] . 由于containerd[8]是一个毕业的 CNCF 项目和 Docker 本身的运行时,因此作为替代容器运行时是一个安全的选择。幸运的是,Kubernetes 项目已经记录了更改节点容器运行时[9]的过程,以 containerd 为例。切换到其他支持的运行时之一的说明类似。

     

    3.我想升级 Kubernetes,我需要保持与 Docker 作为运行时的兼容性。我有哪些选择?

      不要害怕,您不会被冷落,也不必冒着停留在旧版本 Kubernetes 上的安全风险。Mirantis 和 Docker 联合发布并正在维护 dockershim 的替代品。该替换称为cri-dockerd[10]。如果您确实需要保持与 Docker 作为运行时的兼容性,请按照项目文档中的说明安装 cri-dockerd。

     

    4.总结

      只要您在进入此版本时了解所做的更改和您自己的集群的详细信息,并确保与您的开发团队进行清晰的沟通,出现问题的概率就会降到最低。您可能需要对集群、应用程序代码或脚本进行一些更改,但所有这些要求都已记录在案。从使用 Docker Engine 作为您的运行时切换到使用其他受支持的容器运行时之一[11],实际上意味着删除中间人,因为 dockershim 的目的是访问 Docker 本身使用的容器运行时。从实际的角度来看,从长远来看,这种删除对您和 Kubernetes 维护者都更好。

      如果您仍有疑问,请先查看Dockershim 移除常见问题解答[12]

     

     

    参考资料
    [1]弃用 Dockershim: https://kubernetes.io/blog/2020/12/02/dont-panic-kubernetes-and-docker/
    [2]政策: https://kubernetes.io/docs/reference/using-api/deprecation-policy/
    [3]检查您是否对 Docker Engine 有任何依赖关系: https://kubernetes.io/docs/tasks/administer-cluster/migrating-from-dockershim/check-if-dockershim-deprecation-affects-you/
    [4]开放容器倡议 (OCI): https://opencontainers.org/
    [5]找出节点上使用的容器运行时: https://kubernetes.io/docs/tasks/administer-cluster/migrating-from-dockershim/find-out-runtime-you-use/
    [6]迁移依赖于 Docker Engine 的遥测或安全代理: https://kubernetes.io/docs/tasks/administer-cluster/migrating-from-dockershim/migrating-telemetry-and-security-agents/
    [7]cri-dockerd: https://github.com/Mirantis/cri-dockerd
    [8]containerd: https://containerd.io/
    [9]更改节点容器运行时: https://kubernetes.io/docs/tasks/administer-cluster/migrating-from-dockershim/change-runtime-containerd/
    [10]cri-dockerd: https://github.com/Mirantis/cri-dockerd
    [11]其他受支持的容器运行时之一: https://kubernetes.io/docs/setup/production-environment/container-runtimes/
    [12]Dockershim 移除常见问题解答: https://kubernetes.io/blog/2022/02/17/dockershim-faq/
    
    
    原文:https://kubernetes.io/blog/2022/03/31/ready-for-dockershim-removal/
    转载云原生

     

     

  • 相关阅读:
    【Python应用:基于PyQt5文本识别】调用百度AI对一张或多张图片、文件夹中的图片和屏幕区域截图进行识别(PDF转Word 小意思)
    【Ubuntu搭建Django编程环境】:创建python虚拟开发环境和配置pip国内镜像源
    23种设计模式上篇
    荷兰国旗问题
    文件复制多份
    mybatis批量更新
    数组小和
    常见排序算法
    福尔摩斯的约会
    小明上学
  • 原文地址:https://www.cnblogs.com/lizexiong/p/16223837.html
Copyright © 2020-2023  润新知