网络
虚拟私有云 VPC
弹性公网IP EIP
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
虚拟专用网络 VPN
云连接 CC
VPC终端节点 VPCEP
企业路由器 ER
企业交换机 ESW
全球加速 GA
企业连接 EC
云原生应用网络 ANC
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
威胁检测服务 MTD
认证测试中心 CTC
边缘安全 EdgeSec
应用中间件
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
API网关 APIG
分布式缓存服务 DCS
多活高可用服务 MAS
事件网格 EG
管理与监管
统一身份认证服务 IAM
消息通知服务 SMN
云监控服务 CES
应用运维管理 AOM
应用性能管理 APM
云日志服务 LTS
云审计服务 CTS
标签管理服务 TMS
配置审计 Config
应用身份管理服务 OneAccess
资源访问管理 RAM
组织 Organizations
资源编排服务 RFS
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
解决方案
高性能计算 HPC
SAP
混合云灾备
开天工业工作台 MIW
Haydn解决方案工厂
数字化诊断治理专家服务
云生态
云商店
合作伙伴中心
华为云开发者学堂
华为云慧通差旅
开发与运维
软件开发生产线 CodeArts
需求管理 CodeArts Req
流水线 CodeArts Pipeline
代码检查 CodeArts Check
编译构建 CodeArts Build
部署 CodeArts Deploy
测试计划 CodeArts TestPlan
制品仓库 CodeArts Artifact
移动应用测试 MobileAPPTest
CodeArts IDE Online
开源镜像站 Mirrors
性能测试 CodeArts PerfTest
应用管理与运维平台 ServiceStage
云应用引擎 CAE
开源治理服务 CodeArts Governance
华为云Astro轻应用
CodeArts IDE
Astro工作流 AstroFlow
代码托管 CodeArts Repo
漏洞管理服务 CodeArts Inspector
联接 CodeArtsLink
软件建模 CodeArts Modeling
Astro企业应用 AstroPro
CodeArts 盘古助手
华为云Astro大屏应用
计算
弹性云服务器 ECS
Flexus云服务
裸金属服务器 BMS
云手机服务器 CPH
专属主机 DeH
弹性伸缩 AS
镜像服务 IMS
函数工作流 FunctionGraph
云耀云服务器(旧版)
VR云渲游平台 CVR
Huawei Cloud EulerOS
云化数据中心 CloudDC
网络
虚拟私有云 VPC
弹性公网IP EIP
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
虚拟专用网络 VPN
云连接 CC
VPC终端节点 VPCEP
企业路由器 ER
企业交换机 ESW
全球加速 GA
企业连接 EC
云原生应用网络 ANC
CDN与智能边缘
内容分发网络 CDN
智能边缘云 IEC
智能边缘平台 IEF
CloudPond云服务
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
威胁检测服务 MTD
认证测试中心 CTC
边缘安全 EdgeSec
大数据
MapReduce服务 MRS
数据湖探索 DLI
表格存储服务 CloudTable
可信智能计算服务 TICS
推荐系统 RES
云搜索服务 CSS
数据可视化 DLV
数据接入服务 DIS
数据仓库服务 GaussDB(DWS)
数据治理中心 DataArts Studio
湖仓构建 LakeFormation
智能数据洞察 DataArts Insight
应用中间件
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
API网关 APIG
分布式缓存服务 DCS
多活高可用服务 MAS
事件网格 EG
开天aPaaS
应用平台 AppStage
开天企业工作台 MSSE
开天集成工作台 MSSI
API中心 API Hub
云消息服务 KooMessage
交换数据空间 EDS
云地图服务 KooMap
云手机服务 KooPhone
组织成员账号 OrgID
云空间服务 KooDrive
管理与监管
统一身份认证服务 IAM
消息通知服务 SMN
云监控服务 CES
应用运维管理 AOM
应用性能管理 APM
云日志服务 LTS
云审计服务 CTS
标签管理服务 TMS
配置审计 Config
应用身份管理服务 OneAccess
资源访问管理 RAM
组织 Organizations
资源编排服务 RFS
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
区块链
区块链服务 BCS
数字资产链 DAC
华为云区块链引擎服务 HBS
解决方案
高性能计算 HPC
SAP
混合云灾备
开天工业工作台 MIW
Haydn解决方案工厂
数字化诊断治理专家服务
价格
成本优化最佳实践
专属云商业逻辑
云生态
云商店
合作伙伴中心
华为云开发者学堂
华为云慧通差旅
其他
管理控制台
消息中心
产品价格详情
系统权限
客户关联华为云合作伙伴须知
公共问题
宽限期保留期
奖励推广计划
活动
云服务信任体系能力说明
开发与运维
软件开发生产线 CodeArts
需求管理 CodeArts Req
流水线 CodeArts Pipeline
代码检查 CodeArts Check
编译构建 CodeArts Build
部署 CodeArts Deploy
测试计划 CodeArts TestPlan
制品仓库 CodeArts Artifact
移动应用测试 MobileAPPTest
CodeArts IDE Online
开源镜像站 Mirrors
性能测试 CodeArts PerfTest
应用管理与运维平台 ServiceStage
云应用引擎 CAE
开源治理服务 CodeArts Governance
华为云Astro轻应用
CodeArts IDE
Astro工作流 AstroFlow
代码托管 CodeArts Repo
漏洞管理服务 CodeArts Inspector
联接 CodeArtsLink
软件建模 CodeArts Modeling
Astro企业应用 AstroPro
CodeArts 盘古助手
华为云Astro大屏应用
存储
对象存储服务 OBS
云硬盘 EVS
云备份 CBR
高性能弹性文件服务 SFS Turbo
弹性文件服务 SFS
存储容灾服务 SDRS
云硬盘备份 VBS
云服务器备份 CSBS
数据快递服务 DES
云存储网关 CSG
专属分布式存储服务 DSS
数据工坊 DWR
地图数据 MapDS
键值存储服务 KVS
容器
云容器引擎 CCE
云容器实例 CCI
容器镜像服务 SWR
云原生服务中心 OSC
应用服务网格 ASM
华为云UCS
数据库
云数据库 RDS
数据复制服务 DRS
文档数据库服务 DDS
分布式数据库中间件 DDM
云数据库 GaussDB
云数据库 GeminiDB
数据管理服务 DAS
数据库和应用迁移 UGO
云数据库 TaurusDB
人工智能
AI开发平台ModelArts
华为HiLens
图引擎服务 GES
图像识别 Image
文字识别 OCR
自然语言处理 NLP
内容审核 Moderation
图像搜索 ImageSearch
医疗智能体 EIHealth
企业级AI应用开发专业套件 ModelArts Pro
人脸识别服务 FRS
对话机器人服务 CBS
语音交互服务 SIS
人证核身服务 IVS
视频智能分析服务 VIAS
城市智能体
自动驾驶云服务 Octopus
盘古大模型 PanguLargeModels
IoT物联网
设备接入 IoTDA
全球SIM联接 GSL
IoT数据分析 IoTA
路网数字化服务 DRIS
IoT边缘 IoTEdge
设备发放 IoTDP
企业应用
域名注册服务 Domains
云解析服务 DNS
企业门户 EWP
ICP备案
商标注册
华为云WeLink
华为云会议 Meeting
隐私保护通话 PrivateNumber
语音通话 VoiceCall
消息&短信 MSGSMS
云管理网络
SD-WAN 云服务
边缘数据中心管理 EDCM
云桌面 Workspace
应用与数据集成平台 ROMA Connect
ROMA资产中心 ROMA Exchange
API全生命周期管理 ROMA API
政企自服务管理 ESM
视频
实时音视频 SparkRTC
视频直播 Live
视频点播 VOD
媒体处理 MPC
视频接入服务 VIS
数字内容生产线 MetaStudio
迁移
主机迁移服务 SMS
对象存储迁移服务 OMS
云数据迁移 CDM
迁移中心 MGC
专属云
专属计算集群 DCC
开发者工具
SDK开发指南
API签名指南
DevStar
华为云命令行工具服务 KooCLI
Huawei Cloud Toolkit
CodeArts API
云化转型
云架构中心
云采用框架
用户服务
账号中心
费用中心
成本中心
资源中心
企业管理
工单管理
客户运营能力
国际站常见问题
支持计划
专业服务
合作伙伴支持计划
我的凭证
华为云公共事业服务云平台
工业软件
工业数字模型驱动引擎
硬件开发工具链平台云服务
工业数据转换引擎云服务
文档首页/ 云容器引擎 CCE_Autopilot集群/ 快速入门/ 在CCE Autopilot集群中部署Nginx工作负载

在CCE Autopilot集群中部署Nginx工作负载

更新时间:2024-12-18 GMT+08:00
分享

CCE Autopilot集群是云容器引擎服务推出的Serverless版集群,支持智能化版本升级、漏洞自动修复和智能调参等技术,能够为您提供更智能的使用体验。同时,CCE Autopilot集群采用底层统一资源池技术,您无需管理和维护底层资源设施的分配和扩展,可以有效降低运维成本。底层统一资源池技术支持故障快速隔离和修复,能够确保应用的持续稳定运行,提升应用的可靠性。

Nginx是一款高性能的开源HTTP服务器和反向代理服务器,广泛用于处理高并发、负载均衡和静态资源服务。在集群中部署Nginx工作负载,可以通过负载均衡和反向代理有效地分配流量,确保高可用性和容错性。它还能够简化微服务架构中的流量管理、安全控制和API网关功能,提升系统的灵活性和扩展性。

本示例以部署Nginx工作负载为例,帮助您了解如何创建CCE Autopilot集群以及如何在集群中部署工作负载,整体架构请参见图1 方案架构

图1 方案架构

操作流程

表1 部署Nginx的操作流程

操作步骤

步骤说明

费用说明

准备工作

您需要注册华为账号,并为账号充值。

不涉及费用。

步骤一:首次开通CCE并进行授权

当您的账号在当前区域中首次使用CCE时,您需要为CCE进行授权。

不涉及费用。

步骤二:创建CCE Autopilot集群

在CCE服务中创建CCE Autopilot集群,以提供更简化的Kubernetes服务。

涉及集群管理和终端节点等费用,具体请参见集群计费说明

步骤三:部署并访问Nginx工作负载

在集群中创建工作负载,并为其创建负载均衡类型的服务,然后您就可以从公网访问您的工作负载。

涉及Pod和弹性负载均衡(ELB)费用,具体请参见集群计费说明ELB计费说明

后续操作:释放资源

如果您在完成实践后不需要继续使用集群,请及时清理资源以免产生额外扣费。

不涉及费用。

准备工作

步骤一:首次开通CCE并进行授权

由于CCE在运行中对计算、存储、网络以及监控等各类云服务资源都存在依赖关系,因此当您首次登录CCE控制台时,CCE将自动请求获取当前区域下的云资源权限,从而更好地为您提供服务。如果您在当前区域已完成授权,可忽略本步骤。

  1. 使用华为账号登录CCE控制台
  2. 单击控制台左上角的,选择“区域”,本示例使用区域为“华东-上海一”。
  3. 在首次登录某个区域的CCE控制台时将跳出“授权说明”,请您在仔细阅读后单击“确定”

    当您同意授权后,CCE将在IAM中创建名为“cce_admin_trust”委托,统一对您的其他云服务资源进行操作,并且授予其Tenant Administrator权限。Tenant Administrator拥有除IAM管理外的全部云服务管理员权限,用于对CCE所依赖的其他云服务资源进行调用,且该授权仅在当前区域生效。

    须知:

    CCE对其他云服务存在依赖,如果没有Tenant Administrator权限,可能会因为某服务权限不足而无法正常使用。因此,在使用CCE服务期间,请不要自行删除或者修改“cce_admin_trust”委托。

步骤二:创建CCE Autopilot集群

在CCE服务中创建CCE Autopilot集群,以提供更简化的Kubernetes服务。本示例中仅解释必要参数,其他参数保留默认值。关于其他参数的详细说明,请参见购买Autopilot集群

  1. 进入CCE控制台

    • 如果您的账号在当前区域未创建过集群,请在当前页面单击“购买集群”“购买CCE Autopilot集群”,进入购买页。
    • 如果您的账号在当前区域已创建过集群,请在左侧菜单栏选择集群管理,单击右上角“购买集群”,进入购买页。

  2. 配置集群基础信息,具体的参数示例请参见图2表2

    图2 集群基本信息
    表2 集群基础信息

    参数

    示例

    参数说明

    集群类型

    CCE Autopilot集群

    CCE支持创建多种类型集群,满足各种业务需求,提供高可靠、安全的商业级容器集群服务。

    • CCE Standard集群:标准版本集群,提供高可靠、安全的商业级容器集群服务。
    • CCE Turbo集群:拥有更高性能的云原生网络,提供云原生混部调度能力,可实现更高的资源利用率和更广的全场景覆盖。
    • CCE Autopilot集群:Serverless版集群,提供免运维的容器服务,可以大幅降低运维成本,提高应用程序的可靠性和可扩展性。

    了解集群类型的更多内容,请参见集群对比

    集群名称

    autopilot-example

    新建集群的名称。

    集群名称长度范围为4-128个字符,以小写字母开头,支持小写字母、数字和中划线(-),不能以中划线(-)结尾。

    企业项目

    default

    该参数仅对开通企业项目的企业客户账号显示,不显示时请忽略。

    企业项目是一种资源管理单位,可跨区域归类资源,方便企业按部门或项目组集中管理。了解企业项目的更多内容,请参见项目管理

    请根据需要选择适合的企业项目,如果没有特殊要求,可以选择default。

    集群版本

    v1.28

    集群安装的Kubernetes软件版本,建议选择最新版本。

  3. 配置集群网络信息,具体的参数示例请参见图3表3

    图3 集群网络信息

    表3 集群网络信息

    参数

    示例

    参数说明

    虚拟私有云

    vpc-autopilot

    选择集群所在的虚拟私有云(VPC)。如果没有可选项,单击右侧“新建虚拟私有云”创建,具体请参见创建虚拟私有云和子网。集群创建后,VPC不支持修改。

    容器子网

    subnet-502f

    选择容器所在子网。每个Pod需要唯一的IP地址,容器子网内IP地址的数量决定了集群中Pod的数量上限,进而决定容器的数量上限,集群创建后支持新增子网。

    如果没有可选项,请单击右侧“新建子网”创建,具体请参见创建虚拟私有云和子网

    服务网段

    10.247.0.0/16

    同一集群下容器互相访问时使用的Service资源网段,决定Service资源数量的上限。集群创建后,服务网段不支持修改。

    配置SNAT

    开启

    默认开启,开启后您的集群可以通过NAT网关访问公网。默认使用所选VPC中已有的NAT网关,若VPC没有NAT网关,系统将会为您自动创建一个默认规格的NAT网关并绑定弹性公网IP,同时自动配置SNAT规则。

    使用NAT网关将产生一定费用,详情请参见NAT网关计费说明

  4. 单击“下一步:插件选择”,选择创建集群时需要安装的插件。

    本示例中,仅选择默认安装插件,即CoreDNS域名解析和Kubernetes Metrics Server插件。

  5. 单击“下一步:插件配置”,对选择的插件进行配置,默认插件无需配置。
  6. 单击“下一步:确认配置”,显示集群资源清单,确认无误后,单击“提交”

    创建集群预计需要5-10分钟,请耐心等待。创建成功后,集群管理中对应集群的状态为运行中。

    图4 集群运行中

步骤三:部署并访问Nginx工作负载

在集群中创建Nginx工作负载,将应用程序或服务部署到容器环境中,实现资源的高效利用和自动化管理。同时,为该工作负载创建负载均衡类型的服务,使您能够从公网访问Nginx。本节介绍两种方式部署并访问Nginx工作负载,包括控制台方式和kubectl命令行方式。

  1. 单击新建的集群名称,进入集群控制台。
  2. 在左侧菜单栏中选择“工作负载”,单击右上角“创建工作负载”,进入创建页。
  3. 配置工作负载基本信息,具体参数示例请参见图5表4

    本示例中仅解释必要参数,其他参数保留默认值。关于其他参数的详细说明,请参见创建工作负载,您可以根据工作负载类型选择适合的参考文档。

    图5 工作负载基本信息

    表4 工作负载基本信息

    参数

    示例

    参数说明

    负载类型

    无状态负载

    Deployment

    工作负载是一种对Pod的抽象管理方式,用于定义和控制Pod的创建、运行和生命周期。通过工作负载,您可以批量管理和自动化控制多个Pod的行为,如伸缩、更新和恢复。

    • 无状态负载(Deployment):管理无状态应用,支持上线部署、滚动升级、创建副本和恢复上线。
    • 有状态负载(StatefulSet):管理有状态应用,确保每个Pod能够拥有独立的持久化状态,并能够在Pod重启或迁移时恢复其数据,以保障应用的可靠性和一致性。
    • 普通任务(Job):一次性任务,完成后Pod自动删除。
    • 定时任务(CronJob):基于时间的Job,指定时间周期内运行指定的Job。

    了解工作负载的更多内容,请参见工作负载概述

    本示例将Nginx部署为无状态负载,原因在于Nginx主要用于处理请求转发、负载均衡和静态内容分发,不需要在本地保存任何持久性数据。

    负载名称

    nginx

    请填写工作负载的名称。

    工作负载名称长度范围为1-63个字符,可以包含小写英文字母、数字和和中划线(-),并以小写英文字母开头,小写英文字母或数字结尾。

    命名空间

    default

    命名空间是Kubernetes集群中的抽象概念,可以将集群中的资源或对象划分为一个组,且不同命名空间中的数据彼此隔离,您可以根据需要创建并使用命名空间。

    集群创建后会默认生成default命名空间,如果没有特殊要求,可以直接选择default命名空间。

    实例数量

    1

    工作负载中Pod实例的数量。Pod实例数量的设置策略:

    • 高可用性:如果您需要保证工作负载的高可用性,则实例数量至少设置为2,避免单点故障。
    • 性能要求:您需要根据工作负载的流量和资源需求设置实例数量,避免过载或资源浪费。

    本示例仅做演示,实例数量设置为1。

  4. 配置工作负载容器信息,具体参数示例请参见图6表5

    本示例中仅解释必要参数,其他参数保留默认值。关于其他参数的详细说明,请参见创建工作负载,您可以根据工作负载类型选择适合的参考文档。

    图6 工作负载容器信息
    表5 工作负载容器信息

    参数

    示例

    参数说明

    镜像名称

    nginx

    单击“选择镜像”,在弹出的窗口中切换至“镜像中心”,选择公共镜像。

    镜像版本

    latest

    选择需要部署的镜像版本。

    CPU配额

    0.25cores

    CPU资源限制值,即允许容器使用的CPU最大值,防止占用过多资源,默认0.25cores。

    内存配额

    512MiB

    内存资源限制值,即允许容器使用的内存最大值。如果超过,容器会被终止,默认512MiB。

  5. 单击“服务配置”下的,进入创建服务页面,配置工作负载服务信息,具体参数示例请参见图7表6

    本示例仅解释必要参数,其他参数保留默认值。关于其他参数的详细说明,请参见服务(Service),您可以根据服务类型选择适合的参考文档。

    图7 工作负载服务信息

    表6 工作负载服务信息

    参数

    示例

    参数说明

    Service名称

    nginx

    请填写服务的名称。

    服务名称长度范围为1-63个字符,可以包含小写英文字母、数字和和中划线(-),并以小写英文字母开头,小写英文字母或数字结尾。

    访问类型

    负载均衡

    选择服务类型,即服务访问的方式。

    • 集群内访问:通过集群的内部IP暴露服务,只能够在集群内部访问。
    • 负载均衡:通过弹性负载均衡(ELB)对外部提供服务,即能够从公网访问到工作负载。

    本示例中需要外部访问Nginx,所以访问类型设置为负载均衡。了解服务类型的更多内容,请参见服务(Service)

    负载均衡器

    • 独享型
    • 网络型(TCP/UDP)
    • 选择已有
    • elb-nginx
    • 如果已有弹性负载均衡(ELB)实例,可以选择已有ELB实例。
      说明:

      使用已有的ELB时,ELB实例需要具备3个条件:

      • 与集群属于同一VPC。
      • 实例类型为独享型。
      • 网络类型必须支持私网(存在私有地址)。
    • 如果没有弹性负载均衡(ELB)实例,请选择“自动创建”创建一个负载均衡器并绑定弹性公网IP,具体操作请参见创建负载均衡类型的服务

    端口配置

    协议:TCP

    负载均衡监听器端口协议。

    容器端口:80

    容器中应用启动监听的端口,该容器端口需和应用对外提供的监听端口一致。

    使用nginx镜像时容器端口需设置为80,原因在于Nginx默认使用80端口提供HTTP服务。

    服务端口:8080

    ELB将会使用该端口创建监听器,提供外部流量访问入口,可自定义。

  6. 单击右下角“创建工作负载”

    创建成功后,无状态工作负载列表中对应工作负载的状态为运行中。

    图8 工作负载运行中

  7. 单击Nginx工作负载名称,进入工作负载详情页,获取Nginx的外部访问地址。“访问方式”页签中,“负载均衡公网IP:访问端口”即为外部访问地址。其中,“负载均衡公网IP”5中ELB实例的公网地址,“访问端口”5中的“服务端口”

    图9 访问方式

  8. 在浏览器中输入“负载均衡公网IP:访问端口”,即可成功访问应用。

    图10 访问应用

该步骤涉及命令行操作,您可以使用以下两种方式进行相关操作。

  • 通过集群内命令行工具进行操作:该命令行工具已经配置kubectl命令,并已连接集群,更多信息请参见通过CloudShell连接集群
  • 通过ECS虚拟机进行操作:您需要购买一台Linux系统的ECS虚拟机,该ECS需与集群处于同一VPC,并绑定弹性公网IP,具体操作请参见快速购买和使用Linux ECS。如果已有满足条件的ECS,则无需购买。此外,您还需要安装kubectl命令,并通过kubectl连接集群

以第一种方法为例,介绍如何使用kubectl命令行方式创建Nginx工作负载。

  1. 单击新建的集群名称,进入集群控制台。
  2. 单击右上角“命令行工具”,进入CloudShell页面。

    说明:

    目前,只有部分区域支持CloudShell连接集群,具体情况请以控制台为准。如果区域不支持,请通过ECS虚拟机进行操作。

    图11 CloudShell

  3. 执行以下命令,创建YAML文件nginx-deployment.yaml,用于配置nginx工作负载,文件名称可自定义。

    说明:

    Linux文件命名支持字母、数字、下划线和连字符,但不能包含斜杠(/)和空字符(\0)。文件名区分大小写,建议避免使用特殊字符,如空格、问号(?)和星号(*)等,以提高兼容性。

    vim nginx-deployment.yaml

    文件内容如下:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx     # 工作负载名称
    spec:
      replicas: 1     # 实例数量
      selector:
        matchLabels:  # 选择器,用于选择带有特定标签的资源,需与6中负载均衡类型服务YAML文件中的selector取值保持一致
          app: nginx  
      template:
        metadata:
          labels:     # 标签,
            app: nginx
        spec:
          containers:
          - image: nginx:latest   # 镜像名称:镜像版本
            name: nginx
          imagePullSecrets:
          - name: default-secret

    输入完成后,按Esc键退出编辑,输入:wq保存。

  4. 执行以下命令,创建工作负载。

    kubectl create -f nginx-deployment.yaml

    回显如下,表示已经开始创建工作负载。

    deployment.apps/nginx created

  5. 执行以下命令,查看工作负载状态。

    kubectl get deployment

    回显如下,如果工作负载创建的Pod皆为可用状态,则表示创建成功。

    NAME     READY   UP-TO-DATE   AVAILABLE   AGE
    nginx    1/1     1            1           4m59s

    回显内容的参数说明如下:

    表7 回显内容参数说明

    参数

    示例

    参数说明

    NAME

    nginx

    工作负载的名称。

    READY

    1/1

    表示工作负载的可用状态,显示为“可用Pod个数/期望Pod个数”。

    UP-TO-DATE

    1

    指当前工作负载已经完成更新的Pod数。

    AVAILABLE

    1

    工作负载可用的Pod个数。

    AGE

    4m59s

    工作负载已经运行的时间。

  6. 执行以下命令,创建YAML文件nginx-elb-svc.yaml,用于配置负载均衡服务并关联已创建的工作负载nginx,文件名称可自定义。

    本示例基于已有的弹性负载均衡(ELB)实例创建服务,如果您需要自动创建ELB请参考通过kubectl命令行创建-自动创建ELB
    vim nginx-elb-svc.yaml

    文件内容如下:

    apiVersion: v1 
    kind: Service 
    metadata: 
      name: nginx      # 服务的名称
      annotations:
        kubernetes.io/elb.id: <your_elb_id>          # ELB ID,替换为实际值
        kubernetes.io/elb.class: performance         # 负载均衡器类型
    spec:
      selector:        # selector取值需与3中工作负载YAML文件中matchLabels参数取值一致
         app: nginx
      ports: 
      - name: service0 
        port: 8080     
        protocol: TCP 
        targetPort: 80  
      type: LoadBalancer

    输入完成后,按Esc键退出编辑,输入:wq保存。

    表8 使用已有ELB参数说明

    参数

    示例

    参数说明

    kubernetes.io/elb.id

    405ef586-0397-45c3-bfc4-xxx

    已有的ELB的ID。

    说明:

    使用已有的ELB时,ELB实例需要具备3个条件:

    • 与集群属于同一VPC。
    • 实例类型为独享型。
    • 网络类型必须支持私网(存在私有地址)。

    获取方式:进入网络控制台,在左上方选择集群所在区域,在左侧导航栏中选择“弹性负载均衡 > 我的ELB”,找到对应的ELB实例名称,名称下方即为对应ID。同时,单击ELB实例名称,在“基本信息”页签中验证该ELB是否满足上述条件。

    kubernetes.io/elb.class

    performance

    负载均衡器类型,仅支持performance类型,即独享型负载均衡。

    selector

    app: nginx

    选择器,服务将流量发送给对应标签的Pod。

    ports.port

    8080

    弹性负载均衡(ELB)将会使用该端口创建监听器,提供外部流量访问入口,可自定义。

    ports.protocol

    TCP

    负载均衡监听器端口协议。

    ports.targetPort

    80

    Service访问目标容器的端口,此端口与容器中运行的应用强相关。

    使用nginx镜像请设置为80。

  7. 执行以下命令,创建服务。

    kubectl create -f nginx-elb-svc.yaml

    回显如下,表示服务已创建。

    service/nginx created

  8. 执行以下命令,查看服务。

    kubectl get svc

    回显如下,表示工作负载访问方式已设置成功。

    NAME         TYPE           CLUSTER-IP     EXTERNAL-IP                  PORT(S)          AGE
    kubernetes   ClusterIP      10.247.0.1     <none>                       443/TCP          18h
    nginx        LoadBalancer   10.247.56.18   xx.xx.xx.xx,xx.xx.xx.xx      8080:30581/TCP   5m8s

  9. 在浏览器中输入“外部访问地址:服务端口”,即可成功访问应用。其中外部访问地址为EXTERNAL-IP对应的第一个IP地址,服务端口为8080。

    图12 访问应用

  1. 单击新建的集群名称,进入集群控制台。
  2. 在左侧菜单栏中选择“工作负载”,单击右上角“创建工作负载”,进入创建页。
  3. 配置工作负载基本信息,具体参数示例请参见图5表4

    本示例中仅解释必要参数,其他参数保留默认值。关于其他参数的详细说明,请参见创建工作负载,您可以根据工作负载类型选择适合的参考文档。

    图5 工作负载基本信息

    表4 工作负载基本信息

    参数

    示例

    参数说明

    负载类型

    无状态负载

    Deployment

    工作负载是一种对Pod的抽象管理方式,用于定义和控制Pod的创建、运行和生命周期。通过工作负载,您可以批量管理和自动化控制多个Pod的行为,如伸缩、更新和恢复。

    • 无状态负载(Deployment):管理无状态应用,支持上线部署、滚动升级、创建副本和恢复上线。
    • 有状态负载(StatefulSet):管理有状态应用,确保每个Pod能够拥有独立的持久化状态,并能够在Pod重启或迁移时恢复其数据,以保障应用的可靠性和一致性。
    • 普通任务(Job):一次性任务,完成后Pod自动删除。
    • 定时任务(CronJob):基于时间的Job,指定时间周期内运行指定的Job。

    了解工作负载的更多内容,请参见工作负载概述

    本示例将Nginx部署为无状态负载,原因在于Nginx主要用于处理请求转发、负载均衡和静态内容分发,不需要在本地保存任何持久性数据。

    负载名称

    nginx

    请填写工作负载的名称。

    工作负载名称长度范围为1-63个字符,可以包含小写英文字母、数字和和中划线(-),并以小写英文字母开头,小写英文字母或数字结尾。

    命名空间

    default

    命名空间是Kubernetes集群中的抽象概念,可以将集群中的资源或对象划分为一个组,且不同命名空间中的数据彼此隔离,您可以根据需要创建并使用命名空间。

    集群创建后会默认生成default命名空间,如果没有特殊要求,可以直接选择default命名空间。

    实例数量

    1

    工作负载中Pod实例的数量。Pod实例数量的设置策略:

    • 高可用性:如果您需要保证工作负载的高可用性,则实例数量至少设置为2,避免单点故障。
    • 性能要求:您需要根据工作负载的流量和资源需求设置实例数量,避免过载或资源浪费。

    本示例仅做演示,实例数量设置为1。

  4. 配置工作负载容器信息,具体参数示例请参见图6表5

    本示例中仅解释必要参数,其他参数保留默认值。关于其他参数的详细说明,请参见创建工作负载,您可以根据工作负载类型选择适合的参考文档。

    图6 工作负载容器信息
    表5 工作负载容器信息

    参数

    示例

    参数说明

    镜像名称

    nginx

    单击“选择镜像”,在弹出的窗口中切换至“镜像中心”,选择公共镜像。

    镜像版本

    latest

    选择需要部署的镜像版本。

    CPU配额

    0.25cores

    CPU资源限制值,即允许容器使用的CPU最大值,防止占用过多资源,默认0.25cores。

    内存配额

    512MiB

    内存资源限制值,即允许容器使用的内存最大值。如果超过,容器会被终止,默认512MiB。

  5. 单击“服务配置”下的,进入创建服务页面,配置工作负载服务信息,具体参数示例请参见图7表6

    本示例仅解释必要参数,其他参数保留默认值。关于其他参数的详细说明,请参见服务(Service),您可以根据服务类型选择适合的参考文档。

    图7 工作负载服务信息

    表6 工作负载服务信息

    参数

    示例

    参数说明

    Service名称

    nginx

    请填写服务的名称。

    服务名称长度范围为1-63个字符,可以包含小写英文字母、数字和和中划线(-),并以小写英文字母开头,小写英文字母或数字结尾。

    访问类型

    负载均衡

    选择服务类型,即服务访问的方式。

    • 集群内访问:通过集群的内部IP暴露服务,只能够在集群内部访问。
    • 负载均衡:通过弹性负载均衡(ELB)对外部提供服务,即能够从公网访问到工作负载。

    本示例中需要外部访问Nginx,所以访问类型设置为负载均衡。了解服务类型的更多内容,请参见服务(Service)

    负载均衡器

    • 独享型
    • 网络型(TCP/UDP)
    • 选择已有
    • elb-nginx
    • 如果已有弹性负载均衡(ELB)实例,可以选择已有ELB实例。
      说明:

      使用已有的ELB时,ELB实例需要具备3个条件:

      • 与集群属于同一VPC。
      • 实例类型为独享型。
      • 网络类型必须支持私网(存在私有地址)。
    • 如果没有弹性负载均衡(ELB)实例,请选择“自动创建”创建一个负载均衡器并绑定弹性公网IP,具体操作请参见创建负载均衡类型的服务

    端口配置

    协议:TCP

    负载均衡监听器端口协议。

    容器端口:80

    容器中应用启动监听的端口,该容器端口需和应用对外提供的监听端口一致。

    使用nginx镜像时容器端口需设置为80,原因在于Nginx默认使用80端口提供HTTP服务。

    服务端口:8080

    ELB将会使用该端口创建监听器,提供外部流量访问入口,可自定义。

  6. 单击右下角“创建工作负载”

    创建成功后,无状态工作负载列表中对应工作负载的状态为运行中。

    图8 工作负载运行中

  7. 单击Nginx工作负载名称,进入工作负载详情页,获取Nginx的外部访问地址。“访问方式”页签中,“负载均衡公网IP:访问端口”即为外部访问地址。其中,“负载均衡公网IP”5中ELB实例的公网地址,“访问端口”5中的“服务端口”

    图9 访问方式

  8. 在浏览器中输入“负载均衡公网IP:访问端口”,即可成功访问应用。

    图10 访问应用

该步骤涉及命令行操作,您可以使用以下两种方式进行相关操作。

  • 通过集群内命令行工具进行操作:该命令行工具已经配置kubectl命令,并已连接集群,更多信息请参见通过CloudShell连接集群
  • 通过ECS虚拟机进行操作:您需要购买一台Linux系统的ECS虚拟机,该ECS需与集群处于同一VPC,并绑定弹性公网IP,具体操作请参见快速购买和使用Linux ECS。如果已有满足条件的ECS,则无需购买。此外,您还需要安装kubectl命令,并通过kubectl连接集群

以第一种方法为例,介绍如何使用kubectl命令行方式创建Nginx工作负载。

  1. 单击新建的集群名称,进入集群控制台。
  2. 单击右上角“命令行工具”,进入CloudShell页面。

    说明:

    目前,只有部分区域支持CloudShell连接集群,具体情况请以控制台为准。如果区域不支持,请通过ECS虚拟机进行操作。

    图11 CloudShell

  3. 执行以下命令,创建YAML文件nginx-deployment.yaml,用于配置nginx工作负载,文件名称可自定义。

    说明:

    Linux文件命名支持字母、数字、下划线和连字符,但不能包含斜杠(/)和空字符(\0)。文件名区分大小写,建议避免使用特殊字符,如空格、问号(?)和星号(*)等,以提高兼容性。

    vim nginx-deployment.yaml

    文件内容如下:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx     # 工作负载名称
    spec:
      replicas: 1     # 实例数量
      selector:
        matchLabels:  # 选择器,用于选择带有特定标签的资源,需与6中负载均衡类型服务YAML文件中的selector取值保持一致
          app: nginx  
      template:
        metadata:
          labels:     # 标签,
            app: nginx
        spec:
          containers:
          - image: nginx:latest   # 镜像名称:镜像版本
            name: nginx
          imagePullSecrets:
          - name: default-secret

    输入完成后,按Esc键退出编辑,输入:wq保存。

  4. 执行以下命令,创建工作负载。

    kubectl create -f nginx-deployment.yaml

    回显如下,表示已经开始创建工作负载。

    deployment.apps/nginx created

  5. 执行以下命令,查看工作负载状态。

    kubectl get deployment

    回显如下,如果工作负载创建的Pod皆为可用状态,则表示创建成功。

    NAME     READY   UP-TO-DATE   AVAILABLE   AGE
    nginx    1/1     1            1           4m59s

    回显内容的参数说明如下:

    表7 回显内容参数说明

    参数

    示例

    参数说明

    NAME

    nginx

    工作负载的名称。

    READY

    1/1

    表示工作负载的可用状态,显示为“可用Pod个数/期望Pod个数”。

    UP-TO-DATE

    1

    指当前工作负载已经完成更新的Pod数。

    AVAILABLE

    1

    工作负载可用的Pod个数。

    AGE

    4m59s

    工作负载已经运行的时间。

  6. 执行以下命令,创建YAML文件nginx-elb-svc.yaml,用于配置负载均衡服务并关联已创建的工作负载nginx,文件名称可自定义。

    本示例基于已有的弹性负载均衡(ELB)实例创建服务,如果您需要自动创建ELB请参考通过kubectl命令行创建-自动创建ELB
    vim nginx-elb-svc.yaml

    文件内容如下:

    apiVersion: v1 
    kind: Service 
    metadata: 
      name: nginx      # 服务的名称
      annotations:
        kubernetes.io/elb.id: <your_elb_id>          # ELB ID,替换为实际值
        kubernetes.io/elb.class: performance         # 负载均衡器类型
    spec:
      selector:        # selector取值需与3中工作负载YAML文件中matchLabels参数取值一致
         app: nginx
      ports: 
      - name: service0 
        port: 8080     
        protocol: TCP 
        targetPort: 80  
      type: LoadBalancer

    输入完成后,按Esc键退出编辑,输入:wq保存。

    表8 使用已有ELB参数说明

    参数

    示例

    参数说明

    kubernetes.io/elb.id

    405ef586-0397-45c3-bfc4-xxx

    已有的ELB的ID。

    说明:

    使用已有的ELB时,ELB实例需要具备3个条件:

    • 与集群属于同一VPC。
    • 实例类型为独享型。
    • 网络类型必须支持私网(存在私有地址)。

    获取方式:进入网络控制台,在左上方选择集群所在区域,在左侧导航栏中选择“弹性负载均衡 > 我的ELB”,找到对应的ELB实例名称,名称下方即为对应ID。同时,单击ELB实例名称,在“基本信息”页签中验证该ELB是否满足上述条件。

    kubernetes.io/elb.class

    performance

    负载均衡器类型,仅支持performance类型,即独享型负载均衡。

    selector

    app: nginx

    选择器,服务将流量发送给对应标签的Pod。

    ports.port

    8080

    弹性负载均衡(ELB)将会使用该端口创建监听器,提供外部流量访问入口,可自定义。

    ports.protocol

    TCP

    负载均衡监听器端口协议。

    ports.targetPort

    80

    Service访问目标容器的端口,此端口与容器中运行的应用强相关。

    使用nginx镜像请设置为80。

  7. 执行以下命令,创建服务。

    kubectl create -f nginx-elb-svc.yaml

    回显如下,表示服务已创建。

    service/nginx created

  8. 执行以下命令,查看服务。

    kubectl get svc

    回显如下,表示工作负载访问方式已设置成功。

    NAME         TYPE           CLUSTER-IP     EXTERNAL-IP                  PORT(S)          AGE
    kubernetes   ClusterIP      10.247.0.1     <none>                       443/TCP          18h
    nginx        LoadBalancer   10.247.56.18   xx.xx.xx.xx,xx.xx.xx.xx      8080:30581/TCP   5m8s

  9. 在浏览器中输入“外部访问地址:服务端口”,即可成功访问应用。其中外部访问地址为EXTERNAL-IP对应的第一个IP地址,服务端口为8080。

    图12 访问应用

后续操作:释放资源

如果您无需继续使用集群,请及时释放资源,避免产生额外的费用。

须知:
  • 删除集群会删除集群下工作负载和服务,相关业务将无法恢复。
  • 集群关联创建的VPC级别的资源(如终端节点、NAT网关和SNAT出网EIP等),删除集群时默认保留,请确认其他集群或者地方没有重用该资源,再进行删除操作。
  1. 进入CCE控制台,在左侧导航栏中选择“集群管理”
  2. 找到需要删除的集群,单击集群卡片右上角的,并单击“删除集群”。
  3. 在弹出的“删除集群”窗口中,根据页面提示删除相关资源。
  4. 在确认框中输入“DELETE”,单击“是”,开始执行删除集群操作。

    删除集群需要花费1-3分钟,请耐心等候。集群列表中对应集群名称消失,则说明删除集群成功。

提示

您即将访问非华为云网站,请注意账号财产安全

文档反馈

文档反馈

意见反馈

0/500

标记内容

同时提交标记内容