【FCon上海】与行业领袖共话AI大模型、数字化风控等前沿技术。 了解详情
写点什么

Docker 出局?你还有 iSula、Containerd 和 CRI-O

  • 2020-12-17
  • 本文字数:3376 字

    阅读完需:约 11 分钟

Docker出局?你还有iSula、Containerd和CRI-O

AI 大模型超全落地场景&金融应用实践,8 月 16 - 19 日 FCon x AICon 大会联诀来袭、干货翻倍!

Docker 真的要被 Kubernetes 社区剔除了吗?


最近,Kubernetes 在 1.20 版本中 的 ChangeLog 提到将在未来的版本中废弃 Docker 作为容器运行时,这个事情在全球都闹得沸沸扬扬。


那么,Kubernetes 要在 v1.20 开始弃用 docker 了?其实是 Kubernetes 弃用 kubelet 中集成的 dockershim 模块,也就是说不再将 docker 作为默认的 Container Runtime,不过 Kubernetes 应该还是可以通过外接方式使用 Docker 的,感兴趣的同学可以通过以下链接了解个中缘由:


  • 「Dockershim Deprecation FAQ」: https://kubernetes.io/blog/2020/12/02/dockershim-faq

  • 「Don't Panic: Kubernetes and Docker」: https://kubernetes.io/blog/2020/12/02/dont-panic-kubernetes-and-docker

对于使用 Docker 的 KubeSphere 用户有没有影响


该消息一出,社区里就有很多用户小伙伴问我们对 KubeSphere 的使用有没有影响,土耳其的合作伙伴也联系我们希望提供一个官方声明。



dockershim 一直都是 Kubernetes 社区为了能让 Docker 成为其支持的容器运行时,所维护的一个兼容程序。本次所谓的废弃,也仅仅是 Kubernetes 要放弃对现在 Kubernetes 代码仓库中的 dockershim 的维护支持。以便其可以像开始时计划的那样,仅负责维护其 CRI ,任何兼容 CRI 的运行时,皆可作为 Kubernetes 的 runtime,例如 Isula、CRI-O、Containerd 等。


目前,KubeSphere 容器平台默认使用 Docker 作为 Kubernetes 的容器运行时,同时也支持任何兼容 CRI 接口的具体实现。对于已经使用 Docker 的 KubeSphere 用户来说,这一事件对用户已有系统的运行不会有任何影响,也不会对将来的集群部署和业务产生影响,KubeSphere 用户可以根据需求选择继续使用已被大规模验证过的 Docker,或是选择目前比较流行的 Isula、Containerd、CRI-O 等新的容器运行时。在后续版本,KubeSphere 的 DevOps 等功能组件也将逐步支持这些容器运行时,并在未来将支持生产环境中使用这些 CRI。


下一代容器运行时 iSula、Containerd 和 CRI-O



iSula


iSula https://openeuler.org/zh/docs/20.09/docs/Container/iSula)是由 openEuler 社区开源的容器引擎,iSula 相比 Docker 是一种新的容器解决方案,提供统一的架构设计来满足 CT 和 IT 领域的不同需求。相比 Golang 编写的 Docker,轻量级容器使用 C/C++ 实现,具有轻、灵、巧、快的特点,不受硬件规格和架构的限制,底噪开销更小,可应用领域更为广泛。


Containerd


Containerdhttps://containerd.io)是一个 CNCF 毕业项目,目前也是工业级标准的容器运行时,它极为简单、健壮并且具备可移植性。Containerd 可以在宿主机中管理完整的容器生命周期。


CRI-O


CRI-Ohttps://cri-o.io)是由红帽发起并开源的一款容器运行时,是面向 Kubernetes 的 OCI(Open Container Initiative)的容器运行时,CRI-O 能够让 Kubernetes 使用任意兼容 OCI 的运行时作为运行 Pod 的容器运行时,CRI-O 本身也是 CRI-runtime。

部署 iSula、Containerd 和 CRI-O


在文章开头提到 KubeSphere 是支持任何兼容 CRI 接口的具体实现,接下来我们动手实践验证一下 3 个不同容器运行时:Containerd、CRI-O、iSula 的安装,以及对接 KubeSphere 进行查看与验证。


首先部署容器运行时,可根据需要在 Containerd、CRI-O、iSula 中任选其一。若部署多节点集群,注意集群中所有节点的容器运行时应保持一致。


Containerd


  1. 安装 runc。


$ curl -OL https://github.com/opencontainers/runc/releases/download/v1.0.0-rc92/runc.amd64$ mv runc.amd64 /usr/local/bin/runc && chmod +x /usr/local/bin/runc
复制代码


    1. 下载 Containerd 安装包。

    $ curl -OL https://github.com/containerd/containerd/releases/download/v1.4.3/containerd-1.4.3-linux-amd64.tar.gz$ tar -zxvf containerd-1.4.3-linux-amd64.tar.gz -C /usr/local$ curl -o /etc/systemd/system/containerd.service https://raw.githubusercontent.com/containerd/cri/master/contrib/systemd-units/containerd.service
    复制代码


    1. 配置 Containerd。


    $ mkdir -p /etc/containerd
    $ cat > /etc/containerd/config.toml << EOF[plugins] [plugins."io.containerd.grpc.v1.cri"] sandbox_image = "kubesphere/pause:3.2" [plugins."io.containerd.grpc.v1.cri".registry] [plugins."io.containerd.grpc.v1.cri".registry.mirrors] [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"] endpoint = ["https://registry-1.docker.io"] ## 这里可替换成dockerhub的镜像加速器EOF
    $ systemctl enable containerd && systemctl restart containerd
    复制代码


    1. 安装 crictl。


    $ VERSION="v1.19.0"
    $ curl -OL https://github.com/kubernetes-sigs/cri-tools/releases/download/$VERSION/crictl-$VERSION-linux-amd64.tar.gz
    $ sudo tar zxvf crictl-$VERSION-linux-amd64.tar.gz -C /usr/local/bin
    $ rm -f crictl-$VERSION-linux-amd64.tar.gz
    复制代码


    1. 配置 crictl。


    $ cat > /etc/crictl.yaml << EOFruntime-endpoint: unix:///run/containerd/containerd.sockimage-endpoint: unix:///run/containerd/containerd.socktimeout: 2debug: falsepull-image-on-create: falseEOF
    复制代码


    CRI-O


    1. 下载安装 CRI-O。


    $ yum install git make
    $ curl -OL https://github.com/cri-o/cri-o/releases/download/v1.18.4/crio-v1.18.4.tar.gztar -zxf crio-v1.18.4.tar.gz
    $ cd crio-v1.18.4
    $ mkdir -p /etc/crio /opt/cni/bin /usr/local/share/oci-umount/oci-umount.d /usr/local/lib/systemd/system
    $ make install
    $ echo "fs.may_detach_mounts=1" >> /etc/sysctl.conf
    $ sysctl -p
    复制代码


    1. 配置 CRI-O。



    $ vi /etc/crio/crio.conf
    复制代码


    找到如下参数进行修改


    pause_image = "kubesphere/pause:3.2"registries = [  "docker.io"       ## 这里可替换成dockerhub的镜像加速器]
    复制代码


    1. 启动 CRI-O。


    systemctl enable crio && systemctl restart crio
    复制代码


    安装 iSula(操作系统使用 openEuler 20.09)


    1. 在 openEuler 20.09 系统安装 iSula。


    $ yum install iSulad -y
    复制代码


    2. 配置 iSula。


    $ vim /etc/isulad/daemon.json
    复制代码


    3. 对如下参数进行修改。


    "registry-mirrors": [    "docker.io"           ## 这里可替换成dockerhub的镜像加速器 ]"pod-sandbox-image": "kubesphere/pause:3.2""network-plugin": "cni""cni-bin-dir": "/opt/cni/bin""cni-conf-dir": "/etc/cni/net.d"
    复制代码


    1. 启动 iSula。


    $ systemctl enable isulad && systemctl restart isulad
    复制代码


    KubeKey 部署 K8s + KubeSphere


    我们使用 KubeSphere 开源的集群安装工具 KubeKey 来快速部署 KubeSphere + Kubernetes 集群。


    1. 下载 KubeKey。


    这里暂时使用 kubekey v1.1.0-alpha.1 部署 Kubernetes 集群,该版本为预览版,支持多 container-runtime 也会包含在后续的正式版本中。


    $ curl -OL https://github.com/kubesphere/kubekey/releases/download/v1.1.0-alpha.1/kubekey-v1.1.0-alpha.1-linux-amd64.tar.gz
    $ tar -zxvf kubekey-v1.1.0-alpha.1-linux-amd64.tar.gz
    复制代码


    1. 创建配置文件。


    ./kk create config # 默认在同级目录下生成 config-sample.yaml
    复制代码


    3. 根据具体的机器环境信息修改配置文件,本文仅对配置 Docker 以外的 CRI 进行说明,其它配置项请参考 KubeSphere 官方文档(https://kubesphere.io/docs)。



    1. 一键部署集群。


    ./kk create cluster -f config-sample.yaml  --with-kubesphere v3.0.0
    复制代码


    访问 KubeSphere 验证不同的 CRI


    当以上 3 个集群部署完成后,可分别登录该集群的 KubeSphere 控制台,进入「集群节点页面」,查看集群节点所使用的容器运行时。



    iSula on openEuler 20.09



    Containerd



    CRI-O



    参考


    • KubeSphere GitHub: https://github.com/kubesphere/kubesphere

    • KubeSphere 中文论坛:https://kubesphere.com.cn/forum/d/3054-dockerkubernetes

    • Kubernetes 官方博客: https://kubernetes.io/blog/2020/12/02/dockershim-faq

    • K8S 弃用 Docker 了?Docker 不能用了?别逗了:https://mp.weixin.qq.com/s/z6s4QliBHs08pVj0GQ03dw



    头图:Unsplash

    作者:KubeSphere

    原文基于 KubeSphere 部署 TiDB 云原生分布式数据库

    来源:KubeSphere - 微信公众号 [ID:gh_4660e44db839]

    转载:著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


    2020-12-17 22:495313

    评论

    发布
    暂无评论
    发现更多内容

    云原生数据库厂商拓数派加入龙蜥社区,打造多样化的数据底座

    OpenAnolis小助手

    开源 操作系统 龙蜥社区 CLA 拓数派

    凝心聚力,共创未来 | 2023 开放原子全球开源峰会 OpenCloudOS 社区年会即将启幕

    开放原子开源基金会

    开源 云原生技术 OpenCloudOS 社区

    抖音超火的文本生成图像的软件AI Photo for mac直装版

    理理

    AI Photo下载 AI Photo破解版 文本到图像生成器 超火的抖音软件推荐

    企业出海,全球合并有高招!

    用友BIP

    中企出海

    恒参信道特性及其对信号传输的影响

    timerring

    信息论

    索信达“数据资产管理解决方案”全解析

    索信达控股

    波司登云原生微服务治理探索

    阿里巴巴云原生

    阿里云 微服务 云原生

    看数智平台如何助力企业实现产业互联

    用友BIP

    数智平台

    常用的表格检测识别方法——表格结构识别方法 (下)

    合合技术团队

    人工智能 深度学习 文字识别 表格检测

    速来!TDengine 六周年线上生日趴,“送”周边大礼包啦

    爱倒腾的程序员

    时序数据库 ​TDengine taosdata

    软件测试/测试开发丨Web自动化测试常见控件交互方法

    测试人

    软件测试/测试开发丨Selenium Web浏览器控制

    测试人

    程序员 软件测试 自动化测试 测试开发

    Flink CEP 在抖音电商的业务实践|电商行业实践专栏上线

    Apache Flink

    大数据 flink 实时计算

    SeaTunnel毕业!首个国人主导的数据集成项目成为Apache顶级项目

    Apache SeaTunnel

    大数据 开源 数据集成 国产开源 Apache SeaTunnel

    累计下载破 10 万,阿里云 ACR 制品中心 5 月最受欢迎镜像排行榜

    阿里巴巴云原生

    阿里云 阿里云云原生 容器镜像服务

    中企出海,全球供应链业务如何更有效地经营?

    用友BIP

    中企出海 全球供应链

    一分钟跑出 AI 图像的生成平台

    CODING DevOps

    AI Cloud Studio 云端IDE

    对线面试官-线程池(二)

    派大星

    Java 面试题

    共建、共享开源EDA共性技术框架 | 2023开放原子全球开源峰会开源EDA分论坛即将启幕

    开放原子开源基金会

    开源 EDA 开放原子

    海量数据运维要给力,GaussDB(for Cassandra)来助力

    华为云开发者联盟

    数据库 后端 华为云 华为云开发者联盟 企业号 6 月 PK 榜

    Desktop Goose for Mac(抖音桌面宠物鹅) v0.22激活版

    理理

    mac软件下载 抖音桌面宠物鹅 桌面宠物软件推荐 Desktop Goose mac破解版

    从Google、创业再到字节跳动,我在开源领域的实践与思考

    开源雨林

    创业 字节跳动 开源治理

    Arm NN 成功适配 openEuler Embedded,提供高性能神经网络推理能力

    openEuler

    Linux 操作系统 openEuler risc-v embedded

    创建编辑音频Audition 2022(AU2022)中文破解安装

    理理

    AU2022破解安装教程 Audition 2022下载 Audition 2022中文版 Adobe AU

    如何选择一款低代码平台?需要关注哪些细节?

    这我可不懂

    低代码 低代码平台 JNPF

    中核集团财务共享迈上新台阶

    用友BIP

    财务共享

    信道的数学模型

    timerring

    信息论

    支持神经滤镜Photoshop 2023 (ps 2023)Mac v24.5/24.6b中文激活

    真大的脸盆

    Mac Mac 软件 ps神经滤镜 photoshop神经滤镜

    探索云原生技术发展与应用实践,赋能企业数字化转型 | 2023开放原子全球开源峰会云原生分论坛即将启幕

    开放原子开源基金会

    开源 云原生

    【活动回顾】Databend 数据库表达式框架设计与实现 @GOTC

    Databend

    火山引擎A/B测试:MAB智能调优实验,企业活动效果提升新利器

    字节跳动数据平台

    AB testing实战 A/B 测试

    Docker出局?你还有iSula、Containerd和CRI-O_架构_KubeSphere_InfoQ精选文章