华为云用户手册

  • 共享函数资源简介 基于资源访问管理(Resource Access Manager,简称RAM)服务,函数工作流服务可以实现跨账号共享函数资源,资源所有者将资源同时共享给多个其他账号使用,资源使用者接受共享邀请后就可以访问和使用共享的函数资源,就像拥有它们一样。资源所有者可以依据最小权限原则和不同的使用诉求,选择不同的共享权限,资源使用者只能对资源进行权限内的访问,保证共享资源在满足资源使用者业务诉求的同时,提升资源管理的安全性。关于RAM服务的更多信息请参见什么是资源访问管理。 当您的账号由华为云组织管理时,您还可以利用此优势更轻松地共享资源。如果您的账号在组织中,则您可以与单个账号共享,也可以与组织或OU中的所有账号共享,而不必枚举每个账号,具体请参见启用与组织共享资源。
  • 云原生混部 云原生混部解决方案围绕Volcano和Kubernetes生态,帮助用户提升资源利用率,实现降本增效。 功能 描述 参考文档 动态资源超卖 根据在线作业和离线作业类型,通过Volcano调度将集群中申请而未使用的资源(即申请量与使用量的差值)利用起来,实现资源超卖和混合部署,提升集群资源利用率。 动态资源超卖 CPU Burst弹性限流 提供一种可以短暂突破CPU Limit值的弹性限流机制,以降低业务长尾响应时间,可以有效提升时延敏感型业务的服务质量。 CPU Burst弹性限流 出口网络带宽保障 平衡在线业务与离线业务对出口网络带宽的使用,保证在线业务有足够的网络带宽。 出口网络带宽保障
  • GPU调度 CCE为集群中的GPU异构资源提供调度能力,支持在容器中使用GPU显卡。 功能 描述 参考文档 Kubernetes默认GPU调度 Kubernetes默认GPU调度可以指定Pod申请GPU的数量,支持申请设置为小于1的数量,实现多个Pod共享使用GPU。 使用Kubernetes默认GPU调度 GPU虚拟化 GPU虚拟化能够动态对GPU设备显存与算力进行划分,单个GPU卡最多虚拟化成20个GPU虚拟设备。相对于静态分配来说,虚拟化的方案更加灵活,最大程度保证业务稳定的前提下,可以完全由用户自己定义使用的GPU量,提高GPU利用率。 GPU虚拟化
  • CPU调度 CCE提供CPU管理策略为应用分配完整的CPU物理核,提升应用性能,减少应用的调度延迟。 功能 描述 参考文档 CPU管理策略 当节点上运行了很多 CPU 密集的 Pod 时,工作负载可能会迁移到不同的 CPU 核。许多应用对这种迁移不敏感,因此无需任何干预即可正常工作。有些应用对CPU敏感,对于CPU敏感型应用,您可以利用Kubernetes中提供的CPU管理策略为应用分配独占核,提升应用性能,减少应用的调度延迟。 CPU管理策略 增强型CPU管理策略 增强型CPU管理策略(enhanced-static),是在兼容静态绑核CPU管理策略的基础上,新增一种符合某些资源特征的Burstable Pod(CPU的Request和Limit值都是正整数)优先使用某些CPU的能力,以减少应用在多个CPU间频繁切换带来的影响。 增强型CPU管理策略
  • Volcano调度 Volcano是一个基于Kubernetes的批处理平台,提供了机器学习、深度学习、生物信息学、基因组学及其他大数据应用所需要而Kubernetes当前缺失的一系列特性,提供了高性能任务调度引擎、高性能异构芯片管理、高性能任务运行管理等通用计算能力。 功能 描述 参考文档 使用Volcano调度工作负载 一般情况下,Kubernetes在调度工作负载时会使用自带的默认调度器,若需要使用Volcano调度器的能力,您可以为工作负载指定调度器。 使用Volcano调度工作负载 资源利用率优化调度 针对计算资源进行优化的调度策略,可以有效减少各节点资源碎片,最大化地提高计算资源的利用率。 资源利用率优化调度 业务优先级保障调度 根据业务的重要性和优先级,设置自定义的策略对业务占用的资源进行调度,确保关键业务的资源优先级得到保障。 业务优先级保障调度 AI任务性能增强调度 根据AI任务的工作性质、资源的使用情况,设置对应的调度策略,可以增强集群业务的吞吐量,提高业务运行性能。 AI任务性能增强调度 NUMA亲和性调度 Volcano可解决调度程序NUMA拓扑感知的限制,实现以下目标: 避免将Pod调度到NUMA拓扑不匹配的节点。 将Pod调度到NUMA拓扑的最佳节点。 NUMA亲和性调度
  • 组调度介绍 Gang调度策略是volcano-scheduler的核心调度算法之一,它满足了调度过程中的“All or nothing”的调度需求,避免Pod的任意调度导致集群资源的浪费。具体算法是,观察Job下的Pod已调度数量是否满足了最小运行数量,当Job的最小运行数量得到满足时,为Job下的所有Pod执行调度动作,否则,不执行。 基于容器组概念的Gang调度算法十分适合需要多进程协作的场景。AI场景往往包含复杂的流程,Data Ingestion、Data Analysts、Data Splitting、Trainer、Serving、Logging等,需要一组容器进行协同工作,就很适合基于容器组的Gang调度策略。MPI计算框架下的多线程并行计算通信场景,由于需要主从进程协同工作,也非常适合使用Gang调度策略。容器组下的容器高度相关也可能存在资源争抢,整体调度分配,能够有效解决死锁。在集群资源不足的场景下,Gang的调度策略对于集群资源的利用率的提升是非常明显的。
  • 升级备份说明 目前集群升级备份方式如下: 备份方式 备份对象 备份方式 备份时间 回滚时间 说明 etcd数据备份 etcd数据 升级流程中自动备份 1-5min 2h 必选备份,升级过程中自动进行,用户无需关注 CBR整机备份 Master节点磁盘,包括组件镜像、配置、日志以及etcd数据 通过页面一键备份(手动触发) 20min-2h(受当前局点云备份任务排队情况影响) 20min 该功能逐步由EVS快照备份替代 EVS快照备份 Master节点磁盘,包括组件镜像、配置、日志以及etcd数据 通过页面一键备份(手动触发) 1-5min 20min 该功能上线中 对于已上线的区域,EVS快照备份将替代CBR整机备份
  • 资源和成本规划 该解决方案主要部署如下资源,以下费用仅供参考,具体请参考华为云官网价格详情,实际收费以账单为准。 表1 成本预估(仅供参考) 华为云服务 计费说明 每月花费(调用100万次) 内容审核服务-图像内容审核 1千次(含)以内免费。 1千-100万次:0.35元/千次 349.65元 对象存储服务 OBS 区域:华北-北京四 存储空间:数据存储(多AZ存储) 默认存储类别:标准存储 桶策略:私有 请求费用:0.0100元/万次 存储空间:0.1390元/GB/月 流量费用: 公网流出流量 / 00:00-08:00(闲时)0.2500元/GB 公网流出流量 / 08:00-24:00(忙时)0.5000元/GB 费用包括存储空间、请求费用、流量费用两部分,具体请参考OBS计费详情。 费用包括存储空间、请求费用、流量费用两部分,详细请参考每月账单。 函数工作流 FunctionGraph 区域:华北-北京四 产品:函数 请求次数: 0-100万次: 0元/100万次 100万次以上 : 1.33元/100万次 计量时间: 0-400,000 GB/秒: 0元/GB-秒 400,000 GB/秒以上 :0.00011108元/GB-秒 费用包括请求次数、计量时间两部分,详细请参考每月账单。 合计 - 349.65+OBS费用+函数工作流费用
    AI
  • 开始使用 登录华为云对象存储服务控制台,查看OBS桶是否正常创建。 图1 查看OBS桶 选择桶moderation-image-demo-resource-obs(实际桶名称以部署指定参数为准),上传图片文件。 暂不支持OBS上传KMS加密的图片文件。 图像内容审核 支持识别处理JPG、PNG、JPEG、WEBP、GIF、TIFF、TIF、HEIF格式的图片。 图像各边的像素大小在20到6000px之间。 图片base64编码后大小不超过10MB(原图像大小不超过7.5MB)。 目前支持暴恐元素、涉黄内容检测。 默认API调用最大并发为10(表示1秒内最多请求10次),如需调整更高并发限制请通过工单联系专业工程师为您服务。 图2 上传图片 检查违规图片替换结果(合规图片不会替换)。 图3 违规图片替换 选择桶moderation-image-result-demo(实际桶名称以部署指定参数为准),查看原始图片和审核日志。 图4 原始图片和审核日志 父主题: 实施步骤
  • 问题根因 ARM架构节点的EulerOS 2.8和EulerOS 2.9操作系统内核存在Bug,会触发kubelet驱逐Pod导致业务不可用。 该问题在以下版本中已被修复: EulerOS 2.8:内核版本kernel-4.19.36-vhulk1907.1.0.h1252.eulerosv2r8.aarch64 EulerOS 2.9:内核版本kernel-4.19.90-vhulk2103.1.0.h819.eulerosv2r9.aarch64
  • 故障现象 ARM架构节点上,cgroup统计资源异常导致kubelet驱逐Pod,节点无法正常使用。 kubelet一直在驱逐pod,把容器全终止之后还是认为内存不足。 此时实际资源使用正常。 查看/sys/fs/cgroup/memory目录下cgroup的usage_in_bytes统计值有问题,与实际不符。 # cd /sys/fs/cgroup/memory # cat memory.usage_in_bytes 17618837504
  • 绑定邮箱 1、使用华为云账号登录。 2、页面提示用户绑定邮箱,单击“立即绑定”,跳转到"消息中心"页面 3、进入到"接收人管理"页面中,如账号联系人没有邮箱,需要先添加邮箱,步骤如下: 4、在"接收人管理"页面中点击邮箱后面的黄色感叹号,再次点击"发送验证",提示"发送成功"后需要在邮件中点击"点击确认"按钮即可完成邮箱绑定。 5、进入到"修改消息接受人"弹窗页中,核实接收人已被勾选,步骤如下:(注:请至少勾选一个有邮箱的接收人,不勾选无法预约/考试/获取证书)
  • analyze_table(scheme_name, rel_name, sample_rate, random_rate default null, prarallel_degree default null) 描述:并行采样数据到临时表,然后对临时表做全量analyze, 并更新统计信息。 返回值类型:record。 函数参数字段如下: 名称 类型 描述 scheme_name name 主表的scheme名称 rel_name name 主表表名 sample_rate float8 采样率的百分比,范围为(0-100)采样率计算:min((10w/表的total_rows) * 100, 100) random_seed float8 随机种子 不设定的话,默认值为0 prarallel_degree int 并发度 不设定的话,默认值为10 示例: 1 call analyze_table('public','t1_col_obs',10,0,20);
  • pg_archive_scan_residualfiles() 描述:用于归档当前节点的所有残留文件记录。该函数为实例级函数,与当前所在的数据库无关,可以在任意实例上运行。不支持备机执行。 返回值类型:record。 函数返回字段如下: 名称 类型 描述 archive text 归档后的本地文件夹路径。obs路径的残留文件归档在对应obs数据库目录下。 count int 归档文件夹中的文件数量 size int 归档文件夹中的文件大小 示例: 1 2 3 4 5 select * from pg_archive_scan_residualfiles(); archive | count | size -------------------------------------------------------------------+--------+------ pg_residualfiles/archive/pgscrf_archive_15842_20230912182934335330| 1 | 0 (1 row)
  • pgxc_rm_scan_residualfiles_archive() 描述:用于删除所有节点上归档目录中的文件。该函数为集群级函数,限定在CN执行,与当前所在的数据库无关。不支持备机执行。 返回值类型:record。 函数返回字段如下: 名称 类型 描述 node_name text 主备节点共用的统一名称。 instance_id text 记录残留文件所在的节点名称。 count int 所删除的残留文件数。本地路径的残留文件统计所删除的文件数,OBS路径的残留文件统计所删除的表目录数量。 size int 所删除的残留文件中本地文件总大小。OBS路径的残留文件该项均为0。 示例: 1 2 3 4 5 6 select * from pgxc_rm_scan_residualfiles_archive(); node_name | instance_id | count | size --------------+--------------+-------+------ datanode1 | datanode1 | 1 | 0 coordinator1 | coordinator1 | 1 | 0 (2 rows)
  • pgxc_get_scan_residualfiles() 描述:用于获取所有节点上残留文件记录。该函数为集群级函数,限定在CN执行,与当前所在的数据库无关。不支持备机执行。 返回值类型:record。 函数返回字段如下: 名称 类型 描述 node_name text 主备节点共用的统一名称。 instance_id text 记录残留文件所在的节点名称。 handled bool 残留文件是否已经被移动或者被更改。 dbname text 所属数据库名称。 residualfile text 残留文件路径。 size int 残留文件大小,OBS上残留文件该项为0。 inode int 残留文件在文件系统的索引节点号,OBS路径的残留文件该项为0。 atime time 残留文件上一次访问时间,OBS路径的残留文件该项为空。 mtime time 残留文件上一次修改时间,OBS路径的残留文件该项为空。 ctime time 残留文件上一次状态改动时间,OBS路径的残留文件该项为空。 filepath text 记录残留文件信息的元文件本地路径。 notes text 注释。 示例: 1 2 3 4 5 6 7 select * from pgxc_get_scan_residualfiles(); node_name | instance_id | handled | dbname | residualfile | size | inode | atime | mtime | ctime | filepath | notes --------------+--------------+---------+----------+------------------------------------------------------------------------------------------------------------------------------+------+---------+------------------------+------------------------+------------------------+----------------------------------------+------- datanode1 | datanode1 | f | postgres | base/15854/19863 | 0 | 2939427 | 2023-11-06 09:54:15+08 | 2023-11-06 09:54:15+08 | 2023-11-06 09:54:15+08 | pgscrf_meta_15854_20231106095437555205 | coordinator1 | coordinator1 | f | postgres | /test/obsview/cudesc_check/user1/obs.xxx.com/cu_obs_tbs/tablespace_secondary/15854/19865 | 0 | 0 | | | | pgscrf_meta_15854_20231106095438240991 | (2 rows)
  • pgxc_archive_scan_residualfiles() 描述:用于归档所有节点上残留文件记录。该函数为集群级函数,限定在CN执行,与当前所在的数据库无关。不支持备机执行。 返回值类型:record。 函数返回字段如下: 名称 类型 描述 node_name text 主备节点共用的统一名称。 instance_id text 记录残留文件所在的节点名称。 archive text 归档后的本地文件夹路径。OBS路径的残留文件归档在对应OBS数据库目录下。 count int 归档文件夹中的文件数量。 size int 归档文件夹中的文件大小。 示例: 1 2 3 4 5 6 select * from pgxc_archive_scan_residualfiles(); node_name | instance_id | archive | count | size --------------+--------------+--------------------------------------------------------------+-------+------ datanode1 | datanode1 | pg_residualfiles/archive/pgscrf_archive_20231106103246489550 | 1 | 0 coordinator1 | coordinator1 | pg_residualfiles/archive/pgscrf_archive_20231106103246592449 | 1 | 0 (2 rows)
  • pg_rm_scan_residualfiles_archive() 描述:用于删除当前实例中归档文件列表中的文件。该函数为实例级函数,与当前所在的数据库无关,可以在任意实例上运行。不支持备机执行。 返回值类型:record。 函数返回字段如下: 名称 类型 描述 count int 所删除的残留文件数。本地路径的残留文件统计所删除的文件数,OBS路径的残留文件统计所删除的表目录数量。 size int 所删除的残留文件中本地文件总大小。OBS路径的残留文件该项均为0。 示例: 1 2 3 4 5 select * from pg_rm_scan_residualfiles_archive(); count | size -------+------ 1 | 0 (1 row)
  • pg_get_scan_residualfiles() 描述:用于获取当前节点的所有残留文件记录。该函数为实例级函数,与当前所在的数据库无关,可以在任意实例上运行。不支持备机执行。 返回值类型:record。 函数返回字段如下: 名称 类型 描述 handled bool 残留文件是否已经被移动或者被更改。 dbname text 所属数据库名称。 residualfile text 残留文件路径。 size int 残留文件大小,OBS路径的残留文件该项为0。 inode int 残留文件在文件系统的索引节点号,OBS上残留文件该项为0。 atime time 残留文件上一次访问时间,OBS路径的残留文件该项为空。 mtime time 残留文件上一次修改时间,OBS路径的残留文件该项为空。 ctime time 残留文件上一次状态改动时间,OBS路径的残留文件该项为空。 filepath text 记录残留文件信息的元文件本地路径。 notes text 注释。 示例: 1 2 3 4 5 6 7 select * from pg_get_scan_residualfiles(); handled | dbname | residualfile | size | inode | atime | mtime | ctime | filepath | notes ---------+----------+------------------------------------------------------------------------------------------------------------------------------+------+-------+-------+-------+-------+----------------------------------------+- ------ f | postgres | /test/obsview/cudesc_check/user1/obs.xxx.com/cu_obs_tbs/tablespace_secondary/15854/19865 | 0 | 0 | | | | pgscrf_meta_15854_20231106095438240991 | (1 row)
  • 使用步骤 UCS最基础的入门操作包括创建容器舰队、添加集群、管理多集群生命周期,通过这三个步骤即可实现在跨云跨地域的多集群场景下轻松部署、管理和扩展容器化应用程序。 图1为UCS的入门使用流程,实际上针对不同集群类型和不同管理目的,在使用方式上有细微的差异,具体差异请参考对应使用方式的指导文档,本入门指导旨在帮助您对UCS产品入门操作进行初步认识。 图1 UCS入门流程 进行必要的准备工作,请参见步骤一:准备工作。 创建容器舰队,请参见步骤二:创建容器舰队。 为容器舰队添加集群,请参见步骤三:为容器舰队添加集群。 管理多集群生命周期,请参见步骤四:管理多集群生命周期。
  • 操作步骤 假设目前业务部署在多个地区,全国用户默认访问“华北-北京四”区域的业务,而华东地区用户需要访问部署在“华东-上海一”区域的业务,以降低用户的使用时延。此时可通过创建流量策略来为已有应用进行基于地域的流量切分。 登录UCS控制台。 在左侧树状导航栏,选择“流量分发”。 单击页面右上角“创建流量策略”按钮。 根据页面提示,选择已添加解析的域名,并填写域名前缀。如果没有子域名,域名前缀可不填。 添加调度策略,本例中仅填写关键参数,其余参数保持默认,如表1所示。对不同地域的用户创建流量策略,可重复此步骤,并选择不同的集群和线路类型。 表1 调度策略关键参数 参数 参数说明 集群 选择一个状态为“运行中”的目标集群,列表中将自动获取UCS接管的所有集群。 命名空间 选择目标服务所在的命名空间,默认为“default”。 服务 选择一个目标服务,仅支持访问类型为负载均衡的服务,查询结果已过滤。 线路类型 运营商线路解析:根据访问用户所在运营商网络调度到最佳访问地址。默认值为“电信/地区默认”,支持指定运营商及地区,其中地区选择的细粒度为省级。 地域解析:根据访问用户所处地理位置调度到最佳访问地址。默认值为“中国大陆/地区默认”,支持全球地域选择,其中中国大陆地区细粒度为省级,其余地域细粒度为国家/地区。 图1 添加调度策略 单击“确定”,待流量调度策略创建成功后,华东地区的用户将优先访问选定线路。 检验新增调度策略是否生效,参考怎样测试域名解析是否生效?。 您可以在华东地区使用已经连接Internet的终端,输入如下命令测试调度策略是否生效: nslookup demo.***.com 如果终端的操作系统没有自带nslookup命令,需要手动安装后才能使用。例如CentOS系统,可执行yum install bind-utils安装。 回显如下,如其中“Address”的IP地址为目标集群负载均衡IP,则表示调度策略创建成功。 Server: *** Address: *.*.*.* Non-authoritative answer: Name: demo.***.com Address: 124.*.*.*
  • 分发实例 登录UCS控制台,在左侧导航栏中选择“云原生服务中心”,单击“我的订阅”页签。 将鼠标移动至CockroachDB服务选项卡,并单击“创建实例”,如图2所示。 图2 创建实例 根据界面引导,选择实例的部署场景、区域、容器集群、命名空间等参数,如图3所示。 图3 配置基本信息 单击“下一步:实例参数”,填写实例基本参数。在本示例中,CockroachDB服务仅支持Yaml创建方式,参数配置保持默认。 图4 配置实例参数 单击“下一步:信息确认”,仔细查阅页面下方提示信息并勾选“我已知晓”,单击“提交”,等待实例创建成功。 实例创建成功后,在“服务实例”页面可以查看CockroachDB服务实例的信息。 图5 服务实例
  • 注册集群 登录UCS控制台。 在左侧导航栏选择“容器舰队”,单击附着集群选项卡中的“注册集群”按钮。 配置集群参数。本例中仅填写关键参数,如表1所示。 表1 添加集群参数配置 参数 是否必需 参数说明 集群名称 是 输入集群的自定义名称。名称需以小写字母开头,由小写字母、数字、中划线(-)组成,且不能以中划线(-)结尾。 集群服务商 是 选择集群的服务商。 所属区域 是 选择集群所在区域。 上传KubeConfig文件 是 上传获取KubeConfig文件中保存的KubeConfig文件,以完成集群认证。支持JSON或YAML格式。 选择Context 是 选择对应的Context。 Context选项列表会在上传KubeConfig文件后自动获取,默认的选项为KubeConfig文件中“current-context”字段指定的Context。 容器舰队 否 选择步骤二:创建容器舰队创建的舰队。 图1 注册集群 单击“确定”。
  • 后续步骤 将集群添加至容器舰队后,即可对其进行统一管理。 UCS支持对容器舰队内的多个集群实行统一管理,包括为其开启集群联邦能力以创建和管理多集群工作负载、统一治理多集群流量、为多集群配置统一合规策略等能力。 本小节将以四种最常用的UCS功能为例,指导您快速上手UCS的多集群管理能力,请根据业务需求选择您需要参考的入门指导: 在多集群上部署并管理工作负载,具体入门操作请参见创建多集群工作负载。 为多集群统一下发实例,具体入门操作请参见统一下发多集群实例。 统一治理多集群流量,具体入门操作请参见统一治理多集群流量。 实现多集群智能、可视化运维,具体入门操作请参见开启多集群健康监控。
  • 获取KubeConfig文件 登录待添加集群的Master节点。 获取待添加集群的KubeConfig文件。 cat $HOME/.kube/config 默认情况下,自建集群的配置文件路径为Master节点的“$HOME/.kube/config”,如您的集群指定了其他KubeConfig配置文件,请自行更换路径。关于KubeConfig文件的详细说明请参见使用KubeConfig文件组织集群访问。 复制KubeConfig文件内容。 在本地创建一个YAML文件,将上一步中的复制内容粘贴至该文件并保存。
  • 获取资源权限 由于UCS服务的容器集群功能支持CCE集群,因此需要获取访问云容器引擎CCE服务的权限。在您首次登录UCS控制台时,UCS将自动请求获取该权限,从而更好地为您提供服务。 当您同意授权后,UCS将在IAM中创建名为ucs_admin_trust的委托,统一使用系统帐户“op_svc_ucs”对您的CCE及其他云服务资源进行操作,并且授予其Tenant Administrator权限。Tenant Administrator拥有除IAM管理外的全部云服务管理员权限,用于对UCS所依赖的其他云服务资源进行调用。关于资源委托详情,您可参考委托进行了解。 由于UCS对其他云服务有许多依赖,如果没有Tenant Administrator权限,可能会因为某个服务权限不足而影响UCS功能的正常使用。因此在使用UCS服务期间,请不要自行删除或者修改“ucs_admin_trust”委托。 如果误操作,可以参考误删除或修改系统创建的ucs_admin_trust委托,怎么恢复?进行恢复。
  • 创建无状态工作负载 登录UCS控制台,在左侧导航栏中选择“容器舰队”。 在“容器舰队”页签下找到已开通集群联邦的舰队,单击名称进入详情页。 在左侧导航栏中选择“工作负载”,在“无状态负载”页签中单击右上角“镜像创建”。 设置工作负载基本信息。 表1 工作负载基本信息设置 参数 描述 负载类型 选择“无状态负载”。 命名空间 选择工作负载所需部署的命名空间。 描述 输入工作负载的描述信息。 实例数量 设置工作负载中各集群的实例数,默认为2。 设置工作负载容器配置。 工作负载中的Pod内可配置多个容器,您可以单击右侧“添加容器”为Pod配置多个容器并分别进行设置,本例中仅对容器的基本信息进行配置。 基本信息: 表2 基本信息参数说明 参数 说明 容器名称 为容器命名。 镜像名称 单击后方“选择镜像”,选择容器使用的镜像。 镜像版本 选择需要部署的镜像版本。 更新策略 镜像更新/拉取策略。勾选“总是拉取镜像”表示每次都从镜像仓库拉取镜像;如不勾选则优先使用节点已有的镜像,如果没有这个镜像再从镜像仓库拉取。 CPU配额 申请:容器需要使用的最小CPU值,默认0.25Core。 限制:允许容器使用的CPU最大值。建议设容器配额的最高限额,避免容器资源超额导致系统故障。 内存配额 申请:容器需要使用的内存最小值,默认512MiB。 限制:允许容器使用的内存最大值。如果超过,容器会被终止。 初始化容器 选择容器是否作为Init容器。 说明: Init容器是一种特殊容器,在 Pod 内的应用容器启动之前运行。详细说明请参见Init 容器。 单击“下一步:调度与差异化”,对选择的集群进行调度与差异化配置。 表3 集群调度策略参数配置 参数 描述 调度方式 可选择集群权重或自动均衡两种模式。 集群权重:手动设置各集群的权重,工作负载在各集群的实例数将根据设置的权重比例进行分配。 自动均衡:工作负载将根据资源余量在可调度的集群中自动选择集群进行部署。 部署集群 “集群权重”模式下,需手动设置各集群权重值,权重非0的集群将自动勾选为可调度集群,权重为0则表示该集群不可调度。状态非正常的集群无法设置权重。 “自动均衡”模式下,单击集群即可将其勾选为可调度集群。 设置完成后,单击“创建工作负载”,完成创建后,可单击“返回工作负载列表”查看所创建的工作负载。
  • 解决办法 需排查集群配置信息,检查缩容是否满足以下条件: 集群按照环的方式配置,比如4个或5个主机组成一个环,这些主机上的DN主节点、备节点和从节点都部署在这些节点里,这些节点组成一个集群环 ,缩容的最小单元是一个集群环,集群至少有2个环才能支持缩容,缩容按照集群环从后往前缩容节点。 缩容节点不能包含GTM组件,CM Server组件,CN组件。 集群状态为Normal,无其他任务信息。 集群租户账号不能处于只读,冻结,受限状态。 集群非逻辑集群模式。 包周期集群不能处于已过期进入宽限期。
  • 策略实例示例 以下策略实例展示了策略定义生效的资源类型,parameters中定义了对runAsUser、runAsGroup、supplementalGroups和fsGroup等字段的约束。 apiVersion: constraints.gatekeeper.sh/v1beta1 kind: K8sPSPAllowedUsers metadata: name: psp-pods-allowed-user-ranges spec: match: kinds: - apiGroups: [""] kinds: ["Pod"] parameters: runAsUser: rule: MustRunAs # MustRunAsNonRoot # RunAsAny ranges: - min: 100 max: 200 runAsGroup: rule: MustRunAs # MayRunAs # RunAsAny ranges: - min: 100 max: 200 supplementalGroups: rule: MustRunAs # MayRunAs # RunAsAny ranges: - min: 100 max: 200 fsGroup: rule: MustRunAs # MayRunAs # RunAsAny ranges: - min: 100 max: 200
  • 不符合策略实例的资源定义 示例中runAsUser等参数不在范围内,不符合策略实例。 apiVersion: v1 kind: Pod metadata: name: nginx-users-disallowed labels: app: nginx-users spec: securityContext: supplementalGroups: - 250 fsGroup: 250 containers: - name: nginx image: nginx securityContext: runAsUser: 250 runAsGroup: 250
共100000条