|
| 1 | +## 支持Cilium作为Kubernetes容器网络插件 |
| 2 | + |
| 3 | +自1.7.0版本起,TKEStack支持并集成了Cilium,用户可以在overlay、underlay网络环境中选择Cilium作为集群的容器网络插件。 |
| 4 | + |
| 5 | +Cilium是一款在Apache-2.0 License分发的开源软件,用于管理和保护以Kubernetes为代表的容器管理平台部署的应用服务之间的网络连接。 |
| 6 | + |
| 7 | +Cilium的基础是一种名为eBPF的新技术,它支持强大的安全可视化功能,并可以在Linux中动态插入控制逻辑程序。由于eBPF是运行在Linux内核中的,所以在更新应用Cilium安全策略时不需要对应用或容器配置进行任何修改。下图是Cilium的架构图<sup>[1]</sup>: |
| 8 | + |
| 9 | +<img alt="Cilium架构" width="100%" src="cilium-architecture.png"> |
| 10 | + |
| 11 | +借助eBPF,Cilium可以利用很多Linux内核的新技术大大提升集群的网络性能。例如Linux社区为替代iptables而启动的bpfilter项目<sup>[2]</sup>可以有效解决网络瓶颈问题。下图是关于bpfilter的性能测试数据<sup>[3]</sup>: |
| 12 | + |
| 13 | + |
| 14 | +<img alt="Cilium架构" width="100%" src="bpfilter-performance.png"> |
| 15 | + |
| 16 | +## 支持Containerd作为集群容器运行时 |
| 17 | + |
| 18 | +去年年末,Kubernetes社区宣布预计最早将在2021年晚些时候发布的1.23版本中废弃dockershim<sup>[4]</sup>,这意味着未来的Kubernetes将不再支持以Docker作为容器运行时。 |
| 19 | + |
| 20 | +TKEStack社区经过研讨调研后,决定使用Containerd作为未来替代Docker的容器运行时。Containerd是除Docker外当下最为成熟稳定,并被广泛接受的容器运行时,下图是2021年年初关于容器运行时使用率相关的调查统计<sup>[5]</sup>: |
| 21 | + |
| 22 | +<img alt="运行时使用率" width="100%" src="container-runtimes.png"> |
| 23 | + |
| 24 | +Containerd的架构是client-server架构,支持runc、Kata Container等多种底层运行时,同时又有很高的扩展性,下图为Containerd的整体架构图<sup>[6]</sup>: |
| 25 | + |
| 26 | +<img alt="containerd整体架构" width="100%" src="containerd-architecture.png"> |
| 27 | + |
| 28 | +作为过渡时期,如果用户选择的Kubernetes版本依旧支持dockershim,TKEStack将允许用户在创建集群时决定选择Docker还是Containerd作为容器运行时, |
| 29 | + |
| 30 | + |
| 31 | +## 灵活优雅的集群应用服务定义声明 |
| 32 | + |
| 33 | +在即将发布的版本中,TKEStack将支持在`Cluster`对象中定义基于Helm chart打包的应用,允许用户根据自己的业务需求,在创建集群时灵活优雅地剪裁一些默认应用服务,或是增添一些用户自定义的的应用。下图展示了整体的设计架构: |
| 34 | + |
| 35 | +<img alt="应用声明架构" width="100%" src="tke-application-architecture.png"> |
| 36 | + |
| 37 | +这一功能将支持用户以云原生的方式更加方便灵活地设计自己的业务模型,减少了很多重复性工作,把更多的精力集中到更值得关注的业务上。同时,借助强大的Helm chart,用户可以很方便地打包维护自己的应用服务,并通过`values.yaml`进行配置管理以适应各种业务场景。 |
| 38 | + |
| 39 | + |
| 40 | +## 全新的TKEStack社区网站 |
| 41 | + |
| 42 | +为了更好的持续维护TKEStack社区的文档,同时方便用户及开发人员们分享关于TKEStack及云原生相关的技术知识,TKEStack在2021年6月开放了新的社区网站 https://tkestack.github.io/web/zh/ 。 |
| 43 | + |
| 44 | +<img alt="TKEStack网站" width="100%" src="tkestack-web.png"> |
| 45 | + |
| 46 | +参考云原生诸多项目维护经营网站的方案,TKEStack采用了Hugo的Docsy主题来建设和维护网站,当前网站开放了`Docs`和`Blog`两个模块,后续将逐步开放更多的模块和内容。欢迎各位TKEStack的用户和开发者们到我们的网站github仓库 https://github.com/tkestack/web 给出意见分享经验。 |
| 47 | + |
| 48 | + |
| 49 | + |
| 50 | +## 参考资料 |
| 51 | + |
| 52 | +[1] Cilium 1.0: Bringing the BPF Revolution to Kubernetes Networking and Security [https://cilium.io/blog/2018/04/24/cilium-10] |
| 53 | + |
| 54 | +[2] BPF comes to firewalls[https://lwn.net/Articles/747551/] |
| 55 | + |
| 56 | +[3] Why is the kernel community replacing iptables with BPF? [https://cilium.io/blog/2018/04/17/why-is-the-kernel-community-replacing-iptables] |
| 57 | + |
| 58 | +[4] Dockershim Deprecation FAQ [https://kubernetes.io/blog/2020/12/02/dockershim-faq/] |
| 59 | + |
| 60 | +[5] Sysdig 2021 container security and usage report: Shifting left is not enough [https://sysdig.com/blog/sysdig-2021-container-security-usage-report/] |
| 61 | + |
| 62 | +[6] Introduction and Deep Dive Into Containerd [https://static.sched.com/hosted_files/kccnceu2021/d3/containerd-KubeConEU2021.pdf] |
0 commit comments