作者 | 汤志敏、谢瑶瑶

会议完整视频回顾:https://www.bilibili.com/video/av88668762

2 月 12 日,阿里云和 CNCF 联合举办了线上研讨会,首次完整介绍了阿里云对 Kubernetes 社区的布局,包括了 10 个类别,20 多个开源项目,提供了完整的 Kubernetes 生命周期管理。本文汇集了此次会议完整视频回顾及资料下载,并整理了会议上未能及时回答的问题,希望能够对大家有所帮助~

关注“阿里巴巴云原生”公众号,后台回复 “会议” 即可下载 PPT。

什么是 SIG Cloud Provider

随着时间的发展,越来越多的企业在生产环境使用 Kubernetes。Kubernetes 被广为接受,离不开其良好的设计和繁荣的社区。目前围绕着 Kubernetes 已经有 20 个左右的兴趣小组(SIG),SIG Cloud Provider 则是 Kubernetes 的重要兴趣小组之一,致力于推动所有云厂商以标准的能力提供 Kubernetes 服务。

SIG-Cloud-Provider-Alibaba 是 SIG Cloud Provider 在国内唯一的子项目。

Cloud Provider SIG 是 Kubernetes 的云厂商兴趣小组,致力于让 Kubernetes 的生态系统往厂商中立的方向演进,他会负责协调不同厂商尽可能以统一的标准来满足开发者的需求。目前加入 Cloud Provider SIG 包括了 7 家云厂商,包括 AWS、GCP、阿里云、IBMCloud 等。

为什么阿里云要加入 SIG Cloud Provider

1.和全球云厂商共同推动多云的标准,将阿里云的优秀实践反哺社区

在全面上云的时代,云已经重塑了企业IT架构。云原生计算就是一组最佳实践和方法论,如何在公共云、专有云、多云环境中,构建可伸缩、健壮、松耦合的应用,可以更快速的创新和低成本的试错。

阿里云作为国际有影响力的云厂商,也希望能够推动Kubernetes的进一步标准化,并进一步和横向云厂商如AWS、Google、Azure进行技术协同,优化云和Kubernetes连接,并统一不同组件的模块化和标准化协议。

2.对阿里云的 Kubernetes 开发者带来透明可控、共建协同、平滑演进的能力

对于 Kubernetes 的开发者和用户,我们希望基于阿里云打造 Kubernetes 的最佳运行环境,并将围绕在 Kubernetes 的阿里云插件开源出来。而阿里云容器服务 ACK 也会尽量复用这些组件。

  • 透明可控:对于研究性质的开发者,可以基于这些插件自行搭建 Kubernetes 集群;对于容器服务 ACK 的用户,也可以更加透明的了解相关实现;
  • 共建协同:如果对阿里云上使用 Kubernetes 的计算、网络、存储等领域有需求的开发者,可以提 Issue 或参与到开源组件开发中一起贡献,并参与 RoadMap 的制定;
  • 平滑演进:阿里云 Kubernetes 开源插件提供了 Day 1 的部署能力,但是对企业的运维、升级、稳定性掌控等提出了更高的要求。如果需要 Day 2 的持续升级、高可用保障、纠错推荐等专家服务,可以平滑演进到容器服务 ACK。

SIG Cloud Provider Alibaba的运作机制

  • Slack
  • 双月度会议
  • 会议内容纪要:
    Google Docs、
    YouTube
  • 会议语言:中文、英文

阿里云 Kubernetes 产品家族简介

阿里云 Kubernetes 开源套件 全家福

Kubernetes 作为云原生时代的应用操作系统,已经成为事实上的标准。阿里云在 Kubernetes 实践的过程中开源了众多的项目,如位于底层的计算、存储、网络、安全等相关的 5 个大的类别和上层领域相关的 AI、应用管理、迁移、Serveless 等 5 个大的类别,为用户应用提供全栈式生命周期管理。

SIG-Cloud-Provider-Alibaba 为 K8s 在阿里云上的云原生最佳实践提供一个沟通的桥梁,通过兴趣小组的方式让所有参与的个人、组织理解 CloudProvider 的原理并运用到生产实践中,实现其业务价值。

详见下文。

CloudController

  • Cloud-provider
  • Cluster-api

网络

  • Terway(CNI)
  • Flannel(CNI)
  • ingress
  • External-dns

存储

  • CSI
  • FlexVolume
  • auto-provision

弹性

  • Cron HPA
  • cluster-autoscaler

安全

  • KMS provider
  • Kube2ram
  • RAM Authenticator
  • SGX device plugin

迁移

  • Derrick
  • Velero
  • Image Builer

AI

  • Arena
  • GPU share

ServiceBroker

  • ServiceBroker

Serverless

  • Virtual-kubelet

应用管理

  • Kube-eventer
  • metrics-adapter
  • log-pilot
  • openKruise
  • OAM

部分开源组件简介

CloudController

CloudController 指 K8s 的 cloud-controller-manager 组件(简称 CCM), 提供 Kubernetes 与各个云厂商基础服务的对接能力(包含网络负载均衡,VPC 路由,ECS,DNS 等)。主要由 NodeController、ServiceController、RouteController、PVLController 四大控制器实现。

**NodeController **实现了计算节点的管理,例如 ECS 节点生命周期管理,给节点打上可用区、Region、hostname 等标识,为编排系统在计算池上调度工作负载提供全方位的信息。同时定期轮询 ECS 的 IP 地址及检测 ECS 资源状态(是否被释放)等,动态更新节点信息,确保编排系统及时响应计算节点事件。

**ServiceController **实现了应用负载均衡管理,通过监视 Kubernetes Service 对象的变化,自动的为应用配置并管理云上负载均衡服务(SLB 配置,监听配置,虚拟服务器组配置),根据应用副本变化动态的调整负载均衡的后端服务器组,无需人工干预。在此基础上,我们定义了一组丰富的 Annotation,用以自定义应用负载均衡的配置,同时我们同社区积极合作,共同推进配置的标准化,同时在 K8s 原因的服务发现模型上扩展了弹性网卡直通模式,减少了服务发现的网络层级,整体提升了 10% 的应用网络性能。

高性能网络组件 Terway

Terway 实现了 Kubernetes CNI 规范,专为阿里云环境优化,并支持丰富的企业特性,支持 VPC 路由模式,ENI 模式、ENI 多 IP 等多种模式等,性能优秀,ENI 模式相比原生 VPC 提升 10% 左右。

Terway 和阿里云底层 IAAS 网络深度整合,让 Pod 作为云网络一等公民无缝使用 CEN、SLB 等网络产品,使用弹性网卡让网络性能 0 损失,使容器化的过程没有体验和性能的降级。同时支持 Kubernetes 网络策略,Qos 流控等高级功能。

高性能容器存储 CSI

阿里云 CSI 插件实现了在 Kubernetes 中对容器存储卷的生命周期管理,支持动态创建、挂载、使用云数据卷。 当前的 CSI 实现基于 K8S 1.14 以上的版本;支持的阿里云存储:云盘、NAS、CPFS、OSS、LVM 等。

高性能日志采集 LogPilot

Log-Pilot 是一个高效的智能容器日志采集工具,其不仅能够便捷地采集容器的标准输出日志,同时还能够动态地发现采集容器内部的日志文件;其完全采用声明式的配置方式,能够自动地感知集群中容器的状态来动态地配置容器日志采集,同时其还具备很多高级特性,诸如日志的自动 CheckPoint 及句柄保持机制、支持自动日志数据打标以及自定义 Tag 等机制,可灵活地将日志数据采集到多种不同的日志存储后端,比如 ElasticSearch、Kafka、Logstash、Redis,Graylog 等。

机器学习轻量级解决方案 Arena

Arena 是基于 Kubernetes 的机器学习轻量级解决方案,支持数据准备,模型开发,模型训练,模型预测的完整生命周期,提升数据科学家工作效率。方便数据科学家和算法工程师快速开始利用阿里云的资源(包括 ECS 云服务器、GPU 云服务器、分布式存储 NAS、CPFS、 对象存储 OSS、Elastic MapReduce、负载均衡等服务)执行数据准备、模型开发、模型训练、评估和预测等任务。并能够方便地将深度学习能力转化为服务 API,加速与业务应用的集成。在提升数据科学家效率的同时,通过 GPU 资源的可视化管理和设备的共享调度提升集群 GPU 资源的利用率。

欢迎大家参加 SIG Cloud Provider

本次线上研讨会首次介绍了阿里云在 Kubernetes 的社区布局。受限于时间和篇幅,并不能介绍完所有开源组件的详细信息,而希望可以授之以渔,让对 Kubernetes 感兴趣的开发者找到对应的开源项目。我们欢迎更多的开发者一起来参与共建,无论是提 PR 或 Issue,还是对 Roadmap 提出建议。后续,SIG Cloug Provider Alibaba 也会针对具体的组件分享原理、最佳实践。

Q & A

Q1:阿里云 K8s 的 Cloud Provider 能否针对每个功能点添加参数来开关吗?

A1:可以通过配置annotation实现具体功能点,具体可以参考文档。

Q2:如果我们要在阿里 CCM上的基础上修改的话,是不是有 K8s 的版本问题,因为我们想用自己的 Kubernetes 特定版本。

A2:可以,CCM 不依赖于 K8s 版本。

Q3:阿里云各个基于 Kubernetes 的容器服务是否直接使用的开源 CCM? 如果是,内部在上线前做了哪些调整?另外,provider_id 格式具体是什么?

A3:是的,完全基于开源版本的 CCM。provider_id 格式为 regionid.{regionid}.regionid.{nodeid}。

Q4:CCM 必须要 K8s 的 nodename 和阿里云的实例 id 一样吗?之前运维说必须一样,但这样没有意义的 nodename 用起来很恶心。
A4:不需要。目前只需要配置 providerid 参数即可。

Q5:terway 底层如何加速?kernel level 还是 dpdk?

A5:terway 分为不同的网络模式,不同模式的网络配置不通。

  • 独占 ENI 的模式直接使用 IAAS 层的网卡作为 Pod 的网卡,host 上不涉及虚拟化,用户 Pod 中可以使用 DPDK来加速应用网络。节点外依赖于阿里云自研的高性能 IAAS 网络;
  • 共享 ENI 模式中使用 Ipvlan 的轻量级虚拟化方案作为节点内虚拟化的手段,性能相对 Host 网络性能损失极低。

Q6:POD 底层的内核参数允许 namespace 化么?

A6:POD 底层的内核参数是否允许 namespace 化依赖于内核的支持情况,一般在较新的内核上比如 Aliyun Linux2 中的 4.19 的内核,大部分内核参数都允许在 Pod 上指定和修改的。

Q7:在安全容器方面,阿里现在有什么产品?

A7:目前阿里云的容器服务已经提供了安全沙箱作为用户的可选容器引擎,并且部分阿里云 Serverless 形态的产品如 SAE、ECI 也是构建在安全容器之上。

Q8:Arena 支持多租户和虚拟 GPU 吗?

A8:Arena 重用 Kubernetes 的现有用户授权和多租户工作机制,不同用户可以分配不同的 kubeconfig,并利用其进行认证,同时通过 namespace 进行资源隔离和共享。而站在 Arena 的角度,用户只能看到本 namespace 的训练和推理任务,其他 namespace 下的任务并不可见。

这里的虚拟 GPU,指的是英伟达的虚拟 GPU 技术,目前针对于阿里云上已经支持 P4 的虚拟 GPU,并且已经和阿里云容器服务 Kubernetes 完成了集成,在阿里云的容器服务上就能体验。而在 Arena 的角度来说虚拟 GPU 并不是特殊的 GPU 资源,是可以实现对于该资源的调度和编排的。

Q9:多容器共享 GPU 方案支持资源隔离吗?能限制住显存吗?

A9:首先感谢您关注我们的 GPU 共享方案,阿里云容器服务贡献了业界目前唯一的开源 GPU 共享方案。目前我们的方案还是在调度层面实现多容器的 GPU 共享,并且可以和 TensorFlow 等框架相结合实现应用层面的 GPU 资源限制。可以通过我们的文档了解目前的使用方式。

但是我们也在和阿里云的底层团队研发安全和高性能的 GPU 隔离方案,相信在不久的未来,大家能够体验到从 GPU 共享调度到隔离的完整方案。

Q10:ExternalDNS 目前支持 alicloud 的 DNS 服务吗,支持程度如何?

A10:目前是支持 alicloud 的 DNS 服务 privatezone 的,支持同步 K8s 集群的服务 / Pod 等解析到 DNS 服务中,降低集群内部署的 coredns 造成的损耗。

Q11:阿里版本的 nginx ingress 与社区官方版的主要区别是什么呢?

A11:阿里云在社区的基础上实现了更加高级的功能,诸如 NGINX Server 配置的动态更新,支持基于 Header、Cookie 和请求参数以及权重的混合灰度发布策略等。

Q12:阿里云 Kubernetes 以及这些开发的套件的发布周期是什么样的?

A12:对于 K8s 大版本的支持力度是半年更新一个稳定版本。同时会不定期做 Bugfix 和安全修复。

Q13:问问边缘版 ACK@Edge 商用稳定版本已经发布了么,有相关用户在用么

A13:ACK@Edge 已经可以用于生产环境,目前已经有在线教育、视频、IoT、CDN 等领域和行业的用户在使用,商业版预计 2020.6 月前推出。

Q14:宿主 WORKER 节点是否遇到过 cGroup 内存泄漏, 导致 POD cannot allocatie memory 的问题? 如果有如何解决的?

A15:容器服务采用的 cgroup driver 是 systemd cgroup driver,目前没有遇到这个问题。

Q15:POD 的CPU 内存资源是否和宿主是隔离的?如何隔离的?

A15:可以通过 kubelet 为宿主机预留资源的方式,这样 Pod 的资源就会被限制在剩余的资源空间内来实现隔离。

Q16:aws 有 eckctl,aliyun 有对应的工具吗?叫 ackctl ?

A16:可以参见文档。

Q17:请问阿里云对 Windows 容器的支持程度如何?

A17:目前支持 Window 1809,即将支持 1903。并支持 Linux 集群添加 Windows 节点。

Q18:可以单独使用某一个开放组件集成到现有的 K8s 集群吗?

A18: 可以。现有的 K8s 集群完全是满足 K8s Conformance 测试的。

“阿里巴巴云原生关注微服务、Serverless、容器、Service Mesh 等技术领域、聚焦云原生流行技术趋势、云原生大规模的落地实践,做最懂云原生开发者的技术圈。”

回顾 | Kubernetes SIG-Cloud-Provider-Alibaba 首次网研会(含 PPT 下载)相关推荐

  1. SIG Cloud Provider Alibaba 网研会第 2 期顺利召开 | 云原生生态周报 Vol. 46

    作者 | 高相林.陈俊.孙健波 业界要闻 Gartner 报告:阿里云与 AWS 并列入选容器产品最完善 近日,国际知名调研机构 Gartner 发布 2020 年容器公有云竞争格局报告,阿里云再度成 ...

  2. Kubernetes and Cloud Native Meetup (北京站)最全资料下载

    奇技指南: 毫无疑问,Kubernetes 已经成为容器领域当之无愧的事实标准.3月16号,Kubernetes & Cloud Native Meetup 北京站在酒仙桥360公司总部举办, ...

  3. 【精彩回顾】第二届微医前端技术沙龙(附PPT下载)

    5 月 25 日,以「无界」为主题的第二届微医前端技术沙龙成功举办.本届沙龙的演讲题目涵盖了前端技术几个主要的应用场景,包括服务端.桌面端以及跨平台的开发.最近几年前端技术发展非常快,各种可以提高开发 ...

  4. Kubernetes and Cloud Native Meetup (广州站)资料下载

    毫无疑问,Kubernetes 已经成为容器领域当之无愧的事实标准.除了 Google.Microsoft 等技术巨擘们在容器领域里多年的博弈外,国内的 BAT.滴滴.蚂蚁.今日头条等技术大厂,也都已 ...

  5. Kubernetes and Cloud Native Meetup (广州站)资料下载 1

    毫无疑问,Kubernetes 已经成为容器领域当之无愧的事实标准.除了 Google.Microsoft 等技术巨擘们在容器领域里多年的博弈外,国内的 BAT.滴滴.蚂蚁.今日头条等技术大厂,也都已 ...

  6. 从开发者的角度比较Kubernetes和Cloud Foundry

    [编者的话]本文从一个开发者的角度,对Kubernetes和Cloud Foundry进行了多维度的比较,包括:平台是否类PaaS,支持的容器,管理控制台,命令行接口,零宕机部署,外部负载均衡,内部负 ...

  7. 大咖云集!Kubernetes and Cloud Native Meetup 深圳站开始报名!

    由阿里技术生态联合 CNCF 官方共同出品的 Kubernetes & Cloud Native Meetup 将在 8 月 31 日来到深圳.届时,阿里云.蚂蚁金服高级技术专家将携手来自国内 ...

  8. 【译】介绍 Consul 新的学习平台和新资源:Kubernetes, AWS Cloud Map 及更多

    DEC 17 2018 KAIT CARTER 新 Consul 学习体验 新的 Consul 学习平台 现已上线.如果您是 Consul 的新手用户,您现在可以通过 入门 学习来了解 Consul ...

  9. 2020保研夏令营回顾--清华网研院+清华深研院

    个人背景: 某211信安专业,排名1/165,国奖一次,四级582,六级594,参加过亚洲科学夏令营: 和安全挂边儿的竞赛:电子数据取证,国家级.区域级奖项各一次: 在研项目一项,无论文: 一.清华网 ...

最新文章

  1. 2022-2028年中国自热米饭市场竞争策略及行业投资潜力预测报告
  2. linux 内核打印函数 printk 用法
  3. html中样式控制的问题
  4. JAVA项目实训struts2_Java Web项目搭建过程记录(struts2)
  5. 汇编语言程序如何转化成c语言,如何把汇编语言转换成C语言
  6. 阿里妈妈技术团队4篇论文入选WSDM 2022
  7. c语言上机指导答案清华,第一章自测练习答案清华大学c语言习题实验指导及课程设计...
  8. php setheader,PHP-MPDF:如何删除setHeader()和setFooter()边框
  9. 微信小程序nginx+uwsgi+django配置的域名问题
  10. jsf如何与数据库连接_JSF数据库示例– MySQL JDBC
  11. ubuntu xampp进入mysql安全模式
  12. web前端开发与应用——超链接
  13. 润乾报表V4在weblogic下部署找不到授权文件的解决方法
  14. 从新一代TPU到Google.ai,详解谷歌I/O首日人工智能五大亮点
  15. 怎么看曲线有没有斜渐近线_怎样判断一个曲线有无斜渐近线
  16. 典型二阶系统的计算机仿真,二阶系统电路设计_RLC串联二阶电路实验报告
  17. Unity中使用QQ邮箱发送验证码
  18. janusgraph源码分析1-下载编译启动 1
  19. C语言贪心算法书包问题,贪心算法背包有关问题(帮忙看看看)
  20. js原生获取html的高度,如何通过js获取Html元素的实际宽度高度

热门文章

  1. 10、 HAVING:过滤分组
  2. 1090 Highest Price in Supply Chain (25 分)【难度: 一般 / 知识点: 树的遍历】
  3. 【PAT乙级】1092 最好吃的月饼 (20 分)
  4. 实验:交换机生成树协议STP--功能验证
  5. 让对方ping不通你的主机
  6. 3.1.2 内存管理的概念
  7. Freemarker介绍
  8. Jedis连接Redis集群
  9. python函数修饰器_Python函数装饰器指南
  10. 终端服务器有多种运行模式,云终端的三种工作模式你都知道的吗