华为云用户手册

  • Markdown设计 新建Markdown,可通过以下三种方式完成。 方法一:单击“新建 Markdown”图标。 方法二:单击目录树搜索框右侧的,在弹出的下拉框中,选择“新建Markdown”。 方法三:在目录树中选择一个目录,单击右侧图标,在弹出的下拉框中,选择“新建Markdown”。 进入“新建标签页”,在该标签页可以编辑Markdown文件,主要包括:目录、名称、正文。 目录:在上一步中,如果通过方法一和方法二新建Markdown,目录初始内容为空,可以手动选择;如果通过方法三新建Markdown,目录会自动生成为选中的目录,也可以手动修改。 名称:可根据业务需要自定义命名,不能为空。命名规则:只支持中文、英文、下划线、数字和“.”,且以中英文开头,长度为3-64个字符。 正文:可手动输入文字,也可使用组件插入特定的内容,如:表格、超链接、图片;正文样式也可以使用组件进行调整;正文编辑支持全屏模式;在左侧编辑正文时,右侧会同步展示编辑内容,便于查看、修改样式等。 编辑完成后,单击右上角“保存”,左侧目录树同步刷新,界面会自动跳转到文档页面,展示名称、正文,上方标签页的名称也会更新为Markdown文件名称。 移动Markdown(可选)。 单击并拖拽Markdown到目标目录后释放即可,移动成功后,目录树会自动刷新,Markdown文件的目录也会同步改变。 Markdown文件只能在同一根目录下进行移动。 处于编辑页面的Markdown文件不能移动。 父主题: API设计
  • 接口路径 API调试页面的接口路径,可以选择http或https,并在定义的路径前自动添加了域名。添加的域名是在右上角选择的环境参数中定义的,单击左侧下拉箭头可在不同运行环境间切换,单击下拉箭头右上角按钮,可进行环境参数配置。 针对各个环境,默认提供变量“hostURL”参数作为添加到接口前的域名,从而拼接成完整地址。 可以看到对应环境“默认环境”中的“hostURL”参数的值“127.0.0.1:8080”被添加到接口URL前,作为整个路径的域名。鼠标悬浮在路径前,提示次前置URL来自于哪一环境,单击环境名称,可直接跳转至相应环境下进行编辑。 路径中大括号“{}”中的字符串表示Path参数。 路径中“?”后的字符串表示Query参数。 如果在调试页面路径栏下方的Query属性框中,对Query参数进行修改,路径中的Query参数也会同步变化。
  • 请求体 在Body页签中,可以查看请求体,目前支持的请求体有如下几类: none:无body参数。 form-data:Content-Type为“multipart/form-data”,可以输入请求体中每个参数的类型、名称和值。 application/x-www-form-urlencoded:Content-Type为“application/x-www-form-urlencoded”,可以输入请求体中每个参数的名称和值。 raw:在文本框中输入文本内容,在“raw”选项旁边可以下拉选择输入文本内容格式,如Text和Json。 请求参数的默认值均来自API设计的样例值。 在API调试页面修改请求参数,不能保存至API设计与API文档中。
  • 断言 可以利用后置脚本验证API响应返回结果的正确性。 // 示例1:pm.response.to.have pm.test('Response status is 200', function() { pm.response.to.have.status(200); }); // 示例2:pm.expect() pm.test('this is production', function() { pm.expect(pm.environment.get('env')).to.equal('production'); }); // 示例3:response assertions pm.test('no error', function() { pm.response.to.not.be.error; pm.response.to.have.jsonBody(''); pm.response.to.not.have.jsonBody('error'); }); // 示例4:pm.response.to.be* pm.test('no error', function() { // 断言结果:info, success, redirection, clientError, serverError, are other variants pm.response.to.be.ok; // 断言有body,并且是json格式 pm.response.to.be.withBody; pm.response.to.be.json; });
  • API重新注册 CodeArts API提供API重新注册的功能,协助用户将已修改或不同版本的API重新注册到APIG实例。 在“API网关注册”页面,光标移动到API版本,可查看当前API的注册信息。 单击操作列的,弹出“重新注册API”对话框。 选择需要重新注册的API,单击“确定”,完成API的重新注册。 重新注册的API需要到APIG实例中完成发布API操作,才可完成API的上线。 对于项目中同名API的处理:如果项目中存在多个同名的API(URL、请求方式、名称相同),在重新注册操作时,需要用户从多个同名API中选择一个重新注册。APIG实例的同一个分组上不允许同名API重复注册。
  • 客户端特性 登录使用 单击“登录/注册”,填写账户密码进行登录,即可体验客户端功能。 未登录使用 打开客户端,在登录页面单击“稍后再说”即可开始使用。未登录的状态下只支持创建一个环境及使用部分快捷调试功能。 创建环境 创建环境及环境变量请参照环境与环境变量进行设置与使用。 快捷调试 进入项目后,单击搜索框旁,可根据需要选择“新建快捷调试”进行新建快捷调试操作。 导入与导出功能需要登录后才可以继续使用。 前置脚本、后置脚本功能需要登录后才可继续使用。 切换登录状态 单击以下功能菜单可弹出登录页面,进行登录后可体验产品的全部功能。
  • 快捷调试导入 CodeArts API支持Postman的Collections数据文件的导入,方便用户迁移调试数据。 进入“快捷调试”页面,单击,选择“导入Postman文件”。 弹出“导入Postman文件”对话框,选择需要导入的Postman的Collection文件。 弹出“导入”对话框,查看导入接口信息,单击“导入”完成数据迁移。 目前仅支持单个Collection文件的导入,不支持全量Collections和Environment数据集ZIP包的全量导入。 父主题: 导入与导出
  • 解决方法 连接/活跃连接数 若连接数或空闲连接数过多,可执行如下SQL释放当前数据库的所有空闲连接,使用连接池或配置客户端连接超时参数及时释放空闲的连接。若活跃连接数过多,可减少业务并发量,或扩大内存规格。 select pg_terminate_backend(pid) from pg_stat_activity where state = 'idle'; 慢SQL被大量执行 定位到导致内存消耗增加的SQL,对SQL进行优化,或扩大内存规格。 TPS事务数过高 降低事务数,或扩大内存规格。 长连接数量多/连接存活时长久 避免长连接,长连接的缓存可能较大,导致内存不足,建议定期释放长连接。
  • 常见问题 Q:使用pg_dump时导出数据时,为什么内存使用率会升高,如何避免出现该问题? A:使用pg_dump导出数据时,有一个进程会访问目标库中所有的表、索引等对象来获取结构数据,如果访问的表、索引等对象过大,可能会导致 relcache(关系表缓存)、catcache(系统目录表缓存)过大,且无法释放,从而导致存使用率升高,严重时会发生OOM。 建议执行pg_dump任务时: 不要执行DDL操作。 监控好慢SQL的指标,出现锁冲突时直接kill掉对应冲突的进程。 低峰期执行pg_dump任务。 将shared_buffers、work_mem参数继续降低到当前的1/2或1/4甚至更多,任务结束后回退修改的参数。 扩大内存规格。
  • 内存使用率说明 PostgreSQL数据库中内存使用率主要是由共享内存和本地内存组成。 共享内存:主要用于数据的缓冲区、wal日志的缓冲区等,以便提高读写性能。除此之外也包含一些全局信息,如进程、锁信息等。 shared_buffers参数的值决定初始申请共享内存的大小,RDS for PostgreSQL设置该参数开始值为系统物理内存的25%,该参数合理设置区间为25%~40%,如超过物理内存的 40%,就会发现缓冲的效果并不明显,这是因为PostgreSQL是运行在文件系统之上的,若文件系统也有缓存,将导致双缓存过多,造成负面影响。 本地内存:后台服务会申请一些本地内存,以便暂存一些不需要全局存储的数据,一般分为以下几类: temp_buffers:设置每个会话用于访问临时表的本地缓冲区的最大块数量。 work_mem:内部排序聚合操作和hash表在使用临时磁盘文件时使用的内存缓冲区。注意:每个排序操作都会消耗一个work_men内存,并不是一个SQL消耗一个。 maintenance_work_mem:维护操作使用的最大内存数。
  • 指标异常说明(影响) 生产数据库的内存要有一定的冗余,正常使用应保持在70%以下,若内存使用率长期高于阈值,建议考虑扩大内存规格。当内存使用率超过阈值并产生告警时,可能会产生以下问题。 系统会频繁地进行内存交换,数据会在内存与磁盘之前大量交换,会消耗大量CPU,使数据库性能下降,影响数据的读取和写入速度等。 严重时可能会发生OOM,若发生OOM,数据库服务进程会发生重启,数据库会断开现有连接,且新连接无法接入。此时HA会重新拉起数据库,期间数据库会回放从上一次checkpoint到发OOM时之间产生的wal日志内容,以保证事务一致性。
  • 使用MQTT.fx调测 进入 路网数字化服务 页面,选择“服务信息”。记录“平台接入”下的“南向MQ TTS 接入地址”行的“域名”信息。 访问MQTT.fx下载页面,下载并安装最新版本的MQTT.fx工具。 请访问这里,填写DeviceId和DeviceSecret,生成连接信息(ClientId、Username、Password)。 打开MQTT.fx软件,单击设置图标。 填写路网数字化服务南向MQTTS接入地址,并配置鉴权参数。 参数名称 说明 Broker Address 步骤1获取到的域名信息中的ip部分,例如135.131.3.6。 Broker Port 步骤1获取到的域名信息中的端口部分,为1883。 Client ID 步骤3生成的ClientId的值。 User Name 步骤3生成的Username的值。 Password 步骤3生成的Password的值。 注:如果您选择安全方式接入,Broker Port设置为8883,下载并获取证书,加载Java语言pem格式的证书。 单击“Connect”,设备鉴权。 父主题: 设备快速接入
  • 清除IEF 如果该节点曾用IEF纳管,清除IEF。 全新的机器或未使用过IEF纳管,则跳过此步。 执行命令: cd /opt/edge-installer; sudo ./installer -op=uninstall systemctl status edgecore 提示无服务则完成。 清除容器命令: docker ps 若查询到活动的edge相关镜像,则用输入以下命令将这些容器清除: docker rm -f 容器id 父主题: ITS800连接到V2Xserver
  • 命名空间与网络的关系 从网络角度,命名空间对应一个虚拟私有云(VPC)中一个子网,如图1所示,在创建命名空间时会关联已有VPC或创建一个新的VPC,并在VPC下创建一个子网。后续在该命名空间下创建的容器及其他资源都会在对应的VPC及子网之内。 通常情况下,如果您在同一个VPC下还会使用其他服务的资源,您需要考虑您的网络规划,如子网网段划分、IP数量规划等,确保有可用的网络资源。 图1 命名空间与VPC子网的关系
  • (可选)上传镜像 云平台提供了 容器镜像服务 ,您可以上传容器镜像到容器镜像仓库中,创建负载时使用该镜像,具体使用方法请参见客户端上传镜像。 CCI当前暂不支持对接第三方镜像仓库。 如果您开通了企业管理,使用账号登录云容器实例控制台时,您需要在账号下的容器 镜像服务 中给 IAM 用户添加权限,IAM用户才能使用账号下的私有镜像。 给IAM用户添加权限有如下两种方法: 在镜像详情中为IAM用户添加授权,授权完成后,IAM用户享有读取/编辑/管理该镜像的权限,具体请参见在镜像详情中添加授权。 在组织中为IAM用户添加授权,使IAM用户对组织内所有镜像享有读取/编辑/管理的权限,具体请参见在组织中添加授权。
  • (可选)准备SSL证书 云容器实例支持使用HTTPS访问负载,在创建负载时,您可以使用自己的SSL证书。 SSL证书分为权威证书和自签名证书。权威证书由权威的数字证书认证机构签发,您可向第三方证书代理商购买,使用权威证书的Web网站,默认客户端都是信任的。自签名证书是由用户自己颁发给自己的,一般可以使用openssl生成,默认客户端是不信任的,浏览器访问时会弹出告警,选择忽略告警可继续正常访问。 SSL证书具体信息请参见SSL证书。
  • 使用限制 待挂载的云硬盘必须是按需付费,更多信息,请参见云硬盘计费。 云容器实例无法导入以下条件的磁盘:非当前可用区、状态非可用、系统盘、被CCE关联、非S CS I盘、共享盘、专属存储、冻结盘、HANA服务器专属类型盘(高IO性能优化型/超高IO时延优化型)。 云硬盘存储卷只能当一个新盘来用。对于云容器实例没有挂载过的云硬盘存储卷,云硬盘存储卷中的内容对容器不可见。 对于已导入的云硬盘,如果在云硬盘控制台中删除该硬盘,云容器实例无法感知,建议您确定没有负载使用时再删除云硬盘。 一个云硬盘存储卷只能挂载到一个实例下,否则会存在数据丢失的情况。 云容器实例场景下不感知云硬盘扩容,如果需要扩容,请先在云容器实例控制台的“云硬盘存储卷”页面解关联对应的云硬盘,待云硬盘扩容完成后重新导入。
  • CoreDNS域名解析插件版本发布记录 表2 CoreDNS域名解析插件版本记录 插件版本 支持的集群版本 更新特性 社区版本 1.28.7 v1.21 v1.23 v1.25 v1.27 v1.28 支持插件热更新配置,无需滚动升级 1.10.1 1.28.5 v1.21 v1.23 v1.25 v1.27 v1.28 修复部分问题 1.10.1 1.28.4 v1.21 v1.23 v1.25 v1.27 v1.28 适配CCE v1.28集群 1.10.1 1.27.4 v1.19 v1.21 v1.23 v1.25 v1.27 - 1.10.1 1.27.1 v1.19 v1.21 v1.23 v1.25 v1.27 适配CCE v1.27集群 1.10.1 1.25.1 v1.19 v1.21 v1.23 v1.25 适配CCE v1.25集群 1.8.4 1.23.3 v1.15 v1.17 v1.19 v1.21 v1.23 插件依赖例行升级 1.8.4 1.23.2 v1.15 v1.17 v1.19 v1.21 v1.23 插件依赖例行升级 1.8.4 1.23.1 v1.15 v1.17 v1.19 v1.21 v1.23 适配CCE v1.23集群 1.8.4 1.17.15 v1.15 v1.17 v1.19 v1.21 适配CCE v1.21集群 1.8.4 1.17.9 v1.15 v1.17 v1.19 插件依赖例行升级 1.8.4 1.17.7 v1.15 v1.17 v1.19 同步至社区v1.8.4版本 1.8.4 1.17.4 v1.17 v1.19 适配CCE v1.19集群 1.6.5 1.17.3 v1.17 支持v1.17集群,修复存根域配置问题 1.6.5 1.17.1 v1.17 支持v1.17集群 1.6.5
  • kubernetes中的域名解析逻辑 DNS策略可以在每个pod基础上进行设置,目前,Kubernetes支持Default、ClusterFirst、ClusterFirstWithHostNet和None四种DNS策略,具体请参见https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/。这些策略在pod-specific的dnsPolicy 字段中指定。 “Default”:如果dnsPolicy被设置为“Default”,则名称解析配置将从pod运行的节点继承。 自定义上游域名服务器和存根域不能够与这个策略一起使用。 “ClusterFirst”:如果dnsPolicy被设置为“ClusterFirst”,任何与配置的集群域后缀不匹配的DNS查询(例如,www.kubernetes.io)将转发到从该节点继承的上游名称服务器。集群管理员可能配置了额外的存根域和上游DNS服务器。 “ClusterFirstWithHostNet”:对于使用hostNetwork运行的Pod,您应该明确设置其DNS策略“ClusterFirstWithHostNet”。 “None”:它允许Pod忽略Kubernetes环境中的DNS设置。应使用dnsConfigPod规范中的字段提供所有DNS设置 。 Kubernetes 1.10及以上版本,支持Default、ClusterFirst、ClusterFirstWithHostNet和None四种策略;低于Kubernetes 1.10版本,仅支持default、ClusterFirst和ClusterFirstWithHostNet三种。 “Default”不是默认的DNS策略。如果dnsPolicy的Flag没有特别指明,则默认使用“ClusterFirst”。 路由请求流程: 未配置存根域:没有匹配上配置的集群域名后缀的任何请求,例如 “www.kubernetes.io”,将会被转发到继承自节点的上游域名服务器。 已配置存根域:如果配置了存根域和上游 DNS 服务器,DNS 查询将基于下面的流程对请求进行路由: 查询首先被发送到 coredns 中的 DNS 缓存层。 从缓存层,检查请求的后缀,并根据下面的情况转发到对应的 DNS 上: 具有集群后缀的名字(例如“.cluster.local”):请求被发送到 coredns。 具有存根域后缀的名字(例如“.acme.local”):请求被发送到配置的自定义 DNS 解析器(例如:监听在 1.2.3.4)。 未能匹配上后缀的名字(例如“widget.com”):请求被转发到上游 DNS。 图7 路由请求流程
  • 为CoreDNS配置日志输出选项 CoreDNS使用log插件将域名解析日志打印到标准输出,可通过配置日志输出选项灵活定义输出的日志内容,可在 AOM 中查看解析日志。在域名解析请求量较大的业务场景下,频繁打印域名解析日志到标准输出可能会对CoreDNS的性能造成明显的影响。 当前log插件支持解析成功、解析失败和解析错误三种日志输出选项配置,如图: 图3 选项配置 对应的后端配置格式如下: log [NAMES...] [FORMAT] { class CLASSES... } CLASSES表示应记录的响应类别,是一个以空格分隔的列表。 日志输出选项配置具体含义如下: 输出解析成功日志: 勾选后将在log插件CLASSES中添加success响应参数,CoreDNS会将解析成功的日志打印到标准输出。 输出解析失败日志: 勾选后将在log插件CLASSES中添加denial响应参数, CoreDNS会将解析失败的日志,例如NXDOMAIN或nodata响应(名称存在,类型不存在)打印到标准输出。 输出解析错误日志: 勾选后将在log插件CLASSES中添加error响应参数,CoreDNS会将解析错误的日志打印到标准输出,例如SERVFAIL、NOTIMP、REFUSED等任何表示远程服务器不解析的请求消息,便于及时发现DNS服务器不可用等问题。 全不勾选: 如果未选中上述任一配置,则将关闭日志插件。 关闭日志插件仅影响CoreDNS的解析记录,而CoreDNS服务进程的日志记录依然会显示,不过该部分日志量极小,对性能无影响。 以勾选“输出解析成功日志”与“输出解析失败日志”为例,其后端log插件配置为: log . { class success denial } 创建成功的CoreDNS对应的ConfigMap如下: apiVersion: v1 data: Corefile: |- .:5353 { cache 30 errors log . { classes success denial } health kubernetes cluster.local in-addr.arpa ip6.arpa { pods insecure upstream /etc/resolv.conf fallthrough in-addr.arpa ip6.arpa } loadbalance round_robin prometheus 0.0.0.0:9153 proxy . /etc/resolv.conf reload } kind: ConfigMap metadata: name: coredns namespace: kube-system
  • 为CoreDNS配置存根域 集群管理员可以修改CoreDNS Corefile的ConfigMap以更改服务发现的工作方式。使用插件proxy可对CoreDNS的存根域进行配置。 若集群管理员有一个位于10.150.0.1的Consul域名解析服务器,并且所有Consul的域名都带有.consul.local的后缀。在CoreDNS的ConfigMap中添加如下信息即可将该域名服务器配置在CoreDNS中: consul.local:5353 { errors cache 30 proxy . 10.150.0.1 } 修改后最终的ConfigMap如下所示: apiVersion: v1 data: Corefile: |- .:5353 { cache 30 errors health kubernetes cluster.local in-addr.arpa ip6.arpa { pods insecure upstream /etc/resolv.conf fallthrough in-addr.arpa ip6.arpa } loadbalance round_robin prometheus 0.0.0.0:9153 proxy . /etc/resolv.conf reload } consul.local:5353 { errors cache 30 proxy . 10.150.0.1 } kind: ConfigMap metadata: name: coredns namespace: kube-system
  • 特殊场景说明 使用场景 使用说明 CCE内容器日志采集 + CCI集群容器日志采集 CCE集群内的工作负载支持三种日志采集类型: 容器标准输出:采集集群内指定容器日志,仅支持Stderr和Stdout的日志。 容器文件日志:采集集群内指定容器内的文件日志。 节点文件日志:采集集群内指定节点路径的文件。 须知: 弹性到CCI的工作负载仅支持“容器文件日志”类型的采集策略。 pod挂载多种类型存储目录 pod通过指定系统、设备、cgroup、tmpfs等挂载目录下的日志无法被采集。 弹性CCI的pod关联多个日志采集策略 为了更好的采集日志,建议为pod预留充足内存。pod被第一个日志策略关联请预留至少50MB内存。每增加一个关联日志采集策略,建议多预留5MB内存。 超长日志采集 单条日志最大容量为250KB,超过会被丢弃。 超长日志文件名 容器中长度超过190的日志文件无法被采集。 日志采集策略中,最长文件名不能超过255。
  • 操作步骤 安装“云原生日志采集插件”和“CCE 突发弹性引擎 (对接 CCI)”插件。 登录CCE控制台。 选择CCE集群,单击进入CCE集群总览页面。 在导航栏右侧单击“插件中心”,进入插件中心首页。 选择“CCE 突发弹性引擎 (对接 CCI)”插件,单击“安装”。 在安装配置中需要勾选“网络互通”功能。 选择“云原生日志采集插件”,单击“安装”。 创建弹性到CCI的负载。 在导航栏右侧单击“工作负载”,进入工作负载首页。 单击“创建工作负载”,具体操作步骤详情请参见创建工作负载。 填写基本信息并完成工作负载创建。更多创建弹性到CCI负载的方式,请参考调度负载到CCI。 配置日志采集策略。 在导航栏右侧单击“日志中心”,进入日志中心首页。 单击“日志采集策略”,进入日志采集策略创建的界面。 配置具体采集策略,完成后单击“确定”。 弹性到CCI的Pod不支持日志策略热更新,更新日志策略后需要重新部署弹性到CCI的Pod才可生效。 查看弹性到CCI的pod yaml。 为支持CCI pod日志被采集到日志中心,CCE插件CCE Log Collector为pod注入了如下四个annotation: annotation 示例值 coordinator.cci.io/inject-volumes '[{"name":"log-agent-conf","configMap":{"name":"log-agent-cci-logging-config","defaultMode":384},"namespace":"monitoring"},{"name":"log-agent-cert","secret":{"secretName":"log-agent-ca-secret","defaultMode":384},"namespace":"monitoring"}]' logconf.k8s.io/fluent-bit-configmap-reference monitoring-log-agent-cci-logging-config logconfigs.logging.openvessel.io '{"testcci001":{"container_files":{"container-1":"/var/test/*/*.log"},"regulation":""}}'' sandbox-volume.openvessel.io/volume-names log-agent-conf,log-agent-cert 在日志中心查看日志上报。 CCE集群日志中心更详细的用法可以参考CCE插件CCE Log Collector相关文档指导。
  • 工作负载下发 登录CCE控制台。 选择CCE集群,单击进入CCE集群总览页面。 在导航栏右侧单击“工作负载”,进入工作负载首页。 单击“创建工作负载”,具体操作步骤详情请参见创建工作负载。 填写基本信息。“CCI弹性承载”选择“强制调度策略”。关于调度策略更多信息,请参考调度负载到CCI。 进行容器配置。 配置完成后,单击“创建工作负载”。 在工作负载页面,选择工作负载名称,单击进入工作负载管理界面。 工作负载所在节点为CCI集群,说明负载成功已调度到CCI。
  • 插件卸载 登录CCE控制台。 选择CCE集群,单击进入CCE集群总览页面。 在导航栏右侧单击“插件中心”,进入插件中心首页。 选择“CCE 突发弹性引擎 (对接 CCI)”插件,单击“卸载”。 表2 特殊场景说明 特殊场景描述 场景现象 场景说明 CCE集群无节点,卸载插件。 插件卸载失败。 bursting插件卸载时会在集群中启动Job用于清理资源,卸载插件时请保证集群中至少有一个可以调度的节点。 用户直接删除集群,未卸载插件。 用户在CCI侧的命名空间中有资源残留,如果命名空间有计费资源,会造成额外计费。 由于直接删除集群,没有执行插件的资源清理Job,造成资源残留。用户可以手动清除残留命名空间及其下的计费资源来避免额外计费。
  • 安装插件 登录CCE控制台。 选择CCE集群,单击进入CCE集群总览页面。 在导航栏右侧单击“插件中心”,进入插件中心首页。 选择“CCE 突发弹性引擎 (对接 CCI)”插件,单击“安装”。 配置插件参数。 表1 插件参数说明 插件参数 说明 选择版本 插件的版本。插件版本和CCE集群存在配套关系,更条信息可以参考CCE突发弹性引擎(对接CCI)插件版本记录。 规格配置 用于配置插件负载的实例数。 网络互通 勾选后将开启CCE集群和CCI两侧pod互访的功能,用户可以根据自身业务选择是否打开。详细功能介绍请参考网络。
  • 资源使用说明 CCE集群+bursting的使用场景涉及到华为云周边服务的搭配使用,如下表格详细描述了涉及到的周边服务。 涉及服务 资源说明 备注 CCI 插件会在CCI服务新建一个名为“cce-burst-”+“CCE集群ID”的命名空间。 不建议直接在CCI服务使用该命名空间,如需使用CCI服务,请另外新建命名空间。 CCI服务命名空间不产生计费。 CCE CCE侧的工作负载、Secret、Congfigmap、PV、PVC会同步到CCI,同时也占用CCE节点的资源。 CCE集群资源规模1000 pod+1000 configmap建议申请2U4G节点规格。 CCE集群资源规模2000 pod+2000 configmap建议申请4U8G节点规格。 CCE集群资源规模4000 pod+4000 configmap建议申请8U16G节点规格。 ELB 开启“支持CCE集群pod与CCI集群pod通过service互通”功能bursting插件会自动创建ELB资源。 创建共享型性能保障规格的ELB,名称为cce-lb-xxx。 当卸载插件时,该ELB资源也会被自动清除。 VPC 弹性CCI的负载共享使用CCE集群所在VPC。 CCI命名空间Service网段为10.247.0.0/16,CCE集群的VPC子网网段请避开该网段。 SWR 创建弹性到CCI的工作负载选择镜像时,直接对接华为云SWR服务。 创建负载请确认镜像已被正确上传至您的SWR仓库。
  • Pod annotation CCE集群+bursting的使用场景涉及到自定义注解,相关注解含义如下表所示。 annotation key 描述 相关文档 scheduling.cci.io/managed-by-profile 标记当前pod被哪个profile资源管理。 调度负载到CCI virtual-kubelet.cci.io/burst-pod-cpu 标记弹性后规整的cpu资源。 资源配额 virtual-kubelet.cci.io/burst-pod-memory 标记弹性后规整的memory资源。 资源配额 coordinator.cci.io/inject-volumes CCI pod日志采集相关,日志采集插件注入。 日志 logconf.k8s.io/fluent-bit-configmap-reference CCI pod日志采集相关,日志采集插件注入。 日志 logconfigs.logging.openvessel.io CCI pod日志采集相关,日志采集插件注入。 日志 sandbox-volume.openvessel.io/volume-names CCI pod日志采集相关,日志采集插件注入。 日志 coordinator.cci.io/image-replacement 镜像地址前缀替换相关。 镜像
  • 功能概览 使用CCE集群+bursting基于如下模型,用户需要重点关注下发负载和调度。 下发负载涉及到用户给负载进行的配置项,和用户自身的业务高度相关。 工作负载配置项 功能描述 功能规格 相关文档拓展 调度 用户可以通过多种方式来管理CCE集群的工作负载,来控制其调度到CCI服务。通过合理的调度策略配置,提升用户集群的资源利用率。 支持4种调度策略。 支持2种管理调度策略的方式。 支持多个虚拟节点调度。 调度负载到CCI 资源配额 用户通过配置pod的cpu、memory等字段约束容器使用资源规格和上限。插件对资源规格进行规整,尽可能为用户降低成本。 提供对pod资源配额进行规整的能力。 资源配额 镜像 用户通过镜像配置自身业务镜像,将自己的业务容器运行在华为云CCE集群+CCI服务上。 支持修改镜像配置方式。 支持原地升级镜像。 镜像 存储 用户通过存储相关的配置为工作负载外挂存储卷,以完成业务中数据持久存储的诉求。 支持多种存储类型。 支持替换工作负载hostpath配置方式。 存储 网络 用户通过网络配置规划CCE集群和CCI集群之间的网络拓扑。 支持CCI侧负载通过service发布。 支持CCE集群pod与CCI集群中pod通过service互通。 支持指定cluster-dns。 支持pod绑定全域弹性公网ip。 网络 日志 用户可以通过同时安装CCE Log Collector插件和bursting插件,采集CCI侧工作负载的日志。 支持弹性CCI的负载通过CCE Log Collector上报日志。 支持日志自动转储。 日志 监控 用户可以通过配置插件对接监控平台,提升弹性CCI工作负载的可观测性。 支持对接AOM。 支持对接普罗米修斯。 监控
  • 方式一:通过配置labels控制pod调度到CCI 通过CCE集群控制台(console)创建pod调度到CCI。通过CCE集群创建工作负载时,选择CCI弹性承载策略配置,选择“不开启”以外的任意策略。 通过yaml文件在CCE集群节点创建pod调度CCI。成功安装bursting插件后,登录CCE集群节点,在工作负载的yaml文件中添加virtual-kubelet.io/burst-to-cci标签。 apiVersion: apps/v1 kind: Deployment metadata: name: test namespace: default labels: virtual-kubelet.io/burst-to-cci: 'auto' # 弹性到CCI spec: replicas: 2 selector: matchLabels: app: test template: metadata: labels: app: test spec: containers: - image: 'nginx:perl' name: container-0 resources: requests: cpu: 250m memory: 512Mi limits: cpu: 250m memory: 512Mi volumeMounts: [] imagePullSecrets: - name: default-secret
共100000条