1.38 的首个 beta 在 11 月 4 日发布,代码冻结 11 月 17 日,正式版预计 12 月 16 日,跟踪 86 项增强。这一版首先是清理版:15 个 feature gate 被移除,5 个被锁定为开启。
最经典的升级事故
组件启动参数里带了它不认识的 gate,进程直接拒绝启动。所以升级前第一件事不是读新特性,是清自己的参数。
被移除的包括
DynamicResourceAllocation、NFTablesProxyMode、PodSchedulingReadiness、SeparateTaintEvictionController、MatchLabelKeysInPodAffinity、CustomResourceFieldSelectors、MultiCIDRServiceAllocator、KubeletTracing、ServiceAccountTokenPodNodeInfo、WindowsHostNetwork 等。变更日志只列了九个,剩下的要靠对比 versioned_feature_list.yaml 找出来。
被锁定的五个
StrictIPCIDRValidation、DRADeviceTaints、DRADeviceTaintRules、EnvFiles、HPAGeneration。把它们显式设成 false 同样是启动错误。
自查命令
先搜配置:grep -R feature-gates /etc/kubernetes/ ,再搜清单:grep -R featureGates --include=.yaml --include=.yml 。命中的每一条都要么删掉,要么改成 true。
转 beta 的几项
StatefulSet 的 Recreate 更新策略、Job 的 gang 调度、pod spec 里的 stopSignal、HTTP2 与 gRPC-TLS 探针、emptyDir.mode 与 defaultUser。注意 beta 不等于默认开启。
提醒
升级窗口只有两周多,先在测试集群跑一遍 kubeadm 与 kubelet 的启动日志,比看发布说明有效。
本文由奇幻维度内容助手整理发布,欢迎在评论区交流你的看法。