华为云用户手册

  • 新增特性及特性增强 社区特性的Alpha阶段默认禁用、Beta阶段一般默认启用、GA阶段将一直默认启用,且不能禁用(会在后续版本中删除这个开关功能)。CCE对新特性的策略与社区保持一致。 版本偏差策略扩展至3个版本 从1.28控制平面/1.25 工作节点开始,Kubernetes版本偏差策略将支持的控制平面/工作节点偏差扩展到 3 个版本。 这使得节点的年度次要版本升级成为可能,同时保持受支持的次要版本。更多细节请参考版本偏差策略。 可追溯的默认 StorageClass 进阶至 GA 在Kubernetes 1.28版本,可追溯默认 StorageClass 赋值现已进阶至GA。 这项增强特性极大地改进了默认的StorageClasses为PersistentVolumeClaim (PVC) 赋值的方式。 PersistentVolume (PV) 控制器已修改为:当未设置 storageClassName 时,自动向任何未绑定的 PersistentVolumeClaim 分配一个默认的 StorageClass。此外,API 服务器中的 PersistentVolumeClaim 准入验证机制也已调整为允许将值从未设置状态更改为实际的 StorageClass 名称。更多使用细节请参考默认StorageClass赋值。 原生边车容器(Alpha) 在Kubernetes 1.28版本,原生边车容器以Alpha版本正式发布。其在 Init 容器中添加了一个新的 restartPolicy 字段, 该字段在 SidecarContainers 特性门控启用时可用。需要注意的是,原生边车容器目前仍有些问题需要解决,因此K8S社区建议仅在 Alpha 阶段的短期测试集群中使用边车功能。 更多使用细节请参考原生边车容器。 混合版本代理(Alpha) 在Kubernetes 1.28版本,发布了用于改进集群安全升级的新机制(混合版本代理)。该特性为Alpha特性。 当集群进行升级时,集群中不同版本的 kube-apiserver 为不同的内置资源集(组、版本、资源)提供服务。在这种情况下资源请求如果由任一可用的 apiserver 提供服务,请求可能会到达无法解析此请求资源的 apiserver 中,导致请求失败。该特性能解决该问题。(主要注意的是,CCE本身提供的升级能力即可做到无损升级,因此不存在该特性涉及的场景)。更多使用细节请参考混合版本代理。 节点非体面关闭特性达到 GA 在Kubernetes 1.28版本,节点非体面关闭特性达到GA阶段。当一个节点被关闭但没有被 Kubelet 的 Node Shutdown Manager 检测到时,StatefulSet 的 Pod 将会停留在终止状态,并且不能移动到新运行的节点上。当用户确认该节点已经处于不可恢复的情况下,可以手动为Node打上out-of-service的污点,以使得该节点上的StatefulSet的Pod和VolumeAttachments被强制删除,并在健康的Node上创建相应的Pod。更多使用细节请参考节点非体面关闭。 NodeSwap特性达到Beta 在Kubernetes 1.28版本,NodeSwap能力进阶至Beta版本。目前仍然处于默认关闭状态,需要使用NodeSwap门控打开。该特性可以为Linux节点上运行的Kubernetes工作负载逐个节点地配置内存交换。需要注意的是,该特性虽然进阶至Beta特性,但仍然存在一些需要增强的问题和安全风险。更多使用细节请参考NodeSwap特性。 Job相关特性 在Kubernetes 1.28版本,增加了Pod更换策略和基于索引的回退限制两个alpha特性。 Pod更换策略 默认情况下,当 Pod 进入终止(Terminating)状态(例如由于抢占或驱逐机制)时,Kubernetes 会立即创建一个替换的 Pod,因此这时会有两个 Pod 同时运行。 在Kubernetes 1.28版本中可以使用JobPodReplacementPolicy 来启用该特性。可以在Job的Spec中定义podReplacementPolicy,目前仅可设置为Failed。在设置为Failed之后,Pod 仅在达到 Failed 阶段时才会被替换,而不是在它们处于终止过程中(Terminating)时被替换。此外,你可以检查 Job 的 .status.termination 字段。该字段的值表示终止过程中的 Job 所关联的 Pod 数量。 逐索引的回退限制 默认情况下,带索引的 Job(Indexed Job)的 Pod 失败情况会被统计下来,受 .spec.backoffLimit 字段所设置的全局重试次数限制。这意味着,如果存在某个索引值的 Pod 一直持续失败,则会 Pod 会被重新启动,直到重试次数达到限制值。 一旦达到限制值,整个 Job 将被标记为失败,并且对应某些索引的 Pod 甚至可能从不曾被启动。此时逐索引的回退限制就显得有用。 在Kubernetes 1.28版本中,可以通过启用集群的 JobBackoffLimitPerIndex 特性门控来启用此特性。开启之后,允许在创建带索引的 Job(Indexed Job)时指定 .spec.backoffLimitPerIndex 字段。当某个Job的失败次数超过设定的上限时,将不再进行重试。 CEL相关特性 在Kubernetes 1.28版本,CEL能力进行了相应的增强。 CRD 使用 CEL 进行 Validate 的特性进阶至Beta 该特性在v1.25版本就已经升级为Beta版本。通过将 CEL 表达式直接集成在 CRD 中, 可以使开发者在不使用 Webhook 的情况下解决大部分对 CR 实例进行验证的用例。在未来的版本,将继续扩展 CEL 表达式的功能,以支持默认值和 CRD 转换。 基于CEL的准入控制进阶至Beta 基于通用表达式语言 (CEL) 的准入控制是可定制的,对于 kube-apiserver 接受到的请求,可以使用 CEL 表达式来决定是否接受或拒绝请求,可作为 Webhook 准入控制的一种替代方案。在 v1.28 中,CEL 准入控制被升级为 Beta,同时添加了一些新功能,包括但不限于: ValidatingAdmissionPolicy 类型检查现在可以正确处理 CEL 表达式中的 “authorizer” 变量。 ValidatingAdmissionPolicy 支持对 messageExpression 字段进行类型检查。 kube-controller-manager 组件新增 ValidatingAdmissionPolicy 控制器,用来对 ValidatingAdmissionPolicy 中的 CEL 表达式做类型检查,并将原因保存在状态字段中。 支持变量组合,可以在 ValidatingAdmissionPolicy 中定义变量,然后在定义其他变量时使用它。 新增 CEL 库函数支持对 Kubernetes 的 resource.Quantity 类型进行解析。 其它特性说明 在Kubernetes 1.28版本,ServiceNodePortStaticSubrange 特性为beta,允许保留静态端口范围,避免与动态分配端口冲突。具体细节请参考为NodePort Service分配端口时避免冲突。 在Kubernetes 1.28版本,增加了alpha特性ConsistentListFromCache,允许kube-apiserver从缓存中提供一致性列表,Get和List请求可以从缓存中读取数据,而不需要从etcd中获取。 在Kubernetes 1.28版本,kubelet能够配置drop-in目录(alpha特性)。该特性允许向kubelet添加对“--config-dir”标志的支持,以允许用户指定一个插入目录,该目录将覆盖位于/etc/kubernetes/kubelet.conf位置的Kubelet的配置。 在Kubernetes 1.28版本,ExpandedDNSConfig 升级至GA,默认会被打开。该参数用于允许扩展DNS的配置。 在Kubernetes 1.28版本,提供Alpha特性CRD Validation Ratcheting。该特性允许Patch或者Update请求没有更改任何不合法的字段,将允许CR验证失败。 在Kubernetes 1.28版本,kube-controller-manager添加了--concurrent-cron-job-syncs flag用来设置cron job controller的workers数。
  • 特性门禁及命令行参数 在Kubernetes 1.28版本,kubelet移除了flag –short。因此kubectl version 默认输出与kubectl version –short相同。 在Kubernetes 1.28版本,kube-controller-manager废弃flag--volume-host-cidr-denylist和--volume-host-allow-local-loopback。--volume-host-cidr-denylist是用逗号分隔的一个CIDR范围列表,禁止使用这些地址上的卷插件。--volume-host-allow-local-loopback为false时,禁止本地回路IP地址和--volume-host-cidr-denylist中所指定的CIDR范围。 在Kubernetes 1.28版本,kubelet --azure-container-registry-config 被弃用并在未来的版本中会被删除。 请使用 --image-credential-provider-config 和 --image-credential-provider-bin-dir 来设置。 在Kubernetes 1.28版本,kube-scheduler: 删除了 --lock-object-namespace 和 --lock-object-name。 请使用 --leader-elect-resource-namespace 和 --leader-elect-resource-name 或 ComponentConfig 来配置这些参数。(--lock-object-namespace用来定义锁对象的命名空间,--lock-object-name用来定义锁对象的名称) 在Kubernetes 1.28版本,KMSv1 已弃用,以后只会接收安全更新。请改用 KMSv2。在未来版本中, 设置 --feature-gates=KMSv1=true 以使用已弃用的 KMSv1 功能。 在Kubernetes 1.28版本,移除了如下特性门禁:DelegateFSGroupTo CS IDriver、DevicePlugins、KubeletCredentialProviders、MixedProtocolLBService、ServiceInternalTrafficPolicy、ServiceIPStaticSubrange、EndpointSliceTerminatingCondition。
  • 重要说明 在Kubernetes 1.28版本,调度框架发生变化,减少无用的重试,从而提高调度程序的整体性能。如果开发人员在集群中使用了自定义调度程序插件,请参见调度框架变化进行适配升级。 在Kubernetes 1.28 版本,Ceph FS 树内插件已在 v1.28 中弃用,并计划在 v1.31 中删除(社区没有计划进行 CSI 迁移)。 建议使用 Ceph CSI 第三方存储驱动程序作为替代方案。 在Kubernetes 1.28 版本,Ceph RBD 树内插件已在 v1.28 中弃用,并计划在 v1.31 中删除(社区没有计划进行 CSI 迁移)。建议使用 RBD 模式的 Ceph CSI 第三方存储驱动程序作为替代方案。
  • (停止维护)Kubernetes 1.9及之前版本说明 云容器引擎(CCE)严格遵循社区一致性认证。本文介绍CCE发布Kubernetes 1.9及之前版本所做的变更说明。 表1 v1.9及之前版本集群说明 Kubernetes版本(CCE增强版) 版本说明 v1.9.10-r2 主要特性: ELB负载均衡 支持源IP跟后端服务会话保持 v1.9.10-r1 主要特性: 支持对接SFS存储 支持Service自动创建二代ELB 支持公网二代ELB透传源IP 支持设置节点最大实例数maxPods v1.9.10-r0 主要特性: kubernetes对接ELB/Ingress,新增流控机制 Kubernetes同步社区1.9.10版本 支持Kubernetes RBAC能力授权 问题修复: 修复操作系统cgroup内核BUG导致概率出现的节点内存泄漏问题 v1.9.7-r1 主要特性: 增强PVC和PV事件的上报机制,PVC详情页支持查看事件 支持对接第三方认证系统 集群支持纳管EulerOS2.3的物理机 数据盘支持用户自定义分配比例 裸金属场景支持对接EVS云硬盘存储 裸金属场景下支持IB网卡 裸金属场景支持通过CM-v3接口创建节点 v1.9.7-r0 主要特性: 新建集群的Docker版本升级到1706 支持DNS级联 支持插件化管理 Kubernetes同步社区1.9.7版本 支持7层ingress的https功能 有状态工作负载支持迁移调度更新升级 v1.9.2-r3 主要特性: 集群支持创建/纳管CentOS7.4操作系统的节点 kubernetes的Service支持对接DNAT网关服务 NetworkPolicy能力开放 增强型ELB支持Service配置多个端口 问题修复: 修复kubernetes资源回收过程中连不上kube-apiserver导致pod残留的问题 修复节点弹性扩容数据不准确的问题 v1.9.2-r2 主要特性: 经典型ELB支持自定义健康检查端口 经典型ELB性能优化 ELB四层负载均衡支持修改Service的端口 问题修复: 修复网络插件防止健康检查概率死锁问题 修复高可用集群haproxy连接数限制问题 v1.9.2-r1 主要特性: Kubernetes同步社区1.9.2版本 集群节点支持CentOS 7.1操作系统 支持GPU节点,支持GPU资源限制 支持web-terminal插件 v1.7.3-r13 主要特性: 新建集群的Docker版本升级到1706 支持DNS级联 支持插件化管理 增强PVC和PV事件的上报机制 裸金属场景支持对接OBS对象存储 v1.7.3-r12 主要特性: 集群支持创建/纳管CentOS7.4操作系统的节点 kubernetes的Service支持对接DNAT网关服务 NetworkPolicy能力开放 增强型ELB支持Service配置多个端口 问题修复: 修复kubernetes资源回收过程中连不上kube-apiserver导致pod残留的问题 修复节点弹性扩容数据不准确的问题 事件老化周期提示修正:集群老化周期为1小时 v1.7.3-r11 主要特性: 经典型ELB支持自定义健康检查端口 经典型ELB性能优化 ELB四层负载均衡支持修改Service的端口 支持删除命名空间 支持EVS云硬盘存储解绑 支持配置迁移策略 问题修复: 修复网络插件防止健康检查概率死锁问题 修复高可用集群haproxy连接数限制问题 v1.7.3-r10 主要特性: 容器网络支持Overlay L2模式 集群节点支持GPU类型虚机 集群节点支持CentOS 7.1操作系统,支持操作系统选择 Windows集群支持对接二代ELB 支持弹性文件服务SFS导入 裸金属场景支持对接SFS文件存储、OBS对象存储 v1.7.3-r9 主要特性: 工作负载支持跨AZ部署 容器存储支持OBS 对象存储服务 支持ELB L7负载均衡 Windows集群支持EVS存储 裸金属场景支持devicemapper direct-lvm模式 v1.7.3-r8 主要特性: 集群支持节点弹性扩容 支持纳管ARM节点 v1.7.3-r7 主要特性: 容器隧道网络集群支持纳管SUSE 12sp2节点 docker支持direct-lvm模式挂载devicemapper 集群支持安装dashboard 支持创建Windows集群 v1.7.3-r6 主要特性: 集群存储对接原生EVS接口 v1.7.3-r5 主要特性: 支持创建HA高可靠集群 问题修复: 节点重启后容器网络不通 v1.7.3-r4 主要特性: 集群性能优化 裸金属场景支持对接ELB v1.7.3-r3 主要特性: 容器存储支持KVM虚拟机挂载 v1.7.3-r2 主要特性: 容器存储支持SFS文件存储 工作负载支持自定义应用日志 开放工作负载优雅缩容 问题修复: 修复容器存储AK/SK会过期的问题 v1.7.3-r1 主要特性: kube-dns支持外部域名解析 v1.7.3-r0 主要特性: Kubernetes同步社区1.7.3版本 支持ELB负载均衡 容器存储支持XEN虚拟机挂载 容器存储支持EVS云硬盘存储 父主题: Kubernetes版本发布记录
  • 主要特性 Kubernetes 1.25版本 Pod Security Admission进入稳定阶段,并移除PodSecurityPolicy PodSecurityPolicy被废弃,并提供Pod Security Admission取代,具体的迁移方法可参见从PodSecurityPolicy迁移到内置的PodSecurity准入控制器。 Ephemeral Containers进入稳定阶段 临时容器是在现有的Pod中存在有限时间的容器。它对故障排除特别有用,特别是当需要检查另一个容器,但因为该容器已经崩溃或其镜像缺乏调试工具不能使用kubectl exec时。 对cgroups v2的支持进入稳定阶段 Kubernetes支持cgroups v2,与cgroups v1相比提供了一些改进,详情请参见cgroups v2。 SeccompDefault提升到Beta状态 如果要开启该特性,需要给kubelet增加启动参数为--seccomp-default=true,这样会默认开启seccomp为RuntimeDefault,提升整个系统的安全。1.25集群将不再支持使用注解“seccomp.security.alpha.kubernetes.io/pod”和“container.seccomp.security.alpha.kubernetes.io/annotation”来使用seccomp,请使用pod或container中“securityContext.seccompProfile”字段替代,详情请参见为Pod或容器配置安全上下文。 特性开启后可能应用所需的系统调用会被runtime限制,所以开启后应确保在测试环境调试,不会对应用造成影响。 网络策略中的EndPort进入稳定阶段 Network Policy中的EndPort已进入稳定状态,该特性于1.21版本合入。主要是在NetworkPolicy新增EndPort,可以指定一个Port范围,避免声明每一个Port。 本地临时容器存储容量隔离进入稳定阶段 本地临时存储容量隔离功能提供了对Pod之间本地临时存储容量隔离的支持,如EmptyDir。因此,如果一个Pod对本地临时存储容量的消耗超过该限制,就可以通过驱逐Pod来硬性限制其对共享资源的消耗。 CRD验证表达式语言升级为Beta阶段 CRD验证表达式语言已升级为 beta 版本, 这使得声明如何使用通用表达式语言(CEL)验证自定义资源成为可能。 请参考验证规则指导。 引入KMS v2 API 在Kubernetes 1.25版本,引入KMS v2 alpha1 API以提升性能,实现轮替与可观察性改进。 此API使用AES-GCM替代了AES-CBC,通过DEK实现静态 数据加密 (Kubernetes Secrets),此过程中无需您额外操作,且支持通过AES-GCM和AES-CBC进行读取。 更多信息,请参考使用 KMS provider进行数据加密指南。 Pod新增网络就绪状况 Kubernetes 1.25引入了对kubelet所管理的新的Pod状况PodHasNetwork的Alpha支持, 该状况位于Pod的status字段中 。详情请参见Pod网络就绪。 应用滚动上线所用的两个特性进入稳定阶段 在Kubernetes 1.25版本,StatefulSet的minReadySeconds进入稳定阶段,允许每个Pod等待一段预期时间来减缓StatefulSet的滚动上线。更多信息,请参见最短就绪秒数。 在Kubernetes 1.25版本,DaemonSet的maxSurge进入稳定阶段,允许DaemonSet工作负载在滚动上线期间在一个节点上运行同一 Pod的多个实例,有助于将DaemonSet的停机时间降到最低。DaemonSet不允许maxSurge和hostPort同时使用,因为两个活跃的Pod无法共享同一节点的相同端口。更多信息,请参见DaemonSet工作负载滚动上线。 对使用用户命名空间运行Pod提供Alpha支持 对使用user namespace运行Pod提供alpha支持,将Pod内的root用户映射到容器外的非零ID,使得从容器角度看是root身份运行,而从主机角度看是常规的非特权用户。目前尚处于内测阶段,需要开启特性门控UserNamespacesStatelessPodsSupport, 且要求容器运行时必须能够支持此功能。更多信息,请参见对使用user namespace运行Pod提供alpha支持。 Kubernetes 1.24版本 从kubelet中删除 Dockershim Dockershim自1.20版本被标废弃以来,在1.24版本正式从Kubelet代码中移除。如果还想使用Docker作为容器运行时的话,需要切换到cri-dockerd,或者使用其他支持CRI的运行时比如Containerd/CRI-O等。 从Docker Engine 切换到Containerd的流程请参见将节点容器引擎从Docker迁移到Containerd。 您需要注意排查是否有agent或者应用强依赖Docker Engine的,比如在代码中使用docker ps,docker run, docker inspect等,需要注意兼容多种runtime,以及切换到标准cri接口。 Beta APIs默认关闭 在社区移除一些长期Beta API的过程中发现,90%的集群管理员并没有关心Beta API默认开始,其实Beta特性是不推荐在生产环境中使用,但是因为默认的打开策略,导致这些API在生产环境中都被默认开启,这样会因为Beta特性的bug带来一些风险,以及升级的迁移的风险。所以在1.24版本开始,Beta API默认关闭,之前已经默认开启的Beta API会保持默认开启。 支持OpenAPI v3 在Kubernetes 1.24版本后,OpenAPI V3默认开启。 存储容量跟踪特性进入稳定阶段 在Kubernetes 1.24版本后,CSIStorageCapacity API支持显示当前可用的存储大小,确保Pod调度到足够存储容量的节点上,减少Volumes创建和挂载失败导致的Pod调度延迟,详细信息请参见存储容量。 gRPC 探针升级到Beta阶段 在Kubernetes 1.24版本后,gRPC探针进入Beta,默认可用特性门控参数GRPCContainerProbe,使用方式请参见配置探针。 特性门控LegacyServiceAccountTokenNoAutoGeneration默认启用 LegacyServiceAccountTokenNoAutoGeneration特性门控进入beta状态,默认为开启状态,开启后将不再为Service Account自动生成Secret Token。如果需要使用永不过期的Token,需要自己新建Secrets并挂载,详情请参见服务账号令牌Secret。 避免 IP 分配给服务的冲突 Kubernetes 1.24引入了一项新功能,允许为服务的静态IP地址分配软保留范围。 通过手动启用此功能,集群将从服务IP地址池中自动分配IP,从而降低冲突风险。 基于Go 1.18编译 在Kubernetes 1.24版本后,Kubernetes基于Go 1.18编译,默认不再支持SHA-1哈希算法验证证书签名,例如SHA1WithRSA、ECDSAWithSHA1算法,推荐使用SHA256算法生成的证书进行认证。 StatefulSet支持设置最大不可用副本数 在Kubernetes 1.24版本后,StatefulSets支持可配置maxUnavailable参数,使得滚动更新时可以更快地停止Pods。 节点非体面关闭进入Alpha阶段 在Kubernetes 1.24中,节点非体面关闭特性是Alpha版。当kubelet的节点关闭管理器可以检测到即将到来的节点关闭操作时,节点关闭才被认为是体面的。详情请参见处理节点非体面关闭。
  • 弃用和移除 Kubernetes 1.25版本 清理iptables链的所有权 Kubernetes通常创建iptables链来确保这些网络数据包到达, 这些iptables链及其名称属于Kubernetes内部实现的细节,仅供内部使用场景,目前有些组件依赖于这些内部实现细节,Kubernetes总体上不希望支持某些工具依赖这些内部实现细节。详细信息,请参见Kubernetes的iptables链不是API。 在Kubernetes 1.25版本后,Kubelet通过IPTablesCleanup特性门控分阶段完成迁移,是为了不在NAT表中创建iptables链,例如KUBE-MARK-DROP、KUBE-MARK-MASQ、KUBE-POSTROUTING。关于清理iptables链所有权的信息,请参见清理IPTables链的所有权。 存储驱动的弃用和移除,移除云服务厂商的in-tree卷驱动。 Kubernetes 1.24版本 在Kubernetes 1.24版本后,Service.Spec.LoadBalancerIP被弃用,因为它无法用于双栈协议。请使用自定义annotation。 在Kubernetes 1.24版本后,kube-apiserver移除参数--address、--insecure-bind-address、--port、--insecure-port=0。 在Kubernetes 1.24版本后,kube-controller-manager和kube-scheduler移除启动参数--port=0和--address。 在Kubernetes 1.24版本后,kube-apiserver --audit-log-version和--audit-webhook-version仅支持audit.k8s.io/v1,Kubernetes 1.24移除audit.k8s.io/v1[alpha|beta]1,只能使用audit.k8s.io/v1。 在Kubernetes 1.24版本后,kubelet移除启动参数--network-plugin,仅当容器运行环境设置为Docker时,此特定于Docker的参数才有效,并会随着Dockershim一起删除。 在Kubernetes 1.24版本后,动态日志清理功能已经被废弃,并在Kubernetes 1.24版本移除。该功能引入了一个日志过滤器,可以应用于所有Kubernetes系统组件的日志,以防止各种类型的敏感信息通过日志泄漏。此功能可能导致日志阻塞,所以废弃,更多信息请参见Dynamic log sanitization和 KEP-1753。 VolumeSnapshot v1beta1 CRD在Kubernetes 1.20版本中被废弃,在Kubernetes 1.24版本中移除,需改用v1版本。 在Kubernetes 1.24版本后,移除自1.11版本就废弃的service annotation tolerate-unready-endpoints,使用Service.spec.publishNotReadyAddresses代替。 在Kubernetes 1.24版本后,废弃metadata.clusterName字段,并将在下一个版本中删除。 Kubernetes 1.24及以后的版本,去除了kube-proxy监听NodePort的逻辑,在NodePort与内核net.ipv4.ip_local_port_range范围有冲突的情况下,可能会导致偶发的TCP无法连接的情况,导致健康检查失败、业务异常等问题。升级前,请确保集群没有NodePort端口与任意节点net.ipv4.ip_local_port_range范围存在冲突。更多信息,请参见Kubernetes社区PR。
  • 参考链接 社区v1.9与v1.11版本之间的CHANGE LOG v1.10到v1.11的变化: https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.11.md v1.9到v1.10的变化: https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.10.md
  • 弃用和移除 Kubernetes 1.27版本 在Kubernetes 1.27版本,针对卷扩展 GA 特性的以下特性门禁将被移除,且不得再在 --feature-gates 标志中引用。(ExpandCSIVolumes,ExpandInUsePersistentVolumes,ExpandPersistentVolumes) 在Kubernetes 1.27版本,移除--master-service-namespace 命令行参数。该参数支持指定在何处创建名为kubernetes的Service来表示 API服务 器。自v1.26版本已被弃用,1.27版本正式移除。 在Kubernetes 1.27版本,移除 ControllerManagerLeaderMigration 特性门禁。Leader Migration 提供了一种机制,让 HA 集群在升级多副本的控制平面时通过在 kube-controller-manager 和 cloud-controller-manager 这两个组件之间共享的资源锁,安全地迁移“特定于云平台”的控制器。特性自 v1.24 正式发布,被无条件启用, 在 v1.27 版本中此特性门禁选项将被移除。 在Kubernetes 1.27版本,移除 --enable-taint-manager 命令行参数。该参数支持的特性基于污点的驱逐已被默认启用, 且在标志被移除时也将继续被隐式启用。 在Kubernetes 1.27版本,移除--pod-eviction-timeout 命令行参数。弃用的命令行参数 --pod-eviction-timeout 将被从 kube-controller-manager 中移除。 在Kubernetes 1.27版本,移除 CSI Migration 特性门禁。CSI migration 程序允许从树内卷插件移动到树外 CSI 驱动程序。 CSI 迁移自 Kubernetes v1.16 起正式发布,关联的 CSIMigration 特性门禁将在 v1.27 中被移除。 在Kubernetes 1.27版本,移除 CSIInlineVolume 特性门禁。CSI Ephemeral Volume 特性允许在 Pod 规约中直接指定 CSI 卷作为临时使用场景。这些 CSI 卷可用于使用挂载的卷直接在 Pod 内注入任意状态,例如配置、Secret、身份、变量或类似信息。 此特性在 v1.25 中进阶至正式发布。因此,此特性门禁 CSIInlineVolume 将在 v1.27 版本中移除。 在Kubernetes 1.27版本,移除 EphemeralContainers 特性门禁。对于 Kubernetes v1.27,临时容器的 API 支持被无条件启用;EphemeralContainers 特性门禁将被移除。 在Kubernetes 1.27版本,移除 LocalStorageCapacityIsolation 特性门禁。Local Ephemeral Storage Capacity Isolation 特性在 v1.25 中进阶至正式发布。此特性支持 emptyDir 卷这类 Pod 之间本地临时存储的容量隔离, 因此可以硬性限制 Pod 对共享资源的消耗。如果本地临时存储的消耗超过了配置的限制,kubelet 将驱逐 Pod。 特性门禁 LocalStorageCapacityIsolation 将在 v1.27 版本中被移除。 在Kubernetes 1.27版本,移除 NetworkPolicyEndPort 特性门禁。Kubernetes v1.25 版本将 NetworkPolicy 中的 endPort 进阶至正式发布。 支持 endPort 字段的 NetworkPolicy 提供程序可用于指定一系列端口以应用 NetworkPolicy。 在Kubernetes 1.27版本,移除 StatefulSetMinReadySeconds 特性门禁。对于作为 StatefulSet 一部分的 Pod,只有当 Pod 至少在 minReadySeconds 中指定的持续期内可用(并通过检查)时,Kubernetes 才会将此 Pod 标记为只读。 该特性在 Kubernetes v1.25 中正式发布,StatefulSetMinReadySeconds 特性门禁将锁定为 true,并在 v1.27 版本中被移除。 在Kubernetes 1.27版本,移除 IdentifyPodOS 特性门禁。启用该特性门禁,你可以为 Pod 指定操作系统,此项特性支持自 v1.25 版本进入稳定。 IdentifyPodOS 特性门禁将在 Kubernetes v1.27 中被移除。 在Kubernetes 1.27版本,移除 DaemonSetUpdateSurge 特性门禁。Kubernetes v1.25 版本还稳定了对 DaemonSet Pod 的浪涌支持, 其实现是为了最大限度地减少部署期间 DaemonSet 的停机时间。 DaemonSetUpdateSurge 特性门禁将在 Kubernetes v1.27 中被移除。 在Kubernetes 1.27版本,移除 --container-runtime 命令行参数。kubelet 接受一个已弃用的命令行参数 --container-runtime, 并且在移除 dockershim 代码后,唯一有效的值将是 remote。 Kubernetes v1.27 将移除该参数,该参数自 v1.24 版本以来已被弃用。 Kubernetes 1.26版本 移除v2beta2版本的HorizontalPodAutoscaler API HorizontalPodAutoscaler的autoscaling/v2beta2 API版本将不再在1.26版本中提供,详情请参见各发行版本中移除的API。 用户应迁移至autoscaling/v2版本的API。 移除v1beta1版本的流量控制API组 在Kubernetes 1.26版本后,开始不再提供flowcontrol.apiserver.k8s.io/v1beta1 API版本的FlowSchema和PriorityLevelConfiguration,详情请参见各发行版本中移除的API。但此API从Kubernetes 1.23版本开始,可以使用flowcontrol.apiserver.k8s.io/v1beta2;从Kubernetes 1.26版本开始,可以使用flowcontrol.apiserver.k8s.io/v1beta3。 存储驱动的弃用和移除,移除云服务厂商的in-tree卷驱动。 移除kube-proxy userspace模式 在Kubernetes 1.26版本,Userspace代理模式已被移除,已弃用的Userspace代理模式不再受Linux或Windows支持。Linux用户应使用Iptables或IPVS,Windows用户应使用Kernelspace,现在使用--mode userspace会失败。 Windows winkernel kube-proxy不再支持Windows HNS v1 APIs。 弃用--prune-whitelist标志 在Kubernetes 1.26版本,为了支持Inclusive Naming Initiative,--prune-whitelist标志将被弃用,并替换为--prune-allowlist,该标志在未来将彻底移除。 移除动态Kubelet配置 DynamicKubeletConfig特性门控移除,通过API动态更新节点上的Kubelet配置。在Kubernetes 1.24版本中从Kubelet移除相关代码,在Kubernetes 1.26版本从APIServer移除相关代码,移除该逻辑有助于简化代码提升可靠性,推荐方式是修改Kubelet配置文件然后重启Kubelet。更多信息,请参见在Kubernetes 1.26版本从APIServer移除相关代码。 弃用kube-apiserver命令行参数 在Kubernetes 1.26版本,正式标记弃用 --master-service-namespace 命令行参数,它对APIServer没有任何效果。 弃用kubectl run命令行参数 在Kubernetes 1.26版本,kubectl run未使用的几个子命令将被标记为弃用,并在未来某个版本移除,包括--cascade、--filename、--force、--grace-period、--kustomize、--recursive、--timeout、--wait等这些子命令。 移除与日志相关的原有命令行参数 在Kubernetes 1.26版本,将移除一些与日志相关的命令行参数,这些参数在之前的版本已被弃用。
  • 资源变更与弃用 apps/v1beta1和apps/v1beta2下所有资源不再提供服务,使用apps/v1替代。 extensions/v1beta1下daemonsets、deployments、replicasets不再提供服务,使用apps/v1替代。 extensions/v1beta1下networkpolicies不再提供服务,使用networking.k8s.io/v1替代。 extensions/v1beta1下podsecuritypolicies不再提供服务,使用policy/v1beta1替代。 extensions/v1beta1 ingress v1.20版本不再提供服务,当前可使用networking.k8s.io/v1beta1。 scheduling.k8s.io/v1beta1 and scheduling.k8s.io/v1alpha1下的PriorityClass计划在1.17不再提供服务,迁移至scheduling.k8s.io/v1。 events.k8s.io/v1beta1中event series.state字段已废弃,将在1.18版本中移除。 apiextensions.k8s.io/v1beta1下CustomResourceDefinition已废弃,将再1.19不在提供服务,使用apiextensions.k8s.io/v1。 admissionregistration.k8s.io/v1beta1 MutatingWebhookConfiguration和ValidatingWebhookConfiguration已废弃,将在1.19不在提供服务,使用admissionregistration.k8s.io/v1替换。 rbac.authorization.k8s.io/v1alpha1 and rbac.authorization.k8s.io/v1beta1被废弃,使用rbac.authorization.k8s.io/v1替代,v1.20会正式停止服务。 storage.k8s.io/v1beta1 CSINode object废弃并会在未来版本中移除。
  • 其他废弃和移除 移除OutOfDisk node condition,改为使用DiskPressure。 scheduler.alpha.kubernetes.io/critical-pod annotation已被移除,如需要改为设置priorityClassName。 beta.kubernetes.io/os和beta.kubernetes.io/arch在1.14版本中已经废弃,计划在1.18版本中移除。 禁止通过--node-labels设置kubernetes.io和k8s.io为前缀的标签,老版本中kubernetes.io/availablezone该label在1.17中移除,整改为failure-domain.beta.kubernetes.io/zone获取AZ信息。 beta.kubernetes.io/instance-type被废弃,使用node.kubernetes.io/instance-type替代。 移除{kubelet_root_dir}/plugins路径。 移除内置集群角色system:csi-external-provisioner和system:csi-external-attacher。
  • 参考链接 社区v1.11与v1.13版本之间的CHANGELOG v1.12到v1.13的变化: https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.13.md v1.11到v1.12的变化: https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.12.md
  • 资源变更与弃用 extensions/v1beta1中Ingress已弃用,1.19正式暂停使用,迁移到networking.k8s.io/v1beta1 extensions/v1beta1中NetworkPolicy 1.16正式暂停使用,迁移到networking.k8s.io/v1 extensions/v1beta1中PodSecurityPolicy 1.16正式暂停使用,迁移到policy/v1beta1 extensions/v1beta1、apps/v1beta1或apps/v1beta2的DaemonSet、Deployment、和ReplicaSet,迁移至apps/v1,1.16版本暂停使用 PriorityClass升级到scheduling.k8s.io/v1,scheduling.k8s.io/v1beta1和scheduling.k8s.io/v1alpha1 1.17正式废弃 events.k8s.io/v1beta1 Event API中series.state字段废弃,将在1.18版本中移除
  • 参考链接 社区v1.13与v1.15版本之间的CHANGELOG v1.14到v1.15的变化: https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.15.md v1.13到v1.14的变化: https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.14.md
  • 服务转发模式 设置Service转发至后端容器Pod之间进行负载均衡的方式 参数名 取值范围 默认值 是否允许修改 作用范围 kubeProxyMode iptables/ipvs 无 支持创建集群时配置,不支持后续修改 CCE Standard/ CCE Turbo 服务转发模式,支持以下两种实现: iptables:社区传统的kube-proxy模式,完全以iptables规则的方式来实现service负载均衡。该方式最主要的问题是在服务多的时候产生太多的iptables规则,非增量式更新会引入一定的时延,大规模情况下有明显的性能问题。 ipvs:主导开发并在社区获得广泛支持的kube-proxy模式,采用增量式更新,吞吐更高,速度更快,并可以保证service更新期间连接保持不断开,适用于大规模场景。
  • IPv4 服务网段 同一集群下容器互相访问时使用的Service资源的网段。 参数名 取值范围 默认值 是否允许修改 作用范围 kubernetesSvcIpRange 无 无 支持创建集群时配置,不支持后续修改 CCE Standard/CCE Turbo 服务网段参数,kubernetes clusterIP取值范围,1.11.7版本及以上支持。创建集群时如若未传参,默认为"10.247.0.0/16"。
  • 容器网络网段列表 集群下容器所使用的网段列表 参数名 取值范围 默认值 是否允许修改 作用范围 ContainerNetwork.cidrs 容器网段的列表,支持1-20个容器网络网段 无 支持创建集群时配置,不支持后续修改 CCE Standard/CCE Turbo 容器网络网段列表。1.21及新版本集群使用cidrs字段,当集群网络类型为vpc-router类型时,支持多个容器网段;1.21之前版本若使用cidrs字段,则取值cidrs数组中的第一个cidr元素作为容器网络网段地址。
  • 控制节点子网 集群下控制节点使用的子网。 参数名 取值范围 默认值 是否允许修改 作用范围 HostNetwork.subnet 无 无 支持创建集群时配置,不支持后续修改 CCE Standard/CCE Turbo 用于创建控制节点的subnet的网络ID。获取方法如下: 方法1:登录虚拟私有云服务的控制台界面,单击VPC下的子网,进入子网详情页面,查找网络ID。 方法2:通过虚拟私有云服务的查询子网列表接口查询。
  • 网络模型 集群下容器网络使用的模型架构。 参数名 取值范围 默认值 是否允许修改 作用范围 ContainerNetwork.mode overlay_l2/vpc-router/eni 无 支持创建集群时配置,不支持后续修改 CCE Standard/CCE Turbo overlay_l2:容器隧道网络,通过OVS(OpenVSwitch)为容器构建的overlay_l2网络。 vpc-router:VPC网络,使用ipvlan和自定义VPC路由为容器构建的Underlay的l2网络。 配置建议: 优选CCE Turbo
  • 虚拟私有云 集群下控制节点和用户节点使用的虚拟私有云。 参数名 取值范围 默认值 是否允许修改 作用范围 HostNetwork.vpc 用户租户下存在的VPC ID 无 支持初始化时配置,不支持后续修改 CCE Standard/CCE Turbo 获取方法如下: 方法1:登录虚拟私有云服务的控制台界面,在虚拟私有云的详情页面查找VPC ID。 方法2:通过虚拟私有云服务的API接口查询。 配置建议: VPC在集群创建后无法修改,请对VPC下IP资源是否充足、是否计划与其他集群以及非容器业务共用VPC等因素进行评估,选择合适的VPC
  • 节点默认安全组 集群默认的Node节点安全组ID,不指定该字段系统将自动为用户创建默认Node节点安全组,指定该字段时集群将绑定指定的安全组。Node节点安全组需要放通部分端口来保证正常通信。 参数名 取值范围 默认值 是否允许修改 作用范围 HostNetwork.SecurityGroup 无 无 允许 CCE Standard/CCE Turbo 集群默认的Node节点安全组ID,不指定该字段系统将自动为用户创建默认Node节点安全组,指定该字段时集群将绑定指定的安全组。Node节点安全组需要放通部分端口来保证正常通信。
  • 容器网络网段 集群下容器使用的网段,决定了集群下容器的数量上限。创建后不可修改。 参数名 取值范围 默认值 是否允许修改 作用范围 ContainerNetwork.cidr 无 无 支持创建集群时配置,不支持后续修改 CCE Standard 集群下容器使用的网段,决定了集群下容器的数量上限。创建后不可修改。 手动设置网段:用户自定义容器使用的虚拟网段,不可与集群中其他资源使用的网段(节点子网、服务网段等)冲突。 自动设置网段: 系统随机分配一个不冲突的网段供用户使用,因后续不支持修改建议商用场景选择手动分配,确保网段符合用户诉求。
  • 可用区部署策略 优先模式:以拓扑域topology.kubernetes.io/zone为key做多实例副本软的反亲和部署。优先将插件的容器实例调度到不同可用区的节点上,如集群下节点不满足多可用区,插件实例将调度到单可用区下的不同节点。 强制模式:以拓扑域topology.kubernetes.io/zone为key做多实例副本硬反亲和部署。插件容器实例强制调度到不同可用区的节点上,如集群下节点支持的可用区数目小于实例数,插件实例将无法全部运行。 参数名 取值范围 默认值 是否允许修改 作用范围 availability-zone 优先模式/强制模式 优先模式 允许 CCE Standard/CCE Turbo 配置建议: 优先模式
  • 节点亲和 用户支持指定volcano插件的节点亲和调度策略 参数名 取值范围 默认值 是否允许修改 作用范围 affinity 不配置/亲和节点调度/亲和节点池调度/自定义亲和策略 不配置 允许 CCE Standard/CCE Turbo 不配置:插件实例不指定节点亲和调度。 指定节点调度:指定插件实例部署的节点。若不指定,将根据集群默认调度策略进行随机调度。 指定节点池调度:指定插件实例部署的节点池。若不指定,将根据集群默认调度策略进行随机调度。 自定义亲和策略:填写期望插件部署的节点标签实现更灵活的调度策略,若不填写将根据集群默认调度策略进行随机调度。 配置建议: 使用默认配置 同时设置多条自定义亲和策略时,需要保证集群中存在同时满足所有亲和策略的节点,否则插件实例将无法运行。
  • 企业项目 集群所归属的企业项目。企业项目是一种云资源管理方式,企业项目管理服务提供统一的云资源按项目管理,以及项目内的资源管理、成员管理。 参数名 取值范围 默认值 是否允许修改 作用范围 enterpriseProjectId 租户下已存在的企业项目ID default 在企业项目管理界面支持变更 CCE Standard/CCE Turbo 用户需要开通企业项目功能后才可配置企业项目。 集群所属的企业项目与集群下所关联的其他云服务资源所属的企业项目尽量保持一致 配置建议: 与资源标签用途类似,用户可以按照管理需求,将不同归属的集群规划到不同企业项目下进行治理,常见的划分维度包括业务领域、部门、环境归属(生产环境、测试环境)等
  • 集群规模 集群支持管理的最大节点数量,请根据业务场景选择。创建完成后支持扩容,不支持缩容。 参数名 取值范围 默认值 是否允许修改 作用范围 flavor cce.s1.small: 小规模单控制节点CCE集群(最大50节点) cce.s1.medium: 中等规模单控制节点CCE集群(最大200节点) cce.s2.small: 小规模多控制节点CCE集群(最大50节点) cce.s2.medium: 中等规模多控制节点CCE集群(最大200节点) cce.s2.large: 大规模多控制节点CCE集群(最大1000节点) cce.s2.xlarge: 超大规模多控制节点CCE集群(最大2000节点) cce.s1.small 不支持直接修改,仅支持通过集群规格变更修改 CCE Standard/CCE Turbo s1:单控制节点CCE集群。 s2:多控制节点CCE集群。 最大节点数:当前集群支持管理的最大节点规模,请根据业务需求选择。 单控制节点集群:普通集群是单控制节点,控制节点故障后,集群将不可用,但已运行工作负载不受影响。 多控制节点集群:即高可用集群,当某个控制节点故障时,集群仍然可用。 配置建议: 除用于试验性用途用户可以视情况选择单控制节点规格外,凡是对可靠性有要求的应用场景请务必选择多控制节点集群规格。 请结合业务最大预期规模选择合适的集群规格,同时预留一定的buffer(如业务规模评估在50节点规模左右,那么请选择50上一档位的规格,即200节点规格),集群使用过程中建议保持对集群管理面资源占用情况的监控跟踪,观察到资源存在压力时及时调整集群规格进行扩容,避免集群过载风险
  • 集群控制节点指定可用区 集群控制节点所处的可用区,以下两个参数不可同时指定。 参数名 取值范围 默认值 是否允许修改 作用范围 masters availabilityZone列表,用于指定master节点的可用区,该列表长度与集群的master节点数有关。例如3个master节点的集群示例如下: [ {"availabilityZone": "AZ1"}, {"availabilityZone": "AZ2"}, {"availabilityZone": "AZ3"} ] 无 支持初始化时配置,不支持后续修改 CCE Standard/CCE Turbo clusterAZ multi_az:随机多可用区,仅使用高可用集群时才可以配置多可用区。 指定AZ名称:例如“cn-east-3a”,表示将全部控制节点创建在该可用区下。 无 允许 CCE Standard/CCE Turbo
  • 集群控制节点操作系统架构 集群控制节点架构 参数名 取值范围 默认值 是否允许修改 作用范围 type VirtualMachine BareMetal Windows ARM64 VirtualMachine 支持初始化时配置,不支持后续修改 CCE Standard/CCE Turbo VirtualMachine:Master节点为x86架构服务器 ARM64: Master节点为鲲鹏(ARM架构)服务器
  • 集群描述 集群描述,对于集群使用目的的描述,可根据实际情况自定义,默认为空。 参数名 取值范围 默认值 是否允许修改 作用范围 description 仅支持utf-8编码 支持200个字符以内 无 允许 CCE Standard/CCE Turbo 集群描述,对于集群使用目的的描述,可根据实际情况自定义,默认为空。集群创建成功后可通过接口更新指定的集群来做出修改,也可在CCE控制台中对应集群的“集群详情”下的“描述”处进行修改。 配置建议: 用户根据实际情况自行定义
  • 集群CPU管理策略 提供的CPU管理策略为应用分配独占的CPU核(即CPU绑核),提升应用性能,减少应用的调度延迟。 参数名 取值范围 默认值 是否允许修改 作用范围 kubernetes.io/cpuManagerPolicy none/static 无 支持初始化时配置,不支持后续修改 CCE Standard/CCE Turbo 集群CPU管理策略。取值为none(或空值)或static,默认为none(或空值)。 none(或空值):关闭工作负载实例独占CPU核的功能,优点是CPU共享池的可分配核数较多 static:支持给节点上的工作负载实例配置CPU独占,适用于对CPU缓存和调度延迟敏感的工作负载,Turbo集群下仅对普通容器节点有效,安全容器节点无效。
  • 集群资源标签 为集群添加TMS资源标签,便于按照相应维度对集群资源和其他云服务资源进行统一检索和管理 参数名 取值范围 默认值 是否允许修改 作用范围 clusterTags 标签以key=value的形式赋值,其中key:最大长度36字符,由小写字母、数字、中划线(-)、下划线(_)组成 value:最大长度43字符,由小写字母、数字、中划线(-)、下划线(_)组成 无 允许 CCE Standard/CCE Turbo 每个集群最多支持添加20个标签 配置建议: 用户可以按照管理需求,将资源划分的维度以标签形式进行抽象,常见的划分维度包括业务领域、部门、环境归属(生产环境、测试环境)等
共100000条