无服务器 Kubernetes:云原生方式的容器——Wei Zhang,阿里巴巴

如今越来越多的用户在云上运行容器。但是,在云上运行容器远非理想状态。它仍然需要在集群安装、配置和服务器管理方面付出巨大努力。最近出现了一种新的“无服务器容器”模式,它消除了管理集群和服务器的需要,目的是更轻松、更灵活地在云上运行容器。 在本主题中,我们将介绍无服务器容器生态系统的情况,以及我们如何在阿里云构建无服务器容器服务,它易于扩展且具有灵活的资源模型,还提供本机 Kubernetes API。用户将学习如何以云原生方式部署容器、入口和服务发现。我们还将揭示其创新的云规模架构,并讨论它如何帮助我们的客户只关注应用程序,而不是服务器管理。
展开查看详情

1. Serverless Kubernetes: Container in Cloud Native Way 阿里云容器服务团队 张维 KUBECON CHINA 2018

2.应用部署演化: Going native with cloud Serverless Computing Increasing focus on business logic Container Orchestration •  更加关注业务应用 •  减少关注基础设施 Virtual Machine/Bare Metal Decreasing concern (and control) on infrastructure implementation

3.Why Serverless + Container? Container Serverless •  执行部署一致性 •  免运维 •  快速交付 •  高弹性 •  敏捷化 •  按需付费

4. A short history of Serverless Container 产品名称 厂商 发布日期 Kubernetes API支持 Hyper.sh 2016.11 Y(2018.5支持) Azure Container Instances 2017.7 N AWS Fargate 2017.11 计划2018年支持 Huawei CCI 2018.2 Y Alibaba Cloud Serverless Kubernetes 2018.5 Y

5. Serverless Kubernetes vs. 传统Kubernetes集群 经典Kubernetes容器服务 Serverless Kubernetes容器服务 - 按照集群节点数量付费 - 按照应用使用资源付费 - 无需管理服务器节点 经典Kubernetes集群 容器调度与编排 容器调度与编排 Serverless Kubernetes集群 ECS ECS ECS Pod Pod Pod Pod Pod Pod Pod Pod Pod Pod Pod Pod Pod Pod Pod Pod Pod Pod Pod Pod Pod Pod Pod Pod

6.Kubernetes + Serverless addon混合集群 容器调度与编排 Node-1 Node-2 Node-N 虚拟节点 Pod Pod Pod Pod Pod Pod ECI Provider •  无限弹性,敏捷扩容 Pod Pod Pod … •  支持pod之间互联互通 Elastic Container Instance (ECI)

7.无需管理服务器 Without managing servers •  容量规划:节点数量选择和扩容 •  规格实例选择、配置安全组 用户只需关注容器应用 •  配置复杂的管理工具 •  Zero server ops •  配置网络 •  Focus on application •  操作系统选择 •  系统软件升级、安全补丁更新 •  系统监控和长期维护

8.极致弹性 Scale your pods elastically •  直接基于pod扩容,而不是node,不再受限于node数量 •  无需预留计算容量 scale in seconds “unlimited” capacity kubectl scale deployment Pod Pod Pod Pod Pod Pod Pod Pod Pod Pod

9.按需付费 On demand pricing •  降低服务运行成本:无需再为闲置的计算资源付费(No Cost when Idle) •  灵活选择容器资源规格(Fine-grained cost model) •  提高资源利用率 CPU (vCPU) Memory (GB) 1 Min. 2 and Max. 8GB, in 1GB increments 2 Min. 4 and Max. 16GB, in 1GB increments 4 Min. 8 and Max. 32GB, in 1GB increments 6 Min. 12 and Max. 48GB, in 1GB increments 8 Min. 16 and Max. 64GB, in 1GB increments

10.社区兼容 Kubernetes compatible •  Workload: Deployment, StatefulSet, Job, Bare Pod •  Pod: Restart Policies, VolumeMounts, Env, InitContainers,Heath check … •  Service: LoadBalancer, Headless, Service Discovery(PrivateZone) •  Ingress: Aliyun 7-Layer LoadBalancer •  Volumes: emptyDir, NFS, SecretVolume, ConfigMapVolume •  Secret, ConfigMap •  ServiceAccount •  Logs, Exec, Attach, Top •  Scaling, HPA •  Helm

11. 面向Cloud Scale的架构设计 Pod状态逼近 ECI Viking agent Pod 上报Pod状态 Container Container Containerd Kernel K8S资源 侦听 Pod, Service, ECI 创建/删除Pod CRUD Ingress等资源变化 创建/删除SLB K8S Client K8S API Server Viking SLB 节点绑定、路由规则变更 双向同步 IaaS资源状态 DNS 创建/删除DNS Entry Etcd

12.与云平台深度集成 用户VPC SLB NAS ECI Pod ENI ECS RDS Pod OSS SLS Viking agent Container Container Containerd NAT Gateway Container Registry Private Zone

13.使用场景 Use cases •  Multimedia processing Stateless •  IoT sensor messages processing •  Stream processing at scale Event Driven •  Chat bots •  Batch jobs or scheduled tasks Short Duration •  HTTP REST APIs and web applicated •  Mobile backends Asynchronous •  Continuous Integration Pipeline •  Data Analytics High dynamic •  …

14.Demo: 基于Serverless Kubernetes的Spark数据处理 -  一键部署Spark集群 -  无需管理服务器节点 -  灵活弹性,无限扩容 容器调度与编排 Serverless Kubernetes集群 Spark-Master Pod Client spark-submit Worker-1 Worker-2 Worker-N Pod Pod Pod

15.开始使用 Get Started •  现开放区域:杭州、上海、美西,公测期间免费,欢迎试用 •  计划12月份正式对全体用户开放,开始商业化 •  控制台:https://cs.console.aliyun.com •  快速入门指南和Demo:https://yq.aliyun.com/articles/591115 •  示例参考:https://github.com/AliyunContainerService/serverless-k8s-examples

16.Thank you!