基于公有云的容器平台总体概览图

如上图所属,构建一个可以用于日常运行的容器开发运维平台,以使用者的视角,可以分成如下几部分:
基础平台部分
- k8s集群的初始化,可以使用云厂商提供的k8s托管服务,按需创建集群
- k8s集群的容器网络,可以使用云厂商提供的VPC CNI插件和负载均衡
- 集群的存储配置方式,可以使用云厂商提供共享文件存储和块存储
- 集群的监控,日志,链路,如果云厂商提供,选择接入即可,如果没有则需要自建或者够买商业软件
- 集群的弹性伸缩,直接使用云厂商提供提供的集群节点弹性扩容,和POD资源弹性扩容即可
应用开发部分
- 制品库的管理,除了开源项目,代码版本控制一般是严格部署在内网,常用的使用GitLab和Harbor存储代码和构建的容器镜像,以及用于部署的软件包
- 在容器应用时代,集成发布工作,已经是非常自动化的,以开发为主的一般倾向于使用Gitlab Runner,偏传统的会使用插件扩展比较丰富Jenkins来完成
- 在强调敏捷开发,DevOPS理念盛行的当下时代,应用系统多数采用微服务框架,技术栈是Java语言的依旧使用SprintCloud框架,国内中小互联网公司多选择携程开源的Apollo(阿波罗)配置管理中心,引入了分布式的微服务应用,不可避免提升了业务运维,性能监控的复杂度,因此需要引入APM,在链路监控目前用户倾向于选择支持多语言的 Skywalking 和 Jaeger
- 其他部分就是测试,生产环境的资源隔离,以及容器平台用户权限的管理,面向运维和面向业务开发人员,需要划分不同的权限,资源预算充足会分成测试,生产集群,资源预算有限的会在同一集群中,通过节点分组,命名空间隔离,划分测试,生产环境。
各家云厂商容器平台产品化支持能力
功能 | ucloud | 阿里云 | 腾讯云 | 华为云 | 备注 |
---|---|---|---|---|---|
集群网络 | vpc cni underlay的网络模型 |
||||
负载均衡 | 支持 | ||||
Ingress | 无 | 需要部署开源软件 | |||
块存储卷(storage-class) | 支持 | ||||
NFS 动态存储卷(storage-class) | 支持 | ||||
对象存储(storage-class) | 支持 | ||||
弹性伸缩CA HPA VPA | 支持 | ||||
GPU节点 | 支持 | ||||
高性能计算节点 | 支持 | ||||
混合云/托管区节点 | 支持 需要打通托管区网络,只能添加托管区节点作为node节点 |
||||
制品库 | uhub | ||||
多集群管理 | 仅限创建,删除 | ||||
租户权限 | 无 | ||||
应用管理 | 无 | ||||
发布管理 | 无 | ||||
微服务 | 无 | ||||
日志 | 仅限于单集群 | ||||
监控 | 仅限于单集群 | ||||
链路追踪 | 无 |
网友评论