用户指南 - developer-res-cbc-cn.obs.cn-north-1 ... ·...

59
云容器实例 用户指南 文档版本 01 发布日期 2018-04-16 华为技术有限公司

Upload: others

Post on 23-Jun-2020

14 views

Category:

Documents


0 download

TRANSCRIPT

云容器实例

用户指南

文档版本 01

发布日期 2018-04-16

华为技术有限公司

版权所有 © 华为技术有限公司 2018。 保留一切权利。

非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传

播。

商标声明

和其他华为商标均为华为技术有限公司的商标。

本文档提及的其他所有商标或注册商标,由各自的所有人拥有。

注意

您购买的产品、服务或特性等应受华为公司商业合同和条款的约束,本文档中描述的全部或部分产品、服务或

特性可能不在您的购买或使用范围之内。除非合同另有约定,华为公司对本文档内容不做任何明示或默示的声

明或保证。

由于产品版本升级或其他原因,本文档内容会不定期进行更新。除非另有约定,本文档仅作为使用指导,本文

档中的所有陈述、信息和建议不构成任何明示或暗示的担保。

华为技术有限公司

地址: 深圳市龙岗区坂田华为总部办公楼 邮编:518129

网址: http://www.huawei.com

客户服务邮箱: [email protected]

客户服务电话: 4008302118

文档版本 01 (2018-04-16) 华为专有和保密信息

版权所有 © 华为技术有限公司

i

目 录

1 简介................................................................................................................................................... 11.1 什么是云容器实例........................................................................................................................................................ 11.2 云容器实例与其他服务的关系.................................................................................................................................... 2

2 环境设置........................................................................................................................................... 32.1 登录云容器实例控制台................................................................................................................................................ 32.2 (可选)上传镜像........................................................................................................................................................ 32.3 (可选)创建 ELB........................................................................................................................................................32.4 (可选)准备 SSL 证书............................................................................................................................................... 4

3 入门................................................................................................................................................... 5

4 工作负载管理................................................................................................................................... 94.1 创建工作负载................................................................................................................................................................ 94.2 容器启动命令.............................................................................................................................................................. 134.3 设置容器生命周期...................................................................................................................................................... 144.4 设置容器健康检查...................................................................................................................................................... 144.5 升级负载...................................................................................................................................................................... 154.6 远程终端...................................................................................................................................................................... 17

5 任务负载管理................................................................................................................................. 19

6 负载访问方式................................................................................................................................. 226.1 负载内 Pod 互相访问.................................................................................................................................................. 226.2 内网访问...................................................................................................................................................................... 236.3 公网访问...................................................................................................................................................................... 24

7 工作负载伸缩................................................................................................................................. 28

8 存储管理......................................................................................................................................... 338.1 云硬盘卷...................................................................................................................................................................... 338.2 对象存储...................................................................................................................................................................... 35

9 Helm 应用......................................................................................................................................379.1 制作 Helm 模板包....................................................................................................................................................... 379.2 上传模板包.................................................................................................................................................................. 399.3 通过模板创建 Helm 应用........................................................................................................................................... 409.4 Ingress 配置说明..........................................................................................................................................................41

云容器实例用户指南 目 录

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

ii

10 配置管理....................................................................................................................................... 4310.1 使用 ConfigMap.........................................................................................................................................................4310.2 使用 Secret................................................................................................................................................................. 4510.3 SSL 证书.................................................................................................................................................................... 47

11 日志管理....................................................................................................................................... 52

12 插件管理....................................................................................................................................... 54

云容器实例用户指南 目 录

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

iii

1 简介

1.1 什么是云容器实例云容器实例(Cloud Container Instance, CCI)服务提供无服务器容器引擎,让您不需要管理集群和服务器,只需要三步简单配置,即可畅享容器的敏捷和高性能。CCI 支持创建无状态负载(Deployment)和有状态负载(StatefulSet),并基于Kubernetes的负载模型增强了容器安全隔离、负载快速部署、弹性负载均衡、弹性扩缩容、蓝绿发布等重要能力。

基本概念

l 镜像:Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。

l 容器:镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。

Kubernetes 相关概念

Kubernetes是Google开源的容器集群管理系统,它构建在Docker技术之上,为容器化的应用提供资源调度,部署运行,服务发现,扩容缩容等一整套功能,CCI 基于Kubernetes的负载模型增强了容器安全隔离、负载快速部署、弹性负载均衡、弹性扩缩容、蓝绿发布等重要能力。Kubernetes相应的概念请参见https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/。

云容器实例功能说明

l 自动化持续交付

一键运行DevOps的CI流程生成的容器镜像,保障CI/CD流程全自动化。

l 负载运行时全托管

提供无状态负载、有状态负载的运行时托管,保障负载稳定运行。

l 极速弹性扩缩容

支持用户自定义弹性伸缩策略,且能在1秒内实现弹性扩缩容。

云容器实例用户指南 1 简介

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

1

l 负载高可用保障

支持多实例同时对外提供服务,保障用户业务高可靠,并提供全局负载均衡能力。

l 负载容器状态监控

提供容器健康状态检查和容器的运行时指标的全方位实时监控。

l 数据持久化存储

支持挂载网络存储卷,保障业务数据持久化存储。

1.2 云容器实例与其他服务的关系CCI需要与其他云服务协同工作,CCI需要获取如下云服务资源的权限。在首次登录CCI控制台时,您需要给CCI授权,具体操作请参见2.1 登录云容器实例控制台。

l 容器镜像服务

容器镜像服务(Software Repository for Container,SWR)是一种支持容器镜像全生命周期管理的服务, 提供简单易用、安全可靠的镜像管理功能,帮助用户快速部署容器化服务。

用户可以直接使用上传到容器镜像服务中的镜像创负载。

l 弹性负载均衡

弹性负载均衡( Elastic Load Balance,ELB)将访问流量自动分发到多台云服务器,扩展应用系统对外的服务能力,实现更高水平的应用容错。

用户可以通过弹性负载均衡,从外部网络访问容器负载。

l 云硬盘服务

云硬盘(Elastic Volume Service,EVS)提供持久性块存储的服务,通过数据冗余和缓存加速等多项技术,提供高可用性和持久性,以及稳定的低时延性能。您可以对云硬盘做格式化、创建文件系统等操作,并对数据做持久化存储。

您可以使用云硬盘作为容器的持久化存储,在创建负载的时候挂载到容器上。

l 对象存储服务

对象存储服务(Object Storage Service,OBS)是一个基于对象的海量存储服务,为客户提供海量、安全、高可靠、低成本的数据存储能力,包括:创建、修改、删除桶,上传、下载、删除对象等。

您可以直接在应用程序中调用OBS的SDK使用OBS。

云容器实例用户指南 1 简介

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

2

2 环境设置

2.1 登录云容器实例控制台登录云容器实例控制台,并授予CCI访问其他云服务的权限。

操作步骤

步骤1 登录管理控制台。

步骤2 单击管理控制台左上角的 ,选择区域。

步骤3 在首页“所有服务”中,选择“计算 > 云容器实例”。

进入云容器实例管理控制台。

步骤4 首次登录CCI控制台,需要授信CCI访问其他云服务资源的权限,单击“同意授权”。

当前CCI需要获得访问权限的云服务资源请参见1.2 云容器实例与其他服务的关系。

授信成功后,将会创建一个委托,委托名称为cci_admin_trust,您可以在IAM服务控制台中查看。

----结束

2.2 (可选)上传镜像华为云提供了容器镜像服务,您可以上传Docker镜像到容器镜像仓库中,创建负载时使用该镜像,具体使用方法请参见帮助中心 > 容器镜像服务 > 用户指南 > 简介。

2.3 (可选)创建 ELB通过弹性负载均衡,可以从外部网络访问容器负载。ELB创建的详细描述请参见帮助中心 > 网络 > 弹性负载均衡 > 用户指南 > 快速入门。

步骤1 登录管理控制台。

步骤2 选择“网络 > 弹性负载均衡”。

云容器实例用户指南 2 环境设置

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

3

步骤3 在“弹性负载均衡”界面,单击“创建负载均衡”,创建负载均衡。

填写参数并完成创建。

----结束

2.4 (可选)准备 SSL 证书CCI 支持使用HTTPS访问负载,在创建负载时,您可以使用自己的SSL证书。

SSL证书分为权威证书和自签名证书。权威证书由权威的数字证书认证机构签发,您可向第三方证书代理商购买,使用权威证书的Web网站,默认客户端都是信任的。自签名证书是由用户自己颁发给自己的,一般可以使用openssl生成,默认客户端是不信任的,浏览器访问时会弹出告警,选择忽略告警可继续正常访问。

SSL证书具体信息请参见10.3 SSL证书。

云容器实例用户指南 2 环境设置

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

4

3 入门

本节以创建一个Nginx负载为例介绍如何使用云容器实例。

工作负载是对Pod的服务化封装,包括无状态负载(Deployment)和有状态负载(StatefulSet)。一个工作负载可以包含多个Pod,其中无状态负载中的所有Pod都相同,且您不需要保存负载的状态或持久化的数据;有状态负载的多个Pod不相同,且负载的状态或持久化数据需要保存到负载的持久化存储卷中。

使用 Nginx 创建一个负载

步骤1 登录云容器实例管理控制台,选择“工作负载”,单击“创建负载”。

步骤2 配置容器。

1. 选择需要的容器镜像,您可以选择Docker官方镜像,也可以上传私有镜像到容器镜像服务的镜像仓库中,然后在这里使用。

在本例中因为要创建Nginx负载,请选择“Docker官方镜像”,在nginx镜像下单击“使用该镜像”。

2. 根据需要配置容器规格及高级设置(存储、环境变量、健康检查、生命周期、启动命令和ConfigMap)。

本示例请保持默认值不变,然后单击“下一步”。

云容器实例用户指南 3 入门

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

5

步骤3 配置Pod的数量和域名。

当配置多个Pod时,CCI 会自动在Pod间做负载均衡。您还可以通过配置Pod域名,使得Pod之间能够互相通信。

本例中,Pod数量请配置为“2”,Pod域名选择“不配置”,然后单击“下一步”。

步骤4 配置负载信息。

1. 填写负载名称、描述。

2. 选择负载访问方式。有如下3种选项。

– 不启用:负载不提供外部访问方式,适合一些计算类场景,只需计算完存储结果即可,无需与外部通信。

– 仅负载间访问:负载之间通过“负载域名:负载端口”互相访问。

– 公网访问:通过弹性负载均衡,从外部访问访问负载。

本例中,选择配置为“公网访问”,这样可以通过负载均衡的IP和端口访问Nginx负载。配置负载域名为“nginx”,负载端口的协议为“TCP”,负载端口为“80”(也可以选择其他端口),容器端口为“80”(容器端口必须为80,因为Docker官方Nginx镜像配置的端口为80,具体请参见https://hub.docker.com/_/nginx/)。

云容器实例用户指南 3 入门

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

6

选择ELB实例,如果没创建负载均衡,可以单击“新建经典ELB实例”创建一个,具体步骤请参见2.3 (可选)创建ELB。配置ELB协议为“HTTP”、端口为“80”、HTTP路由映射路径为“/”并关联到负载访问端口,这样就可以通过“ELB IP地址:端口”访问Nginx负载。

步骤5 单击“下一步”,然后单击“启动负载”,单击“返回负载列表”。

在负载列表中,待负载状态为“运行中”,负载创建成功。

单击负载名称,进入负载详情页面,选择“访问配置 > 公网访问”Tab页,拷贝公网访问地址(即“ELB IP地址:端口”),即可在浏览器中访问Nginx负载。

云容器实例用户指南 3 入门

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

7

----结束

云容器实例用户指南 3 入门

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

8

4 工作负载管理

4.1 创建工作负载

工作负载是对Pod的服务化封装,包括无状态负载(Deployment)和有状态负载(StatefulSet)。一个工作负载可以包含多个Pod,其中无状态负载中的所有Pod都相同,且您不需要保存负载的状态或持久化的数据;有状态负载的多个Pod不相同,且负载的状态或持久化数据需要保存到负载的持久化存储卷中。

l 无状态负载与Kubernetes中Deployment Workloads的定义方式相同,是对Pod的服务化封装。一个无状态负载可以包含一个或多个Pod副本,每个Pod副本的角色相同,所以系统会自动为无状态负载的多个Pod副本分发请求。同一无状态负载的所有Pod副本共享存储卷。

l 有状态负载与Kubernetes中 StatefulSet Workloads 的定义方式相同,是对Pod的服务化封装。一个有状态负载可以包含一个或多个Pod副本,不同的Pod副本的角色有区别,且每个Pod副本都有独立的访问域名,所以您可以手动指定请求在Pod副本之间的分发路径。有状态负载的Pod副本间不共享数据,因此每个Pod副本都会被分配独立的专属存储卷。

创建负载

步骤1 登录云容器实例管理控制台,左侧导航栏中选择“工作负载”,单击右侧页面中“创建负载”。

步骤2 添加容器。

1. 选择需要部署的镜像。

– 我的镜像:展示了您上传到容器镜像服务的镜像。

– Docker官方镜像:展示了Dockerhub上的公共镜像。

2. 配置镜像参数。

表 4-1 镜像参数说明

参数 说明

镜像版本 选择镜像的版本。

云容器实例用户指南 4 工作负载管理

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

9

参数 说明

容器名称 容器的名称,可修改。

容器规格 取值范围如下。

– CPU:0.1-64核– 内存:64MB-128GB

3. (可选)高级设置。

表 4-2 高级设置

参数 说明

存储 支持挂载持久化卷到容器中,以实现数据文件的持久化存储。当前支持云硬盘卷。

1. 单击“添加云硬盘卷”。

2. 输入名称、容量、容器内挂载路径,选择磁盘类型。

负载创建完成后,可对存储卷进行管理,具体请参见8.1 云硬盘卷。

日志采集 支持根据您配置的日志输出路径,采集负载日志,并按老化周期(当前固定为1小时)进行防爆处理。

1. 单击添加日志存储。

2. 输入容器内日志路径,调整日志存储空间。

负载创建完成后,可在界面查看日志,具体请参见11 日志管理。

环境变量 容器运行环境中设定的一个变量。可以在负载部署后修改,为负载提供极大的灵活性。

– 手动输入

1. 单击“添加变量”。

2. 输入变量名称、变量值。

– 变量引用

1. 单击添加引用。

2. 输入变量名称,选择引用类型、引用值。其中Secret引用的创建请参见10.2 使用Secret。

健康检查 健康检查是指容器运行过程中,根据您需要,定时检查容器健康状况。详细步骤请参见4.4 设置容器健康检查。

生命周期 生命周期脚本定义,主要针对容器类负载的生命周期事件负载采取的动作。详细步骤请参见4.3 设置容器生命周期。

– 启动后处理:负载启动后触发。

– 停止前处理:负载停止前触发。

云容器实例用户指南 4 工作负载管理

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

10

参数 说明

启动命令 输入容器启动命令,容器启动后会立即执行。

启动命令对应于docker的ENTRYPOINT启动命令,详细内容请参见4.2 容器启动命令。

ConfigMap 指容器在运行过程中可使用的配置项(ConfigMap)。

单击“添加ConfigMap”,选择已有配置项。配置项的创建请参见10.1 使用ConfigMap。

4. (可选)一个负载实例包含1个或多个相关容器。若您的负载包含多个容器,请单

击 ,再执行添加容器的操作。

注意

同一个Pod实例中的不同容器如果监听了相同的端口,则会导致端口冲突,Pod可能会启动失败。例如在Pod中添加了一个nginx镜像容器,启动了80端口,如果该Pod中另一个http服务的镜像也启动80端口,那么这个Pod就会出现端口冲突。

步骤3 单击“下一步”,根据需要配置Pod数量和域名。

表 4-3 Pod 信息

参数 说明

Pod数量 负载可以有一个或多个Pod,您可以设置具体Pod个数。每个负载Pod都由相同的容器部署而成。设置多个Pod主要用于实现高可靠性,当某个Pod故障时,负载还能正常运行。

Pod域名 l 选择“不配置”:负载类型为无状态负载(Deployment),每个Pod角色相同,Pod的创建与删除的顺序随机,流量会随机分发到多个Pod。

l 选择“手动配置”:负载类型为有状态负载(Statefulset),Pod的角色不同且有独立编号,Pod的创建与删除按一定的顺序执行,流量可手动指定分发到特定Pod。Pod间通信的详细内容请参见6.1 负载内Pod互相访问。

Pod域名标识 Pod的域名标识与Pod的创建顺序一起构成Pod间互访域名。

Pod间通信端口 端口名称:设置Pod间通信的端口名称。

容器端口:Pod间通信的端口。

步骤4 单击“下一步”,配置负载信息。

云容器实例用户指南 4 工作负载管理

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

11

表 4-4 负载信息

参数 说明

负载名称 负载名称,请输入以小写字母或数字开头,小写字母、数字、中划线(-)、点(.)组成(其中两点不能相连,点不能与中划线相连),小写字母或数字结尾的1到63字符的字符串。

负载描述 描述信息,少于等于250个字符。

访问配置 l 不启用:将不提供任何从其他负载访问到当前负载的入口,可用于使用自定义的服务发现或简单启用多个Pod的场景。

l 内网访问:将为负载在集群内发布一个负载域名,支持TCP/UDP协议,您的其他负载可以通过负载域名和端口访问当前负载,如MySQL等后台类服务可以选择仅集群内访问。内网访问的详细内容请参见6.2 内网访问。

l 公网访问:将提供一个可以从Internet访问的入口,支持HTTP协议并根据URL转发请求,如WordPress等前台类服务可以选择公网访问。公网方法的详细内容请参见6.3 公网访问。

负载域名 您在CCI上运行的其他负载,可以通过该域名访问本负载。

小写英文字母开头,4-63位,可使用小写英文,数字,中划线(-)。

负载端口配置 设置负载域名访问端口与容器端口映射关系;负载请求由“负载域名:访问端口”转发至“容器实例:容器端口”。

l 协议:支持TCP/UDP协议。

l 负载访问端口:访问负载的端口。

l 容器端口:访问容器的端口。

ELB实例 选择ELB实例,如没有ELB实例请参见2.3 (可选)创建ELB创建。

ELB协议/端口 如果需要对公网提供HTTPS访问,请选择HTTPS协议。将通过ELB实例上该端口访问负载。

证书 使用HTTPS协议时需要选择。CCI将证书自动安装到弹性负载均衡器上,实现数据传输加密。

您可以使用CCI提供的默认证书,也可以自己的SSL证书,SSL证书的导入方法请参见10.3 SSL证书。

后端应用协议 使用HTTPS协议时需要填写。

如果您的后端容器应用提供HTTPS访问请选择HTTPS协议,否则选择HTTP协议。

公网域名 将通过该公网域名访问您的负载,不配置时通过ELB IP访问负载;需要您购买公网域名,并将域名解析指向所选ELB实例的IP。每一级域名长度的限制是63个字符,总长度不超过253个字符。

云容器实例用户指南 4 工作负载管理

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

12

参数 说明

HTTP路由配置 设置uri路径到后端负载访问端口的路由关系;公网请求由“http://公网域名(或elb ip)/映射路径:外部端口”转发至“负载域名:访问端口”。

l 映射路径:映射到负载的路径。

l 负载访问端口:选择负载访问的端口。

步骤5 配置完成后,单击“启动负载”,单击“负载列表”。

在负载列表中,待负载状态为“运行中”,负载创建成功。您可以单击负载名进入负载详情界面,按F5查看负载实时状态。

若需要访问负载,选择“访问配置”Tab页,查看访问地址。

----结束

4.2 容器启动命令启动容器就是启动主进程,但有些时候,启动主进程前,需要一些准备工作。比如MySQL类的数据库,可能需要一些数据库配置、初始化的工作,这些工作要在 终的MySQL服务器运行之前解决。这些操作,可以在制作镜像时通过在Dockerfile文件中设置ENTRYPOINT或CMD来完成,如下所示的Dockerfile中设置了ENTRYPOINT["top", "-b"]命令,其将会在容器启动时执行。

FROM ubuntuENTRYPOINT ["top", "-b"]

在CCI中同样可以设置容器的启动命令,例如上面Dockerfile中的命令,只要在创建负载时配置容器的高级设置,先单击“添加”,输入“top”命令,再单击“添加”,输入参数“-b”,如下图所示。

由于Docker运行时只支持一条ENTRYPOINT命令,CCI中设置的启动命令会覆盖掉制作镜像时Dockerfile中设置的ENTRYPOINT和CMD命令,其规则如下表所示。

云容器实例用户指南 4 工作负载管理

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

13

镜像Entrypoint

镜像CMD 容器运行命令 容器运行参数 最终执行

[touch] [/root/test] 未设置 未设置 [touch /root/test]

[touch] [/root/test] [mkdir] 未设置 [mkdir]

[touch] [/root/test] 未设置 [/opt/test] [touch /opt/test]

[touch] [/root/test] [mkdir] [/opt/test] [mkdir /opt/test]

4.3 设置容器生命周期CCI基于Kubernetes,提供了容器生命周期钩子,在容器的生命周期的特定阶段执行调用,比如容器在停止前希望执行某项操作,就可以注册相应的钩子函数。目前提供的生命周期钩子函数如下所示。

l 启动后处理(PostStart):负载启动后触发。

l 停止前处理(PreStop):负载停止前触发。

说明

当前CCI仅支持命令行类型(Exec)钩子函数。

登录CCI控制台,在创建负载配置生命周期过程中,选择“停止前处理”或者“启动后处理”页签。

在容器中执行指定的命令,配置为需要执行的命令。命令的格式为Command Args[1]Args[2]…(Command为系统命令或者用户自定义可执行程序,如果未指定路径则在默认路径下需找可执行程序),如果需要执行多条命令,建议采用将命令写入脚本执行的方式。

如需要执行的命令如下:

exec: command: - /install.sh - install_agent

请在执行脚本中填写: /install install_agent。

这条命令表示容器创建成功后将执行install_agent安装。

4.4 设置容器健康检查健康检查是指容器运行过程中,根据需要,定时检查容器健康状况。

CCI基于Kubernetes,提供了两种健康检查的方式:

l 应用存活探针(liveness probe),探测应用是否已经启动:该检查方式用于检测容器是否存活,类似于我们执行 ps 命令检查进程是否存在。如果容器的存活检查失败,集群会对该容器执行重启操作;若容器的存活检查成功则不执行任何操作。

l 应用业务探针(readiness probe),探测应用业务是否已经就绪:该检查方式用于检测容器是否准备好开始处理用户请求。一些程序的启动时间可能很长,比如要

云容器实例用户指南 4 工作负载管理

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

14

加载磁盘数据或者要依赖外部的某个模块启动完成才能提供服务。这时候程序进程在,但是并不能对外提供服务。这种场景下该检查方式就非常有用。

表 4-5 健康检查参数说明

参数 参数说明

延迟探测时间 延迟探测时间,单位为秒。例如,设置为10,表明两次健康检查的时间间隔为10秒。

超时时间 超时时间,单位为秒。例如,设置为10,表明执行健康检查的超时等待时间为10秒,如果超过这个时间,本次健康检查就被视为失败。若设置为0或不设置,默认超时等待时间为1秒。

命令行脚本 在容器/进程内部执行一个命令,如果该命令的退出状态码为0,表示容器健康。

例如,您若希望配置检测应用是否成功创建目录foo的探针,那么需要在界面上做如下配置:if [ ! -d "foo"]; thenexit 1 else exit 0 fi

4.5 升级负载负载创建成功后,可以对负载更新和升级。

目前支持滚动升级,滚动升级将逐步用新版本的负载替换旧版本的负载,升级的过程中,业务流量会同时负载均衡分布到新老的负载上,因此业务不会中断。

升级负载

步骤1 登录云容器实例管理控制台,单击要更新升级的负载,进入实例详情页面,单击右上角“升级”。

步骤2 单击“更换镜像”可以选择新的镜像,如下图所示,其余参数如表4-6所示。

云容器实例用户指南 4 工作负载管理

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

15

表 4-6 镜像参数说明

参数 说明

镜像版本 选择镜像的版本。

容器名称 容器的名称,可修改。

容器规格 取值范围如下。

l CPU:0.1-64核

l 内存:64MB-128GB

步骤3 单击“高级设置”,更改需要升级的配置。

表 4-7 高级设置

参数 说明

存储 支持挂载持久化卷到容器中,以实现数据文件的持久化存储。当前支持云硬盘卷。

1. 单击“添加云硬盘卷”。

2. 输入名称、容量、容器内挂载路径,选择磁盘类型。

负载创建完成后,可对存储卷进行管理,具体请参见8.1 云硬盘卷。

云容器实例用户指南 4 工作负载管理

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

16

参数 说明

日志采集 支持根据您配置的日志输出路径,采集负载日志,并按老化周期(当前固定为1小时)进行防爆处理。

1. 单击添加日志存储。

2. 输入容器内日志路径,调整日志存储空间。

负载创建完成后,可在界面查看日志,具体请参见11 日志管理。

环境变量 容器运行环境中设定的一个变量。可以在负载部署后修改,为负载提供极大的灵活性。

l 手动输入

1. 单击“添加变量”。

2. 输入变量名称、变量值。

l 变量引用

1. 单击添加引用。

2. 输入变量名称,选择引用类型、引用值。其中Secret引用的创建请参见10.2 使用Secret。

健康检查 健康检查是指容器运行过程中,根据您需要,定时检查容器健康状况。详细步骤请参见4.4 设置容器健康检查。

生命周期 生命周期脚本定义,主要针对容器类负载的生命周期事件负载采取的动作。详细步骤请参见4.3 设置容器生命周期。

l 启动后处理:负载启动后触发。

l 停止前处理:负载停止前触发。

启动命令 输入容器启动命令,容器启动后会立即执行。

启动命令对应于docker的ENTRYPOINT启动命令,详细内容请参见4.2 容器启动命令。

ConfigMap 指容器在运行过程中可使用的配置项(ConfigMap)。

单击“添加ConfigMap”,选择已有配置项。配置项的创建请参见10.1 使用ConfigMap。

步骤4 单击“下一步”。

步骤5 单击“提交”,升级负载。

----结束

4.6 远程终端

远程终端(web-terminal)提供连接容器功能,帮助您快速调试容器。

约束与限制

l web-terminal 默认是以 sh shell 登录容器,要求容器支持 sh shell。

云容器实例用户指南 4 工作负载管理

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

17

l 只有状态为“运行中”的容器可终端登录。

通过远程终端连接容器

步骤1 登录云容器实例管理控制台,左侧导航栏中选择“工作负载”,单击要访问的工作负载。

步骤2 在Pod实例下面选择“终端”页签。

当出现“ # ”号时,说明已登录。

----结束

云容器实例用户指南 4 工作负载管理

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

18

5 任务负载管理

任务负载是负责批量处理短暂的一次性任务(short lived one-off tasks),即仅执行一次的任务,它保证批处理任务的一个或多个 Pod 成功结束。

l 短时任务(Job):是Kubernetes用来控制批处理型任务的资源对象。批处理业务与长期伺服业务(Deployment、Statefulset)的主要区别是批处理业务的运行有头有尾,而长期伺服业务在用户不停止的情况下永远运行。Job管理的Pod根据用户的设置把任务成功完成就自动退出(Pod自动删除)。

l 定时任务(CronJob):是基于时间的Job,就类似于Linux系统的crontab,在指定的时间周期运行指定的Job。

任务负载的这种用完即停止的特性特别适合一次性任务,比如持续集成,配合CCI按秒计费,真正意义上做到按需使用。

创建短时任务

步骤1 登录云容器实例管理控制台,左侧导航栏中选择“任务负载>短时任务”,单击右侧页面中“创建短时任务”。

步骤2 添加容器。

1. 选择需要部署的镜像。

– 我的镜像:展示了您上传到容器镜像服务的镜像。

– Docker官方镜像:展示了Dockerhub上的公共镜像。

2. 配置镜像参数。

表 5-1 镜像参数说明

参数 说明

镜像版本 选择镜像的版本。

容器名称 容器的名称,可修改。

容器规格 取值范围如下。

– CPU:0.1-64核– 内存:64MB-128GB

云容器实例用户指南 5 任务负载管理

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

19

3. (可选)高级设置。

表 5-2 高级设置

参数 说明

环境变量 容器运行环境中设定的一个变量。可以在负载部署后修改,为负载提供极大的灵活性。

– 手动输入

1. 单击“添加变量”。

2. 输入变量名称、变量值。

– 变量引用

1. 单击添加引用。

2. 输入变量名称,选择引用类型、引用值。其中Secret引用的创建请参见10.2 使用Secret。

存活探针 用于容器的自定义监控检查,如果检查失败,CCI将删除该应用实例,然后根据重启策略来决定是否重启容器。详细步骤请参见4.4 设置容器健康检查。

生命周期 生命周期脚本定义,主要针对容器类负载的生命周期事件负载采取的动作。详细步骤请参见4.3 设置容器生命周期。

– 启动后处理:容器启动后触发。

– 停止前处理:容器停止前触发。

启动命令 输入容器启动命令,容器启动后会立即执行。

启动命令对应于docker的ENTRYPOINT启动命令,详细内容请参见4.2 容器启动命令。

ConfigMap 指容器在运行过程中可使用的配置项(ConfigMap)。

单击“添加ConfigMap”,选择已有配置项。配置项的创建请参见10.1 使用ConfigMap。

4. (可选)一个任务实例包含1个或多个相关容器。若您的任务包含多个容器,请单

击 ,再执行添加容器的操作。

注意

同一个Pod实例中的不同容器如果监听了相同的端口,则会导致端口冲突,Pod可能会启动失败。例如在Pod中添加了一个nginx镜像容器,启动了80端口,如果该Pod中另一个http服务的镜像也启动80端口,那么这个Pod就会出现端口冲突。

步骤3 单击“下一步”,根据需要配置Pod数量和域名。

云容器实例用户指南 5 任务负载管理

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

20

表 5-3 负载信息

参数 说明

任务名称 负载名称,请输入以小写字母或数字开头,小写字母、数字、中划线(-)、点(.)组成(其中两点不能相连,点不能与中划线相连),小写字母或数字结尾的1到63字符的字符串。

任务描述 描述信息,少于等于250个字符。

任务类型 l 一次性任务:一次性任务每次创建一个Pod,直至一个Pod成功执行,任务完成。

l 自定义任务:自定义任务的执行次数和每次并行执行的数量。

执行次数(自定义任务需要配置)

执行次数指任务负载达到执行完成状态需要成功执行的Pod数量。

并行数(自定义任务需要配置)

并行数指任务负载执行过程中允许同时创建的 大Pod数,并行数应小于执行次数。

超时时间 当任务执行超出该时间时,任务会被标识为失败,任务负载下的所有Pod实例都会被删除。

为空时表示不设置。

步骤4 单击“下一步”,单击“启动任务”,单击“任务列表”。

在任务列表中,待任务状态为“运行中”,任务创建成功。您可以单击负载名进入任务详情界面,按F5查看任务实时状态。

----结束

云容器实例用户指南 5 任务负载管理

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

21

6 负载访问方式

6.1 负载内 Pod 互相访问有状态负载(StatefulSet)支持Pod间的互相访问。

有状态负载中的Pod是按照顺序命名,格式为“负载名-{0..N-1}”,0..N-1为Pod序号,例如负载名称为“nginx”,负载中有3个Pod,则Pod的名称为“nginx-0”、“nginx-1”、“nginx-2”。

由于Pod的名称固定,则可以根据“http://{Pod名称}.{Pod域名}:{容器端口}”解析到Pod的地址,从而做到Pod间互相访问。如下图所示,负载名称为“nginx”,Pod域名为“poddomain”,容器端口为“80”,则两个Pod通过“http://nginx-0.poddomain:80”和“http://nginx-1.poddomain:80”互相访问。

在CCI中,您只需要在创建负载时配置Pod域名即可。

l Pod域名标识:Pod的域名。

l 端口名称:Pod端口名称。

云容器实例用户指南 6 负载访问方式

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

22

l 容器端口:容器监听的端口,Pod间通信时使用的端口。

前面说了有状态负载中Pod的名称按照顺序命名,格式为“负载名-{0..N-1}”,0..N-1为Pod序号。

那如何知道Pod的名称呢?

获取Pod名称的方式非常简单,直接获取容器的hostname,然后按规则拼接出Pod访问地址。如下是一个Pod的配置片段,在启动时获取hostname,然后写入文件中,应用程序运行时直接读取该文件获取访问地址。

spec: containers: - command: - /bin/sh - -ec - | HOSTNAME=$(hostname) # store member id into PVC for later member replacement collect_member() { while ! etcdctl member list &>/dev/null; do sleep 1; done etcdctl member list | grep http://${HOSTNAME}.${SET_NAME}:2380 | cut -d':' -f1 | cut -d'[' -f1 > /var/run/etcd/member_id exit 0 }

6.2 内网访问内网访问指的是在CCI中部署的负载之间互相访问。

负载中 小的资源单位就是Pod,访问负载就是访问负载中的Pod。负载中的Pod能够动态地创建和销毁,例如,扩缩容或者执行滚动升级,这时Pod的地址就是不可靠和可变,这为访问Pod带来了不便。

为解决该问题,CCI提供了kube-dns(内部域名解析)插件,Pod的变化由负载管理,外部无需感知。

访问负载只需要通过“负载域名:负载访问端口”即可,其中负载访问端口映射到容器端口。如下图所示,Deployment-A中的Pod如果要访问Deployment-B中的Pod时,只需要访问“nginx:8080”即可。

云容器实例用户指南 6 负载访问方式

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

23

在CCI中,您只需要在创建负载时,填写负载域名和负载的端口配置,即可通过“负载域名:负载访问端口”访问到该负载。

说明

如果您选择了公网访问且没有安装kube-dns插件,那么在创建负载时,CCI会为您自动安装kube-dns插件。kube-dns插件的详细信息请参见12 插件管理。

l 负载域名:访问负载的域名。

l 负载端口配置

– 协议:访问负载的通信协议,可选择TCP或UDP。– 负载访问端口:负载提供的访问端口。

– 容器端口:容器监听的端口,负载访问端口映射到容器端口。

6.3 公网访问公网访问是指从Internet访问负载。

云容器实例用户指南 6 负载访问方式

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

24

从公网访问负载需要给负载绑定ELB实例,当前支持HTTP和HTTPS协议访问。绑定完成后,可以通过“http://公网域名(或elb ip):外部端口/映射路径”访问负载。

ELB的流量会转发至“负载域名:负载访问端口/映射路径”,从而访问到负载,如下图所示。

配置公网访问

在CCI中,您只需要在创建负载时选择“公网访问”,然后配置如下参数。

说明

如果您选择了内网访问且没有安装kube-dns插件,那么在创建负载时,CCI会为您自动安装kube-dns插件。kube-dns插件的详细信息请参见12 插件管理。

l 负载域名:访问负载的域名。

l 负载端口配置

云容器实例用户指南 6 负载访问方式

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

25

– 协议:访问负载的通信协议,可选择TCP或UDP。– 负载访问端口:负载提供的访问端口。

– 容器端口:容器监听的端口,负载访问端口映射到容器端口。

如下图所示,公网访问的流量会转发到“nginx:8080”,从而访问到负载。

负载域名配置完成后,需要配置ELB实例的相关信息。

l ELB实例:选择ELB实例,如没有ELB实例可以单击“新建经典ELB实例”创建。

l ELB协议/端口:支持HTTP和HTTPS协议。

l 证书(选择HTTPS协议时必填):您可以使用CCI提供的默认证书,也可以使用自己的SSL证书,SSL证书的导入方法请参见10.3 SSL证书。

l 后端应用协议(选择HTTPS协议时必填):如果您的后端容器应用提供HTTPS访问请选择HTTPS协议,否则选择HTTP协议。

l 公网域名(可选):通过域名访问负载,公网域名需要您自行购买,并将将域名解析指向所选的ELB实例IP。

l HTTP路由配置

– 映射路径:URL访问的路径,必须以“/”开头,如“/api/web”,也可以是根路径“/”。

– 负载访问端口:前面设置的负载访问端口,必须为TCP协议的。

如下图所示,假如“elb-cy”实例的IP地址为“10.10.10.10”,则通过“http://10.10.10.10:6701/”就可以从公网访问到负载。

云容器实例用户指南 6 负载访问方式

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

26

如何处理公网无法访问

1. 公网能正常访问的前提是负载已处于运行中状态,如果您的负载处于未就绪或异常状态,公网访问将无法正常使用。

2. 从负载开始创建到公网可以正常访问可需要1分钟到3分钟的时间,在此时间内网络路由尚未完成配置,请稍作等待。

3. 负载创建3分钟以后仍然无法访问。在“工作负载 -> 查看您创建的负载详情-> 选择访问配置 -> 选择访问事件”,查看访问事件,查看是否有告警事件。如下两种情况无法为公网访问相关的事件。

– Listener port is repeated:ELB监听器端口重复,是由于之前发布公网访问的负载,删除之后立刻创建使用相同ELB端口的公网访问负载,ELB实际删除端口需要一定的时间,因此首次创建失败,可以选择删除负载重新创建,也可以等待5-10分钟,公网访问可正常使用。

– Create listener failed:创建ELB监听器失败,一般情况下ELB实例的监听器配额为5个,创建监听器失败的原因一般是超过配额限度,请选择其他配额充足的ELB实例。

4. 负载创建3分钟以后仍然无法访问,且无告警事件,可能原因是用户配置的容器端口实际上没有相应进程在监听,目前CCI服务无法检测出该类使用异常,需要您排查镜像是否有监听该容器端口。如果容器端口监听正确,此时无法访问的原因可能为ELB实例本身有问题,请排查ELB实例状态。

云容器实例用户指南 6 负载访问方式

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

27

7 工作负载伸缩

本节主要讲解工作负载弹性伸缩和手动伸缩的配置方式。请根据实际业务选择。

l 弹性伸缩:支持告警、定时、周期三种策略。配置完成后可基于资源变化、固定时间、固定周期自动触发实例的增减。

l 手动伸缩:配置完成后立即触发实例的增减。

弹性伸缩

您可以根据业务需求自行定义伸缩策略,降低人为反复调整资源以应对业务变化和高峰压力的工作量,帮助您节约资源和人力成本。当前支持三种弹性伸缩策略:

告警策略:支持根据CPU/内存的设置,进行工作负载的自动伸缩。工作负载创建完成后即可设置,在CPU/内存超过或少于一定值时,自动增减实例。

定时策略:支持在特定时间点进行工作负载的自动伸缩。适用于秒杀周年庆等活动,例如在秒杀这个时间点增加一定数量的实例个数。

周期策略:支持以天、周、月为周期的伸缩策略。适用于周期性的流量变化。

l 告警策略:支持根据CPU/内存的设置,进行工作负载的自动伸缩。

a. 登录CCI控制台,在左侧导航栏中选择“工作负载”,单击工作负载名称后的“伸缩”。

b. 在弹性伸缩下,单击“添加伸缩策略”。

云容器实例用户指南 7 工作负载伸缩

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

28

图 7-1 添加告警策略

表 7-1 添加告警策略

参数 参数说明

策略名称 请输入伸缩策略的名称。

策略类型 选择“告警策略”。

触发条件 支持“CPU使用率”和“内存使用率”。

若输入“内存使用率”的“平均值>70%”,表示在该条件下触发伸缩策略。

周期时长 指标统计周期。单击下拉选项进行选择。

若设置为60秒,表示每60秒统计一次。

连续出现次数 若设置为3,则表示指标数据连续三个统计周期达到了设定的阈值,则触发策略动作。

执行动作 策略触发后执行的动作。增加或减少实例数。

c. 单击“确定”。

在弹性伸缩下,可看到策略已启动。

云容器实例用户指南 7 工作负载伸缩

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

29

图 7-2 策略已启动

待到触发条件发生时,弹性伸缩策略会自动启动。

l 定时策略:支持在特定时间点进行工作负载的自动伸缩。

a. 在弹性伸缩下,单击“添加伸缩策略”,选择“定时策略”。

图 7-3 定时策略

表 7-2 添加定时策略

参数 参数说明

策略名称 请输入伸缩策略的名称。

策略类型 选择定时策略。

触发时间 策略触发时间。

执行操作 策略触发后执行的动作。增加或减少实例数。

b. 单击“确定”。

在弹性伸缩下,可看到策略已启动。

云容器实例用户指南 7 工作负载伸缩

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

30

l 周期策略:支持以天、周、月为周期的伸缩策略。

a. 在弹性伸缩下,单击“添加伸缩策略”,选择“周期策略”

图 7-4 周期策略

表 7-3 添加周期策略

参数 参数说明

策略名称 请输入伸缩策略的名称。

策略类型 选择周期策略。

选择时间 选择策略触发的时间。

执行操作 策略触发后执行的动作。

b. 单击“确定”。

在弹性伸缩下,可看到策略已启动。

手动伸缩

步骤1 登录CCI控制台,在左侧导航栏中选择“工作负载”,单击工作负载名称后的“伸缩”。

步骤2 在“手动伸缩”策略下,单击 修改实例数量,例如修改为“3”,单击“保存”后实例伸缩操作即可生效。

云容器实例用户指南 7 工作负载伸缩

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

31

CCI 为应用删除提供一个时间窗,预留给生命周期中停止前处理阶段执行命令。若超过此时间窗,进程仍未停止,该应用将被强制删除。

图 7-5 修改实例数

步骤3 在“Pod列表”处,可查看到新的实例在创建中,待状态为运行中时,表示已成功完成实例伸缩操作。

图 7-6 手动伸缩

----结束

云容器实例用户指南 7 工作负载伸缩

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

32

8 存储管理

8.1 云硬盘卷

为满足数据的持久化需求,CCI 支持将云硬盘(EVS)挂载到容器中。通过云硬盘,可以将存储系统的远端文件目录挂载到容器中,数据卷中的数据将被永久保存,即使删除了容器,只是删除了挂载数据卷,数据卷中的数据依然保存在存储系统中。

EVS目前支持普通I/O、高I/O、超高I/O 三种规格。

l 普通I/O:后端存储由SATA 存储介质提供,适用于大容量,读写速率要求不高,事务性处理较少的应用场景,如:开发测试、企业办公应用。

l 高I/O:后端存储由SAS存储介质提供,适用于性能相对较高,读写速率要求高,有实时数据存储需求应用场景,如:创建文件系统、分布式文件共享。

l 超高I/O:后端存储SSD存储介质提供,适用于高性能、高读写速率要求、数据密集型应用场景,如:NoSQL、关系型数据库、数据仓库(如Oracle RAC、SAPHANA)。

使用限制

l CCI仅支持导入同可用区下的共享、SCSI、非加密、非包周期、非ECS捆绑销售、非专属存储云硬盘。

l 云硬盘卷只能当一个新盘来用。对于CCI没有挂载过的云硬盘卷,云硬盘卷中的内容对容器不可见。

l 对于已导入的云硬盘,如果在云硬盘控制台中删除该硬盘,CCI无法感知,建议您确定没有负载使用时再删除云硬盘。

l 通常情况下,一个云硬盘卷只挂载到一个实例下,但一个云硬盘卷也支持挂载到多个实例,这时可能会出现读写冲突、数据缓存导致数据不一致等问题。解决这个问题的通常做法是采用集群文件系统进行块设备的统一管理,详细说明请参见共享云硬盘及使用方法。

添加云硬盘

步骤1 登录CCI 控制台,单击左侧导航栏的“存储管理 > 云硬盘卷”,单击“新建卷”。

步骤2 选择要导入的云硬盘,然后单击“导入已选云硬盘”。

云容器实例用户指南 8 存储管理

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

33

如果此处没有云硬盘可选,您可以单击“创建云硬盘”,在云硬盘界面单击“购买云硬盘”,根据界面操作,购买云硬盘,购买完成后再导入。

导入后,您可以在看到对应的卷。

----结束

使用云硬盘

在创建负载的过程中,选择容器镜像后,在高级设置里面选择添加云存储,将云存储挂载到容器中使用。

负载创建成功后,可以在“配置管理 > 云硬盘卷”中查看到云硬盘与负载的关系。

云容器实例用户指南 8 存储管理

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

34

8.2 对象存储CCI 当前支持直接以SDK方式使用对象存储服务(OBS)。

OBS是一个基于对象的海量存储服务,为客户提供海量、安全、高可靠、低成本的数据存储能力。OBS的更多信息,请参见对象存储服务。

OBS 使用场景

存储类别 适用场景 场景描述

标准存储 大数据分析 大数据应用(例如基因、财务、气象、广告等)直接通过 Internet 将文件、图片、视频直接存入OBS。

原生云应用程序数据

OBS提供高性能、高可用性存储服务,移动和互联网应用程序从而能够使用高扩展和低成本和高效的存储服务。利用OBS使用任意量的数据,并在任何位置访问内容。

低频访问存储

静态网站托管

网站经营者或个人网站发布者,将OBS作为静态网站托管资源池,在将静态网页上传到OBS后,通过设置网站功能,托管整个静态网站,并且通过CDN进行数据快速分发。

备份/活跃归档

OBS提供了高持久性、高扩展性以及安全的解决方案来备份和归档用户的关键数据。用户可以使用 OBS 的版本控制功能为存储的数据提供进一步的保护。高持久性、安全的基础设施旨在提供高级数据保护的稳固灾难恢复解决方案,支持第三方备份和归档软件,如:CommVault、NBU等。

其他服务场景

如镜像服务IMS、云硬盘备份VBS、RDS数据库等服务,使用OBS作为各自服务的存储资源池或备份存储等。

归档存储 深度/冷归档 用户的数据需要长期备份,如存储几个月,乃至几年,并对延时不敏感的数据,如果用户提取数据时能够容忍小于12小时的时间延迟就可以考虑使用归档产品。

注意事项

当前仅支持访问华北区的桶,可使用域名“obs.myhwclouds.com”和“obs.cn-north-1.myhwclouds.com”访问。

云容器实例用户指南 8 存储管理

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

35

使用 OBS

步骤1 在应用程序中使用SDK方式使用OBS,OBS的SDK的下载及使用方法请参见https://developer.huaweicloud.com/sdk?OBS。

步骤2 将应用程序打包成Docker镜像,上传到容器镜像服务的仓库中,具体方法请参见容器镜像服务用户指南。

步骤3 使用镜像创建负载。

----结束

云容器实例用户指南 8 存储管理

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

36

9 Helm 应用

Helm是一个kubernetes应用的包管理工具,用来管理模板包(charts)——预先配置好的安装包资源,类似于Ubuntu的apt和CentOS中的yum。

Helm chart是用来定义kubernetes应用程序的yaml文件,用于定义应用程序需要使用的镜像、依赖和资源等。

CCI支持使用Helm模板包创建应用,且可以帮助您管理模板包,方便易用。

9.1 制作 Helm 模板包

模板包制作方法

制作模板包的方法,请参见https://github.com/kubernetes/helm/blob/master/docs/charts.md。

您也可以访问https://github.com/kubernetes/charts,获取需要的社区模板包。

模板包需要按照模板包规范的要求设置模板包目录结构和命名模板包。

有如下两种方法压缩制作模板包:

l 若Linux机器没有安装helm客户端,则执行如下命令。

tar pzcf {name}-{version}.tgz {name}/其中,

{name}替换为实际的模板包名。

{version}实际的模板包版本号。

l 若Linux机器已安装helm客户端,则执行如下命令。

helm package {name}/其中,将{name}替换为实际的模板包名。

约束与限制

l CCI 当前支持的Kubernetes资源类型有:Deployment、Statefulset、ConfigMap、Secret、Service、Ingress、PersistentVolumeClaim。

l CCI中Ingress需要填写特定的字段,具体请参见9.4 Ingress配置说明。

l 在CCI中Deployment,Statefulset与开源Kubernetes相比有如下不同。

云容器实例用户指南 9 Helm 应用

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

37

a. spec.template.spec.containers[i].resources.limits和spec.template.spec.containers[i].resources.request必填,且必须相等。

b. 以下字段不能自行指定,必须留空。

n namespace

n spec.template.spec.securityContext

n hostnetwork

n hostIPC

n hostPID

c. 与节点调度的相关字段将会被置成默认值,如:

n spec.template.spec.nodeName

n spec.template.spec.nodeSelector

n spec.template.spec.affinity.nodeAffinity

n spec.template.spec.schedulerName

d. 不允许挂载主机卷,即spec.template.spec.volumes不能使用hostPath类型卷。

l values.yaml中的数据会在前台展示,如果包含敏感信息,为安全考虑,建议您填写加密后的字符串,使用时进行解密处理。

模板包规范

以下以redis应用为例,在准备redis应用模板包时根据模板包规范制作模板包。

l 模板包大小

模板报大小不超过2MB。

l 命名要求

模板包命名格式为:“应用名称-主版本号.次版本号.补丁版本号.tgz”,如mysql-1.0.0.tgz。

说明

l 应用名称不超过15字符

l 主版本号、次版本号、补丁版本号的取值为0-999的之内的整数。

l 目录结构

模板包的目录结构如下所示:

redis/ templates/ values.yaml README.md Chart.yaml .helmignore

目录说明如表9-1所示,带*的为必选项:

表 9-1 模板包目录说明

参数 参数说明

*templates 用于存放所有的template(模板)文件。

*values.yaml 用于描述template文件所需的配置参数。

云容器实例用户指南 9 Helm 应用

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

38

参数 参数说明

README.md 一个mardown文件,包括:

l 描述Chart提供的应用或服务。

l 运行Chart的前提。

l 解释values.yaml文件中的配置。

l 安装和配置Chart的相关信息。

*Chart.yaml 模板的基本信息说明。

.helmignore 设定在应用安装时不需要读取templates的某些文件或数据。

9.2 上传模板包上传模板到“Helm模板仓库 > 我的模板”中,为后期创建应用准备。

上传模板包

步骤1 在主菜单中选择“Helm模板仓库 > 我的模板。”

步骤2 单击“上传Helm模板。”

步骤3 单击“选择Helm模板”,选中待上传的模板后,单击“上传”。

----结束

后续处理

模板创建完成后,在“我的模板”页面您还可以执行表9-2中的操作。

表 9-2 其他操作

操作 说明

安装模板 单击“安装”,安装该模板用于创建应用,详情请参见9.3 通过模板创建Helm应用。

更新模板 单击“更新”,更新模板版本。更新模板是针对同名同版本的模板,即只更新内容不更新版本,操作同“上传模板”。

下载模板 单击“下载”将模板下载到本地。

删除模板单击 ,删除已创建的模板。模板删除后不能恢复,请谨慎操作。

云容器实例用户指南 9 Helm 应用

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

39

9.3 通过模板创建 Helm 应用

创建 Helm 应用

步骤1 在主菜单中选择“Helm模板仓库 > 我的模板。”。

步骤2 选择9.2 上传模板包中上传的模板,单击“安装”,通过该模板创建应用。

步骤3 参照表9-3设置安装应用参数,其中带“*”标志的参数为必填参数。

表 9-3 安装应用参数说明

参数 参数说明

*应用名称 应用名称。

请输入以大小写字母开头,由大小写字母,数字,中划线(-),下划线(_)组成,大小写字母数字结尾的1到24个字符的字符串。

*模板版本 请选择要使用模板的版本。

高级配置 您可以导入values.yaml文件,导入后可替换模板包中的values.yaml文件;也可直接在配置框中在线编辑模板参数。

说明此处导入的values.yaml文件需符合yaml规范,即KEY:VALUE格式。对于文件中的字段不做任何限制。

1. 单击“导入配置文件”。

2. 选择对应的values.yaml文件,单击“打开”。

步骤4 配置完成后,单击“下一步”。

步骤5 确认订单后,单击“创建应用”。

步骤6 单击“返回Helm应用列表”查看应用的运行状态,或单击“查看Helm应用列表”查看应用的详情。

----结束

云容器实例用户指南 9 Helm 应用

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

40

后续处理

应用创建后,在左侧导航栏中选择“Helm应用”页面,您还可以做如下操作。

表 9-4 其他操作

操作 说明

升级 单击操作列中的“升级”,选择新版本模板,或导入新的配置文件,或在线修改已有配置,然后单击“下一步”,确认新的配置信息,单击“升级”。

回退 单击操作列中的“回退”,选择要回退的应用版本,修改已有配置,然后单击“下一步”,确认新的配置信息,单击“回退”。

删除 单击操作列中的“删除”,然后单击“确定”。

注意卸载后不可恢复,卸载模板应用不会删除持久化存储。

9.4 Ingress 配置说明

配置规则

Ingress将内部web应用发布到公网的配置资源。配置定义规则如下:

apiVersion: extensions/v1beta1kind: Ingressmetadata: annotations: ingress.beta.kubernetes.io/loadbalancer-ip: {{ELB实例IP地址}} ingress.beta.kubernetes.io/loadbalancer-port: "{{ELB实例端口}}" ingress.beta.kubernetes.io/role: data labels: app: {{应用名称}} isExternal: "true" zone: data name: {{应用名称}}spec: rules: - host: {{域名}} http: paths: - backend: serviceName: {{后端服务}} servicePort: {{后端服务端口}} path: {{路由}}

表 9-5 参数说明

参数名称 说明

应用名称 即ingress的名称。

ELB实例IP地址

ELB创建的实例的公网IP地址。

ELB实例端口 选择在ELB的具体端口上开放访问。

云容器实例用户指南 9 Helm 应用

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

41

参数名称 说明

域名 如果通过域名来访问发布的公网访问,须配置域名,否则值为ELB的IP地址。

后端服务 相关路由对应的后端服务,即Service的名称。

后端服务端口 相关路由对应的后端服务端口,即Service的port。

路由 web服务开放的路由。

示例apiVersion: extensions/v1beta1kind: Ingressmetadata: annotations: ingress.beta.kubernetes.io/loadbalancer-ip: 10.154.73.182 ingress.beta.kubernetes.io/loadbalancer-port: "8012" ingress.beta.kubernetes.io/role: data labels: app: guestbook isExternal: "true" zone: data name: guestbookspec: rules: - host: guestbook.com http: paths: - backend: serviceName: guestbook servicePort: 3000 path: /

云容器实例用户指南 9 Helm 应用

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

42

10 配置管理

10.1 使用 ConfigMapConfigMap是一种用于存储应用所需配置信息的资源类型。资源创建完成后,可在容器应用中作为文件使用。

创建 ConfigMap

步骤1 登录CCI 控制台,单击左侧导航栏的“配置管理 > ConfigMap”,单击“创建ConfigMap”。

步骤2 CCI 支持“手工输入”和“文件上传”两种方式来创建ConfigMap。l 方式一:手工输入。参照表10-1设置新增配置参数,其中带“*”标志的参数为必

填参数。输入完成后,单击“添加ConfigMap”。

表 10-1 新建配置参数说明

参数 参数说明

基本信息

*ConfigMap名称 新建的ConfigMap名称。

请输入以小写字母或数字开头,小写字母、数字、中划线(-)、点(.)组成(其中两点不能相连,点不能与中划线相连),小写字母或数字结尾的1到253字符的字符串

描述 ConfigMap的描述信息。

*ConfigMap数据 ConfigMap数据可以在容器中使用,或被用来存储ConfigMap数据。其中,“键”代表文件名;“值”代表文件中的内容。

1. 单击“添加数据” 。2. 输入键、值。

云容器实例用户指南 10 配置管理

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

43

参数 参数说明

ConfigMap标签 标签以Key/value键值对的形式附加到各种对象上(如负载、服务等)。

标签定义了这些对象的可识别属性,用来对它们进行管理和选择。

1. 单击“添加标签” 。2. 输入键、值。

l 方式二:文件上传。

说明

若需要通过上传文件的方式创建资源,请确保资源描述文件已创建。CCI 支持json或yaml格式,且文件大小需要小于1MB,详细请参见ConfigMap文件格式要求。

单击“添加文件”,选择已创建的ConfigMap类型资源文件后,单击“打开”。

步骤3 配置完成后,单击“创建ConfigMap”。

应用配置列表中会出现新创建的应用配置。

----结束

ConfigMap 的使用

配置项创建完成后,可以在创建负载的过程中挂载到容器指定路径下,如下图所示,将名为mysql的配置项挂载到“/tmp”路径下。

负载创建后,在“/tmp”路径下将创建配置文件,配置项的“键”代表文件名;“值”代表文件中的内容。

ConfigMap 文件格式要求

ConfigMap资源文件支持json和yaml两种格式,且文件大小不得超过1MB。

l json格式

文件名称为configmap.json,配置示例如下:

{ "kind": "ConfigMap", "apiVersion": "v1", "metadata": { "name": "test-configmap", "labels": { "label-01": "value-01",

云容器实例用户指南 10 配置管理

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

44

"label-02": "value-02" }, "annotations": { "description": "a test configmap" }, "enable": true }, "data": { "key-01": "value-01", "key-02": "value-02" }}

l yaml格式

文件名称为configmap.yaml,配置示例如下:apiVersion: v1kind: ConfigMapmetadata: name: test-configmap labels: label-01: value-01 label-02: value-02 annotations: description: "a test configmap" enable: truedata: key-01: value-01 key-02: value-02

10.2 使用 SecretSecret是Kubernetes中一种加密存储的资源对象,您可以将认证信息、证书、私钥等保存在密钥中,在容器启动时以环境变量等方式加载到容器中。

说明

Secret与SSL证书共用同一个配额。

创建 Secret

步骤1 登录CCI 控制台,单击左侧导航栏的“配置管理 > Secret”,单击“添加Secret”。

步骤2 CCI 支持“手工输入”和“文件上传”两种方式来创建Secret。l 方式一:手工输入。参照表10-2设置基本信息,其中带“*”标志的参数为必填参

数。输入完成后,单击“添加Secret”。

表 10-2 基本信息说明

参数 参数说明

基本信息

*Secret名称 新建Secret的名称。

以小写字母或数字开头,小写字母、数字、中划线(-)、点(.)组成(其中两点不能相连,点不能与中划线相连),小写字母或数字结尾的1到253字符的字符串。

描述 密钥的描述信息。

云容器实例用户指南 10 配置管理

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

45

参数 参数说明

*Secret数据 Secret的数据可以在容器中使用。其中,“键”代表文件名;“值”代表文件中的内容。

1. 单击“添加Secret数据” 。2. 输入键、值。

Secret标签 标签以Key/value键值对的形式附加到各种对象上(如应用、节点、服务等)。

标签定义了这些对象的可识别属性,用来对它们进行管理和选择。

1. 单击“添加标签”。

2. 输入键、值。

l 方式二:文件上传。

说明

若需要通过上传文件的方式创建资源,请确保资源描述文件已创建。CCI 支持json或yaml格式,且文件大小不得超过2MB,详细请参见Secret文件格式说明。

单击“添加文件”,选择已创建的Secret类型资源文件后,单击“打开”。

步骤3 配置完成后,单击添加“Secret”。

Secret列表中会出现新创建的Secret。

----结束

Secret 的使用

Secret创建完后,可以在创建负载的过程中作为环境变量引用。

Secret 文件格式说明

l secret.yaml资源描述文件

例如现在有一个应用需要获取帐号密码,可以通过Secret来实现:

username: my-usernamepassword: my-password定义的Secret文件secret.yaml内容如下。其中Value需要进行Base64编码,Base64编码方法请参见如何进行Base64编码。

apiVersion: v1kind: Secretmetadata: name: mysecret # secret的名称 annotations:

云容器实例用户指南 10 配置管理

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

46

description: "test" labels: label-01: value-01 label-02: value-02data: username: OEdGTFFVUFZUSlBXWTdPUEFBRks= #需要用Base64编码 password: VFM0M0VZUlJPTzFLWkJDVUhBWk9OVk5LTVVMR0s0TVpIU0ZUREVWSw== #需要用Base64编码type: Opaque # 必须为Opaque

l secret.json资源描述文件

定义的Secret文件secret.json内容如下。{ "apiVersion": "v1", "kind": "Secret", "metadata": { "annotations": { "description": "test" }, "labels": { "label-01": "value-01", "label-02": "value-02" }, "name": "mysecret" }, "data": { "username": "OEdGTFFVUFZUSlBXWTdPUEFBRks=", "password": "VFM0M0VZUlJPTzFLWkJDVUhBWk9OVk5LTVVMR0s0TVpIU0ZUREVWSw==" }, "type": "Opaque"}

如何进行 Base64 编码

对字符串进行Base64加密,可以直接使用“echo -n 要编码的内容 | base64”命令即可,示例如下:

root@ubuntu:~# echo -n "3306" | base64MzMwNg==

10.3 SSL 证书

SSL(安全套接层,Secure Sockets Layer)是一种安全协议,目的是为互联网通信,提供安全及数据完整性保障。

CCI 支持上传SSL证书,在使用HTTPS访问时,CCI 将SSL证书自动安装到七层负载均衡器上,实现数据传输加密。

说明

Secret与SSL证书共用同一个配额。

SSL 证书介绍

SSL证书就是遵守SSL(Secure Socket Layer)协议,由受信任的数字证书颁发机构CA,在验证服务器身份后颁发,具有服务器身份验证和数据传输加密功能。服务器通过安装SSL证书可以实现数据信息在客户端和服务器之间的加密传输,可以防止数据信息的泄露,保证了双方传递信息的安全性,而且可以通过服务器证书验证他所访问的网站是否是真实可靠。

SSL证书分为权威证书和自签名证书。权威证书由权威的数字证书认证机构签发,您可向第三方证书代理商购买,使用权威证书的Web网站,默认客户端都是信任的。自签

云容器实例用户指南 10 配置管理

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

47

名证书是由用户自己颁发给自己的,一般可以使用openssl生成,默认客户端是不信任的,浏览器访问时会弹出告警,选择忽略告警可继续正常访问。

CCI提供默认证书,默认证书的名称为“default-ingress-ssl”,用户应避免为SSL证书取名为“default-ingress-ssl”,防止被默认证书覆盖而无法生效。默认证书为自签名证书,访问使用默认证书的负载时,浏览器会弹出告警信息,用户选择忽略可继续访问。

使用场景

服务器通过安装SSL证书可以实现数据信息在客户端和服务器之间的加密传输,可以防止数据信息的泄露,保证了双方传递信息的安全性。当在CCI服务上部署Web应用需要安全的公网访问时,您可以在创建负载时的访问配置页选择公网访问,ELB协议选择HTTPS协议,再选择该公网访问的证书。

为了方便应用迁移,CCI同时支持HTTP和HTTPS的后端应用(即创建的容器负载)。在访问配置页后端应用协议选择HTTP协议,即可以为您的HTTP应用提供HTTPS访问通道,在访问配置页后端应用协议选择HTTPS协议可以无缝迁移您的HTTPS应用。使用HTTPS协议访问您的负载,客户端与服务端需要进行多次加解密,访问性能存在一定下降。

添加证书到 CCI

步骤1 登录CCI 控制台,单击左侧导航栏的“配置管理 > SSL证书”,单击“添加证书”。

步骤2 填写SSL证书名称和描述信息。

证书名称要求:请输入以小写字母或数字开头,小写字母、数字、中划线(-)、点(.)组成(其中两点不能相连,点不能与中划线相连),小写字母或数字结尾的1到253字符的字符串。

注意

默认证书的名称为“default-ingress-ssl”,您应避免为SSL证书取名为“default-ingress-ssl”,否则会被默认证书覆盖而无法生效。

步骤3 上传证书文件和私钥文件。

l 证书文件支持“.crt”和“.cer”格式,且大小不超过2MB,文件内容须符合对应的CRT、CER协议。

l 私钥文件支持“.key”和“.pem”格式,且大小不超过2MB,私钥不能加密。

云容器实例用户指南 10 配置管理

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

48

步骤4 单击“添加证书”,完成上传。

----结束

使用 SSL 证书

当服务有公网访问时,可以使用SSL证书,设置ELB为HTTPS协议。

在创建负载的过程中,负载访问方式选择“公网访问”,ELB协议选择“HTTPS”,证书选项选择自定义证书,负载创建过程中会将SSL证书自动安装到弹性负载均衡器上,从而实现数据传输加密。

负载创建完成后,CCI将会在ELB中创建与负载名字相同证书。有CCI服务创建的证书有如下描述“Create by cci ingress-controller! Do not update or delete manually!”,请勿删除或更新该类证书,否则引起访问异常。

云容器实例用户指南 10 配置管理

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

49

更新与删除 SSL 证书

l 在证书过期前可以更新相应的证书,使用该证书的负载会同步更新。

l 请勿删除正在被负载使用的证书,否则可能导致应用无法访问。

证书与私钥示例

l 证书文件ca.crt-----BEGIN CERTIFICATE-----MIID3jCCAsYCCQDe2JnLDV9yljANBgkqhkiG9w0BAQsFADCBrzELMAkGA1UEBhMCQ04xETAPBgNVBAgMCFpoZUppYW5nMREwDwYDVQQHDAhIYW5nWmhvdTEmMCQGA1UECgwdSHVhd2VpIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4xDzANBgNVBAsMBkh1YXdlaTEaMBgGA1UEAwwRKi5mdXNpb25zdGFnZS5jb20xJTAjBgkqhkiG9w0BCQEWFnBhYXMtaHVhd2VpQGh1YXdlaS5jb20wIBcNMTgwMTExMDQwMDI1WhgPMjExNzEyMTgwNDAwMjVaMIGvMQswCQYDVQQGEwJDTjERMA8GA1UECAwIWmhlSmlhbmcxETAPBgNVBAcMCEhhbmdaaG91MSYwJAYDVQQKDB1IdWF3ZWkgVGVjaG5vbG9naWVzIENvLiwgTHRkLjEPMA0GA1UECwwGSHVhd2VpMRowGAYDVQQDDBEqLmZ1c2lvbnN0YWdlLmNvbTElMCMGCSqGSIb3DQEJARYWcGFhcy1odWF3ZWlAaHVhd2VpLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJuX4fgA3iHhaq0I5ejgs00UpWfj+xvsHapvgF+rTYHZsO1J2p85m53hcFiC+2ig69pSVCM3i1FQzu0PAPV62zVWgJJNhKW5U9ofZoXYOFqCjtFedDLTIdENzchH7VitomivOk20EguYrhRpDu62PHX0rjOdZYSZqlMM+MfPnyXtq42MOYLts1qYmiuHaseYIxMU0stg4cFOuY2+2ZFxidK6QyUUugu+Me/nvUVh8bqkss8SCG9XnUhzNYyRTRIvPoQEXK6chyZ29KaNtbAGurHaGso6fQG858+ts5Vhlvijshu+RVh5ItspDIu9ZLnaFZIBMCN7xbVjSN6JH0O/zkMCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEATxLBJfhV7TU+29lkHu/4PL86oiaFsxSl3DaOftoqv1jGPfuIu5caqZW5RLJ4eb1usOXtpeJEjuytpcqzfawRSxaaPuC9UW9qPQxaj4evNr4/9cuJjCn1lZRKy847s580lFy/lZY+gc/UMnNU6FW2T97IVm+5SsrVxR/mnaRiVfJQuHhgZdbqz8zsP4SCn/0c/npLtKqdOH7FltQ/DzBnfkXajyJA80Ic2TJdYlQCmgm7x/2GNK6mrpKo7fplm+OUc0/DcCxdtbcamEHf+HGMI0l+CVVE7D7YywqLdI3bwfttjsBb4izools2M21FItHDlESauS4m2K5p+CkSI+iTcg==-----END CERTIFICATE-----

l 私钥文件-----BEGIN RSA PRIVATE KEY-----MIIEpQIBAAKCAQEAm5fh+ADeIeFqrQjl6OCzTRSlZ+P7G+wdqm+AX6tNgdmw7UnanzmbneFwWIL7aKDr2lJUIzeLUVDO7Q8A9XrbNVaAkk2EpblT2h9mhdg4WoKO0V50MtMh0Q3NyEftWK2iaK86TbQSC5iuFGkO7rY8dfSuM51lhJmqUwz4x8+fJe2rjYw5gu2zWpiaK4dqx5gjExTSy2DhwU65jb7ZkXGJ0rpDJRS6C74x7+e9RWHxuqSyzxIIb1edSHM1jJFNEi8+hARcrpyHJnb0po21sAa6sdoayjp9Abznz62zlWGW+KOyG75FWHki2ykMi71kudoVkgEwI3vFtWNI3okfQ7/OQwIDAQABAoIBADc45L58sFoeAxp+ufq5JWoKFdqVk54JY04GXO2Xgt6/QIg3WhyA+bZDOPhxJIGx+4N1DN+i6xNlNsv0M0bs37hCh0dls9qNuDEGTADdCMM26zFr8JnJTYtA9vRKcvaySZ4V8v95FZ6ABejAkMgwbaz/toQjLNCvKUBorjNcgQOYlUmxVTP/r3yVbYAOxurlXCKlP5Y1qXu4l+XG5Mx8YSzD11gTsw3LWY16wBDKFi1539KQ+PHDBlrAS6iAMgPum7fxinCLMec4rFvxpmATsMedCekIQlxFznynBNjgB9+fJJJIMKYjrjbqyX9ACxAMTuMtfhzkLZJ17Vhg5SUtISECgYEAyXmhA++PWJgs4vAt17T5fy8CtC2heNRabe1H2lO9RY2FWydd8kbTZyL5is1TGUhY77Nbhi1KGRJZXWTFH8NcBd8vm+izUczehB9oHAkTjSlJFezf8mkp7krVfIu+Z+bfZIj9o8EdiQ1G0ybILzs/6NAlnmL8Kyj45rXRzQl6qVcCgYEAxbOFcBGp8xRtdCq0q+2MYYCmMSgDeXajg/OYeJQFvKng6DZLoqP17/3hw+35jJkJXAsE

云容器实例用户指南 10 配置管理

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

50

4IcJ8wAZKFCFfZs+d78OOORQSS2hjqIzFw7HrDLJngBqv7opo4NJhDaIRuPnkG4dtbqHiG4ey/jcnjoQTZrZIkG6WUaZULM8No7FcvUCgYEAkdwCW+0VJBiXdnxXU/DrJ86K8JKQcf+asDa2bDNvtWjtgL6RXxMzfVluu7RGUulzqaV5vzwOhvQnyltn8sTmXEHmH8Np/vCIr7JlFtbjVrDq/nqM7tx/xMpcoFwzLtmQJSKgLetjTJNWEQvkpX0Jma0HbxFOapixCaXcC8qvCOUCgYEAtk6vVALV5zQFIsRmysxJUXgiyN2PJqjCbGFrTnWhPLKilT/MS3RKzD4fvF9sabyNpvT6UFn2UMDcchKepo9L8XybDtdrOa/8dN0Zo7+bXS2QQkU8KwTudLwSRPtMe6KZ3NPOTdBuPt7dQ1Z/iuEcO5P5et+FieHSa1p8wgqyBSkCgYEAgucsLkKyB5OlHhd4a6foGI8deDYR3D3GPHRK5zH6px8D3TuUV+W4CpNCOAYldRuQRlmQ9GlrMc915kMhbdDsOVUKSlk/rHLHfkeexuxmpZTrcgYD7KNgNeN9cvXXyes0HlW5vL/vSiGpuIMEIBxiBd4LONNCQ1YsX0iZyouW9p8=-----END RSA PRIVATE KEY-----

云容器实例用户指南 10 配置管理

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

51

11 日志管理

CCI支持挂载日志存储卷采集日志,您只需要在创建负载的时候添加日志存储卷,即可将日志写入到日志存储卷中。

CCI对接了应用运维管理(Application Operations Management,AOM)服务,AOM会采集日志存储中的“.log”日志文件,转储到AOM中,方便您查看和检索。

添加日志存储

在创建负载的时候设置为容器添加日志存储。

l 容器内日志路径:即日志存储挂载到容器内的挂载路径,需要保证应用程序的日志输出路径与该路径一致,这样日志才能写入到日志存储卷中。

注意

1. 日志存储卷挂载后,会覆盖掉日志路径下已有的内容。请保证日志路径为一个独立的路径,否则原来的内容不可见。

2. AOM只采集日志路径下的“.log”、“.trace”、“.out”日志文件。

3. AOM最能多只能采集3个日志文件,且不能采集子目录。也就是说您的日志最多只能输出到日志路径下的3个文件中,否则不能转储到AOM中。

l 日志存储空间:当前CCI对日志卷中的日志按1小时老化周期进行防爆处理,日志存储空间需要大于每小时产生的日志文件总大小,否则新产生的日志无法写入到日志存储中。

云容器实例用户指南 11 日志管理

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

52

查看日志

负载创建完成后,您可以查看容器日志。

单击已创建的负载,在容器实例所在行,单击“查看日志”。

在AOM界面中即可查看对应容器的日志,AOM中日志查询方法请参见查看日志文件。

云容器实例用户指南 11 日志管理

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

53

12 插件管理

kubernetes除了必要的支撑组件以外,其他的组件都是以插件的形式运行,如Kubernetes DNS,Kubernetes Dashboard等等。

插件是对现有功能的扩展,当前CCI提供了kube-dns插件供您使用,您可以在CCI界面上直接安装插件,从而方便的使用插件提供的功能。

kube-dns 插件介绍

kube-dns插件为您的其他负载提供内部域名解析服务。建议您不对本负载进行删除、升级操作,将导致内部域名解 析服务无法正常使用。

安装了kube-dns插件后,您可以在创建负载时发布内网访问,则负载间可以通过内部域名互相访问,内网访问的详细信息请参见6.2 内网访问。

安装插件

步骤1 登录云容器实例管理控制台,左侧导航栏中选择“插件管理”,单击右侧页面中“安装插件”。

步骤2 选择“插件版本”,然后单击“确认”安装插件。

安装完成后,您可以在“插件列表”中看到已安装的插件,如下图。

云容器实例用户指南 12 插件管理

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

54

----结束

后续处理

插件安装创建后,您还可以对插件做如下操作。

表 12-1 其他操作

操作 说明

升级 单击“升级”,选择要升级的目标版本,填写插件相关的参数,然后单击“下一步”,确认新的配置信息,单击“升级”。

回退 单击“回退”,选择要回退的版本,单击“确定”。

删除 单击“删除”,然后单击“确定”。

注意删除操作无法恢复,请谨慎操作。

云容器实例用户指南 12 插件管理

文档版本 01 (2018-04-16) 华为专有和保密信息版权所有 © 华为技术有限公司

55