华为云王泽锋:华为云基于 K8S 构建企业级Serverless Container平台
2020-02-27 480浏览
- 1.基于Kubernetes构建企业级Serverless Container平台 的探索与实践 王泽锋 kevin-wangzefeng 华为云K8S开源负责人
- 2.王泽锋 @kevin-wangzefeng • 华为云K8S开源负责人 • Kubernetes 社区Maintainer • 2013年起参与华为PaaS平台设计开发, 专注于 PaaS 产品和容器开源社区 • 目前负责华为云Kubernetes开源团队在 社区整体的贡献
- 3.Kubernetes在华为云的历程 Kubernetes 2013 华为PaaS项目启动 基于CloudFoundry构 建PaaS平台 2014 2016 2018 华为PaaS项目二期 (FusionStage) 华为云容器引擎服 务发布 华为云容器实例服务 发布 切换至Kubernetes平 台,并大力投入K8S 与CNCF 国内首家基于 Kubernetes的公有 云容器服务,提供企 业级保障 全球首家基于 Kubernetes的公有云 Serverless容器服务, 容器免运维、按需使用
- 4.容器的三大好处, 为应用而生 资源隔离与利用率提升 秒级弹性 环境一致性,简化交付
- 5.容器的三大好处, 为应用而生 资源隔离与利用率提升 秒级弹性 环境一致性,简化交付
- 6.Kubernetes的使用形式
- 7.Kubernetes的常见使用形态 私有云自己部署 Kubernetes 优点 • DIY的乐趣/成就感 也可能是苦难 • 全套私有,无隐私顾虑 数据、请求都在本地 • 资源规划、安装部署、升级
- 8.Kubernetes的常见使用形态 私有云自己部署 Kubernetes 优点 缺点 • DIY的乐趣/成就感 • 网络选型、存储选型 也可能是苦难 • 全套私有,无隐私顾虑 数据、请求都在本地 • 资源规划、安装部署、升级 • 100% 运维成本 • 一次性、阶段性资源成本 • 集群规模受限于底层资源 • 资源利用率有限
- 9.Kubernetes的常见使用形态 公有云半托管Kubernetes专属集群 优点 • 独占集群 用户间无干扰 • 现成的集群配置最佳实践 • 推荐的升级时机 及时跟进社区新版本 • 与云平台共享运维成本
- 10.Kubernetes的常见使用形态 公有云半托管Kubernetes专属集群 优点 缺点 • 独占集群 • 价格门槛 —— Flavor 单价 * N 用户间无干扰 • 现成的集群配置最佳实践 • 推荐的升级时机 及时跟进社区新版本 • 与云平台共享运维成本 • 用户为资源利用率买单 • 分钟级的VM弹性阔容
- 11.另一个分支:容器实例服务
- 12.业界的容器实例服务 优点明显 • 免运维,开箱即用 • 细粒度资源定价 • 秒级扩缩,秒级计费 • ……
- 13.业界的容器实例服务 优点明显 然而 • 免运维,开箱即用 • 私有API • 细粒度资源定价 • 不兼容K8S • 秒级扩缩,秒级计费 • vendor lock-in • …… • ……
- 14.业界的容器实例服务 优点明显 然而 • 免运维,开箱即用 • 私有API • 细粒度资源定价 • 不兼容K8S • 秒级扩缩,秒级计费 • vendor lock-in • …… • ……
- 15.业界的容器实例服务 优点明显 然而 • 免运维,开箱即用 • 私有API • 细粒度资源定价 • 不兼容K8S • 秒级扩缩,秒级计费 • vendor lock-in • …… • …… 典型代表 Azure ACI Container Instance Serverless Container
- 16.业界容器实例服务的兼容方案
- 17.业界容器实例服务的兼容方案 • 接管的pod本质上未受k8s调度 • 数据面方案不完整 • 难以确定的Kube-proxy位置 • 尚不明朗的容器存储
- 18.业界容器实例服务的兼容方案 • 接管的pod本质上未受k8s调度 • 数据面方案不完整 • 难以确定的Kube-proxy位置 • 尚不明朗的容器存储 Virtual-kubelet的适用场景不在于此
- 19.如果基于K8S多租构建Serverless Container?
- 20.如果基于K8S多租构建Serverless Container 优势 • 支持k8s原生API和命令行 • 低价格门槛 细粒度资源、秒级计费 平台为资源利用率买单 • 用户零运维,开箱即用
- 21.如果基于K8S多租构建Serverless Container 优势 主要挑战: • 支持k8s原生API和命令行 • 低价格门槛 细粒度资源、秒级计费 平台为资源利用率买单 • 用户零运维,开箱即用 • K8S只支持软多租
- 22.Kubernetes多租形态的选择 SaaS平台 在k8s之上封装多租,控制面隔离要求低 数 强 据 面 隔 离 性 应用来自外部最终客户,数据面隔离要求高 公有云PaaS/CaaS/KaaS平台 暴露K8S API,控制面隔离要求高 应用来自外部最终客户,数据面隔离要求高 控制面隔离性 弱 强 小公司内部平台 大型企业内部平台 整体隔离要求低 避免部门间业务管理干扰,控制面隔离要求高 K8S原生能力基本满足 应用来自企业内部,相对可信 弱
- 23.如果基于K8S多租构建Serverless Container 优势 主要挑战: • 支持k8s原生API和命令行 • K8S只支持软多租 • 低价格门槛 • 租户概念和访问控制 细粒度资源、秒级计费 平台为资源利用率买单 • 用户零运维,开箱即用 Control plan fairness • 节点隔离和Runtime安全 • 网络隔离
- 24.华为云的探索与实践
- 25.以Kubernetes为基础打造CCI容器实例服务 IAM CCI Console(用户) CCI OM Console(管理员) (容器API及联邦) CCI API Server/ CCI Federation iCluster Manager (容器编排)CCI Kubernetes Master 物理机 物理机 (监控Agent) ICAgent AOM 应 用 运 维 管 理 IaaS Kubelet CRI FlexVolume Docker FUXI CNI iCAN VPC网络 Kata …… (容器存储) Container Storage Mgr (容器网络) iCAN Master 物理机 EVS块存储 & SFS文件存储
- 26.CCI中租户概念的封装 CCI对接IAM支持多租户能力,支持单租户下有多个Project,每个Project下可以建立多个Kubernetes Namespace, 每个Namespace当前可以独立关联IaaS VPC. Project 1 租户A Project 3 租户B 1:N 1:N Project 2 1:N VPC A 1:1 VPC B NameSpace 3 1:1 VPC C NameSpace 4 1:1 VPC C 1:1 VPC D 1:1 VPC E 1:1 VPC F 1:1 VPC F NameSpace 2 NameSpace 5 1:N 1:N Project 4 1:1 NameSpace 1 NameSpace 6 NameSpace 7 1:N NameSpace 8
- 27.多租场景的网络隔离 Namespace A Namespace B Namespace C Kubernetes Master Watch Network CRD Node DNS Node DNS Node DNS Network controller • 每个Namespace一个VPC, 一个DNS • Namespace初始化时自动 创建VPC网络,加载DNS Pod Pod Pod Pod Pod Pod Provision Network • Pod 启动时,CNI插件根据 所属Namespace自动接入 VPC
- 28.iSula 统一容器引擎 多运行时,多容器形态,按需使用 Kubernetes CRI 容 器 的 检 测 与 运 维 运行时 Docker Stella Docker容器 Kata容器 系统容器 Unikernel 安全隔离 runC runV runlxc rununik P2P镜像分发 基础设施 CSI CNI 容 器 安 全
- 29.华为iSula安全容器 K8S Kata/RunV docker engine Pod docker image Containerd container 9pfs / virtio-blk runc container Kata-runtime Kata Agent Linux Kernel Qemu-lite namespace cgroup KVM KSM Linux Kernel Hardware
- 30.通过Kata容器实现多租户容器强隔离 Virtual Machine Virtual Machine Kata Container Kata Container Kata Container Kata Container Pod/container Pod/container Pod/container Pod/container Pod/container Pod/container Pod/container Pod/container APP APP APP APP APP APP APP APP middleware middleware middleware middleware middleware middleware middleware middleware Linux Kernel Linux Kernel Linux Kernel Linux Kernel docker engine docker engine Guest OS Guest OS Hypervisor Linux Kernel Hardware Hypervisor docker engine Linux Kernel Hardware • 虚拟化层的存在,保障了容器在多租户场景下的安全性。 • 高度裁剪和优化过的KVM、guest OS保证了VM启动时间极短,性能损耗极小。 • 接口层支持对接docker引擎或crio,镜像完全兼容docker镜像,无需修改。完美融入K8S容器生态。
- 31.CCI:Serverless Kubernetes,让弹性与成本可以兼得 AI Web App Function CI/CD Genomics … K8S-Native Serverless Container • 原生支持Kubernetes API与命令行 K8S 集群联邦 • 无需用户感知K8S集群及物理资源,设施免运维 • 提供图形化控制台,端到端完整用户体验 K8S 集群N K8S 集群1 Node 1 Pod N Pod 1 Kata Container Container Container … Node 1…N Node N Kata Container Container Container … Pod 1…N … Pod 1…N Kata Container Container Container Kata Container Container Container Hypervisor-Based Secure Container • 原生支持Kata Container,Docker生态兼容 • 内核虚拟化技术,全面的安全隔离与防护 • 自有硬件虚拟化加速技术,更高的安全容器性能 高性能、异构基础设施 统一资源池管理 • 异构服务器:X86、ARM服务器 X86 服务器 ARM64 服务器 GPU加速型服务器 FPGA加速型服务器 华为云网络、存储服务 (EVS, OBS, SFS, VPC, ELB, NAT, …)https://www.huaweicloud.com/product/cci.html• 异构芯片加速:GPU、FPGA加速芯片 • 华为云高速网络与存储集成:EVS、OBS、VPC、ELB…
- 32.后续计划 • Tenant API • Exposing “root scope” API for Tenants • Control plan fairness • Max inflight API calls • Rate limiting • Network CRD • Multi-tenancy conformance profile
- 33.Q&A 华为云Kubernetes 容器技术公众号
- 34.Thank You!