华为云容器服务CCE和CCI调研
# 1. 产品概述
# 1.1 华为云容器引擎(CCE)
# 1.1.1 定义与定位
华为云容器引擎(Cloud Container Engine,CCE)是基于Kubernetes的企业级容器编排服务,提供高可靠、高性能的容器运行环境,支持大规模容器集群管理。CCE完全兼容原生Kubernetes,并深度整合华为云的网络、存储、安全等服务,为用户提供一站式容器化应用部署、管理、运维解决方案。
# 1.1.2 核心价值
- Kubernetes原生兼容:完全兼容社区版Kubernetes,支持标准API,保障应用可移植性
- 高可靠架构:多可用区部署,控制平面高可用,保障集群稳定运行
- 丰富的生态集成:深度整合华为云ELB、EVS、SFS、OBS、Cloud Eye等服务
- 企业级安全:提供RBAC权限管理、安全组、网络策略、镜像安全扫描等安全能力
- 自动化运维:支持集群自动伸缩、节点自动修复、滚动升级、灰度发布等特性
# 1.2 华为云云容器实例(CCI)
# 1.2.1 定义与定位
华为云云容器实例(Cloud Container Instance,CCI)是一种无服务器容器服务,让用户无需管理服务器即可运行容器。CCI提供秒级启动、按秒计费的容器实例,用户只需关注应用本身,无需关心底层基础设施的管理和维护。
# 1.2.2 核心价值
- 无服务器架构:无需创建和管理集群,直接运行容器
- 秒级启动:快速启动容器实例,满足突发流量需求
- 按秒计费:按需付费,按容器实际运行时间计费
- 高弹性:支持自动弹性伸缩,快速应对业务波动
- 简单易用:通过控制台、API或kubectl快速部署容器
# 2. 功能对比
| 功能维度 | CCE | CCI |
|---|---|---|
| 集群管理 | 支持完整Kubernetes集群管理,包括节点管理、集群升级等 | 无需管理集群,无节点概念 |
| 资源隔离 | 基于Kubernetes的Namespace和Pod隔离 | 基于虚拟私有云(VPC)的强隔离 |
| 网络能力 | 支持Service、Ingress、NetworkPolicy,提供丰富的网络插件 | 支持ELB公网访问,VPC内网访问,网络能力相对基础 |
| 存储能力 | 支持EVS云硬盘、SFS文件存储、OBS对象存储,支持PVC/PV | 支持EVS云硬盘、SFS文件存储、OBS对象存储 |
| 服务发现 | 完整支持Kubernetes Service和DNS | 有限支持,主要通过ELB或VPC内网IP访问 |
| 配置管理 | 支持ConfigMap、Secret | 支持环境变量配置 |
| 扩缩容 | 支持HPA、VPA、集群自动伸缩 | 支持手动和自动扩缩容 |
| 监控告警 | 集成Cloud Eye,支持Prometheus、Grafana | 集成Cloud Eye基础监控 |
| 日志管理 | 支持云日志服务LTS,支持ELK | 基础日志收集 |
| 安全能力 | RBAC、安全组、网络策略、镜像安全扫描 | 安全组、VPC隔离 |
| 灰度发布 | 支持Istio服务网格、Ingress灰度 | 需自行实现 |
| 滚动更新 | 支持Deployment滚动更新 | 支持更新容器实例 |
# 3. 适用场景分析
# 3.1 CCE适用场景
# 3.1.1 长期稳定运行的生产环境
典型案例:
- 电商平台核心服务
- 金融交易系统
- 企业级ERP/CRM系统
特点:
- 服务需要7x24小时稳定运行
- 对可靠性和可用性要求极高
- 需要完善的监控、告警和日志体系
- 需要灵活的扩缩容能力
# 3.1.2 微服务架构
典型案例:
- 分布式电商系统
- 社交平台
- 游戏后台服务
特点:
- 服务数量多,服务间通信复杂
- 需要服务发现、负载均衡、熔断降级
- 需要灰度发布、蓝绿部署能力
- 需要完善的服务治理
# 3.1.3 复杂应用场景
典型案例:
- 大数据分析平台
- AI训练推理平台
- 物联网平台
特点:
- 需要多种存储类型支持
- 需要复杂的网络配置
- 需要与其他云服务深度集成
- 需要自定义调度策略
# 3.1.4 代码示例:部署微服务到CCE
# deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: order-service
namespace: production
spec:
replicas: 3
selector:
matchLabels:
app: order-service
template:
metadata:
labels:
app: order-service
spec:
containers:
- name: order-service
image: swr.cn-north-4.myhuaweicloud.com/myrepo/order-service:v1.0
ports:
- containerPort: 8080
resources:
requests:
cpu: "500m"
memory: "512Mi"
limits:
cpu: "1000m"
memory: "1Gi"
env:
- name: DB_HOST
valueFrom:
configMapKeyRef:
name: app-config
key: db-host
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: db-secret
key: password
livenessProbe:
httpGet:
path: /health
port: 8080
initialDelaySeconds: 30
periodSeconds: 10
readinessProbe:
httpGet:
path: /ready
port: 8080
initialDelaySeconds: 10
periodSeconds: 5
---
# service.yaml
apiVersion: v1
kind: Service
metadata:
name: order-service
namespace: production
spec:
selector:
app: order-service
ports:
- port: 80
targetPort: 8080
type: ClusterIP
---
# hpa.yaml
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: order-service-hpa
namespace: production
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: order-service
minReplicas: 3
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 70
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# 3.2 CCI适用场景
# 3.2.1 短期任务与批处理
典型案例:
- 数据ETL任务
- 视频转码
- 批量图片处理
- 定时报表生成
特点:
- 任务运行时间较短,从几分钟到几小时不等
- 任务完成后资源即可释放
- 无需长期维护集群
- 成本敏感
# 3.2.2 突发流量场景
典型案例:
- 电商促销活动
- 新闻热点事件
- 在线教育直播课程
- 游戏新服开服
特点:
- 流量波动大,短时间内流量激增
- 需要快速扩容能力
- 平时资源利用率低
- 对启动速度要求高
# 3.2.3 开发测试环境
典型案例:
- 持续集成/持续部署(CI/CD)
- 开发环境
- 功能测试环境
- 性能测试环境
特点:
- 环境按需创建和销毁
- 不需要长期运行
- 对成本敏感
- 需要快速部署能力
# 3.2.4 简单应用场景
典型案例:
- 个人博客
- 小型网站
- 原型验证
- 简单API服务
特点:
- 应用架构简单
- 访问量不大
- 运维能力有限
- 预算有限
# 3.2.5 代码示例:部署应用到CCI
# cci-deployment.yaml
apiVersion: batch.cci.io/v1
kind: Job
metadata:
name: data-processing-job
spec:
template:
metadata:
labels:
app: data-processing
spec:
containers:
- name: data-processor
image: swr.cn-north-4.myhuaweicloud.com/myrepo/data-processor:v1.0
resources:
requests:
cpu: "1000m"
memory: "2Gi"
limits:
cpu: "2000m"
memory: "4Gi"
env:
- name: INPUT_PATH
value: "obs://my-bucket/input/"
- name: OUTPUT_PATH
value: "obs://my-bucket/output/"
volumeMounts:
- name: obs-volume
mountPath: /data
volumes:
- name: obs-volume
persistentVolumeClaim:
claimName: obs-pvc
restartPolicy: Never
backoffLimit: 3
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# 4. 性能与成本分析
# 4.1 性能对比
| 性能指标 | CCE | CCI |
|---|---|---|
| 容器启动时间 | 取决于节点资源和镜像大小,通常10-60秒 | 秒级启动,通常3-10秒 |
| 资源调度效率 | 高,Kubernetes调度器优化 | 高,无服务器架构调度更灵活 |
| 网络延迟 | 取决于网络插件,通常较低 | VPC网络,延迟较低 |
| 存储性能 | 取决于存储类型,EVS/SFS/OBS | 与CCE相同,支持相同存储类型 |
| 可扩展性 | 支持扩展到数千节点 | 支持大规模并发容器实例 |
| 资源利用率 | 需要合理规划,可能存在资源浪费 | 按需使用,资源利用率高 |
# 4.2 成本分析
# 4.2.1 CCE成本构成
CCE成本主要包括以下几个方面:
节点费用:按云服务器规格计费
- 虚拟机节点:按CPU、内存、磁盘计费
- 裸金属节点:按物理服务器规格计费
控制平面费用:免费
附加组件费用:
- 部分高级组件可能收费
- 云服务集成费用(如ELB、EVS等)
# 4.2.2 CCI成本构成
CCI成本主要包括:
容器实例费用:按秒计费
- CPU:按vCPU·秒计费
- 内存:按GB·秒计费
- GPU:按GPU·秒计费(如使用GPU实例)
存储费用:
- EVS云硬盘:按存储容量计费
- SFS文件存储:按存储容量计费
- OBS对象存储:按存储容量和流量计费
网络费用:
- 公网带宽费用
- 跨VPC访问费用
# 4.2.3 成本对比示例
场景1:长期稳定运行的服务
假设服务需要2核4GB配置,7x24小时运行:
- CCE:使用2核4GB虚拟机节点,按月付费,约400元/月
- CCI:2核4GB容器实例,按秒计费,约(2 * 0.0001 + 4 * 0.00005) * 3600 * 24 * 30 ≈ 1036.8元/月
结论:长期稳定运行的服务,CCE成本更低。
场景2:短期批处理任务
假设每天运行2小时,使用4核8GB配置:
- CCE:需要至少1个4核8GB节点,按月付费,约800元/月
- CCI:4核8GB容器实例,按秒计费,约(4 * 0.0001 + 8 * 0.00005) * 3600 * 2 * 30 ≈ 172.8元/月
结论:短期任务,CCI成本更低。
场景3:突发流量场景
假设平时使用1核2GB,高峰期(每天4小时)使用8核16GB:
- CCE:需要预留8核16GB资源,按月付费,约1600元/月
- CCI:平时1核2GB + 高峰期8核16GB,约[(10.0001+20.00005)20 + (80.0001+16*0.00005)*4] * 3600 * 30 ≈ 864元/月
结论:突发流量场景,CCI成本更低。
# 5. 部署与管理
# 5.1 部署流程对比
# 5.1.1 CCE部署流程
创建集群
- 登录华为云控制台,进入CCE服务
- 选择集群类型(虚拟机集群/裸金属集群)
- 配置集群参数(Kubernetes版本、VPC、子网等)
- 选择节点规格和数量
- 配置附加组件
- 确认创建,等待10-15分钟
配置kubectl
- 下载集群配置文件(kubeconfig)
- 配置环境变量或使用--kubeconfig参数
部署应用
# 创建命名空间 kubectl create namespace myapp # 部署应用 kubectl apply -f deployment.yaml -n myapp # 创建服务 kubectl apply -f service.yaml -n myapp # 查看状态 kubectl get pods -n myapp kubectl get services -n myapp1
2
3
4
5
6
7
8
9
10
11
12
# 5.1.2 CCI部署流程
准备工作
- 登录华为云控制台,进入CCI服务
- 创建命名空间
- 配置网络(VPC、安全组)
部署容器实例
方式一:控制台创建
- 点击"创建负载"
- 选择负载类型(Job/Deployment/StatefulSet)
- 配置容器镜像、资源规格
- 配置网络、存储
- 确认创建
方式二:kubectl创建
# 配置kubectl(CCI提供kubeconfig) kubectl apply -f cci-deployment.yaml # 查看状态 kubectl get pods1
2
3
4
5方式三:API创建
curl -X POST "https://cci.cn-north-4.myhuaweicloud.com/v2/projects/{project_id}/workloads" \ -H "Content-Type: application/json" \ -H "X-Auth-Token: {token}" \ -d @workload.json1
2
3
4
# 5.2 管理方式对比
| 管理维度 | CCE | CCI |
|---|---|---|
| 集群管理 | 需要管理节点、集群升级、节点修复 | 无需集群管理 |
| 应用管理 | 使用kubectl、控制台、API | 使用kubectl、控制台、API |
| 监控管理 | Cloud Eye + Prometheus + Grafana | Cloud Eye基础监控 |
| 日志管理 | LTS + ELK | 基础日志 |
| 告警管理 | Cloud Eye告警 | Cloud Eye告警 |
| 成本管理 | 节点成本 + 云服务成本 | 按秒计费 + 存储网络成本 |
| 运维复杂度 | 较高,需要掌握Kubernetes | 较低,只需关注容器本身 |
# 5.3 运维复杂度对比
# 5.3.1 CCE运维复杂度
高复杂度方面:
- 需要掌握Kubernetes核心概念(Pod、Service、Deployment等)
- 需要管理集群节点(扩缩容、升级、修复)
- 需要处理网络问题(CNI插件、Service、Ingress)
- 需要处理存储问题(PV、PVC、StorageClass)
- 需要进行集群安全配置(RBAC、网络策略、安全组)
降低复杂度的方式:
- 使用华为云提供的托管控制平面
- 使用控制台进行可视化管理
- 使用自动化运维工具
- 参考华为云最佳实践文档
# 5.3.2 CCI运维复杂度
低复杂度方面:
- 无需管理集群和节点
- 无需关心Kubernetes底层细节
- 简单的配置和部署流程
- 按需使用,无需资源规划
需要关注的方面:
- 容器镜像管理
- 容器配置优化
- 监控和日志
- 成本控制
# 6. 优缺点总结
# 6.1 CCE优缺点
# 6.1.1 CCE优势
完整的Kubernetes能力
- 完全兼容原生Kubernetes
- 支持所有Kubernetes API和资源对象
- 丰富的生态系统和工具链
强大的网络能力
- 支持多种网络插件
- 完整的Service和Ingress支持
- 网络策略支持
- 服务网格集成
丰富的存储选项
- 支持EVS、SFS、OBS等多种存储
- 支持PVC/PV动态 provisioning
- 支持存储快照和扩容
企业级特性
- 高可用架构
- 完善的安全体系
- 丰富的监控和日志
- 灰度发布和滚动更新
生态集成
- 深度整合华为云服务
- 支持云原生应用
- 丰富的市场应用
# 6.1.2 CCE局限性
学习曲线陡峭
- 需要掌握Kubernetes知识
- 概念复杂,上手难度大
- 需要专业的运维团队
运维复杂度高
- 需要管理集群和节点
- 需要处理各种故障
- 需要持续优化和维护
成本可能较高
- 需要预留资源
- 长期运行成本需要规划
- 可能存在资源浪费
部署时间较长
- 集群创建需要10-15分钟
- 应用部署依赖节点资源
# 6.2 CCI优缺点
# 6.2.1 CCI优势
无服务器架构
- 无需管理集群和节点
- 简化运维,降低复杂度
- 专注于应用本身
快速启动
- 秒级启动容器实例
- 快速响应业务需求
- 适合突发流量
按需计费
- 按秒计费,成本精准
- 无需预留资源
- 适合短期任务
简单易用
- 部署流程简单
- 可视化控制台
- API和kubectl支持
高弹性
- 支持自动扩缩容
- 快速应对业务波动
- 资源利用率高
# 6.2.2 CCI局限性
功能相对有限
- 不支持完整的Kubernetes特性
- 网络能力相对基础
- 服务发现能力有限
不适合长期运行
- 长期运行成本较高
- 缺少企业级特性
- 监控和日志能力有限
定制化能力弱
- 无法自定义集群配置
- 无法使用自定义网络插件
- 调度策略有限
生态集成有限
- 与云服务集成相对简单
- 缺少高级特性集成
- 工具链相对简单
# 7. 选型建议
# 7.1 选型决策树
开始
|
+-- 应用需要长期稳定运行?
| |
| +-- 是 --> 选择CCE
| |
| +-- 否 --> 应用是短期任务或批处理?
| |
| +-- 是 --> 选择CCI
| |
| +-- 否 --> 应用有突发流量?
| |
| +-- 是 --> 选择CCI(或CCE+CCI混合)
| |
| +-- 否 --> 团队是否有Kubernetes运维能力?
| |
| +-- 是 --> 选择CCE
| |
| +-- 否 --> 选择CCI
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 7.2 基于业务需求的选型建议
| 业务需求 | 推荐产品 | 说明 |
|---|---|---|
| 生产环境核心服务 | CCE | 需要高可用、完善的监控和运维能力 |
| 微服务架构 | CCE | 需要服务发现、负载均衡、服务治理 |
| 复杂应用场景 | CCE | 需要多种存储、网络配置、自定义调度 |
| 长期稳定运行 | CCE | 成本更低,能力更全面 |
| 短期批处理任务 | CCI | 按需使用,成本更低 |
| 突发流量场景 | CCI | 快速扩容,按需付费 |
| 开发测试环境 | CCI | 按需创建销毁,成本低 |
| 简单应用/原型验证 | CCI | 部署简单,运维成本低 |
| 团队Kubernetes经验丰富 | CCE | 充分利用Kubernetes能力 |
| 团队Kubernetes经验不足 | CCI | 降低学习和运维成本 |
# 7.3 混合使用场景建议
在某些场景下,可以考虑混合使用CCE和CCI,以充分发挥两者的优势:
# 7.3.1 核心服务+弹性扩容
- 核心服务:部署在CCE,提供稳定可靠的服务
- 弹性扩容:高峰期使用CCI扩容,应对突发流量
+--------------+
| 流量入口 |
+------+-------+
|
+--------------+---------------+
| |
+--------v---------+ +---------v--------+
| CCE集群 | | CCI弹性池 |
| (核心服务) | | (扩容服务) |
+------------------+ +------------------+
2
3
4
5
6
7
8
9
10
# 7.3.2 长期服务+短期任务
- 长期服务:部署在CCE,稳定运行
- 短期任务:使用CCI运行批处理任务
# 7.3.3 生产环境+开发测试
- 生产环境:使用CCE,确保稳定可靠
- 开发测试环境:使用CCI,降低成本,灵活部署
# 7.4 迁移建议
# 7.4.1 从CCI迁移到CCE
适用场景:
- 业务发展,需要更完善的能力
- 需要长期稳定运行
- 团队Kubernetes能力提升
迁移步骤:
- 评估业务需求和资源规划
- 创建CCE集群
- 迁移容器镜像到SWR
- 转换配置为Kubernetes资源对象
- 配置网络和存储
- 部署应用到CCE
- 测试验证
- 逐步切换流量
- 监控和优化
# 7.4.2 从CCE迁移到CCI
适用场景:
- 业务简化,不需要复杂能力
- 成本优化需求
- 降低运维复杂度
迁移步骤:
- 评估业务需求
- 简化应用架构
- 准备CCI环境
- 迁移容器镜像
- 转换配置
- 部署应用到CCI
- 测试验证
- 切换流量
# 8. 总结
华为云提供了CCE和CCI两种容器服务,分别满足不同的业务需求:
CCE是完整的Kubernetes容器引擎服务,适合长期稳定运行的生产环境、微服务架构、复杂应用场景,提供完善的企业级特性和生态集成,但学习曲线陡峭,运维复杂度高。
CCI是无服务器容器服务,适合短期任务、突发流量、开发测试环境、简单应用,具有快速启动、按需计费、简单易用的优势,但功能相对有限,不适合长期运行。
选型时应根据业务需求、团队能力、成本预算等因素综合考虑,也可以根据实际情况混合使用两种服务,充分发挥各自的优势。
# 9. 参考资料
- 华为云CCE官方文档 (opens new window)
- 华为云CCI官方文档 (opens new window)
- Kubernetes官方文档 (opens new window)
- 华为云容器服务最佳实践 (opens new window)
- 华为云定价计算器 (opens new window)

「真诚赞赏,手留余香」
# 打赏记录
| 打赏者 | 打助金额 (元) | 支付方式 | 时间 | 备注 |
|---|---|---|---|---|
| John | 12 | 微信 | 2020-06-09 | |
| 艾斯 | 32 | 支付宝 | 2020-07-11 | nice |
| HickSalmon | 15 | 微信 | 2020-09-21 | 有赏交流 |