华为云云容器实例CCI实战:无服务器容器部署、弹性伸缩与日志监控配置

举报
yd_282720827 发表于 2026/11/09 14:29:37 2026/11/09
【摘要】 本文梳理华为云云容器实例CCI的使用方法:从创建命名空间与负载、配置镜像与环境变量、挂载存储与暴露端口,到弹性伸缩、日志采集和常见问题排查,帮助在无需管理节点的情况下快速运行容器化应用。

一、背景:为什么选择云容器实例

很多团队已经把应用容器化了,但并不想再维护一套Kubernetes集群。买节点、升级组件、处理节点故障,这些运维成本对中小业务往往偏高。华为云的云容器实例(Cloud Container Instance,简称CCI)面向的就是这类场景:你只需要提供容器镜像和资源配置,平台负责调度与运行,按实际使用的CPU、内存计费,不必自己管理底层节点。

CCI适合短期任务、突发流量、微服务试运行,以及希望把部分无状态服务从传统弹性云服务器(ECS)迁到按需计费模型的场景。它和云容器引擎(CCE)的定位不同:CCE提供完整的Kubernetes能力,适合需要自定义调度、复杂网络策略和大量常驻负载的团队;CCI更偏“交钥匙”的无服务器容器体验。本文以部署一个简单的Web容器为例,梳理从创建命名空间、配置负载、挂载存储、暴露访问,到弹性伸缩、日志查看和排障的完整流程。控制台菜单名称可能随版本变化,请以实际控制台和官方文档为准。

二、核心概念

命名空间(Namespace):CCI中资源隔离的基本单位,同一账号下可以按环境或业务创建多个命名空间,例如 test、prod。创建时通常要关联虚拟私有云(VPC)和子网,后续负载会跑在该网络内。

负载(Workload):真正运行的容器集合,常见类型包括无状态负载(类似Deployment)和任务类负载(跑完即停)。创建时需要指定容器镜像、CPU与内存规格、副本数、环境变量、端口等。

镜像来源:可以从容器镜像服务(SWR)私有仓库拉取,也可以使用部分公开镜像源。生产环境建议把自建镜像推到SWR,并使用镜像拉取密钥或委托完成鉴权。

弹性伸缩:根据CPU、内存使用率或自定义指标自动调整副本数,适合流量波动明显的无状态服务。

网络与访问:负载默认落在所选VPC子网中。对外提供服务时,通常结合弹性负载均衡(ELB)或服务暴露能力,把流量引入容器端口。具体暴露方式以控制台当前支持的选项为准。

三、准备工作

动手前建议确认以下几项:

  1. 已开通CCI相关服务,账号具备创建命名空间和负载的权限;
  2. 准备好目标区域的VPC与子网,子网网段规划要预留足够地址给容器网卡;
  3. 若使用私有镜像,先在SWR中创建组织与镜像仓库,并把镜像推送上去;
  4. 明确容器监听端口、健康检查路径、所需环境变量和配置文件。

镜像推送可以用本地Docker配合SWR登录命令完成。登录与推送命令因区域而异,请到镜像服务控制台复制官方提示,不要把访问密钥写进脚本仓库。推送成功后,记下完整的镜像地址,后面创建负载时会用到,格式一般类似:

<SWR区域地址>/<组织名>/<镜像名>:<标签>

四、创建命名空间

进入云容器实例控制台,选择与业务相同的区域,创建命名空间:

  1. 填写名称,例如 demo-ns;
  2. 选择网络类型并关联已有VPC、子网;
  3. 按需开启或关联日志、监控等附加能力;
  4. 确认后等待命名空间变为可用状态。

命名空间一旦创建,网络归属通常不易随意更改,测试环境和生产环境建议分开,避免误操作影响到正式流量。若子网开启了网络ACL,还需放行容器与镜像仓库、日志上报、业务依赖之间的必要访问。

五、创建并运行负载

在命名空间下创建无状态负载,关键配置如下。

基本信息:负载名称、副本数(先设为1,跑通后再扩)。

容器配置:

  • 镜像:选择SWR中的镜像及标签;
  • CPU与内存:按应用实测需求选择,过小会导致频繁重启,过大则浪费费用;
  • 容器端口:填写应用监听端口,例如8080;
  • 环境变量:把数据库地址、主题名等配置以环境变量注入,敏感信息建议结合密钥管理,不要明文写进镜像;
  • 生命周期与探针:配置启动命令、就绪探针和存活探针。HTTP探针可指向 /health 这类路径,TCP探针则探测端口是否可连。

示意性的探针配置可以用YAML片段表达(字段名以控制台或官方模板为准):

readinessProbe:
  httpGet:
    path: /health
    port: 8080
  initialDelaySeconds: 10
  periodSeconds: 5
livenessProbe:
  tcpSocket:
    port: 8080
  initialDelaySeconds: 30
  periodSeconds: 10

存储挂载(可选):若应用需要持久化或共享配置,可挂载云硬盘或文件存储到容器路径。日志目录、上传目录要挂到持久卷,避免容器重建后数据丢失。只读配置可以用配置项或密钥挂载为文件。

升级策略:无状态负载一般支持滚动升级,可设置最大不可用副本数,降低发版时的中断面。

创建后在负载详情中观察Pod或实例状态,全部Ready后说明容器已起来。若一直处于创建中或失败,优先看事件信息和容器日志。

六、对外暴露与联通验证

容器在VPC内部跑起来之后,还需要让调用方能访问到它。常见做法是:

  1. 在负载或服务配置中暴露容器端口;
  2. 创建或复用ELB,把监听器后端指向CCI负载提供的后端地址或服务;
  3. 安全组、网络ACL放行ELB到容器端口的流量;
  4. 从同一VPC内的ECS上用curl验证,例如:
curl -sS -o /tmp/out.txt -w "%{http_code}\n" "<探测URL,例如内网主机:8080/health>"
cat /tmp/out.txt

注意:正文和命令中不要写真实公网域名或具体IP,用占位符替换即可。验证时确认返回码为200,并且响应体符合预期。若经过七层ELB,还可以再测转发路径、主机头是否匹配。

七、配置弹性伸缩

流量有波峰波谷时,固定副本要么浪费、要么扛不住。在负载的弹性伸缩配置中:

  1. 开启自动伸缩,设置最小、最大副本数,例如最小2、最大10;
  2. 选择指标,常用CPU使用率或内存使用率;
  3. 设置阈值与持续时长,例如平均CPU大于70%持续若干个周期则扩容,低于30%则缩容;
  4. 保存后用压测工具在测试环境观察副本变化。

经验上:扩容要足够快以应对突发,缩容要保守一些,避免刚扩出来又立刻缩回去造成抖动。有状态或不能随便丢连接的服务,要额外评估会话保持与优雅终止时间。

八、日志与监控

排障离不开日志。可以把容器标准输出对接云日志服务(LTS),或在控制台直接查看实例日志。建议在应用内使用结构化日志(JSON一行一条),并带上请求ID,方便检索。

监控方面,关注CPU、内存、重启次数、副本可用数。结合云监控服务(CES)配置告警:副本可用数低于期望、重启次数短时间激增、CPU持续打满等,都应通知到值班人员。告警通知可走消息通知服务(SMN)主题。

九、注意事项

  1. 规格与成本:CCI按资源用量计费,空闲也要及时缩容或删除测试负载,避免账单意外增长。
  2. 镜像体积:镜像越大,拉取越慢,冷启动越明显。多阶段构建、精简基础镜像能明显改善。
  3. 网络规划:命名空间绑定的子网地址要充足,地址耗尽会导致新实例创建失败。
  4. 密钥与配置:访问密钥、数据库口令不要打进镜像层,使用环境变量、密钥对象或密钥管理服务注入。
  5. 优雅退出:收到终止信号后要能处理完当前请求再退出,避免滚动升级时大量报错。
  6. 权限最小化:拉取镜像、写日志、读密钥的权限分开授予,避免一个委托权限过大。

十、常见问题

问:负载一直Pending或创建失败?
答:检查子网地址是否耗尽、镜像地址与标签是否正确、镜像拉取鉴权是否成功、CPU内存配额是否超限,以及事件列表中的报错原文。

问:容器反复重启?
答:多半是存活探针失败、启动命令错误、端口未监听,或内存超限被杀。先看日志最后几十行,再对照探针路径和资源规格。

问:集群外访问不通?
答:确认服务是否已暴露、ELB监听与后端端口是否一致、安全组是否放行、应用是否只监听了本地回环地址(应改为监听全部网卡或容器网卡地址,具体写法按框架配置)。

问:和CCE怎么选?
答:需要完整Kubernetes生态、自定义CRD、复杂调度时选CCE;只想跑容器、少管节点、按需付费时优先考虑CCI。也可以混合:核心常驻在CCE,突发任务走CCI。

十一、总结

云容器实例把“跑容器”这件事简化成了提交镜像和声明资源。本文从命名空间与网络准备、负载创建、探针与存储、对外暴露、弹性伸缩,到日志监控和排障,给出了一条可落地的路径。实际落地时记住四点:镜像与密钥管理要规范,网络与安全组要提前规划,探针和优雅退出决定稳定性,伸缩与告警决定成本与可运维性。更细的参数限制与计费项,请以控制台和官方文档为准。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。