华为云用户手册

  • 示例流程 图1 给用户授予CCE权限流程 创建用户组并授权。 在IAM控制台创建用户组,并授予CCE权限,例如CCE ReadOnlyAccess。 CCE服务按区域部署,在IAM控制台授予CCE权限时请选择“区域级项目”。 创建用户并加入用户组。 在IAM控制台创建用户,并将其加入1中创建的用户组。 用户登录并验证权限。 新创建的用户登录控制台,切换至授权区域,验证权限: 在“服务列表”中选择云容器引擎,进入CCE主界面,单击右上角“购买Kubernetes集群”,如果无法无法成功操作(假设当前权限仅包含CCE ReadOnlyAccess),表示“CCE ReadOnlyAccess”已生效。 在“服务列表”中选择除云容器引擎外(假设当前策略仅包含CCEReadOnlyAccess)的任一服务,若提示权限不足,表示“CCE ReadOnlyAccess”已生效。
  • 系统角色 角色是IAM最初提供的一种根据用户的工作职能定义权限的粗粒度授权机制。该机制以服务为粒度,提供有限的服务相关角色用于授权。角色并不能满足用户对精细化授权的要求,无法完全达到企业对权限最小化的安全管控要求。 IAM中预置的CCE系统角色为CCE Administrator,给用户组授予该系统角色权限时,必须同时授予该角色依赖的其他策略才会生效,例如Tenant Guest、Server Administrator、ELB Administrator等。了解更多角色依赖关系,请参考:系统权限。
  • 系统策略 IAM中预置的CCE系统策略当前包含CCE FullAccess和CCE ReadOnlyAccess两种策略: CCE FullAccess:系统策略,CCE服务集群相关资源的普通操作权限,不包括集群(启用Kubernetes RBAC鉴权)的命名空间权限,不包括委托授权、生成集群证书等管理员角色的特权操作。 CCE ReadOnlyAccess:系统策略,CCE服务集群相关资源的只读权限,不包括集群(启用Kubernetes RBAC鉴权)的命名空间权限。 表1 CCEFullAccess策略主要权限 操作(Action) Action详情 说明 cce:*:* cce:cluster:create 创建集群 cce:cluster:delete 删除集群 cce:cluster:update 更新集群,如后续允许集群支持RBAC,调度参数更新等 cce:cluster:upgrade 升级集群 cce:cluster:start 唤醒集群 cce:cluster:stop 休眠集群 cce:cluster:list 查询集群列表 cce:cluster:get 查询集群详情 cce:node:create 添加节点 cce:node:delete 删除节点/批量删除节点 cce:node:update 更新节点,如更新节点名称 cce:node:get 查询节点详情 cce:node:list 查询节点列表 cce:nodepool:create 创建节点池 cce:nodepool:delete 删除节点池 cce:nodepool:update 更新节点池信息 cce:nodepool:get 获取节点池 cce:nodepool:list 列出集群的所有节点池 cce:release:create 创建模板实例 cce:release:delete 删除模板实例 cce:release:update 更新升级模板实例 cce:job:list 查询任务列表(集群层面的job) cce:job:delete 删除任务/批量删除任务(集群层面的job) cce:job:get 查询任务详情(集群层面的job) cce:storage:create 创建存储 cce:storage:delete 删除存储 cce:storage:list 列出所有磁盘 cce:addonInstance:create 创建插件实例 cce:addonInstance:delete 删除插件实例 cce:addonInstance:update 更新升级插件实例 cce:addonInstance:get 获取插件实例 cce:addonTemplate:get 获取插件模板 cce:addonInstance:list 列出所有插件实例 cce:addonTemplate:list 列出所有插件模板 cce:chart:list 列出所有模板 cce:chart:delete 删除摸板 cce:chart:update 更新模板 cce:chart:upload 上传模板 cce:chart:get 获取模板信息 cce:release:get 获取模板实例信息 cce:release:list 列出所有模板实例 cce:userAuthorization:get 获取CCE用户授权 cce:userAuthorization:create 创建CCE用户授权 ecs:*:* - ECS(弹性云服务器)服务的所有权限。 evs:*:* 具体action详见:云硬盘v2接口的授权信息。 EVS(云硬盘)的所有权限。 可以将云硬盘挂载到云服务器,并可以随时扩容云硬盘容量 vpc:*:* - VPC(虚拟私有云,包含二代ELB)的所有权限。 创建的集群需要运行在虚拟私有云中,创建命名空间时,需要创建或关联VPC,创建在命名空间的容器都运行在VPC之内。 sfs:*:get* - SFS(弹性文件存储服务)资源详情的查看权限。 sfs:shares:ShareAction - SFS(弹性文件存储服务)资源的扩容共享。 aom:*:get - AOM(应用运维管理)资源详情的查看权限。 aom:*:list - AOM(应用运维管理)资源列表的查看权限。 aom:autoScalingRule:* - AOM(应用运维管理)自动扩缩容规则的所有操作权限。 apm:icmgr:* - APM(应用性能管理服务)操作ICAgent权限。 lts:*:* - LTS(云日志服务)的所有权限。 表2 CCEReadOnlyAccess策略主要权限 操作(Action) 操作(Action) 说明 cce:*:get cce:cluster:get 查询集群详情 cce:node:get 查询节点详情 cce:job:get 查询任务详情(集群层面的job) cce:addonInstance:get 获取插件实例 cce:addonTemplate:get 获取插件模板 cce:chart:get 获取模板信息 cce:nodepool:get 获取节点池 cce:release:get 获取模板实例信息 cce:userAuthorization:get 获取CCE用户授权 cce:*:list cce:cluster:list 查询集群列表 cce:node:list 查询节点列表 cce:job:list 查询任务列表(集群层面的job) cce:addonInstance:list 列出所有插件实例 cce:addonTemplate:list 列出所有插件模板 cce:chart:list 列出所有模板 cce:nodepool:list 列出集群的所有节点池 cce:release:list 列出所有模板实例 cce:storage:list 列出所有磁盘 cce:kubernetes:* - 操作所有kubernetes资源,具体权限请在命名空间权限中配置。 ecs:*:get - ECS(弹性云服务器)所有资源详情的查看权限。 CCE中的一个节点就是具有多个云硬盘的一台弹性云服务器 ecs:*:list - ECS(弹性云服务器)所有资源列表的查看权限。 bms:*:get* - BMS(裸金属服务器)所有资源详情的查看权限。 bms:*:list - BMS(裸金属服务器)所有资源列表的查看权限。 evs:*:get - EVS(云硬盘)所有资源详情的查看权限。可以将云硬盘挂载到云服务器,并可以随时扩容云硬盘容量 evs:*:list - EVS(云硬盘)所有资源列表的查看权限。 evs:*:count - - vpc:*:get - VPC(虚拟私有云,包含二代ELB)所有资源详情的查看权限。 创建的集群需要运行在虚拟私有云中,创建命名空间时,需要创建或关联VPC,创建在命名空间的容器都运行在VPC之内 vpc:*:list - VPC(虚拟私有云,包含二代ELB)所有资源列表的查看权限。 sfs:*:get* - SFS(弹性文件服务)服务所有资源详情的查看权限。 sfs:shares:ShareAction - SFS(弹性文件服务)资源的扩容共享。 aom:*:get - AOM(应用运维管理)服务所有资源详情的查看权限。 aom:*:list - AOM(应用运维管理)服务所有资源列表的查看权限。 aom:autoScalingRule:* - AOM(应用运维管理)服务自动扩缩容规则的所有操作权限。 lts:*:get - LTS(云日志服务)的所有资源详情的查看权限。 lts:*:list - LTS(云日志服务)的所有资源列表的查看权限。
  • 使用须知 快照功能仅支持v1.15及以上版本的集群,且需要安装基于CSI的Everest插件才可以使用。 基于快照创建的云硬盘,其子类型(普通IO/高IO/超高IO)、是否加密、磁盘模式(VBD/SCSI)、共享性(非共享/共享)、容量等都要与快照关联母盘保持一致,这些属性查询和设置出来后不能够修改。 只有可用或正在使用状态的磁盘能创建快照。快照免费试用期间,单个磁盘最大支持创建7个快照。 创建快照功能仅支持使用everest插件提供的存储类(StorageClass名称以csi开头)创建的PVC。使用Flexvolume存储类(StorageClass名为ssd、sas、sata)创建的PVC,无法创建快照。 加密磁盘的快照数据以加密方式存放,非加密磁盘的快照数据以非加密方式存放。
  • 注意事项 删除集群不会删除集群下包周期的资源,相关资源在集群删除后将会继续计费,请妥善处理。 删除集群会删除集群下的节点(纳管节点不会被删除)、节点挂载的数据盘、工作负载与服务,相关业务将无法恢复。在执行操作前,请确保相关数据已完成备份或者迁移,删除完成后数据无法找回,请谨慎操作。 部分不是在CCE中创建的资源不会删除: 纳管的节点(仅删除在CCE中创建的节点) Service和Ingress关联的ELB实例(仅删除自动创建的ELB实例) 手动创建PV关联的云存储/导入的云存储(仅删除PVC自动创建的云存储) 处于休眠状态的集群无法直接删除,请将集群唤醒后重试。 集群不可用时删除集群,存储会残留。 集群版本为v1.13.10及之前版本时,请勿在ELB服务手动修改监听器名称和后端服务器名称,否则删除集群会有资源残留。
  • 使用快照创建PVC 通过快照创建云硬盘PVC时,磁盘类型、磁盘模式、加密属性需和快照源云硬盘保持一致。 使用控制台创建 登录CCE控制台。 进入集群,在左侧选择“容器存储”,在右侧选择“存储卷声明”页签。 单击右上角“创建存储卷声明”,在弹出的窗口中填写存储卷“声明”参数。 创建方式:选择“使用快照”。 PVC名称:指定PVC的名称。 已有快照:选择要使用的快照。 单击“创建”。 使用YAML创建 apiVersion: v1kind: PersistentVolumeClaimmetadata: name: pvc-test namespace: default annotations: everest.io/disk-volume-type: SSD # 云硬盘类型,需要与快照源云硬盘保持一致 labels: failure-domain.beta.kubernetes.io/region: cn-north-4 failure-domain.beta.kubernetes.io/zone: cn-north-4bspec: accessModes: - ReadWriteOnce resources: requests: storage: '10' storageClassName: csi-disk dataSource: name: cce-disksnap-test # 快照的名称 kind: VolumeSnapshot apiGroup: snapshot.storage.k8s.io
  • 使用场景 快照功能可以帮助您实现以下需求: 日常备份数据 通过对云硬盘定期创建快照,实现数据的日常备份,可以应对由于误操作、病毒以及黑客攻击等导致数据丢失或不一致的情况。 快速恢复数据 更换操作系统、应用软件升级或业务数据迁移等重大操作前,您可以创建一份或多份快照,一旦升级或迁移过程中出现问题,可以通过快照及时将业务恢复到快照创建点的数据状态。 例如,当由于云服务器 A的系统盘 A发生故障而无法正常开机时,由于系统盘 A已经故障,因此也无法将快照数据回滚至系统盘A。此时您可以使用系统盘 A已有的快照新创建一块云硬盘 B并挂载至正常运行的云服务器 B上,从而云服务器 B能够通过云硬盘 B读取原系统盘 A的数据。 当前CCE提供的快照能力与K8S社区CSI快照功能一致:只支持基于快照创建新云硬盘,不支持将快照回滚到源云硬盘。 快速部署多个业务 通过同一个快照可以快速创建出多个具有相同数据的云硬盘,从而可以同时为多种业务提供数据资源。例如数据挖掘、报表查询和开发测试等业务。这种方式既保护了原始数据,又能通过快照创建的新云硬盘快速部署其他业务,满足企业对业务数据的多元化需求。
  • 创建快照 使用控制台创建 登录CCE控制台。 进入集群,在左侧选择“容器存储”,在右侧选择“快照与备份”页签。 单击右上角“创建快照”,在弹出的窗口中设置相关参数。 快照名称:填写快照的名称。 选择存储:选择要创建快照的PVC。 单击“创建”。 使用YAML创建 kind: VolumeSnapshotapiVersion: snapshot.storage.k8s.io/v1beta1metadata: finalizers: - snapshot.storage.kubernetes.io/volumesnapshot-as-source-protection - snapshot.storage.kubernetes.io/volumesnapshot-bound-protection name: cce-disksnap-test namespace: defaultspec: source: persistentVolumeClaimName: pvc-evs-test # PVC的名称,仅能创建云硬盘类型PVC volumeSnapshotClassName: csi-disk-snapclass
  • 约束与限制 HPA策略:仅支持1.13及以上版本的集群创建。 每个工作负载只能创建一个策略,即如果您创建了一个HPA策略,则不能再对其创建CustomedHPA策略或其他HPA策略,您可以删除该HPA策略后再创建。 1.19.10以下版本的集群中,如果使用HPA策略对挂载了EVS卷的负载进行扩容,当新Pod被调度到另一个节点时,会导致之前Pod不能正常读写。 1.19.10及以上版本集群中,如果使用HPA策略对挂载了EVS卷的负载进行扩容,新Pod会因为无法挂载云硬盘导致无法成功启动。
  • 操作步骤 在CCE控制台,单击左侧导航栏的“弹性伸缩”,在“工作负载伸缩”页签下,单击“创建HPA策略”。 进入创建工作负载HPA策略页面,在“插件检测”步骤中: 若插件名称后方显示,请单击插件后方的“现在安装”,根据业务需求配置插件参数后单击“立即安装”,等待插件安装完成。 若插件名称后方显示,则说明插件已安装成功。 确认插件已安装成功后,单击“下一步:策略配置”。 如果插件已提前安装成功,单击“创建HPA策略”后,在“插件检测”步骤中经过短暂检测后将直接进入“策略配置”步骤。 在“策略配置”步骤中,参照表1设置策略参数。 表1 HPA策略参数配置 参数 参数说明 策略名称 新建策略的名称,请自定义。 集群名称 请选择工作负载所在的集群。 命名空间 请选择工作负载所在的命名空间。 关联工作负载 请选择要设置HPA策略的工作负载。 实例范围 请输入最小实例数和最大实例数。 策略触发时,工作负载实例将在此范围内伸缩。 冷却时间 请输入缩容和扩容的冷却时间,单位为分钟,缩容扩容冷却时间不能小于1分钟。 该设置仅在1.15及以上版本的集群中显示,1.13版本的集群不支持该设置。 策略成功触发后,在此缩容/扩容冷却时间内,不会再次触发缩容/扩容,目的是等待伸缩动作完成后在系统稳定且集群正常的情况下进行下一次策略匹配。 策略规则 策略规则可基于系统指标。 系统指标 指标:可选择“CPU利用率”或“内存利用率”。 说明: 利用率 = 工作负载Pod的实际使用量 / 申请量。 期望值:请输入期望资源平均利用率。 期望值表示所选指标的期望值,通过向上取整(当前指标值 / 期望值 × 当前实例数)来计算需要伸缩的实例数。 阈值:请输入缩容和扩容阈值。 当指标值大于缩容阈值且小于扩容阈值时,不会触发扩容或缩容。阈值仅在1.15及以上版本的集群中支持。 您可以单击“添加策略规则”,设置多条伸缩策略。 说明: HPA在计算扩容、缩容实例数时,会选择最近5分钟内的最大值。 设置完成后,单击“创建”,在“完成”步骤中若显示“创建工作负载策略***提交成功”,可单击“返回工作负载伸缩策略”。 在“工作负载伸缩”页签下,可以看到刚刚创建的HPA策略。 图1 创建HPA策略
  • 设置容器生命周期-YAML样例 本节以nginx为例,说明kubectl命令设置容器生命周期的方法。 请参见通过kubectl连接集群,使用kubectl连接集群。 创建一个名为nginx-deployment.yaml的描述文件。其中,nginx-deployment.yaml为自定义名称,您可以随意命名。 vi nginx-deployment.yaml 在以下配置文件中,您可以看到postStart命令在容器目录/bin/bash下写了个install.sh命令。 preStop执行uninstall.sh命令。 apiVersion: apps/v1kind: Deploymentmetadata: name: nginxspec: replicas: 1 selector: matchLabels: app: nginx strategy: type: RollingUpdate template: metadata: labels: app: nginx spec: restartPolicy: Always #重启策略 containers: - image: nginx command: - sleep 3600 #启动命令 imagePullPolicy: Always lifecycle: postStart: exec: command: - /bin/bash - install.sh #启动后命令 preStop: exec: command: - /bin/bash - uninstall.sh #停止前命令 name: nginx imagePullSecrets: - name: default-secret
  • 前提条件 表1 迁移前Checklist 类别 描述 集群相关 Nodeip强相关:确认之前集群的节点IP(包括EIP),是否有作为其他的配置或者白名单之类的设置。 工作负载 记录工作负载数目,便于迁移后检查。 存储 确认应用中存储,是否使用云存储,或者自己搭建存储。 自动创建的存储需要在新集群中变成使用已有存储。 网络 注意使用的负载均衡服务,以及Ingress。 老版本的集群只支持经典型负载均衡服务,迁移到新集群中需要改成共享型负载均衡服务,对应负载均衡服务将会重新建立。 运维 私有配置:确认在之前集群中,是否在节点上配置内核参数或者系统配置。
  • 操作步骤 创建新集群 创建与老版本集群同规格同配置的集群,创建方法请参见购买CCE集群。 添加节点 添加同规格节点,并且在节点上配置之前的手动配置项,创建方法请参见购买节点。 创建存储 在新集群中使用已有存储创建PVC,PVC名称不变,方法请参见存储卷声明PVC。 切流方案仅支持OBS、SFS、共享云硬盘类型的存储。非共享云硬盘存储切流需要将老集群内的工作负载暂停,会导致断服。 创建工作负载 在新集群中创建工作负载,名称和规格参数保持不变,创建方法请参见创建无状态负载(Deployment)或创建有状态负载(StatefulSet)。在工作负载中挂载存储,方法请参见部署带云硬盘存储卷EVS的工作负载。 创建服务 在新集群中创建Service,名称和规格参数保持不变,创建方法请参见Service。 调测功能 全部创建完成后,请自行调测业务,调测无问题后切换流量。 老集群退订或删除 新集群全部功能ready,退订或者删除老集群,删除集群方法请参见删除集群(按需计费)。
  • 容器如何执行命令和参数 Docker的镜像拥有存储镜像信息的相关元数据,如果不设置生命周期命令和参数,容器运行时将运行镜像制作时提供的默认的命令和参数,Docker将这两个字段定义为“Entrypoint”和 "CMD"。 如果在创建工作负载时填写了容器的运行命令和参数,将会覆盖镜像构建时的默认命令 "Entrypoint"、"CMD",规则如下: 表1 容器如何执行命令和参数 镜像 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]
  • 停止前处理 登录CCE控制台,在创建工作负载配置生命周期过程中,选择“停止前处理”。 在“停止前处理”后,设置停止前处理的参数,如表2。 表3 停止前处理-参数说明 参数 说明 命令行方式 在容器中执行指定的命令,配置为需要执行的命令。命令的格式为Command Args[1] Args[2]…(Command为系统命令或者用户自定义可执行程序,如果未指定路径则在默认路径下寻找可执行程序),如果需要执行多条命令,建议采用将命令写入脚本执行的方式。 如需要执行的命令如下: exec: command: - /uninstall.sh - uninstall_agent 请在执行脚本中填写: /uninstall uninstall_agent。这条命令表示容器结束前将执行uninstall.sh。 HTTP请求方式 发起一个HTTP调用请求。配置参数如下: 路径:请求的URL路径,可选项。 端口:请求的端口,必选项。 主机地址:请求的IP地址,可选项,默认是容器所在的节点IP。
  • 启动后处理 登录CCE控制台,在创建工作负载时,展开“生命周期”。 在“启动后处理”后,设置启动后处理的参数,如表2。 表2 启动后处理-参数说明 参数 说明 命令行方式 在容器中执行指定的命令,配置为需要执行的命令。命令的格式为Command Args[1] Args[2]…(Command为系统命令或者用户自定义可执行程序,如果未指定路径则在默认路径下寻找可执行程序),如果需要执行多条命令,建议采用将命令写入脚本执行的方式。不支持后台执行和异步执行的命令。 如需要执行的命令如下: exec: command: - /install.sh - install_agent 请在执行脚本中填写: /install install_agent。这条命令表示容器创建成功后将执行install.sh。 HTTP请求方式 发起一个HTTP调用请求。配置参数如下: 路径:请求的URL路径,可选项。 端口:请求的端口,必选项。 主机地址:请求的IP地址,可选项,默认是容器所在的节点IP。
  • 容器重启策略 Pod通过restartPolicy字段指定重启策略,重启策略类型为:Always、OnFailure和Never,默认为 Always。 restartPolicy仅指通过同一节点上的kubelet重新启动容器。 重启策略 说明 Always 当容器失效时,由kubelet自动重启该容器。 OnFailure 当容器终止运行且退出码不为0时,由kubelet自动重启该容器。 Never 不论容器运行状态如何,kubelet都不会重启该容器。 可以管理Pod的控制器有ReplicaSet Controller,Job,DaemonSet,及kubelet(静态Pod)。 RS和DaemonSet:必须设置为Always,需要保证该容器持续运行。 Job:OnFailure或Never,确保容器执行完后不再重启。 kubelet:在Pod失效的时候重启它,不论RestartPolicy设置为什么值,并且不会对Pod进行健康检查。
  • 部署应用 如上所述的nginx:exporter提供的监控数据,其数据格式并不满足Prometheus的要求,需要将其转换成Prometheus需要的格式,可以使用nginx-prometheus-exporter来转换Nginx的指标,如下所示。 使用nginx:exporter和nginx-prometheus-exporter部署到同一个Pod,如下所示。 kind: DeploymentapiVersion: apps/v1metadata: name: nginx-exporter namespace: defaultspec: replicas: 1 selector: matchLabels: app: nginx-exporter template: metadata: labels: app: nginx-exporter annotations: metrics.alpha.kubernetes.io/custom-endpoints: '[{"api":"prometheus","path":"/metrics","port":"9113","names":""}]' spec: containers: - name: container-0 image: 'swr.cn-south-1.myhuaweicloud.com/dev-container/nginx:exporter' resources: limits: cpu: 250m memory: 512Mi requests: cpu: 250m memory: 512Mi - name: container-1 image: 'nginx/nginx-prometheus-exporter:0.9.0' command: - nginx-prometheus-exporter args: - '-nginx.scrape-uri=http://127.0.0.1:8080/stub_status' imagePullSecrets: - name: default-secret nginx/nginx-prometheus-exporter:0.9.0需要从公网拉取,需要集群节点上有一个公网IP。 nginx-prometheus-exporter需要一个启动命令,nginx-prometheus-exporter -nginx.scrape-uri=http://127.0.0.1:8080/stub_status,用于获取nginx的监控数据。 另外Pod需要添加一个annotations,metrics.alpha.kubernetes.io/custom-endpoints: '[{"api":"prometheus","path":"/metrics","port":"9113","names":""}]',这个annotations与控制台上的配置效果完全一致,其参数的详细解释如表1所示。 表1 参数说明 参数 说明 是否必须设置 上报路径 exporter提供的供CCE获取自定义指标数据的URL。 由字母、数字、斜杠(/)和下划线(_)组成,且必须以“/”开头。例如,/metrics。 是 上报端口 exporter提供的供CCE获取自定义指标数据的端口。 取值范围:1~65535。例如,8080。 是 监控维度 exporter提供的自定义指标名称。 自定义指标名称为由字母、数字和下划线(_)组成的字符串,长度为5~100个字符。输入格式为:["自定义指标名称1","自定义指标名称2"],多个自定义指标名称请以英文逗号(,)分隔。例如,["cpu_usage","mem_usage"]。 如果不设置,则CCE会获取所有的自定义指标数据。 如果设置,例如,设置为["cpu_usage","mem_usage"],则CCE会对自定义指标进行过滤,只获取cpu_usage、mem_usage指标数据。 否
  • Prometheus监控数据采集说明 Prometheus通过周期性的调用应用程序的监控指标接口(默认为“/metrics”)获取监控数据,应用程序需要提供监控指标接口Prometheus调用,且监控数据需要满足Prometheus的规范,如下所示。 # TYPE nginx_connections_active gaugenginx_connections_active 2# TYPE nginx_connections_reading gaugenginx_connections_reading 0 Prometheus提供了各种语言的客户端,客户端具体请参见Prometheus CLIENT LIBRARIES,开发Exporter具体方法请参见WRITING EXPORTERS。Prometheus社区提供丰富的第三方exporter可以直接使用,具体请参见EXPORTERS AND INTEGRATIONS。
  • 节点操作系统与容器引擎对应关系 表6 CCE集群节点操作系统与容器引擎对应关系 操作系统 内核版本 容器引擎 容器存储Rootfs 容器运行时 CentOS 7.x 3.x Docker 1.19及以下版本集群使用Device Mapper 1.21及以上版本集群使用Overlayfs runC EulerOS 2.5 3.x Docker Device Mapper runC EulerOS 2.3 3.x Docker Device Mapper runC EulerOS 2.9 4.x Docker Overlayfs runC Ubuntu 18.04 4.x Docker Overlayfs runC 表7 CCE Turbo集群节点操作系统与容器引擎对应关系 节点类型 操作系统 内核版本 容器引擎 容器存储Rootfs 容器运行时 虚拟机 CentOS 7.6 3.x Docker OverlayFS runC Ubuntu 18.04 4.x EulerOS 2.9 4.x BMS共池裸机 EulerOS 2.9 4.x Containerd Device Mapper Kata 表8 鲲鹏集群节点操作系统与容器引擎对应关系 操作系统 内核版本 容器引擎 容器存储Rootfs 容器运行时 EulerOS 2.8 4.x Docker OverlayFS runC
  • 安全容器与普通容器 安全容器的概念主要与普通容器进行比较的。 和普通容器相比,它最主要的区别是每个容器(准确地说是pod)都运行在一个单独的微型虚拟机中,拥有独立的操作系统内核,以及虚拟化层的安全隔离。因为云容器引擎CCE的容器安全隔离比独立拥有私有Kubernetes集群有更严格的要求。通过安全容器,不同容器之间的内核、计算资源、网络都是隔离开的,保护了Pod的资源和数据不被其他Pod抢占和窃取。 CCE Turbo集群下单节点支持普通容器和安全容器,您可以根据业务需求选择使用,两者的区别如下: 分类 安全容器 Docker普通容器 Containerd普通容器 容器所在节点类型 裸金属服务器 虚拟机 虚拟机 容器引擎 Containerd Docker 在控制台选择普通容器时默认为Docker Containerd 容器运行时 Kata runC runC 容器内核 独占内核 与宿主机共享内核 与宿主机共享内核 容器隔离方式 轻量虚拟机 Cgroups和Namespace Cgroups和Namespace 容器引擎存储驱动 Device Mapper OverlayFS2 OverlayFS Pod Overhead 内存:100MiB CPU:0.1Core Pod Overhead为安全容器本身资源占用。比如Pod申请的limits.cpu = 0.5Core和limits.memory = 256MiB,那么该Pod最终会申请0.6Core的CPU和356MiB的内存。 无 无 最小规格 内存:256MiB CPU:0.25Core 无 无 容器引擎命令行 crictl docker crictl Pod的计算资源 CPU和内存的request和limit必须一致 CPU和内存的request和limit可以不一致 CPU和内存的request和limit可以不一致 hostnetwork 不支持 支持 支持
  • 节点生命周期 生命周期是指节点从创建到删除(或释放)历经的各种状态。 表1 节点生命周期状态说明 状态 状态属性 说明 可用 稳定状态 节点正常运行状态,并连接上集群。 在这个状态的节点可以运行您的业务。 不可用 稳定状态 节点运行异常状态。 在这个状态下的实例,不能对外提供业务,需要重置节点。 创建中 中间状态 创建节点实例后,在节点状态进入运行中之前的状态。 安装中 中间状态 节点处于安装Kubernetes软件的过程中。 删除中 中间状态 节点处于正在被删除的状态。 如果长时间处于该状态,则说明出现异常。 关机 稳定状态 节点被正常停止。 在这个状态下的实例,不能对外提供业务,您可以在弹性云服务器列表页对其进行开机操作。 错误 稳定状态 节点处于异常状态。 在这个状态下的实例,不能对外提供业务,需要重置节点。
  • 注意事项 为了保证节点的稳定性,CCE集群节点上会根据节点的规格预留一部分资源给Kubernetes的相关组件(kubelet、kube-proxy以及docker等)和Kubernetes系统资源,使该节点可作为您的集群的一部分。 因此,您的节点资源总量与节点在Kubernetes中的可分配资源之间会存在差异。节点的规格越大,在节点上部署的容器可能会越多,所以Kubernetes自身需预留更多的资源。 节点的网络(如虚机网络、容器网络等)均被CCE接管,不允许用户自行添加网卡或改变路由,若自行修改,CCE不保证服务可用。 节点购买后如需对其进行升级或降低规格等操作,请将节点关机后参照变更规格通用操作进行变更,也可以重新购买节点后,将老节点删除。
  • 简介 节点是容器集群组成的基本元素。节点取决于业务,既可以是虚拟机,也可以是物理机。每个节点都包含运行Pod所需要的基本组件,包括Kubelet、Kube-proxy 、Container Runtime等。 CCE创建的Kubernetes集群包含master节点和node节点,本章讲述的节点特指node节点,node节点是集群的计算节点,即运行容器化应用的节点。 在云容器引擎CCE中,主要采用高性能的弹性云服务器ECS或裸金属服务器BMS作为节点来构建高可用的Kubernetes集群。
  • 支持的节点规格 CCE集群和CCE Turbo集群支持的节点规格(flavor)不同,具体如下: CCE集群 CCE集群只支持2U4G以上的规格,建议您通过控制台查询节点规格,具体节点规格名称请参见规格清单。 在填写flavor时,需要填写具体规格名称,如c6.large.2。 CCE支持的规格列表如下(部分机型因区域而异,请以实际控制台显示为准): 弹性云服务器-虚拟机: 表2 x86节点 节点类型 规格类型 通用计算增强型 c7、c7n、as7、ac7、air7、c6s、c6nl、c6、c6x、ac6、c3、c3ne、ct3、cx3ne 通用型 s7、s7n、s6、s6nl、s3、si3、sn3、s2、si2 通用入门型 t6 内存优化型 m7、am7、m7n、m6s、m6nl、m6、m3、m2 磁盘增强型 d7、d6、d6nl、d2 超高I/O型 i7、ir7、ir7n、i7n、ir3、i3、i3nl 高性能计算型 h3、hc2 GPU加速型 pi3、pi2、pi1、p3s、p2s、p1、g6、g5、g5r、g5rnl、g6l、p3snl、pi2nl、p2v AI加速型 kai1s、kai1、ai1s、ai1、ai2 表3 鲲鹏(ARM)节点 节点类型 规格类型 鲲鹏通用计算增强型 kc1 鲲鹏内存优化型 km1 弹性云服务器-物理机:支持c6、c7类型的弹性云服务器物理机。 裸金属服务器: x86节点:支持physical.d2、physical.s4、physical.c6ne、physical.d6ne类型的裸金属服务器。 ARM节点:支持physical.a1.2xlarge类型的裸金属服务器。 CCE Turbo集群 弹性云服务器-虚拟机: 表4 x86节点 节点类型 规格类型 通用计算增强型 c7、ac7、c7n、c3n、s7n 容器增强型 c6ne、c6sne、m6ne、m6sne 内存优化型 m7、am7、m3n、m7n 磁盘增强型 d7 超高I/O型 i7、ir7、ir7n、i7n GPU加速型 pi3、g6ne、pi2ne、p2sne、p3v AI加速型 ai2 表5 鲲鹏(ARM)节点 节点类型 规格类型 鲲鹏内存优化型 km1n、kc1n 弹性云服务器-物理机:支持c6、c7类型的弹性云服务器物理机。
  • 安装插件 登录CCE控制台,单击左侧导航栏的“插件管理”,在“插件市场”页签下,单击“metrics-server”下的“安装插件”按钮。 在安装插件页面,选择安装的集群和插件版本,单击“下一步:规格配置”。 该插件可配置“单实例”或“高可用”规格,选择后单击“安装”。 待插件安装完成后,单击“返回”,在“插件实例”页签下,选择对应的集群,可查看到运行中的实例,这表明该插件已在当前集群的各节点中安装。
  • 升级插件 登录CCE控制台,在左侧导航栏中选择“插件管理”,在“插件实例”页签下,选择对应的集群,单击“metrics-server”下的“ 升级”。 如果升级按钮处于冻结状态,则说明当前插件版本是最新的版本,不需要进行升级操作。 升级“metrics-server”插件时,会替换原先节点上的旧版本的“metrics-server”插件,安装最新版本的“metrics-server”插件以实现功能的快速升级。 在基本信息页面选择插件版本,单击“下一步”。 参考安装插件中参数说明配置参数后,单击“升级”即可升级“metrics-server”插件。
  • 操作场景 CCE集群支持两种添加节点的方式:购买节点和纳管节点,纳管节点是指将“已有的ECS/BMS加入到CCE集群中”,所纳管节点的计费模式支持“按需计费”和“包年/包月”两种类型。 本节将指导您通过CCE控制台纳管已有ECS虚拟机节点。 纳管时,会将所选弹性云服务器的操作系统重置为CCE提供的标准镜像,以确保节点的稳定性,请选择操作系统及重置后的登录方式。 所选弹性云服务器挂载的系统盘、数据盘都会在纳管时被格式化,请确保信息已备份。 纳管过程中,请勿在弹性云服务器控制台对所选虚拟机做任何操作。
  • 约束与限制 集群版本需V1.13及以上。 暂不支持纳管鲲鹏、AI加速型、HECS(云耀云服务器)等异构节点。 集群开启IPv6后,只支持纳管所在的子网开启了IPv6功能的节点;集群未开启IPv6,只支持纳管所在的子网未开启IPv6功能的节点。 原虚拟机节点创建时若已设置密码或密钥,需等待虚拟机节点可用10分钟后方可纳管。 CCE Turbo集群要求节点支持Sub-ENI或可以绑定至少16张ENI网卡,具体规格请参见创建节点时控制台上可以选择的节点。
  • 插件简介 Volcano是一个基于Kubernetes的批处理平台,提供了机器学习、深度学习、生物信息学、基因组学及其他大数据应用所需要而Kubernetes当前缺失的一系列特性。 Volcano提供了高性能任务调度引擎、高性能异构芯片管理、高性能任务运行管理等通用计算能力,通过接入AI、大数据、基因、渲染等诸多行业计算框架服务终端用户。(目前Volcano项目已经在Github开源) Volcano针对计算型应用提供了作业调度、作业管理、队列管理等多项功能,主要特性包括: 丰富的计算框架支持:通过CRD提供了批量计算任务的通用API,通过提供丰富的插件及作业生命周期高级管理,支持TensorFlow,MPI,Spark等计算框架容器化运行在Kubernetes上。 高级调度:面向批量计算、高性能计算场景提供丰富的高级调度能力,包括成组调度,优先级抢占、装箱、资源预留、任务拓扑关系等。 队列管理:支持分队列调度,提供队列优先级、多级队列等复杂任务调度能力。 项目开源地址:https://github.com/volcano-sh/volcano
共100000条