华为云用户手册

  • 前提条件 已创建Kubernetes集群,且集群版本满足以下要求: v1.23集群:v1.23.13-r0及以上版本 v1.25集群:v1.25.8-r0及以上版本 v1.27集群:v1.27.5-r0及以上版本 v1.28集群:v1.28.3-r0及以上版本 其他更高版本的集群 您已经在弹性负载均衡服务中创建好一个或多个SNI证书,且证书中指定了域名。详情请参见创建证书。 如果您需要通过命令行创建,需要使用kubectl连接到集群,详情请参见通过kubectl连接集群。
  • StatefulSet动态创建subpath模式的数据卷 新建一个StatefulSet的YAML文件,例如statefulset-test.yaml。 配置示例: apiVersion: apps/v1 kind: StatefulSet metadata: name: test-turbo-subpath namespace: default generation: 1 labels: appgroup: '' spec: replicas: 2 selector: matchLabels: app: test-turbo-subpath template: metadata: labels: app: test-turbo-subpath annotations: metrics.alpha.kubernetes.io/custom-endpoints: '[{"api":"","path":"","port":"","names":""}]' pod.alpha.kubernetes.io/initialized: 'true' spec: containers: - name: container-0 image: 'nginx:latest' resources: {} volumeMounts: - name: sfs-turbo-160024548582479676 mountPath: /tmp terminationMessagePath: /dev/termination-log terminationMessagePolicy: File imagePullPolicy: IfNotPresent restartPolicy: Always terminationGracePeriodSeconds: 30 dnsPolicy: ClusterFirst securityContext: {} imagePullSecrets: - name: default-secret affinity: {} schedulerName: default-scheduler volumeClaimTemplates: - metadata: name: sfs-turbo-160024548582479676 namespace: default annotations: {} spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi storageClassName: sfsturbo-subpath-sc serviceName: wwww podManagementPolicy: OrderedReady updateStrategy: type: RollingUpdate revisionHistoryLimit: 10 其中: name:创建的工作负载名称。 image:工作负载的镜像。 mountPath:容器内挂载路径,示例中挂载到“/tmp”路径。 “spec.template.spec.containers.volumeMounts.name ”和 “spec.volumeClaimTemplates.metadata.name”有映射关系,必须保持一致。 storageClassName: 填写自建的SC名称。 创建StatefulSet负载。 kubectl create -f statefulset-test.yaml
  • 创建Deployment挂载已有数据卷 新建一个Deployment的YAML文件,例如deployment-test.yaml。 配置示例: apiVersion: apps/v1 kind: Deployment metadata: name: test-turbo-subpath-example namespace: default generation: 1 labels: appgroup: '' spec: replicas: 1 selector: matchLabels: app: test-turbo-subpath-example template: metadata: labels: app: test-turbo-subpath-example spec: containers: - image: nginx:latest name: container-0 volumeMounts: - mountPath: /tmp name: pvc-sfs-turbo-example restartPolicy: Always imagePullSecrets: - name: default-secret volumes: - name: pvc-sfs-turbo-example persistentVolumeClaim: claimName: sfs-turbo-test 其中: name:创建的工作负载名称。 image:工作负载的镜像。 mountPath:容器内挂载路径,示例中挂载到“/tmp”路径。 claimName:已有的PVC名称。 创建Deployment负载。 kubectl create -f deployment-test.yaml
  • 约束与限制 仅支持1.15+集群。 集群必须使用everest插件,插件版本要求1.1.13+。 不支持安全容器。 使用everest 1.2.69之前或2.1.11之前的版本时,使用子目录功能时不能同时并发创建超过10个PVC。推荐使用everest 1.2.69及以上或2.1.11及以上的版本。 subpath类型的卷实际为SFS Turbo的子目录,对该类型的PVC进行扩容仅会调整PVC声明的资源范围,并不会调整SFS Turbo资源的总容量。若SFS Turbo资源总容量不足,subpath类型卷的实际可使用的容量大小也会受限,您需要前往SFS Turbo界面进行扩容。 同理,删除subpath类型的卷也不会实际删除后端的SFS Turbo资源。
  • 创建subpath类型SFS Turbo存储卷 创建SFS Turbo资源,选择网络时,请选择与集群相同的VPC与子网。 新建一个StorageClass的YAML文件,例如sfsturbo-subpath-sc.yaml。 配置示例: apiVersion: storage.k8s.io/v1 allowVolumeExpansion: true kind: StorageClass metadata: name: sfsturbo-subpath-sc mountOptions: - lock parameters: csi.storage.k8s.io/csi-driver-name: sfsturbo.csi.everest.io csi.storage.k8s.io/fstype: nfs everest.io/archive-on-delete: "true" everest.io/share-access-to: 7ca2dba2-1234-1234-1234-626371a8fb3a everest.io/share-expand-type: bandwidth everest.io/share-export-location: 192.168.1.1:/sfsturbo/ everest.io/share-source: sfs-turbo everest.io/share-volume-type: STANDARD everest.io/volume-as: subpath everest.io/volume-id: 0d773f2e-1234-1234-1234-de6a35074696 provisioner: everest-csi-provisioner reclaimPolicy: Delete volumeBindingMode: Immediate 其中: name:storageclass的名称。 mountOptions:选填字段;mount挂载参数。 everest 1.2.8以下,1.1.13以上版本仅开放对nolock参数配置,mount操作默认使用nolock参数,无需配置。nolock=false时,使用lock参数。 everest 1.2.8及以上版本支持更多参数,默认使用如下所示配置,具体请参见设置挂载参数。此处不能配置为nolock=true,会导致挂载失败。 mountOptions: - vers=3 - timeo=600 - nolock - hard everest.io/volume-as:该参数需设置为“subpath”来使用subpath模式。 everest.io/share-access-to:选填字段。subpath模式下,填写SFS Turbo资源的所在VPC的ID。 everest.io/share-expand-type:选填字段。若SFS Turbo资源存储类型为增强版(标准型增强版、性能型增强版),设置为bandwidth。 everest.io/share-export-location:挂载目录配置。由SFS Turbo共享路径和子目录组成,共享路径可至SFS Turbo服务页面查询,子路径由用户自定义,后续指定该StorageClass创建的PVC均位于该子目录下。 everest.io/share-volume-type:选填字段。填写SFS Turbo的类型。标准型为STANDARD,性能型为PERFORMANCE。对于增强型需配合“everest.io/share-expand-type”字段使用,everest.io/share-expand-type设置为“bandwidth”。 everest.io/zone:选填字段。指定SFS Turbo资源所在的可用区。 everest.io/volume-id:SFS Turbo资源的卷ID,可至SFS Turbo界面查询。 everest.io/archive-on-delete:若该参数设置为“true”,在回收策略为“Delete”时,删除PVC会将PV的原文档进行归档,归档目录的命名规则“archived-$pv名称.时间戳”。该参数设置为“false”时,会将PV对应的SFS Turbo子目录删除。默认设置为“true”,即删除PVC时进行归档。 执行kubectl create -f sfsturbo-subpath-sc.yaml。 新建一个PVC的YAML文件,sfs-turbo-test.yaml。 配置示例: apiVersion: v1 kind: PersistentVolumeClaim metadata: name: sfs-turbo-test namespace: default spec: accessModes: - ReadWriteMany resources: requests: storage: 50Gi storageClassName: sfsturbo-subpath-sc volumeMode: Filesystem 其中: name: PVC的名称。 storageClassName:SC的名称。 storage:subpath模式下,调整该参数的大小不会对SFS Turbo容量进行调整。实际上,subpath类型的卷是SFS Turbo中的一个文件路径,因此在PVC中对subpath类型的卷扩容时,不会同时扩容SFS Turbo资源。 subpath子目录的容量受限于SFS Turbo资源的总容量,若SFS Turbo资源总容量不足,请您及时到SFS Turbo界面调整。 执行kubectl create -f sfs-turbo-test.yaml。
  • 通过控制台动态创建SFS Turbo子目录 登录CCE控制台,单击集群名称进入集群。 在左侧导航栏选择“存储”,在右侧选择“存储卷声明”页签。单击右上角“创建存储卷声明”,在弹出的窗口中填写存储卷声明参数。 参数 描述 存储卷声明类型 本文中选择“极速文件存储”。 PVC名称 输入PVC的名称,同一命名空间下的PVC名称需唯一。 创建方式 选择“动态创建子目录”。 存储类 选择极速文件存储对应的存储类为csi-sfsturbo。 访问模式 极速文件存储类型的存储卷仅支持ReadWriteMany,表示存储卷可以被多个节点以读写方式挂载,详情请参见存储卷访问模式。 极速文件存储 单击“选择极速文件存储”,您可以在新页面中勾选满足要求的极速文件存储,并单击“确定”。 子目录 请填写子目录绝对路径,例如/a/b。 子目录回收策略 删除PVC时是否保留子目录,该参数需与PV回收策略配合使用。 保留:当PVC所绑定的PV回收策略为"Delete"时,删除PVC,PV会被删除,但PV关联的子目录会被保留。 删除:当PVC所绑定的PV回收策略为"Delete"时,删除PVC,PV及其关联的子目录均会被删除。 单击“创建”,将同时为您创建存储卷声明和存储卷。 您可以在左侧导航栏中选择“存储”,在“存储卷声明”和“存储卷”页签下查看已经创建的存储卷声明和存储卷。
  • 版本记录 表8 CCE容器存储插件(Everest)版本记录 插件版本 支持的集群版本 更新特性 2.4.8 v1.21 v1.23 v1.25 v1.27 v1.28 v1.29 适配CCE v1.29集群 支持GPSSD2和ESSD2类型磁盘 支持DSS专属分布式存储 2.3.23 v1.21 v1.23 v1.25 v1.27 v1.28 支持在SFS Turbo文件系统中创建子目录 2.3.21 v1.21 v1.23 v1.25 v1.27 v1.28 修复部分问题 2.3.14 v1.21 v1.23 v1.25 v1.27 v1.28 适配CCE v1.28版本 2.1.55 v1.19 v1.21 v1.23 v1.25 v1.27 支持增程类型EVS云盘 2.1.54 v1.19 v1.21 v1.23 v1.25 v1.27 修复部分问题 2.1.53 v1.19 v1.21 v1.23 v1.25 v1.27 修复部分问题 2.1.51 v1.19 v1.21 v1.23 v1.25 v1.27 支持HCE OS 2.0系统 2.1.50 v1.19 v1.21 v1.23 v1.25 v1.27 - 2.1.46 v1.19 v1.21 v1.23 v1.25 v1.27 适配CCE v1.27版本 支持创建云硬盘类型存储卷时添加磁盘标签 2.1.38 v1.19 v1.21 v1.23 v1.25 支持插件规格与集群规格联动 2.1.30 v1.19 v1.21 v1.23 v1.25 支持插件实例AZ反亲和配置 obsfs包适配Ubuntu 22.04 2.1.13 v1.19 v1.21 v1.23 v1.25 SFS Turbo存储卷subpath PVC批创性能优化 2.1.9 v1.19 v1.21 v1.23 v1.25 支持controller优雅退出 适配CCE v1.25版本 2.0.9 v1.19 v1.21 v1.23 对 everest 部分代码及架构进行重构,改善代码架构,提高插件的可扩展性和稳定性 支持优雅退出 支持OBS进程监控 1.3.28 v1.19 v1.21 v1.23 支持优雅退出 支持OBS进程监控 1.3.22 v1.19 v1.21 v1.23 修复重复挂盘偶现挂载后读写失败的问题 1.3.20 v1.19 v1.21 v1.23 修复重复挂盘偶现挂载后读写失败的问题 1.3.17 v1.19 v1.21 v1.23 调整everest-csi-driver滚动更新的最大不可用数:从10更新到10% 自定义规格支持Pod反亲和 统计节点上可由csi插件管理的scsi卷个数的上限 支持Driver自定义资源规格部署 1.3.8 v1.23 适配CCE v1.23集群 1.3.6 v1.23 适配CCE v1.23集群 1.2.78 v1.15 v1.17 v1.19 v1.21 支持插件实例AZ反亲和配置 1.2.70 v1.15 v1.17 v1.19 v1.21 SFS Turbo存储卷subpath PVC批创性能优化 1.2.67 v1.15 v1.17 v1.19 v1.21 支持controller优雅退出 支持OBS进程监控 1.2.61 v1.15 v1.17 v1.19 v1.21 支持优雅退出 支持OBS进程监控 1.2.55 v1.15 v1.17 v1.19 v1.21 修复重复挂盘偶现挂载后读写失败的问题 1.2.53 v1.15 v1.17 v1.19 v1.21 修复重复挂盘偶现挂载后读写失败的问题 1.2.51 v1.15 v1.17 v1.19 v1.21 调整everest-csi-driver滚动更新的最大不可用数:从10更新到10% 自定义规格支持Pod反亲和 统计节点上可由csi插件管理的scsi卷个数的上限 1.2.44 v1.15 v1.17 v1.19 v1.21 EVS、OBS存储卷支持选择企业项目 OBS对象桶挂载默认不再使用enable_noobj_cache参数 1.2.42 v1.15 v1.17 v1.19 v1.21 EVS、OBS存储卷支持选择企业项目 OBS对象桶挂载默认不再使用enable_noobj_cache参数 1.2.30 v1.15 v1.17 v1.19 v1.21 CCE支持EmptyDir 1.2.28 v1.15 v1.17 v1.19 v1.21 适配CCE v1.21集群 1.2.27 v1.15 v1.17 v1.19 v1.21 支持极速型SSD(ESSD)、通用型SSD(GPSSD)类型云硬盘 1.2.13 v1.15 v1.17 v1.19 支持CCE turbo集群裸金属节点挂载云硬盘;支持EulerOS 2.10系统。 1.2.9 v1.15 v1.17 v1.19 增强PV资源生命周期维护的可靠性 支持1.19.10版本集群使用Attach/Detach Controller挂卸卷能力 提高SFS挂载稳定性 新建集群EVS默认创建类型调整为SAS 1.2.5 v1.15 v1.17 v1.19 提升挂载相关能力可靠性 优化了使用OBS存储时的认证功能,需要用户上传密钥 提高everest插件对flexvolume卷的兼容能力 提高插件运行稳定性 1.1.12 v1.15 v1.17 优化和增强everest-csi-controller组件可靠性 1.1.11 v1.15 v1.17 配置安全加固 支持挂载三方OBS存储 切换更优性能的EVS查询接口 默认快照以clone模式创建磁盘 优化和增强Attach和Detach磁盘状态检测和日志输出 增加认证过期判断可靠性 1.1.8 v1.15 v1.17 支持CCE v1.17,v1.13升级到v1.15场景支持接管Flexvolume 1.1.7 v1.15 v1.17 支持CCE v1.17,v1.13升级到v1.15场景支持接管Flexvolume
  • Prometheus指标采集 everest-csi-controller通过端口3225暴露Prometheus metrics指标。您可以自建Prometheus采集器识别并通过http://{{everest-csi-controllerPodIP}}:3225/metrics路径获取everest-csi-controller相关指标。 Prometheus指标暴露仅支持Everest插件2.4.4及以上版本。 表6 关键指标说明 指标名称 指标类型 描述 Labels 举例 everest_action_result_total counter everest不同功能的调用情况 action:表示不同功能,详情请参见表7 result:表示调用成功或失败 everest_action_result_total{action="create_snapshot:disk.csi.everest.io",result="success"} 2 everest_function_duration_seconds_bucket histogram everest不同功能在不同执行时间下的次数 function:表示不同功能,详情请参见表7 everest_function_duration_seconds_bucket{function="create_snapshot:disk.csi.everest.io",le="10"} 2 everest_function_duration_seconds_sum histogram everest不同功能的调用时间总和 function:表示不同功能,详情请参见表7 everest_function_duration_seconds_sum{function="create:disk.csi.everest.io"} 24.381399053 everest_function_duration_seconds_count histogram everest不同功能的调用次数 function:表示不同功能,详情请参见表7 everest_function_duration_seconds_count{function="attach:disk.csi.everest.io"} 4 action及function表示不同 CS I驱动及其功能,表示为:{功能}:{CSI驱动}。例如create:disk.csi.everest.io,表示功能为创建卷、卷类型为云硬盘。 表7 功能说明 功能名称 功能描述 create 创建卷 delete 删除卷 attach 卷挂载 detach 卷卸载 expand 卷扩容 create_snapshot 创建卷快照 delete_snapshot 删除卷快照
  • 组件说明 表5 everest组件 容器组件 说明 资源类型 everest-csi-controller 此容器负责存储卷的创建、删除、快照、扩容、attach/detach等功能。若集群版本大于等于1.19,且插件版本为1.2.x,everest-csi-controller组件的Pod还会默认带有一个everest-localvolume-manager容器,此容器负责管理节点上的lvm存储池及localpv的创建。 Deployment everest-csi-driver 此容器负责PV的挂载、卸载、文件系统resize等功能。若插件版本为1.2.x,且集群所在区域支持node-attacher,everest-csi-driver组件的Pod还会带有一个everest-node-attacher的容器,此容器负责分布式attach EVS,该配置项在部分Region开放。 DaemonSet
  • 安装插件 本插件为系统默认安装,若因特殊情况卸载后,可参照如下步骤重新安装。 登录CCE控制台,单击集群名称进入集群,单击左侧导航栏的“插件中心”,在右侧找到CCE容器存储(Everest)插件,单击“安装”。 在安装插件页面,设置“规格配置”。 表1 everest插件规格配置 参数 参数说明 实例数 插件实例的副本数量。 实例数为1时插件不具备高可用能力,当插件实例所在节点异常时可能导致插件功能无法正常使用,请谨慎选择。 容器 CCE容器存储插件(Everest)包含everest-csi-controller和everest-csi-driver两个组件,详情请参见组件说明。 插件组件规格可根据您的需求自定义调整。其中,插件组件的CPU和内存申请值可根据集群节点规模和PVC数量不同进行调整,配置建议请参见表2。 非典型场景下,限制值一般估算公式如下: everest-csi-controller: CPU限制值:200及以下节点规模设置为250m;1000节点规模设置为350m;2000节点规模设置为500m。 内存限制值 = (200Mi + 节点数 * 1Mi + PVC数 * 0.2Mi)* 1.2 everest-csi-driver: CPU限制值:200及以下节点规模设置为300m;1000节点规模设置为500m;2000节点规模设置为800m。 内存限制值 = 200及以下节点规模设置为300Mi;1000节点规模设置为600Mi;2000节点规模设置为900Mi。 表2 典型场景组件限制值建议 配置场景 everest-csi-controller组件 everest-csi-driver组件 节点数量 PV/PVC数量 插件实例数 CPU(限制值同申请值) 内存(限制值同申请值) CPU(限制值同申请值) 内存(限制值同申请值) 50 1000 2 250m 600Mi 300m 300Mi 200 1000 2 250m 1Gi 300m 300Mi 1000 1000 2 350m 2Gi 500m 600Mi 1000 5000 2 450m 3Gi 500m 600Mi 2000 5000 2 550m 4Gi 800m 900Mi 2000 10000 2 650m 5Gi 800m 900Mi 设置插件支持的“参数配置”。 表3 everest插件参数配置 参数 参数说明 csi_attacher_worker_threads CCE容器存储插件(Everest)中同时处理挂EVS卷的worker数,默认值为“60”。 csi_attacher_detach_worker_threads CCE容器存储插件(Everest)中同时处理卸载EVS卷的worker数,默认值均为“60”。 volume_attaching_flow_ctrl CCE容器存储插件(Everest)在1分钟内可以挂载EVS卷的最大数量,此参数的默认值“0”表示everest插件不做挂卷限制,此时挂卷性能由底层存储资源决定。 cluster_id 集群ID。 default_vpc_id 集群所在VPC的ID。 disable_auto_mount_secret 挂载对象桶/并行文件系统时,是否允许使用默认的AKSK,默认为false。 enable_node_attacher 是否开启agent侧attacher,开启后由attacher负责处理VolumeAttachment。 flow_control 默认为空。用户无需填写。 number_of_reserved_disks 插件版本为2.3.11及以上时支持该参数,用于设置节点上预留的挂盘数,预留出部分盘位供用户自定义挂载云硬盘使用。 假设节点可挂载的云硬盘上限为20,并设置该参数值为6,则在调度挂载云硬盘的工作负载时,实际上节点可挂载的云硬盘为20-6=14。预留的6个挂盘数中,除去节点上已挂载的1块系统盘和1块数据盘后,还可以自定义挂载4块云硬盘,可以作为额外的数据盘或者作为裸盘用于创建本地存储池。 over_subscription 本地存储池(local_storage)的超分比。默认为80,若本地存储池为100G,可以超分为180G使用。 project_id 集群所属项目ID。 CCE容器存储插件(Everest)1.2.26以上版本针对大批量挂EVS卷的性能做了优化,用户可配置如下3个参数: csi_attacher_worker_threads csi_attacher_detach_worker_threads volume_attaching_flow_ctrl 上述三个参数由于存在关联性且与集群所在局点的底层存储资源限制有关,当您对大批量挂卷的性能有要求(大于500EVS卷/分钟)时,请联系客服,在指导下进行配置,否则可能会因为参数配置不合理导致出现everest插件运行不正常的情况。 设置插件实例的“调度策略”。 调度策略对于DaemonSet类型的插件实例不会生效。 设置多可用区部署或节点亲和策略时,需保证集群中存在满足调度策略的节点且拥有足够的资源,否则插件实例将无法运行。 表4 插件调度配置 参数 参数说明 多可用区部署 优先模式:优先将插件的Deployment实例调度到不同可用区的节点上,如集群下节点不满足多可用区,插件实例将调度到单可用区。 均分模式:插件Deployment实例均匀调度到当前集群下各可用区,增加新的可用区后建议扩容插件实例以实现跨可用区高可用部署;均分模式限制不同可用区间插件实例数相差不超过1,单个可用区资源不足会导致后续其他实例无法调度。 强制模式:插件Deployment实例强制调度到不同可用区的节点上,如集群下节点不满足多可用区,插件实例将无法全部运行。 节点亲和 不配置:插件实例不指定节点亲和调度。 指定节点调度:指定插件实例部署的节点。若不指定,将根据集群默认调度策略进行随机调度。 指定节点池调度:指定插件实例部署的节点池。若不指定,将根据集群默认调度策略进行随机调度。 自定义亲和策略:填写期望插件部署的节点标签实现更灵活的调度策略,若不填写将根据集群默认调度策略进行随机调度。 同时设置多条自定义亲和策略时,需要保证集群中存在同时满足所有亲和策略的节点,否则插件实例将无法运行。 容忍策略 容忍策略与节点的污点能力配合使用,允许(不强制)插件的 Deployment 实例调度到带有与之匹配的污点的节点上,也可用于控制插件的 Deployment 实例所在的节点被标记污点后插件的 Deployment 实例的驱逐策略。 插件会对实例添加针对node.kubernetes.io/not-ready和node.kubernetes.io/unreachable污点的默认容忍策略,容忍时间窗为60s。 详情请参见容忍策略。 单击“安装”。
  • 约束与限制 集群版本由v1.13升级到v1.15后,v1.13版本集群中的Flexvolume容器存储插件(storage-driver)能力将由v1.15的CSI插件(everest,插件版本v1.1.6及以上)接管,接管后原有功能保持不变。 插件版本为1.2.0的CCE容器存储插件(Everest)优化了使用OBS存储时的密钥认证功能,低于该版本的插件在升级完成后,需要重启集群中使用OBS存储的全部工作负载,否则工作负载使用存储的能力将受影响。 v1.15及以上版本的集群默认安装本插件,v1.13及以下版本集群创建时默认安装storage-driver插件。 Huawei Cloud EulerOS 1.1系统的节点支持2.x.x版本(2.1.9及以上)和1.2.x版本(1.2.70及以上)的CCE容器存储插件(Everest),不支持1.3.x版本的插件。
  • 注意事项 重置节点功能不会重置控制节点,仅能对工作节点进行重置操作,如果重置后节点仍然不可用,请删除该节点重新创建。 重置节点将对节点操作系统进行重置安装,推荐您在重置节点之前为节点排水,将容器优雅驱逐至其他可用节点,同时建议在业务低峰期操作。 节点重置后系统盘和数据盘将会被清空,如有重要数据请事先备份。 工作节点如自行挂载了数据盘,重置完后会清除挂载信息,重置完成后请重新执行挂载行为,数据不会丢失。 节点上的工作负载实例的IP会发生变化,但是不影响容器网络通信。 云硬盘必须有剩余配额。 操作过程中,后台会把当前节点设置为不可调度状态。 节点重置会清除用户单独添加的 K8S 标签和污点(通过节点池编辑功能添加的标签、污点不会丢失),可能导致与节点有绑定关系的资源(本地存储,指定调度节点的负载等)无法提供服务。 重置节点会导致与节点关联的本地持久卷类型的PVC/PV数据丢失,无法恢复,且PVC/PV无法再正常使用。重置节点时使用了本地持久存储卷的Pod会从重置的节点上驱逐,并重新创建Pod,Pod会一直处于pending状态,因为Pod使用的PVC带有节点标签,由于冲突无法调度成功。节点重置完成后,Pod可能调度到重置好的节点上,此时Pod会一直处于creating状态,因为PVC对应的底层逻辑卷已经不存在了。
  • 配置管理 为方便对CCE集群中的Kubernetes配置参数进行管理,CCE提供了配置管理功能,通过该功能您可以对核心组件进行深度配置,更多信息请参见kubelet。 仅支持在v1.15及以上版本的集群中对节点池进行配置,V1.15以下版本不显示该功能。 登录CCE控制台。 单击集群名称进入集群,在左侧选择“节点管理”,在右侧选择“节点池”页签。 单击节点池名称后的“配置管理”。 在侧边栏滑出的“配置管理”窗口中,根据业务需求修改Kubernetes的参数值: 表1 kubelet组件配置 名称 参数 参数说明 取值 修改说明 CPU管理策略配置 cpu-manager-policy CPU管理策略配置,详情请参见CPU调度。 none:关闭工作负载实例独占CPU的功能,优点是CPU共享池的可分配核数较多。 static:开启工作负载实例独占CPU,适用于对CPU缓存和调度延迟敏感的场景。 enhanced-static:在支持CPU独占的基础上,增强支持给Burstable Pods配置CPU优先使用核,适用于波峰、波谷相差大且大部分时间处于波谷状态的工作负载。 默认:none - 请求至kube-apiserver的QPS配置 kube-api-qps 与APIServer通信的每秒查询个数。 默认:100 - 请求至kube-apiserver的Burst配置 kube-api-burst 每秒发送到APIServer的突发请求数量上限。 默认:100 - kubelet管理的Pod上限 max-pods Node能运行的Pod最大数量。 CCE Standard集群:由节点最大实例数设置决定。 CCE Turbo 集群:由节点网卡数量决定。 - 限制Pod中的进程数 pod-pids-limit 每个Pod中可使用的PID个数上限。 默认:-1,表示不限制 - 是否使用本地IP作为该节点的ClusterDNS with-local-dns 开启后,会自动在节点的kubelet配置中添加节点默认网卡IP作为首选 DNS地址 。 默认:关闭(参数值为false) - 事件创建QPS限制 event-qps 每秒可生成的事件数量。 默认:5 - 事件创建的个数的突发峰值上限 event-burst 突发性事件创建的上限值,允许突发性事件创建临时上升到所指定数量。 默认:10 - 允许使用的不安全系统配置 allowed-unsafe-sysctls 允许使用的不安全系统配置。 CCE从1.17.17集群版本开始,kube-apiserver开启了pod安全策略,需要在pod安全策略的allowedUnsafeSysctls中增加相应的配置才能生效(1.17.17以下版本的集群可不配置)。详情请参见Pod安全策略开放非安全系统配置示例。 默认:[] - 节点超卖特性 over-subscription-resource 节点超卖特性。 设置为true表示开启节点超卖特性,节点超卖的特性请参见动态资源超卖。 集群版本为v1.23.9-r0、v1.25.4-r0以下:默认为开启(参数值为true) 集群版本为v1.23.9-r0、v1.25.4-r0、v1.27-r0、v1.28.1-r0及以上:默认为关闭(参数值为false) - 节点混部特性 colocation 节点混部特性。 设置为true表示开启节点混部特性,节点混部的特性请参见动态资源超卖。 集群版本为v1.23.9-r0、v1.25.4-r0以下:默认为开启(参数值为true) 集群版本为v1.23.9-r0、v1.25.4-r0、v1.27-r0、v1.28.1-r0及以上:默认为关闭(参数值为false) - 拓扑管理策略 topology-manager-policy 设置拓扑管理策略。 合法值包括: restricted:kubelet 仅接受在所请求资源上实现最佳 NUMA对齐的Pod。 best-effort:kubelet会优先选择在 CPU 和设备资源上实现NUMA对齐的Pod。 none(默认):不启用拓扑管理策略。 single-numa-node:kubelet仅允许在 CPU和设备资源上对齐到同一NUMA节点的Pod。 默认:none 须知: 请谨慎修改,修改topology-manager-policy和topology-manager-scope会重启kubelet,并且以更改后的策略重新计算容器实例的资源分配,这有可能导致已经运行的容器实例重启甚至无法进行资源分配。 拓扑管理策略的资源对齐粒度 topology-manager-scope 设置拓扑管理策略的资源对齐粒度。合法值包括: container (默认):对齐粒度为容器级 pod:对齐粒度为Pod级 默认:container 容器指定DNS解析配置文件 resolv-conf 容器指定DNS解析配置文件 默认为空值 - 除长期运行的请求之外所有运行时请求的超时时长 runtime-request-timeout 除长期运行的请求(pull、 logs、exec和attach)之外所有运行时请求的超时时长。 默认为2m0s v1.21.10-r0、v1.23.8-r0、v1.25.3-r0及以上版本的集群支持该参数。 是否让kubelet每次仅拉取一个镜像 serialize-image-pulls 串行拉取镜像。 关闭:建议值,以支持并行拉取镜像,提高Pod启动速度。 开启:支持串行拉取镜像。 集群版本为v1.21.12-r0、v1.23.11-r0、v1.25.6-r0、v1.27.3-r0、v1.28.1-r0以下:默认为开启(参数值为true) 集群版本为v1.21.12-r0、v1.23.11-r0、v1.25.6-r0、v1.27.3-r0、v1.28.1-r0及以上:默认为关闭(参数值为false) v1.21.10-r0、v1.23.8-r0、v1.25.3-r0及以上版本的集群支持该参数。 每秒钟可以执行的镜像仓库拉取操作限值 registry-pull-qps 镜像仓库的QPS上限。 默认为5 取值范围为1~50 v1.21.10-r0、v1.23.8-r0、v1.25.3-r0及以上版本的集群支持该参数。 突发性镜像拉取的上限值 registry-burst 突发性镜像拉取的上限值,允许镜像拉取临时上升到所指定数量。 默认为10 取值范围为1~100,且取值必须大于等于registry-pull-qps的值。 v1.21.10-r0、v1.23.8-r0、v1.25.3-r0及以上版本的集群支持该参数。 容器的日志文件个数上限 container-log-max-files 每个容器日志文件的最大数量。当存在的日志文件数量超过这个值时,最旧的日志文件将被删除,以便为新的日志留出空间。 默认为10 取值范围为2~100 - 容器日志文件在轮换生成新文件时之前的最大值 container-log-max-size 每个容器的日志文件的最大大小。当日志文件达到这个大小时,将会触发日志轮换即关闭当前日志文件并创建新的日志文件以继续记录。 默认为50Mi 取值范围为1Mi~4096Mi - 镜像垃圾回收上限百分比 image-gc-high-threshold 当kubelet磁盘达到多少时,kubelet开始回收镜像。 默认为80 取值范围为1~100 如果需要禁用镜像垃圾回收,请将该参数设置为100。 镜像垃圾回收下限百分比 image-gc-low-threshold 回收镜像时当磁盘使用率减少至多少时停止回收。 默认为70 取值范围为1~100 该参数取值不得大于镜像垃圾回收上限百分比。 节点内存预留 system-reserved-mem 系统内存预留,目的是为OS系统守护进程(如 sshd、udev 等)预留内存资源。 默认值:自动计算预留内存数,预留值随节点规格变动,具体请参见节点预留资源策略说明 可选配置如下: 自动计算预留内存数:建议使用自动计算预留内存数,以保证节点的稳定性。 预留值随节点规格变动,具体请参见节点预留资源策略说明。 自定义预留内存数:自定义节点预留内存分布。 kube-reserved-mem,system-reserved-mem之和小于节点池中节点最小内存规格的50%。 kube-reserved-mem Kubernetes组件内存预留,目的是为Kubernetes系统守护进程(如kubelet、container runtime等)预留内存资源。 evictionHard 硬驱逐配置项 memory.available 节点可用内存值 固定为100Mi 关于节点压力驱逐详情请参考节点压力驱逐。 须知: 驱逐配置项相关配置请谨慎修改,不合理的配置可能会导致节点频繁触发驱逐或节点已过载但未触发驱逐。 kubelet可识别以下两个特定的文件系统标识符: nodefs:节点的主要文件系统,用于本地磁盘卷、不受内存支持的 emptyDir 卷、日志存储等。 例如,nodefs 包含 /var/lib/kubelet/。 imagefs:容器引擎使用的文件系统分区。 对于共享数据盘,kubelet和容器引擎共用磁盘空间,此类场景建议仅配置nodefs驱逐信号门限或imagefs与nodefs门限配置一致。 nodefs.available Kubelet 使用的文件系统的可用容量的百分比 默认10% 取值范围为1%~99% nodefs.inodesFree Kubelet 使用的文件系统的可用inodes数的百分比 默认5% 取值范围为1%~99% imagefs.available 容器运行时存放镜像等资源的文件系统的可用容量的百分比 默认10% 取值范围为1%~99% imagefs.inodesFree 容器运行时存放镜像等资源的文件系统的可用inodes数的百分比 默认为空,不设置 取值范围为1%~99% pid.available 留给分配 Pod 使用的可用 PID 数的百分比 默认10% 取值范围为1%~99% evictionSoft 软驱逐配置项 memory.available 节点可用内存值。 设置值要求大于相同参数的硬驱逐配置值,且需同时配置对应的驱逐宽限期(evictionSoftGracePeriod)。 默认为空,不设置 取值范围为100Mi~1000000Mi nodefs.available Kubelet 使用的文件系统的可用容量的百分比。 设置值要求大于相同参数的硬驱逐配置值,且需同时配置对应的驱逐宽限期(evictionSoftGracePeriod)。 默认为空,不设置 取值范围为1%~99% nodefs.inodesFree Kubelet 使用的文件系统的可用inodes数的百分比。 设置值要求大于相同参数的硬驱逐配置值,且需同时配置对应的驱逐宽限期(evictionSoftGracePeriod)。 默认为空,不设置 取值范围为1%~99% imagefs.available 容器运行时存放镜像等资源的文件系统的可用容量的百分比。 设置值要求大于相同参数的硬驱逐配置值,且需同时配置对应的驱逐宽限期(evictionSoftGracePeriod)。 默认为空,不设置 取值范围为1%~99% imagefs.inodesFree 容器运行时存放镜像等资源的文件系统的可用inodes数的百分比。 设置值要求大于相同参数的硬驱逐配置值,且需同时配置对应的驱逐宽限期(evictionSoftGracePeriod)。 默认为空,不设置 取值范围为1%~99% pid.available 留给分配 Pod 使用的可用 PID 数的百分比。 设置值要求大于相同参数的硬驱逐配置值,且需同时配置对应的驱逐宽限期(evictionSoftGracePeriod)。 默认为空,不设置 取值范围为1%~99% 表2 kube-proxy组件配置 名称 参数 参数说明 取值 修改说明 系统中最大的连接跟踪表项数目 conntrack-min 系统中最大的连接跟踪表项数目。 可通过以下命令查询: sysctl -w net.nf_conntrack_max 默认:131072 - TCP连接在关闭状态下等待的时间 conntrack-tcp-timeout-close-wait 控制TCP连接在关闭状态下等待的时间。 可通过以下命令查询: sysctl -w net.netfilter.nf_conntrack_tcp_timeout_close_wait 默认:1h0m0s - 表3 网络组件配置(仅CCE Turbo集群可见) 名称 参数 参数说明 取值 修改说明 节点池网卡预热参数配置开关 enable-node-nic-configuration 是否开启节点池级别的网卡预热。 默认:关闭 节点池网络组件配置开关关闭后,节点池容器网卡动态预热参数将与集群级别保持一致。 nic-threshold nic-threshold 节点池级别的节点绑定容器网卡数低水位:节点绑定容器网卡数高水位 默认:0:0 说明: 此参数配置废弃中,请采用其他4个容器网卡动态预热参数。 节点池级别的节点最少绑定容器网卡数 nic-minimum-target 保障节点最少有多少张容器网卡绑定在节点上。 参数值需为正整数。例如10,表示节点最少有10张容器网卡绑定在节点上。当超过节点的容器网卡配额时,后台取值为节点的容器网卡配额。 默认:10 建议配置为大部分节点平时日常运行的Pod数。 节点池级别的节点预热容器网卡上限检查值 nic-maximum-target 当节点绑定的容器网卡数超过节点预热容器网卡上限检查值(nic-maximum-target),不再主动预热容器网卡。 当该参数大于等于节点最少绑定容器网卡数(nic-minimum-target)时,则开启预热容器网卡上限值检查;反之,则关闭预热容器网卡上限值检查。 参数值需为正整数。例如0,表示关闭预热容器网卡上限值检查。当超过节点的容器网卡配额时,后台取值为节点的容器网卡配额。 默认:0 建议配置为大部分节点平时最多运行的Pod数。 节点池级别的节点动态预热容器网卡数 nic-warm-target 当Pod使用完节点最少绑定容器网卡数(nic-minimum-target)后,会始终额外预热多少张容器网卡,只支持数值配置。 当 节点动态预热容器网卡数(nic-warm-target) + 节点当前绑定的容器网卡数 大于 节点预热容器网卡上限检查值(nic-maximum-target) 时,只会预热nic-maximum-target与节点当前绑定的容器网卡数的差值。 默认:2 建议配置为大部分节点日常10s内会瞬时弹性扩容的Pod数。 节点池级别的节点预热容器网卡回收阈值 nic-max-above-warm-target 只有当 节点上空闲的容器网卡数 - 节点动态预热容器网卡数(nic-warm-target) 大于此阈值 时,才会触发预热容器网卡的解绑回收。只支持数值配置。 调大此值会减慢空闲容器网卡的回收,加快Pod的启动速度,但会降低IP地址的利用率,特别是在IP地址紧张的场景,请谨慎调大。 调小此值会加快空闲容器网卡的回收,提高IP地址的利用率,但在瞬时大量Pod激增的场景,部分Pod启动会稍微变慢。 默认:2 建议配置为大部分节点日常在分钟级时间范围内会频繁弹性扩容缩容的Pod数 - 大部分节点日常10s内会瞬时弹性扩容的Pod数。 表4 节点池Pod安全组配置(仅CCE Turbo集群可见) 名称 参数 参数说明 取值 修改说明 节点池上Pod默认使用的安全组 security_groups_for_nodepool 可填写安全组 ID,不配置则使用集群容器网络的默认安全组,并且最多可同时指定5个安全组ID,中间以英文分号(;)分隔。 优先级低于SecurityGroup资源对象配置的安全组。 - - 表5 容器引擎Docker配置(仅使用Docker的节点池可见) 名称 参数 参数说明 取值 修改说明 容器umask值 native-umask 默认值为normal,表示启动的容器umask值为0022。 默认:normal 不支持修改 单容器可用数据空间 docker-base-size 设置每个容器可使用的最大数据空间。 默认:0 不支持修改 不安全的镜像源地址 insecure-registry 是否允许使用不安全的镜像源地址。 false 不支持修改 容器core文件的大小限制 limitcore 容器core文件的大小限制,单位是Byte。 如果不设置大小限制,可设置为infinity。 默认:5368709120 - 容器内句柄数限制 default-ulimit-nofile 设置容器中可使用的句柄数上限。 默认:{soft}:{hard} 该值大小不可超过节点内核参数nr_open的值,且不能是负数。 节点内核参数nr_open可通过以下命令获取: sysctl -a | grep nr_open 镜像拉取超时时间 image-pull-progress-timeout 如果超时之前镜像没有拉取成功,本次镜像拉取将会被取消。 默认:1m0s 该参数在v1.25.3-r0版本开始支持 单次拉取镜像层的最大并发数 max-concurrent-downloads 设置拉取镜像层的最大并发数。 默认:3 取值范围为1~20 该参数如果设置过大,可能导致节点其他业务的网络性能受影响或导致磁盘IO和CPU增高。 容器日志文件轮换生成新文件的最大值 max-size 容器日志文件开始转储的最大大小。当日志文件达到这个大小时,将会触发日志轮换即关闭当前日志文件并创建新的日志文件以继续记录。 默认为50Mi 取值范围为1Mi~4096Mi 该参数如果设置过小,可能导致重要日志信息的丢失;如果设置过大,则可能占用过多的磁盘空间。 容器的日志文件个数上限 max-file 容器可以保留的日志文件的最大数量。当存在的日志文件数量超过这个值时,最旧的日志文件将被删除,以便为新的日志留出空间。 默认:20 取值范围为2~100 该参数如果设置过小,可能导致重要日志信息的丢失;如果设置过大,则可能占用过多的磁盘空间。 表6 容器引擎Containerd配置(仅使用Containerd的节点池可见) 名称 参数 参数说明 取值 修改说明 单容器可用数据空间 devmapper-base-size 设置每个容器可使用的最大数据空间。 默认:0 不支持修改 容器core文件的大小限制 limitcore 容器core文件的大小限制,单位是Byte。 如果不设置大小限制,可设置为infinity。 默认:5368709120 - 容器内句柄数限制 default-ulimit-nofile 设置容器中可使用的句柄数上限。 默认:1048576 该值大小不可超过节点内核参数nr_open的值,且不能是负数。 节点内核参数nr_open可通过以下命令获取: sysctl -a | grep nr_open 镜像拉取超时时间 image-pull-progress-timeout 如果超时之前镜像没有拉取成功,本次镜像拉取将会被取消。 默认:1m0s 该参数在v1.25.3-r0版本开始支持 insecure_skip_verify insecure_skip_verify 跳过仓库证书验证。 默认:false 不支持修改 单次拉取镜像层的最大并发数 max-concurrent-downloads 设置拉取镜像层的最大并发数。 默认:3 取值范围为1~20 该参数如果设置过大,可能导致节点其他业务的网络性能受影响或导致磁盘IO和CPU增高。 容器的最大日志行大小 max-container-log-line-size 是容器的最大日志行大小(以字节为单位)。超过限制的日志行将被分成多行。 默认:16384 取值范围为1~2097152 配置增大会增加containerd内存消耗。 单击“确定”,完成配置操作。
  • 弹性云服务器-物理机 表2 弹性云服务器-物理机节点操作系统 操作系统 集群版本 CCE Standard集群 CCE Turbo集群 最新内核信息 VPC网络模型 容器隧道网络模型 云原生网络2.0 EulerOS release 2.10 v1.29 √ √ √ 4.18.0-147.5.2.15.h1109.eulerosv2r10.x86_64 v1.28 √ √ √ 4.18.0-147.5.2.15.h1109.eulerosv2r10.x86_64 v1.27 √ √ √ 4.18.0-147.5.2.15.h1109.eulerosv2r10.x86_64 v1.25 √ √ √ 4.18.0-147.5.2.15.h1109.eulerosv2r10.x86_64 v1.23 √ √ √ 4.18.0-147.5.2.15.h1109.eulerosv2r10.x86_64 v1.21 √ √ √ 4.18.0-147.5.2.15.h1109.eulerosv2r10.x86_64 v1.19.16(停止维护) √ √ √ 4.18.0-147.5.2.15.h1109.eulerosv2r10.x86_64
  • 裸金属服务器 该服务器的规格信息请参见裸金属服务器实例家族。 表3 裸金属服务器节点操作系统 操作系统 集群版本 CCE Standard集群 CCE Turbo集群 最新内核信息 VPC网络模型 容器隧道网络模型 云原生网络2.0 EulerOS release 2.9(受限使用,请提交工单申请) v1.28 √ √ × 4.18.0-147.5.1.6.h841.eulerosv2r9.x86_64 v1.27 √ √ × 4.18.0-147.5.1.6.h841.eulerosv2r9.x86_64 v1.25 √ √ × 4.18.0-147.5.1.6.h841.eulerosv2r9.x86_64 v1.23 √ √ × 4.18.0-147.5.1.6.h841.eulerosv2r9.x86_64 v1.21 √ √ × 4.18.0-147.5.1.6.h841.eulerosv2r9.x86_64 v1.19 √ √ × 4.18.0-147.5.1.6.h841.eulerosv2r9.x86_64 EulerOS release 2.3(停止维护) v1.27及以上 × × × - v1.25 √ √ × 3.10.0-514.41.4.28.h62.x86_64 v1.23 √ √ × 3.10.0-514.41.4.28.h62.x86_64 v1.21 √ √ × 3.10.0-514.41.4.28.h62.x86_64 v1.19 √ √ × 3.10.0-514.41.4.28.h62.x86_64 v1.17 √ √ × 3.10.0-514.41.4.28.h62.x86_64 v1.15.11 √ √ × 3.10.0-514.41.4.28.h62.x86_64
  • 弹性云服务器-虚拟机 表1 弹性云服务器-虚拟机节点操作系统 操作系统 集群版本 CCE Standard集群 CCE Turbo集群 最新内核信息 VPC网络模型 容器隧道网络模型 云原生网络2.0 Huawei Cloud EulerOS 2.0 v1.29 √ √ √ 5.10.0-60.18.0.50.r1083_58.hce2.x86_64 v1.28 √ √ √ 5.10.0-60.18.0.50.r1083_58.hce2.x86_64 v1.27 √ v1.27.3-r0及以上版本支持 √ 5.10.0-60.18.0.50.r1083_58.hce2.x86_64 v1.25 √ v1.25.6-r0及以上版本支持 √ 5.10.0-60.18.0.50.r1083_58.hce2.x86_64 v1.23 √ v1.23.11-r0及以上版本支持 √ 5.10.0-60.18.0.50.r1083_58.hce2.x86_64 Huawei Cloud EulerOS 2.0 (ARM) v1.29 √ √ √ 5.10.0-60.18.0.50.r1083_58.hce2.aarch64 v1.28 √ √ √ 5.10.0-60.18.0.50.r1083_58.hce2.aarch64 v1.27 √ v1.27.3-r0及以上版本支持 √ 5.10.0-60.18.0.50.r1083_58.hce2.aarch64 v1.25 √ v1.25.6-r0及以上版本支持 √ 5.10.0-60.18.0.50.r1083_58.hce2.aarch64 v1.23 √ v1.23.11-r0及以上版本支持 √ 5.10.0-60.18.0.50.r1083_58.hce2.aarch64 Ubuntu 22.04 v1.29 √ × √ 5.15.0-92-generic v1.28 √ × √ 5.15.0-92-generic v1.27 √ × √ 5.15.0-92-generic v1.25 √ × √ 5.15.0-92-generic v1.23 √ × √ 5.15.0-92-generic Huawei Cloud EulerOS 1.1 v1.29 √ √ √ 3.10.0-1160.76.2.hce1c.x86_64 v1.28 √ √ √ 3.10.0-1160.76.2.hce1c.x86_64 v1.27 √ √ √ 3.10.0-1160.76.2.hce1c.x86_64 v1.25 √ √ √ 3.10.0-1160.76.2.hce1c.x86_64 v1.23 √ √ √ 3.10.0-1160.76.2.hce1c.x86_64 v1.21 √ √ √ 3.10.0-1160.76.2.hce1c.x86_64 CentOS Linux release 7.6 v1.29 √ √ √ 3.10.0-1160.108.1.el7.x86_64 v1.28 √ √ √ 3.10.0-1160.108.1.el7.x86_64 v1.27 √ √ √ 3.10.0-1160.108.1.el7.x86_64 v1.25 √ √ √ 3.10.0-1160.108.1.el7.x86_64 v1.23 √ √ √ 3.10.0-1160.108.1.el7.x86_64 v1.21 √ √ √ 3.10.0-1160.108.1.el7.x86_64 v1.19(停止维护) √ √ √ 3.10.0-1160.108.1.el7.x86_64 v1.17.17(停止维护) √ √ √ 3.10.0-1160.15.2.el7.x86_64 v1.17.9(停止维护) √ √ √ 3.10.0-1062.12.1.el7.x86_64 v1.15.11(停止维护) √ √ √ 3.10.0-1062.12.1.el7.x86_64 v1.15.6-r1(停止维护) √ √ √ 3.10.0-1062.1.1.el7.x86_64 v1.13.10-r1(停止维护) √ √ √ 3.10.0-957.21.3.el7.x86_64 v1.13.7-r0(停止维护) √ √ √ 3.10.0-957.21.3.el7.x86_64 EulerOS release 2.9 v1.29 √ √ √ 4.18.0-147.5.1.6.h1152.eulerosv2r9.x86_64 v1.28 √ √ √ 4.18.0-147.5.1.6.h1152.eulerosv2r9.x86_64 v1.27 √ √ √ 4.18.0-147.5.1.6.h1152.eulerosv2r9.x86_64 v1.25 √ √ √ 4.18.0-147.5.1.6.h1152.eulerosv2r9.x86_64 v1.23 √ √ √ 4.18.0-147.5.1.6.h1152.eulerosv2r9.x86_64 v1.21 √ √ √ 4.18.0-147.5.1.6.h1152.eulerosv2r9.x86_64 v1.19(停止维护) √ √ √ 4.18.0-147.5.1.6.h1152.eulerosv2r9.x86_64 EulerOS release 2.9 (ARM) v1.29 √ √ √ 4.19.90-vhulk2103.1.0.h1144.eulerosv2r9.aarch64 v1.28 √ √ √ 4.19.90-vhulk2103.1.0.h1144.eulerosv2r9.aarch64 v1.27 √ √ √ 4.19.90-vhulk2103.1.0.h1144.eulerosv2r9.aarch64 v1.25 √ √ √ 4.19.90-vhulk2103.1.0.h1144.eulerosv2r9.aarch64 v1.23 √ √ √ 4.19.90-vhulk2103.1.0.h1144.eulerosv2r9.aarch64 v1.21 √ √ √ 4.19.90-vhulk2103.1.0.h1144.eulerosv2r9.aarch64 v1.19(停止维护) √ √ √ 4.19.90-vhulk2103.1.0.h1144.eulerosv2r9.aarch64 EulerOS release 2.8(ARM)(停止维护) v1.27及以上 × × × - v1.25 √ √ √ 4.19.36-vhulk1907.1.0.h1350.eulerosv2r8.aarch64 v1.23 √ √ √ 4.19.36-vhulk1907.1.0.h1350.eulerosv2r8.aarch64 v1.21 √ √ √ 4.19.36-vhulk1907.1.0.h1350.eulerosv2r8.aarch64 v1.19.16 √ √ √ 4.19.36-vhulk1907.1.0.h1350.eulerosv2r8.aarch64 v1.19.10 √ √ √ 4.19.36-vhulk1907.1.0.h962.eulerosv2r8.aarch64 v1.17.17(停止维护) √ √ √ 4.19.36-vhulk1907.1.0.h962.eulerosv2r8.aarch64 v1.15.11(停止维护) √ √ √ 4.19.36-vhulk1907.1.0.h702.eulerosv2r8.aarch64 EulerOS release 2.5(停止维护) v1.27及以上 × × × - v1.25 √ √ √ 3.10.0-862.14.1.5.h687.eulerosv2r7.x86_64 v1.23 √ √ √ 3.10.0-862.14.1.5.h687.eulerosv2r7.x86_64 v1.21 √ √ √ 3.10.0-862.14.1.5.h687.eulerosv2r7.x86_64 v1.19.16 √ √ √ 3.10.0-862.14.1.5.h687.eulerosv2r7.x86_64 v1.19.10 √ √ √ 3.10.0-862.14.1.5.h520.eulerosv2r7.x86_64 v1.19.8 √ √ √ 3.10.0-862.14.1.5.h520.eulerosv2r7.x86_64 v1.17.17(停止维护) √ √ √ 3.10.0-862.14.1.5.h470.eulerosv2r7.x86_64 v1.17.9(停止维护) √ √ √ 3.10.0-862.14.1.5.h428.eulerosv2r7.x86_64 v1.15.11(停止维护) √ √ √ 3.10.0-862.14.1.5.h428.eulerosv2r7.x86_64 v1.15.6-r1(停止维护) √ √ √ 3.10.0-862.14.1.5.h328.eulerosv2r7.x86_64 v1.13.10-r1(停止维护) √ √ √ 3.10.0-862.14.1.2.h249.eulerosv2r7.x86_64 v1.13.7-r0(停止维护) √ √ √ 3.10.0-862.14.1.0.h197.eulerosv2r7.x86_64 Ubuntu 18.04 server 64bit(停止维护) v1.27及以上 × × × - v1.25 √ × √ 4.15.0-171-generic v1.23 √ × √ 4.15.0-171-generic v1.21 √ × √ 4.15.0-171-generic v1.19.16 √ × √ 4.15.0-171-generic v1.19.8 √ × √ 4.15.0-136-generic v1.17.17 √ × √ 4.15.0-136-generic
  • 通过控制台设置 登录CCE控制台,单击集群名称进入集群。 选择左侧导航栏的“服务”,在右侧选择“服务”页签,单击右上角“创建服务”。 设置Service参数。 Service名称:自定义Service名称,例如service-acl。 访问类型:选择“负载均衡”类型。 服务亲和:您可以根据需求选择“集群级别”或“节点级别”。二者差异说明请参见服务亲和(externalTrafficPolicy)。 选择器:添加标签,Service根据标签选择Pod,填写后单击“确认添加”。也可以引用已有工作负载的标签,单击“引用负载标签”,在弹出的窗口中选择负载,然后单击“确定”。 负载均衡器: 选择对接的ELB实例,仅支持与集群在同一个VPC下的ELB实例。如果没有可选的ELB实例,请单击“创建负载均衡器”跳转到ELB控制台创建。或者选择“自动创建”一个ELB实例,配置参数请参见表1。 健康检查:默认为“全局检查”,您可根据需求进行设置。 端口配置: 协议:请根据业务的协议类型选择。 服务端口:Service使用的端口,端口范围为1-65535。 容器端口:工作负载程序实际监听的端口,需用户确定。例如nginx默认使用80端口。 访问控制: 允许所有IP访问:不设置访问控制。 白名单:仅所选IP地址组可以访问ELB地址。 黑名单:所选IP地址组无法访问ELB地址。 配置完成后,单击“确定”。
  • 实时感知SPC变化 在使用Volume挂载凭据、定时轮转的演示中,其实已经使用到了实时感知SPC变化的能力。为了演示说明,在SPC对象中新增一个凭据secret_2,如下所示: apiVersion: secrets-store.csi.x-k8s.io/v1 kind: SecretProviderClass metadata: name: spc-test spec: provider: cce parameters: objects: | - objectName: "secret_1" objectVersion: "latest" objectType: "csms" - objectName: "secret_2" objectVersion: "v1" objectType: "csms" 更新该SPC对象后,新增的secret_2将很快挂载至引用了该SPC对象的Pod内。
  • 版本记录 表4 CCE密钥管理(对接 DEW)插件版本记录 插件版本 支持的集群版本 更新特性 1.1.2 v1.21 v1.23 v1.25 v1.27 v1.28 v1.29 适配CCE v1.29集群 支持同步csms凭据时创建secret 1.0.31 v1.21 v1.23 v1.25 v1.27 v1.28 适配CCE v1.27集群 适配CCE v1.28集群 1.0.9 v1.19 v1.21 v1.23 v1.25 - 1.0.6 v1.19 v1.21 v1.23 v1.25 - 1.0.3 v1.19 v1.21 v1.23 v1.25 适配CCE v1.25集群 1.0.2 v1.19 v1.21 v1.23 适配CCE v1.23集群 1.0.1 v1.19 v1.21 支持主动感知SecretProviderClass对象的变化
  • 定时轮转 在插件使用说明,通过使用该插件,用户可完成基本的凭据挂载功能,即能够将存储在凭据管理服务中的凭据写入到Pod内。 若将在SPC对象中声明的凭据版本改为”latest”,如下所示: apiVersion: secrets-store.csi.x-k8s.io/v1 kind: SecretProviderClass metadata: name: spc-test spec: provider: cce parameters: objects: | - objectName: "secret_1" objectVersion: "latest" # change "v1"to "latest" objectType: "csms" 更新该SPC对象后,插件将周期性地向凭据管理服务发起请求,获取凭据secret_1最新版本的值,并将其刷新至引用了该SPC对象的Pod内。此处插件周期性发起请求的时间间隔由安装插件时设置的rotation_poll_interval参数确定。
  • 查看组件日志 查看插件的Pod $ kubectl get pod -n kube-system NAME READY STATUS RESTARTS AGE csi-secrets-store-76tj2 3/3 Running 0 11h dew-provider-hm5fq 1/1 Running 0 11h 查看dew-provider组件Pod日志 $ kubectl logs dew-provider-hm5fq -n kube-system …日志信息略… … 查看csi-secrets-store组件Pod日志,由于csi-secrets-store组件的Pod包含多个容器,在查看日志信息时,需通过”-c”命令指定某个容器。其中,secrets-store容器作为该插件的主业务容器,其包含了主要的日志信息。 $ kubectl logs csi-secrets-store-76tj2 -c secrets-store -n kube-system …日志信息略… …
  • 使用Volume挂载凭据 创建ServiceAccount。 创建ServiceAccount对象,其中声明了允许业务使用的凭据名称,若用户引用了未在此处声明的凭据,则挂载失败,最终导致Pod无法运行。 根据如下模板创建serviceaccount.yaml,在cce.io/dew-resource字段中声明允许业务使用的凭据名称。这里声明了secret_1和secret_2,表示允许业务引用这两个凭据对象。在后续的操作中,若用户在业务中引用了secret_3,则无法通过校验,从而导致无法正常挂载该凭据,最终业务Pod将无法运行。 apiVersion: v1 kind: ServiceAccount metadata: name: nginx-spc-sa annotations: cce.io/dew-resource: "[\"secret_1\",\"secret_2\"]" #secrets that allow pod to use 这里需要明确,此处声明的凭据应确保在凭据管理服务中是存在的,如下图所示。否则,即使通过了校验,最终向凭据管理服务中获取相应凭据的时候也会出错,从而导致Pod无法正常运行。 执行如下命令创建ServiceAccount对象。 kubectl apply -f serviceaccount.yaml 查看ServiceAccount对象是否已经正常创建,如下所示: $ kubectl get sa NAME SECRETS AGE default 1 18d # 此为系统默认的ServiceAccount对象 nginx-spc-sa 1 19s # 此为刚刚创建的ServiceAccount对象 至此,一个名为“nginx-spc-sa”的ServiceAccount对象已正常创建。该对象将在后续的业务Pod中被引用。 创建SecretProviderClass。 SecretProviderClass对象用于描述用户感兴趣的凭据信息(比如指定凭据的版本、凭据的名称等),由用户创建,并在业务Pod中进行引用。 根据如下模板创建secretproviderclass.yaml。用户主要关注parameters.objects字段,它是一个数组,用于声明用户想要挂载的凭据信息。 apiVersion: secrets-store.csi.x-k8s.io/v1 kind: SecretProviderClass metadata: name: spc-test spec: provider: cce # 固定为cce parameters: objects: | - objectName: "secret_1" objectVersion: "v1" objectType: "csms" 参数 参数类型 是否必选 参数说明 objectName String 是 凭据名称,需填写ServiceAccount中引用的凭据。若同一个SecretProviderClass中定义了多个objectName,不允许重名,否则会挂载失败。 objectAlias String 否 凭据写入到容器内的文件名称。若不指定,则凭据写入到容器内的文件名默认为objectName;若指定,则objectAlias与其他凭据的objectName和objectAlias均不允许重名,与自身的objectName也不允许重名,否则会挂载失败。 objectType String 是 凭据类型。当前仅支持”csms”类型,其他均为非法输入。 objectVersion String 是 凭据的版本。 指定某个具体的版本:v1,v2,… 指定最新版本:latest。当指定objectVersion为” latest”时,若在云凭据管理服务侧对应的凭据发生了更新,更新后的凭据值将在经过一定时间间隔后(即rotation_poll_interval)刷新至Pod内。 执行如下命令创建SecretProviderClass对象。 kubectl apply -f secretproviderclass.yaml 查看SecretProviderClass对象是否已经正常创建,如下所示: $ kubectl get spc NAME AGE spc-test 20h 至此,一个名为“spc-test”的SecretProviderClass对象已正常创建。该对象将在后续的业务Pod中被引用。 创建业务Pod。 这里以创建一个nginx应用为例。 定义业务负载,在serviceAccountName中引用此前创建好的ServiceAccount对象,secretProviderClass中引用此前创建好的SPC对象,并在mountPath中指定容器内的挂载路径(这里需注意,用户不应该指定”/”,” /var/run”等特殊目录,否则可能影响容器的正常启动)。 apiVersion: apps/v1 kind: Deployment metadata: name: nginx-spc labels: app: nginx spec: replicas: 1 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: serviceAccountName: nginx-spc-sa # 引用上面创建的ServiceAccount volumes: - name: secrets-store-inline csi: driver: secrets-store.csi.k8s.io readOnly: true volumeAttributes: secretProviderClass: "spc-test" # 引用上面创建的SPC containers: - name: nginx-spc image: nginx:alpine imagePullPolicy: IfNotPresent volumeMounts: - name: secrets-store-inline mountPath: "/mnt/secrets-store" # 定义容器内凭据的挂载路径 readOnly: true imagePullSecrets: - name: default-secret 创建业务Pod。 kubectl apply -f deployment.yaml 查看Pod是否已经正常创建,如下所示: $ kubectl get pod NAME READY STATUS RESTARTS AGE nginx-spc-67c9d5b594-642np 1/1 Running 0 20s 进入容器,查看指定的凭据是否正常写入。如下所示: $ kubectl exec -ti nginx-spc-67c9d5b594-642np -- /bin/bash root@nginx-spc-67c9d5b594-642np:/# root@nginx-spc-67c9d5b594-642np:/# cd /mnt/secrets-store/ root@nginx-spc-67c9d5b594-642np:/mnt/secrets-store# root@nginx-spc-67c9d5b594-642np:/mnt/secrets-store# ls secret_1 可以看到,用户在SPC对象中声明的secret_1已正常写入Pod。 此外,还可以通过获取spcPodStatus查看Pod与凭据的绑定情况。如下所示: $ kubectl get spcps NAME AGE nginx-spc-67c9d5b594-642np-default-spc-test 103s $ kubectl get spcps nginx-spc-67c9d5b594-642np-default-spc-test -o yaml ...... status: mounted: true objects: # 挂载的凭据信息 - id: secret_1 version: v1 podName: nginx-spc-67c9d5b594-642np # 引用了SPC对象的Pod secretProviderClassName: spc-test # SPC对象 targetPath: /mnt/paas/kubernetes/kubelet/pods/6dd29596-5b78-44fb-9d4c-a5027c420617/volumes/kubernetes.io~csi/secrets-store-inline/mount
  • 使用密钥挂载凭据 CCE密钥管理(dew-provider)插件版本要求1.1.1及以上。 创建ServiceAccount。 创建ServiceAccount对象,其中声明了允许业务使用的凭据名称,若用户引用了未在此处声明的凭据,则挂载失败,最终导致Pod无法运行。 根据如下模板创建serviceaccount.yaml,在cce.io/dew-resource字段中声明允许业务使用的凭据名称。这里声明了secret_1和secret_2,表示允许业务引用这两个凭据对象。在后续的操作中,若用户在业务中引用了secret_3,则无法通过校验,从而导致无法正常挂载该凭据,最终业务Pod将无法运行。 apiVersion: v1 kind: ServiceAccount metadata: name: nginx-spc-sa annotations: cce.io/dew-resource: "[\"secret_1\",\"secret_2\"]" #secrets that allow pod to use 这里需要明确,此处声明的凭据应确保在凭据管理服务中是存在的,如下图所示。否则,即使通过了校验,最终向凭据管理服务中获取相应凭据的时候也会出错,从而导致Pod无法正常运行。 执行如下命令创建ServiceAccount对象。 kubectl apply -f serviceaccount.yaml 查看ServiceAccount对象是否已经正常创建,如下所示: $ kubectl get sa NAME SECRETS AGE default 1 18d # 此为系统默认的ServiceAccount对象 nginx-spc-sa 1 19s # 此为刚刚创建的ServiceAccount对象 至此,一个名为“nginx-spc-sa”的ServiceAccount对象已正常创建。该对象将在后续的业务Pod中被引用。 创建SecretProviderClass。 根据如下模板创建secretproviderclass.yaml。 apiVersion: secrets-store.csi.x-k8s.io/v1 kind: SecretProviderClass metadata: name: nginx-deployment-spc-k8s-secrets spec: provider: cce parameters: # 引用凭据管理服务中的凭据 objects: | - objectName: "secret_1" objectType: "csms" objectVersion: "latest" jmesPath: - path: username objectAlias: dbusername - path: password objectAlias: dbpassword # 根据凭据中的内容创建密钥,然后在Pod中进行挂载使用 secretObjects: - secretName: my-secret-01 type: Opaque data: - objectName: dbusername key: db_username_01 - objectName: dbpassword key: db_password_01 表2 objects参数说明 参数 参数类型 是否必选 参数说明 objectName String 是 凭据名称,需填写ServiceAccount中引用的凭据。若同一个SecretProviderClass中定义了多个objectName,不允许重名,否则会挂载失败。 objectType String 是 凭据类型。当前仅支持“csms”类型,其他均为非法输入。 objectVersion String 是 凭据的版本。 指定某个具体的版本:v1,v2,… 指定最新版本:latest。当指定objectVersion为” latest”时,若在云凭据管理服务侧对应的凭据发生了更新,更新后的凭据值将在经过一定时间间隔后(即rotation_poll_interval)刷新至Pod内。 jmesPath Array of Object 是 jmesPath是一种从json格式的对象中提取key-value的工具,CCE密钥管理插件使用该工具支持Secret挂载功能。 path:填写DEW服务凭据中的key,其中key不能带有+、-、{}、()等特殊符号。 objectAlias:挂载到Pod中的文件名,该值需要和secretObjects中定义的objectName保持一致。 表3 secretObjects参数说明 参数 参数类型 是否必选 参数说明 secretName String 是 密钥名称。 type String 是 密钥类型。 data Array of Object 是 objectName:挂载到Pod中的文件名,该值需要和objects中定义的objectAlias保持一致。 key:密钥中的key,在Pod中可使用key值对加密内容进行引用。 执行如下命令创建SecretProviderClass对象。 kubectl apply -f secretproviderclass.yaml 查看SecretProviderClass对象是否已经正常创建,如下所示: $ kubectl get spc NAME AGE nginx-deployment-spc-k8s-secrets 20h 创建业务Pod。这里以创建一个nginx应用为例。 apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment-k8s-secrets labels: app: nginx-k8s-secrets spec: replicas: 1 selector: matchLabels: app: nginx-k8s-secrets template: metadata: labels: app: nginx-k8s-secrets spec: serviceAccountName: nginx-spc-sa # 引用上面创建的ServiceAccount containers: - name: nginx-deployment-k8s-secrets image: nginx volumeMounts: # 在容器中挂载密钥 - name: secrets-store-inline # 需要挂载的volume名称 mountPath: "/mnt/secrets" # 需要挂载的容器路径 readOnly: true env: # 在环境变量中引用密钥 - name: DB_USERNAME_01 # 工作负载中的变量名 valueFrom: secretKeyRef: name: my-secret-01 # SPC中定义的密钥名称 key: db_username_01 # SPC中定义的密钥key值 - name: DB_PASSWORD_01 valueFrom: secretKeyRef: name: my-secret-01 key: db_password_01 imagePullSecrets: - name: default-secret volumes: # 使用SPC中定义的密钥创建volume - name: secrets-store-inline # 自定义的volume名称 csi: driver: secrets-store.csi.k8s.io readOnly: true volumeAttributes: secretProviderClass: nginx-deployment-spc-k8s-secrets # 上一步中创建的SPC名称 验证结果。 $ kubectl get secrets NAME TYPE DATA AGE default-secret kubernetes.io/dockerconfigjson 1 33d my-secret-01 Opaque 2 1h 结果表明已使用SPC对象中声明的凭据secret_1创建一个密钥my-secret-01。
  • 约束与限制 数据加密 服务包含密钥管理(Key Management Service, KMS)、云凭据管理(Cloud Secret Management Service,C SMS )和密钥对管理(Key Pair Service, KPS)等服务。当前,该插件仅支持对接其中的云凭据管理服务。 支持的集群版本:v1.19+。 支持的集群类型:CCE Standard集群和CCE Turbo集群。 允许创建的SecretProviderClass对象个数上限:500个。 插件卸载时,会同时删除相关的CRD资源。即使重装插件,原有的SecretProviderClass对象也不可用,请谨慎操作。插件卸载再重装后,若需使用原有的SecretProviderClass资源,需重新手动创建。
  • 组件说明 表1 dew-provider组件 容器组件 说明 资源类型 dew-provider dew-provider负责与云凭据管理服务交互,从云凭据管理服务中获取指定的凭据,并挂载到业务Pod内。 DaemonSet secrets-store-csi-driver secrets-store-csi-driver负责维护两个CRD资源,即SecretProviderClass(以下简称为SPC)和SecretProviderClassPodStatus(以下简称为spcPodStatus),其中SPC用于描述用户感兴趣的凭据信息(比如指定凭据的版本、凭据的名称等),由用户创建,并在业务Pod中进行引用;spcPodStatus用于跟踪Pod与凭据的绑定关系,由csi-driver自动创建,用户无需关心。一个Pod对应一个spcPodStatus,当Pod正常启动后,会生成一个与之对应的spcPodStatus;当Pod生命周期结束时,相应的spcPodStatus也会被删除。 DaemonSet
  • 安装插件 登录CCE控制台,单击集群名称进入集群,单击左侧导航栏的“插件中心”,在右侧找到CCE密钥管理(对接DEW)插件,单击“安装”。 在安装插件页面,在参数配置栏进行参数配置。参数配置说明如下。 参数 参数说明 rotation_poll_interval 轮转时间间隔。单位:分钟,即m(注意不是min)。 轮转时间间隔表示向云凭据管理服务发起请求并获取最新的凭据的周期,合理的时间间隔范围为[1m, 1440m],默认值为2m。 单击“安装”。 待插件安装完成后,选择对应的集群,然后单击左侧导航栏的“插件中心”,可在“已安装插件”页签中查看相应的插件。
  • 插件说明 基础挂载能力:安装完该插件后,通过创建SecretProviderClass对象,在业务Pod中声明Volume并进行引用,当启动Pod时,就会将在SecretProviderClass对象中声明的凭据信息挂载至Pod内。 定时轮转能力:当Pod正常运行后,若其在SPC中声明的、存储在云凭据管理服务中的凭据发生了更新,通过定时轮转,可以将最新的凭据值刷新至Pod内。使用该能力时,需要将凭据的版本指定为”latest”。 实时感知SPC变化能力:当Pod正常运行后,若用户修改了在SPC中声明的凭据信息(如新增凭据、改变原有凭据的版本号等),插件可实时感知该变化,并将更新后的凭据刷新至Pod内。
  • 步骤三:插件选择 单击“下一步:插件选择”,选择创建集群时需要安装的插件。 基础功能 参数 说明 CCE 容器存储 (Everest) 默认安装CCE容器存储插件(Everest),可为集群提供基于 CSI 的容器存储能力,支持对接云上云硬盘等存储服务。 CoreDNS 域名解析 默认安装CoreDNS域名解析插件,可为集群提供域名解析、连接云上 DNS 服务器等能力。 可观测性 参数 说明 Kubernetes Metrics Server 默认安装Kubernetes Metrics Server,为集群采集资源使用指标,例如容器CPU和内存使用率。 云原生监控插件 可选插件。勾选后自动安装云原生监控插件,为集群提供普罗指标采集能力,并将指标上报至指定的 AOM 实例。轻量化模式暂不支持基于自定义普罗语句的HPA,若需要相关功能,可在集群创建完成后手动安装全量的插件。 云原生日志采集插件 可选插件。勾选后自动安装云原生日志采集插件,将日志上报至 LTS 的日志采集器。集群创建完成后可在 CCE 日志中心页面对采集规则进行查询与管理。 LTS创建日志组免费,并每月赠送每个账号一定量免费日志采集额度,超过免费额度部分将产生费用(价格计算器)。关于如何采集自定义指标,请参见收集容器日志。
  • 步骤四:插件配置 单击“下一步:插件配置”,配置插件。当前默认安装插件不支持配置,集群创建完成后,可前往“插件中心”修改配置。 可选插件配置如下: 可观测性 参数 说明 云原生监控插件 选择指标上报的AOM实例。如果没有可用实例,您可以单击“新建实例”进行创建。 AOM采集的基础指标免费,自定义指标将由AOM服务进行收费,详情请参见价格详情。 云原生日志采集插件 选择需要采集的日志。开启后将自动创建一个名称为k8s-log-{clusterId}的日志组,并为每个勾选的日志类型创建一个日志流。 容器日志:采集容器标准输出日志,对应的日志流名称为stdout-{clusterId}。 Kubernetes事件:采集Kubernetes日志,对应的日志流名称为event-{clusterId}。 如果不开启日志采集能力。集群创建后可以前往 CCE 日志中心页面重新开启。 LTS创建日志组免费,并每月赠送每个账号一定量免费日志采集额度,超过免费额度部分将产生费用(价格计算器)。关于如何采集自定义指标,请参见收集容器日志。
  • 约束与限制 创建节点过程中会使用域名方式从OBS下载软件包,需要能够使用云上内网DNS解析OBS域名,否则会导致创建不成功。为此,节点所在子网的DNS服务器地址需要配置为内网DNS地址,从而使得节点使用内网DNS。在创建子网时DNS默认配置为内网DNS,如果您修改过子网的DNS,请务必确保子网下的DNS服务器可以解析OBS服务域名,否则需要将DNS改成内网DNS。 集群一旦创建以后,不支持变更以下项: 变更集群类型。 变更集群的网络配置,如所在的 虚拟私有云VPC 、容器子网、服务网段、kube-proxy代理模式(即服务转发模式)。 使用Autopilot集群时需注意周边资源的配额限制,请您预留足够的配额,每个集群占用的资源详情如下表。 服务 配额项 最小占用量 说明 配额申请 云容器引擎 集群 1 一个Region下每个账号可创建的集群总数限制为50个。 我的配额 虚拟私有云 VPC 1/集群 一个Region下每个账号可创建的VPC限制为5个。 子网 1/集群 一个Region下每个账号可创建的子网限制为50个。 安全组 2/集群 一个Region下每个账号可创建的安全组限制为100个。 安全组规则 10/集群 一个Region下每个账号可创建的安全组规则限制为1000个。 VPC终端节点 终端节点 3/集群 一个Region下每个账号可创建的终端节点限制为50个。 云解析服务 DNS内网域名 2/集群 一个Region下每个账号可创建的DNS内网域名限制为50个。 DNS记录集 6/集群 一个Region下每个账号可创建的DNS记录集限制为500个。
共100000条