1.36 版本信息和更新操作
查看 IBM Cloud® Kubernetes Service 的 1.36 版本的相关信息。 有关 Kubernetes 项目版本 1.36 的更多信息,请参阅 Kubernetes 的变更日志。
IBM Cloud Kubernetes Service 是根据CNCF Kubernetes 软件符合性认证计划,针对 1.36 版本的经认证的 Kubernetes 产品。 Kubernetes® 是“Linux 基金会”在美国及其他国家/地区的注册商标,其使用已获得“Linux 基金会”的许可。
发布时间表
下表列出了 IBM Cloud® Kubernetes Service 的 1.36 版本的预计发布时间表。 您可以将此信息用于规划,例如估算该版本可能停止支持的大致时间。
标记有短剑 (†) 的日期表示这是暂定时间,会随时更改。
| 版本 | 是否受支持? | 发布日期 | 不受支持的日期 |
|---|---|---|---|
| 1.36 | 是 | 2026年6月26日 | 2027年8月1日 † |
准备更新
如需查看更新集群时可能影响已部署应用的完整变更列表,请查阅版本 1.36 的《集群更新说明》( 社区版 Kubernetes 变更日志 )和《集群更新指南》( IBM 版本变更日志 )。 您还可以查阅 Kubernetes 有用的警告。
- Kubernetes API 服务器和 Konnectivity 隧道通过 443 端口提供服务
-
Kubernetes API 服务器和 Konnectivity 隧道现通过标准 HTTPS 端口 443 提供服务,而非动态分配的节点端口(例如,
20000–32767范围内的端口)。 流量通过基于主机名的路由被引导至正确的后端服务,这就是为什么尽管所有服务都共享443端口,但每个函数都有一个专用的主机名。 此更改使您能够更轻松地从受限的网络环境连接到集群,因为您不再需要在防火墙和出站控制中放行非标准端口。 您的集群通过其私有和公共服务端点公开了两个专门设计的主机名:<cluster>.api.<region-domain>— Kubernetes API 服务器端点<cluster>.tunnel.<region-domain>— 用于控制平面与工作节点之间通信的Konnectivity隧道端点
此功能自 IKS 1.36 版本起在以下区域提供:蒙特利尔(
ca-mon)、金奈(in-che)和孟买(in-mum)。其他区域的支持功能即将推出。如果您更新了一个使用公共服务端点的集群,那么仍引用公共服务端点 URL 的 kubeconfig 文件将继续使用旧端口,这会导致
kubectl命令因连接超时而失败。 要避免这种情况,请运行ibmcloud ks cluster config下载一个新的kubeconfig文件,或者手动将现有kubeconfig文件中的端口更新为443。- 新集群: 无需采取任何操作。 新建的集群会使用 443 端口作为端点,而您下载的 kubeconfig 文件已使用 443 端口。
- 仅使用私有服务端点的已更新集群: 无需立即采取任何行动。 升级后,针对旧版 NodePort 的现有连接仍可正常工作。 您下载的新 kubeconfig 使用 443 端口的端点。
- 自定义网络规则: 更新任何明确引用旧的高编号控制平面端口的防火墙、安全组或出站白名单规则,以便允许通过 443 端口进行出站 HTTPS 通信。 任何将先前高序号端口固定住的规则均可删除。
- 基于 IP 的白名单: 公共服务端点的 DNS 记录现在解析为 Akamai IP Protect (IPP) 前端 IP 地址,而不是之前的负载均衡器 (NLB) IP 地址。 如果您的防火墙或出站规则允许按目标 IP 地址向您的集群发送流量,请更新这些规则,使其使用当前的 Akamai IPP IP 地址范围。
- 现在已限制对 Kubernetes API 服务器的匿名访问
-
现在,对 Kubernetes API 服务器的匿名访问仅限于健康检查端点(
/healthz、/readyz、/livez、/livez/ping)。所有其他端点均需要身份验证(例如,/version)。此举可降低因 RBAC 配置错误而意外授予system:anonymous或system:unauthenticated权限所带来的风险。 - Kubernetes 仪表盘已弃用
-
开源的 Kubernetes 仪表盘现已弃用并归档。 当您升级到 1.36 时,Kubernetes 仪表板将不再安装在新部署的集群上,并会从早期版本的集群中移除。 “Headlamp”扩展 可作为 Kubernetes 界面的替代方案使用。
- NVIDIA GPU 驱动程序不再自动安装
-
从 Kubernetes 版本 1.36 开始,IBM Cloud Kubernetes Service 不再在 GPU 工作节点上自动安装 NVIDIA GPU 驱动程序。 您必须自行安装和管理 GPU 驱动程序,才能运行 GPU 工作负载。 如需了解更多信息,请参阅《 迁移到自管理型 GPU 驱动程序 》。
集群自动缩放器目前尚不支持 1.36 版本。 如果已安装自动缩放器,请勿将集群更新至 1.36 版本。
在更新主节点之前更新
请仔细检查以下必须在更新 Kubernetes 主节点之前进行的更改。
| 类型 | 描述 |
|---|---|
| 已移除: 内置的 Portworx 卷插件 | 在 Kubernetes 1.36 中,移除了内置的 Portworx 卷插件,从而完成了向 Portworx CSI 驱动程序的迁移。 CSIMigrationPortworx 功能门(自 1.33 起已标记为GA并锁定)以及alpha版 InTreePluginPortworxUnregister 功能门也被移除,所有树内 Portworx 卷操作均被重定向至CSI。 在更新之前,请确保已安装 Portworx CSI驱动程序,并且您的 StorageClass、PersistentVolume 和 PersistentVolumeClaim 资源均引用了该CSI驱动程序。 更新后,仍依赖 in-tree 插件的集群将无法访问 Portworx 卷。 |
| 更改: IP 和 CIDR 验证规则更加严格 | API 服务器中默认启用了“StrictIPCIDRValidation”功能开关。 存储 IP 或 CIDR 值的 API 字段不再接受带有多余前导零的地址(例如,010.000.000.005 而不是 10.0.0.5 ),也不再接受包含模糊主机位的 CIDR 值(例如,192.168.0.5/24 而不是 192.168.0.0/24 或 192.168.0.5/32 )。 在更新之前,请检查您用于管理 Service、NetworkPolicy 和 EndpointSlice 等资源的清单和工具,并更正任何非标准 IP 或 CIDR 值。 主服务器更新后,任何使用无效值创建或更新对象的请求都将被拒绝。 |
| 已更改: 重命名了控制平面指标 | volume_operation_total_errors 指标(kube-controller-manager)已更名为 volume_operation_errors_total,而 etcd_bookmark_counts 指标已更名为 etcd_bookmark_total。 如果您使用的自定义监控仪表板或告警规则中引用了旧的指标名称,请将其更新为新名称,以确保在控制平面更新后,监控功能仍能正常运行。 |
已移除: git-repo 音量插件 |
git-repo 音量插件默认处于禁用状态,且无法重新启用; GitRepoVolumeDriver 功能开关现已不再起作用。 自版本 1.33 起,IBM Cloud Kubernetes Service 已不再支持此卷类型。 如果仍有任何工作负载使用 gitRepo 卷,请将其迁移到 emptyDir 卷上,该卷由 init 容器生成,该容器通过
git 克隆了该仓库。 有关详细信息,请参阅《 移除内置的 gitRepo 卷驱动程序 》。 |
在更新主节点之后更新
请查看以下在更新 Kubernetes 主服务器后必须进行的更改。
| 类型 | 描述 |
|---|---|
已弃用: 服务 .spec.externalIPs |
Service 资源中的 .spec.externalIPs 字段已弃用,当设置该字段时,API 服务器现在会返回弃用警告。 计划停止使用 externalIPs,转而通过 LoadBalancer 服务或Ingress来路由外部流量。 如需了解更多信息,请参阅“外部 IP 地址”。 |
已更改: 默认的 kubectl debug 配置文件 |
kubectl debug 的默认配置文件已从 legacy 更改为 general。 如果您有依赖于“legacy”配置文件行为的脚本或运行手册,请显式传递 --profile=legacy。 legacy 配置文件计划在 Kubernetes 中移除 1.39。 如需了解更多信息,请参阅 “调试正在运行的 Pod”。 |
已修改: client-go 信息提供者事件的排序(AtomicFIFO ) |
client-go 的 AtomicFIFO 功能开关默认处于启用状态。 在调用针对每个项目的 OnAdd、OnUpdate 和 OnDelete 处理程序之前,Informer 存储现已完全更新为一致的资源版本,且 Informer 的重新同步处理流程略有调整,这可能会导致处理程序调用时机出现可观察到的差异。 测试嵌入了 client-go 的自定义控制器和运算符。
如果您发现性能退化,在进行调整期间,可以在您自己的控制器二进制文件中,将 AtomicFIFO 的client-go功能门暂时设置为 false。 |
| 更改: 对 CustomResourceDefinition 的数值验证进行了更严格的处理 | CustomResourceDefinition (CRD) 验证现在在模式中设置了 int32、int64、float 和 double 这几种数值格式时,会严格强制执行其取值范围。 通过验证渐进机制,已包含超出范围值的现有对象将被保留,但新值或更新后的值必须在范围内。 检查使用这些数字格式的自定义资源。 |
| 已弃用: 凭据插件的“白名单”字段 | 在客户端凭据插件的白名单中,AllowlistEntry.Name 字段已更名为 AllowlistEntry.Command。 如果您配置了凭据插件的白名单(例如,通过 kuberc ),请更新配置以使用新的字段名称。 |
已弃用: 直接访问 metav1.FieldsV1.Raw |
直接访问 metav1.FieldsV1 中的 Raw 字段已被废弃。 构建或读取 FieldsV1 的代码(例如,检查受管字段的控制器或工具)应迁移到新的 NewFieldsV1(string)、 GetRawBytes()、 GetRawString()``
和 SetRawBytes() 访问器方法。 |
| 需要采取的行动: 自定义调度程序 PreBind 插件 | 调度器框架现已支持并行运行 PreBind 插件。 如果您维护自定义调度程序插件,请将其更新为在调用 PreBindPreFlight 方法时返回 PreBindPreFlightResult ;返回 nil 将保留现有的顺序执行行为,而插件通过返回 AllowParallel:
true`` 来选择启用并行执行。 此操作仅适用于运行自定义调度程序插件的集群。 |
| 待办事项: DRA 驱动程序的细粒度 RBAC | 当启用“DRAResourceClaimGranularStatusAuthorization”功能开关时( 1.36 中的测试版),动态资源分配(DRA)驱动程序和控制器需要细粒度的基于角色的访问控制(RBAC)权限,才能更新 ResourceClaim 的状态。 调度程序和控制器需要 update 或 patch (位于 resourceclaims/binding 上),而 DRA 驱动程序需要 associated-node:update 或 arbitrary-node:update (位于 resourceclaims/driver 上),具体取决于其特定的 resourceNames。 如果您正在运行 DRA 驱动程序,请更新其 RBAC。 此操作仅适用于使用 DRA 的集群。 |