❝
12 月 19 日,KubeSphere 开源社区联合 CNCF 将在北京举办一场年度的云原生 Meetup,聚焦用户落地实践的干货分享,以及现场动手实践的 Workshop 和闪电演讲,现场有来自 AWS、中通、微众银行的多位重量级讲师进行分享,欢迎大家点击文末的「阅读原文」或扫描二维码免费报名 Meetup!
❞
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
Containerd(https://containerd.io)是一个 CNCF 毕业项目,目前也是工业级标准的容器运行时,它极为简单、健壮并且具备可移植性。Containerd 可以在宿主机中管理完整的容器生命周期。
CRI-O
CRI-O(https://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
安装 runc。
$ curl -OL https://github.com/opencontainers/runc/releases/download/v1.0.0-rc92/runc.amd64
下载 Containerd 安装包。
配置 Containerd。
$ mkdir -p /etc/containerd
4. 安装 crictl。
$ VERSION="v1.19.0"
5. 配置 crictl。
$ cat > /etc/crictl.yaml << EOF
CRI-O
下载安装 CRI-O。
$ yum install git make
配置 CRI-O。
$ vi /etc/crio/crio.conf
找到如下参数进行修改
pause_image = "kubesphere/pause:3.2"
启动 CRI-O。
systemctl enable crio && systemctl restart crio
安装 iSula(操作系统使用 openEuler 20.09)
在 openEuler 20.09 系统安装 iSula。
$ yum install iSulad -y
2. 配置 iSula。
$ vim /etc/isulad/daemon.json
3. 对如下参数进行修改。
启动 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
创建配置文件。
./kk create config # 默认在同级目录下生成 config-sample.yaml
3. 根据具体的机器环境信息修改配置文件,本文仅对配置 Docker 以外的 CRI 进行说明,其它配置项请参考 KubeSphere 官方文档( https://kubesphere.io/docs)。
一键部署集群。
./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
免费报名 Meetup
时间:12 月 19 日下午 13:00 - 18:00
地点:aiospace 机遇空间
地址:北京市朝阳区798艺术区D区798西街
报名方式:点击「阅读原文」或扫描二维码
关于 KubeSphere
KubeSphere (https://kubesphere.io)是在 Kubernetes 之上构建的开源容器混合云,提供全栈的 IT 自动化运维的能力,简化企业的 DevOps 工作流。
KubeSphere 已被 Aqara 智能家居、本来生活、新浪、华夏银行、四川航空、国药集团、微众银行、紫金保险、中通、中国人保寿险、中国太平保险、中移金科、Radore、ZaloPay 等海内外数万家企业采用。KubeSphere 提供了开发者友好的向导式操作界面和丰富的企业级功能,包括多云与多集群管理、Kubernetes 资源管理、DevOps (CI/CD)、应用生命周期管理、微服务治理 (Service Mesh)、多租户管理、监控日志、告警通知、存储与网络管理、GPU support 等功能,帮助企业快速构建一个强大和功能丰富的容器云平台。
本文分享自微信公众号 - KubeSphere(gh_4660e44db839)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。