云服务器内容精选

  • 操作步骤 登录云容器实例管理控制台,左侧导航栏中选择“镜像快照”,在右侧页面单击“创建镜像快照”。 添加基本信息。 镜像快照名称 请输入以小写字母或数字开头,小写字母、数字、中划线(-)、点(.)组成(其中两点不能相连,点不能与中划线相连),小写字母或数字结尾的1到63字符的字符串。 开启快照保留时间 打开开关,填写快照保留天数。未开启开关,默认为永久。 快照过期后,仍会占用配额,需定期审核过期镜像快照后删除。 容器镜像 第三方可以直接输入镜像地址,或单击“选择容器镜像”按钮,进入镜像列表,选择镜像。 我的镜像:展示了您上传到 容器镜像服务 的镜像。如果您想要在容器 镜像服务 中上传镜像,请参考客户端上传镜像或页面上传镜像。 如您是 IAM 用户,您需要参考(可选)上传镜像进行权限设置后才可使用账号的私有镜像。 镜像单层解压后的实际大小不能超过20G。 开源镜像中心:展示了镜像中心的公共镜像。 共享镜像:展示了容器镜像服务中他人共享的镜像。 镜像指定完成后,需要选择镜像的版本号。您还可以单击下方“添加容器镜像”按钮,添加多个容器镜像。 镜像快照大小 填写镜像快照大小,最小为10GiB,范围为10-400G。推荐按照所有缓存镜像大小总和的2倍设置快照大小。 添加镜像快照构建信息。 命名空间 选择已有命名空间或单击“创建命名空间”按钮,创建新的命名空间。 若您要缓存的镜像包含私有镜像仓库,请确保命名空间绑定的vpc与私有镜像仓库网络互通。如需缓存公网镜像,需要命名空间绑定的vpc配置SNAT规则,参考从容器访问公网。 镜像仓库访问凭证 若您容器里选择的镜像是私有的,请输入所选镜像的仓库地址、用户名、密码,用来拉取镜像。单击“添加凭证”,可添加多个。 勾选“镜像快照默认使用 2核4G 规格的CCI实例进行制作,收取费用为制作过程中产生的费用”。 确认镜像快照配置信息和费用显示正常,单击“确认创建”。
  • 操作步骤 安装“云原生日志采集插件”和“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内容器日志采集 + CCI集群容器日志采集 CCE集群内的工作负载支持三种日志采集类型: 容器标准输出:采集集群内指定容器日志,仅支持Stderr和Stdout的日志。 容器文件日志:采集集群内指定容器内的文件日志。 节点文件日志:采集集群内指定节点路径的文件。 须知: 弹性到CCI的工作负载仅支持“容器文件日志”类型的采集策略。 pod挂载多种类型存储目录 pod通过指定系统、设备、cgroup、tmpfs等挂载目录下的日志无法被采集。 弹性CCI的pod关联多个日志采集策略 为了更好的采集日志,建议为pod预留充足内存。pod被第一个日志策略关联请预留至少50MB内存。每增加一个关联日志采集策略,建议多预留5MB内存。 超长日志采集 单条日志最大容量为250KB,超过会被丢弃。 超长日志文件名 容器中长度超过190的日志文件无法被采集。 日志采集策略中,最长文件名不能超过255。 日志采集速率 单个Pod单行日志采集速率不超过10000条/秒,多行日志不超过2000条/秒。 最大采集文件数 单个Pod所有日志采集策略监听的文件数不超过2000个文件。
  • 方式二:使用profile控制pod调度到CCI 登录集群节点,配置profile资源。 vi profile.yaml 限制CCE集群最大负载数,配置local maxNum和scaleDownPriority的profile模板示例如下: apiVersion: scheduling.cci.io/v1 kind: ScheduleProfile metadata: name: test-cci-profile namespace: default spec: objectLabels: matchLabels: app: nginx strategy: localPrefer location: local: maxNum: 20 # 当前暂不支持local/cci同时配置maxNum scaleDownPriority: 10 cci: {} 限制CCI集群最大负载数,配置cci maxNum和scaleDownPriority的profile的模板示例如下: apiVersion: scheduling.cci.io/v1 kind: ScheduleProfile metadata: name: test-cci-profile namespace: default spec: objectLabels: matchLabels: app: nginx strategy: localPrefer location: local: {} cci: maxNum: 20 # 当前暂不支持local/cci同时配置maxNum scaleDownPriority: 10 local字段和cci字段不可以同时设置maxNum。 参数说明: strategy:调度策略选择。可配置策略值:auto、enforce、localPrefer。详情请参见调度策略。 location内可配置线下IDC和云上pod限制数量maxNum和pod缩容优先级scaleDownPriority,maxNum取值范围[0~int32],scaleDownPriority取值范围[-100, 100]。
  • 方式一:通过配置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
  • 昇腾NPU预选调度 支持昇腾NPU HC CS 亲和预选调度 参数名 取值范围 默认值 是否允许修改 作用范围 cce-gpu-topology-predicate true/false true 允许 CCE Standard/ CCE Turbo 一台AI服务器上共有8块NPU 1980芯片,4P * 2方式。每4块NPU 1980芯片之间通过HCCS互联,4块之间通过PCIe swith互联。 HCCS互联的4块NPU 1980芯片较PCIe swith互联有更大的带宽,可以针对HCCS做亲和性调度发挥HCCS的带宽优势。 配置建议: 使用NPU的集群默认开启,不使用NPU资源可以关闭
  • 公平调度 DRF调度算法(Dominant Resource Fairness)可以根据作业使用的主导资源份额进行调度,资源份额较小的作业将具有更高优先级。 参数名 取值范围 默认值 是否允许修改 作用范围 drf true/false true 允许 CCE Standard/CCE Turbo DRF调度算法的全称是Dominant Resource Fairness,是基于容器组Domaint Resource的调度算法。volcano-scheduler观察每个Job请求的主导资源,并将其作为对集群资源使用的一种度量,根据Job的主导资源,计算Job的share值,在调度的过程中,具有较低share值的Job将具有更高的调度优先级。这样能够满足更多的作业,不会因为一个资源份额较大业务,导致大批资源份额小的业务无法调度。DRF调度算法能够确保在多种类型资源共存的环境下,尽可能满足分配的公平原则。 配置建议: DRF调度算法优先考虑集群中业务的吞吐量,适用单次AI训练、单次大数据计算以及查询等批处理小业务场景。
  • 组调度 将一组Pod看做一个整体进行资源分配。观察Job下的Pod已调度数量是否满足了最小运行数量,当Job的最小运行数量得到满足时,为Job下的所有Pod执行调度动作,否则,不执行。 参数名 取值范围 默认值 是否允许修改 作用范围 gang true/false true 允许 CCE Standard/CCE Turbo 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的调度策略对于集群资源的利用率的提升是非常明显的。
  • 专家模式 如果上述Volcano的典型配置无法满足您的业务场景,可以使用专家模式定制专属于您的调度策略 参数名 取值范围 默认值 是否允许修改 作用范围 expert-mode json格式 actions: "allocate, backfill" tiers: - plugins: - name: priority - name: gang enablePreemptable: false - name: conformance - plugins: - name: drf enablePreemptable: false - name: predicates - name: nodeorder - plugins: - name: cce-gpu-topology-predicate - name: cce-gpu-topology-priority - name: xgpu - plugins: - name: nodelocalvolume - name: nodeemptydirvolume - name: nodeCSIscheduling - name: networkresource 允许 CCE Standard/CCE Turbo volcano-scheduler是负责Pod调度的组件,它由一系列action和plugin组成。action定义了调度各环节中需要执行的动作;plugin根据不同场景提供了action 中算法的具体实现细节。 您可以根据官方文档中对每个action和plugin的说明,定义专属于您的调度策略。 详情可参见:https://support.huaweicloud.com/usermanual-cce/cce_10_0193.html#section1 配置建议: 使用默认配置 该项配置有一定的使用门槛,需要对调度有深入了解的客户,才可以根据官方文档进行定制化修改调度策略。
  • 在离线业务混部 在离线业务混部是将多种应用在一个集群内部署,通过预测分析应用特性,实现业务对集群资源的充分利用; 参数名 取值范围 默认值 是否允许修改 作用范围 colocation-enable true/false false 允许 CCE Turbo 从集群维度来看,混部是将多种应用在一个集群内部署,通过预测分析应用特性,实现业务对集群资源的充分利用;从节点维度来看,混部是将多个容器部署在同一个节点上,这些容器内的应用既包括在线类型,也包括离线类型。根据应用对资源质量需求的差异,在线应用可以归纳为延时敏感型LS(Latency Sensitive),通常对请求压力(QPS)或访问延迟(RT)等指标有明确的要求,对资源质量较为敏感;离线应用可以归纳为资源消耗型BE(Best Effort),通常是一些计算密集型的任务类应用,有较好的容错重试能力,对资源质量的要求相对较为宽松。 配置建议: 只有在HCE 2.0的OS节点支持
  • 节点优选策略 优选节点的常用算法,通过模拟分配从各个维度为节点打分,找到最适合当前作业的节点。 参数名 取值范围 默认值 是否允许修改 作用范围 nodeorder 开启和关闭插件:true/false 打分参数: nodeaffinity.weight:非负整数。 podaffinity.weight:非负整数。 leastrequested.weight:非负整数。 balancedresource.weight:非负整数。 mostrequested.weight:非负整数。 tainttoleration.weight:非负整数。 imagelocality.weight:非负整数。 selectorspread.weight:非负整数。 volumebinding.weight:非负整数。 podtopologyspread.weight:非负整数。 开启插件:TRUE nodeaffinity.weight:1。 podaffinity.weight:1。 leastrequested.weight:1。 balancedresource.weight:1。 mostrequested.weight:0。 tainttoleration.weight:1。 imagelocality.weight:1。 selectorspread.weight:0。 volumebinding.weight:1。 podtopologyspread.weight:2。 允许 CCE Standard/CCE Turbo 打分参数: nodeaffinity.weight:节点亲和性优先调度,默认值是1。 podaffinity.weight:Pod亲和性优先调度,默认值是1。 leastrequested.weight:资源分配最少的节点优先,默认值是1。 balancedresource.weight:节点上面的不同资源分配平衡的优先,默认值是1。 mostrequested.weight:资源分配最多的节点优先,默认值是0。 tainttoleration.weight:污点容忍高的优先调度,默认值是1。 imagelocality.weight:节点上面有Pod需要镜像的优先调度,默认值是1。 selectorspread.weight:把Pod均匀调度到不同的节点上,默认值是0。 volumebinding.weight:Local PV延迟绑定调度,默认值是1。 podtopologyspread.weight:Pod拓扑调度,默认值是2。 配置建议: 建议使用默认配置,如果业务有特殊的述求,可以根据业务实际场景调整各权重值。 增大策略对应的权重值,可以使该策略在节点打分时发挥更打的影响力。 NodeOrder和Binpack对某个节点的给出的基础分值,并根据对应的权重值进行倍数放大,调整插件中某个策略的权重值后,该策略对于节点打分的整体影响力增加,其他插件对节点评分的影响力将会同步被削弱。
  • 密钥类型 密钥的子类型 参数名 取值范围 默认值 是否允许修改 作用范围 type Opaque:一般密钥类型。 kubernetes.io/dockerconfigjson:存放拉取私有仓库镜像所需的认证信息。 kubernetes.io/tls:Kubernetes的TLS密钥类型,用于存放7层负载均衡服务所需的证书 IngressTLS:CCE提供的TLS密钥类型,用于存放7层负载均衡服务所需的证书。 其他:若需要创建其他自定义类型的密钥,可手动输入密钥类型。 无 允许 - 镜像仓库凭据、负载均衡证书等常见密钥应用场景存在相应的分类,系统会对此类型密钥的数据进行基本的格式校验,无明确分类的密钥可选择一般密钥类型 配置建议: 应用场景明确的密钥建议优先指定为相应密钥类型
  • Nodeport类型服务端口范围 service的NodePort模式下能够使用的主机端口号范围,默认是30000-32767 参数名 取值范围 默认值 是否允许修改 作用范围 service-node-port-range 20106-32767 30000-32767 允许 CCE Standard/CCE Turbo 此配置是Nodeport类型的service可分配端口范围 配置建议: 30000-32767 端口号小于20106会和CCE组件的健康检查端口冲突,引发集群不可用 端口号高于32767会和net.ipv4.ip_local_port_range范围冲突,影响性能
  • 密钥数据 密钥承载的数据内容 参数名 取值范围 默认值 是否允许修改 作用范围 data 数据为key:value键值对形式的数组,其中 key: 由小写字母、数字、中划线(-)、下划线(_)、点(.)组成,长度不超过253位 value值无特别限制 整体数据量不超过1MB大小 无 允许 - 密钥承载的配置信息主体内容 配置建议: 建议将配置项与data中的键一一对应,避免将多项配置结构整体作为data中的一项来维护,配置更新过程中可能产生误覆盖等问题 密钥信息在落盘存储时会加密,但用户查询密钥时系统会解密后返回。因此,不能依赖密钥的加密机制保证用户态的信息安全,敏感信息需要用户额外加密后再配置到data字段, 否则可能导致敏感信息泄露等安全问题
  • 新增特性及特性增强 Service的负载均衡IP模式(Alpha) 在Kubernetes1.29版本,Service的负载均衡IP模式以Alpha版本正式发布。其在Service的status中新增字段ipMode,用于配置集群内Service到Pod的流量转发模式。当设置为VIP时,目的地址为负载均衡IP和端口的流量将由kube-proxy重定向到目标节点,当设置为Proxy时,流量将被发送到负载均衡器,然后由负载均衡器转发到目标节点。这项特性将有助于解决流量绕过负载均衡器缩导致的负载均衡器功能缺失问题。更多使用细节请参考Service的负载均衡IP模式。 NFTables代理模式(Alpha) 在Kubernetes1.29版本,NFTables代理模式以Alpha版本正式发布。该特性允许kube-proxy运行在NFTables模式,在该模式下,kube-proxy使用内核netfilters子系统的nftables API来配置数据包转发规则。更多使用细节请参考NFTables代理模式。 未使用容器镜像的垃圾收集(Alpha) 在Kubernetes1.29版本,未使用容器镜像的垃圾收集以Alpha版本正式发布。该特性允许用户为每个节点配置本地镜像未被使用的最长时间,超过这个时间镜像将被垃圾回收。配置方法为使用kubelet配置文件中的ImageMaximumGCAge字段。更多使用细节请参考未使用容器镜像的垃圾收集。 PodLifecycleSleepAction(Alpha) 在Kubernetes1.29版本,PodLifecycleSleepAction以Alpha版本正式发布。该特性在容器生命周期回调中引入了Sleep回调程序,可以配置让容器在启动后和停止前暂停一段指定的时间。更多使用细节请参考PodLifecycleSleepAction。 KubeletSeparateDiskGC(Alpha) 在Kubernetes1.29版本,KubeletSeparateDiskGC以Alpha版本正式发布。该特性启用后,即使在容器镜像和容器位于独立文件系统的情况下,也能进行垃圾回收。 matchLabelKeys/mismatchLabelKeys(Alpha) 在Kubernetes1.29版本,matchLabelKeys/mismatchLabelKeys以Alpha版本正式发布。该特性启用后,在Pod的亲和/反亲和配置中新增了matchLabelKeys/mismatchLabelKeys字段,可配置更丰富的Pod间亲和/反亲和策略。更多使用细节请参考matchLabelKeys/mismatchLabelKeys。 clusterTrustBundle投射卷(Alpha) 在Kubernetes1.29版本,clusterTrustBundle投射卷以Alpha版本正式发布。该特性启用后,支持将ClusterTrustBundle对象以自动更新的文件的形式注入卷。更多使用细节请参考clusterTrustBundle投射卷。 基于运行时类的镜像拉取(Alpha) 在Kubernetes1.29版本中,基于运行时类的镜像拉取以Alpha版本正式发布。该特性启用后, kubelet 会通过一个元组(镜像名称,运行时处理程序)而不仅仅是镜像名称或镜像摘要来引用容器镜像。 你的容器运行时可能会根据选定的运行时处理程序调整其行为。基于运行时类来拉取镜像对于基于VM的容器会有帮助。更多使用细节请参考基于运行时类的镜像拉取。 PodReadyToStartContainers状况达到Beta 在Kubernetes1.29版本,PodReadyToStartContainers状况特性达到Beta版本。其在Pod的status中新增了一个名为PodReadyToStartContainers的Condition,该Condition为true表示Pod的沙箱已就绪,可以开始创建业务容器。该特性使得集群管理员可以更清晰和全面地查看 Pod 沙箱的创建完成和容器的就绪状态,增强了指标监控和故障排查能力。更多使用细节请参考PodReadyToStartContainersCondition。 Job相关特性 Pod更换策略达到Beta 在Kubernetes1.29版本,Pod更换策略特性达到Beta版本。该特性确保只有Pod达到Failed阶段(status.phase: Failed)才会被替换,而不是当删除时间戳不为空时,Pod仍处于删除过程中就重建Pod,以此避免出现2个Pod同时占用索引和节点资源。 逐索引的回退限制达到Beta 在Kubernetes1.29版本,逐索引的回退限制特性达到Beta版本。默认情况下,带索引的 Job(Indexed Job)的 Pod 失败情况会被统计下来,受 .spec.backoffLimit 字段所设置的全局重试次数限制。这意味着,如果存在某个索引值的 Pod 一直持续失败,则会 Pod 会被重新启动,直到重试次数达到限制值。 一旦达到限制值,整个 Job 将被标记为失败,并且对应某些索引的 Pod 甚至可能从不曾被启动。该特性可以在某些索引值的 Pod 失败的情况下,仍完成执行所有索引值的 Pod,并且通过避免对持续失败的、特定索引值的Pod进行不必要的重试,更好的利用计算资源。 原生边车容器达到Beta 在Kubernetes1.29版本,原生边车容器特性达到Beta版本。其在initContainers中新增了restartPolicy字段,当配置为Always时表示启用边车容器。边车容器和业务容器部署在同一个Pod中,但并不会延长Pod的生命周期。边车容器常用于网络代理、日志收集等场景。更多使用细节请参考边车容器。 传统ServiceAccount令牌清理器达到Beta 在Kubernetes1.29版本,传统ServiceAccount令牌清理器特性达到Beta版本。其作为kube-controller-manager的一部分运行,每24小时检查一次,查看是否有任何自动生成的传统ServiceAccount令牌在特定时间段内(默认为一年,通过--legacy-service-account-token-clean-up-period指定)未被使用。如果有的话,清理器会将这些令牌标记为无效,并添加kubernetes.io/legacy-token-invalid-since标签,其值为当前日期。如果一个无效的令牌在特定时间段(默认为1年,通过--legacy-service-account-token-clean-up-period指定)内未被使用,清理器将会删除它。更多使用细节请参考传统ServiceAccount令牌清理器。 DevicePluginCDIDevices达到Beta 在Kubernetes1.29版本,DevicePluginCDIDevices特性达到Beta版本。该特性在DeviceRunContainerOptions增加CDIDevices字段,使得设备插件开发者可以直接将CDI设备名称传递给支持CDI的容器运行时。 PodHostIPs达到Beta 在Kubernetes1.29版本中,PodHostIPs特性达到Beta版本。该特性在Pod和downward API的Status中增加hostIPs字段,用于将节点IP地址暴露给工作负载。该字段是hostIP的双栈协议版本,第一个IP始终与hostIP相同。 API优先级和公平性达到GA 在Kubernetes1.29版本,API优先级和公平性(APF)特性达到GA版本。APF以更细粒度的方式对请求进行分类和隔离,提升最大并发限制,并且它还引入了空间有限的排队机制,因此在非常短暂的突发情况下,API 服务器不会拒绝任何请求。 通过使用公平排队技术从队列中分发请求,这样,一个行为不佳的控制器就不会导致其他控制器异常 (即使优先级相同)。更多使用细节请参考API优先级和公平性。 APIListChunking达到GA 在Kubernetes1.29版本,APIListChunking特性达到GA版本。该特性允许客户端在List请求中进行分页,避免一次性返回过多数据而导致的性能问题。 ServiceNodePortStaticSubrange达到GA 在Kubernetes1.29版本,ServiceNodePortStaticSubrange特性达到GA版本。该特性kubelet会根据Nodeport范围计算出预留地址大小,并将Nodeport划分为静态段和动态段。在Nodeport自动分配时,优先分配在动态段,这有助于减小指定静态段分配时的端口冲突。更多使用细节请参考ServiceNodePortStaticSubrange PersistentVolume的阶段转换时间戳达到Beta 在Kubernetes1.29版本,PersistentVolume的阶段转换时间戳特性达到Beta版本。该特性在PV的status中添加了一个lastPhaseTransitionTime字段,表示PV上一次phase变化的时间。通过该字段,集群管理员可以跟踪PV上次转换到不同阶段的时间,从而实现更高效、更明智的资源管理。更多使用细节请参考PersistentVolume的阶段转换时间戳。 ReadWriteOncePod达到GA 在Kubernetes1.29版本中,ReadWriteOncePod特性达到GA版本。该特性允许用户在PVC中配置访问模式为ReadWriteOncePod,确保同时只有一个 Pod能够修改存储中的数据,以防止数据冲突或损坏。更多使用细节请参考ReadWriteOncePod。 CSINodeExpandSecret达到GA 在Kubernetes1.29版本中,CSINodeExpandSecret特性达到GA版本。该特性允许在添加节点时将Secret身份验证数据传递到CSI驱动以供后者使用。 CRD验证表达式语言达到GA 在Kubernetes1.29版本中,CRD验证表达式语言特性达到GA版本。该特性允许用户在CRD中使用通用表达式语言(CEL)定义校验规则,相比webhook更加高效。更多使用细节请参考CRD校验规则。