
Kubernetes v1.20 发布说明深度解读dockershim 弃用、APF 转 Beta 与 v1.20.x 系列安全修复全景【免费下载链接】kubernetesProduction-Grade Container Scheduling and Management项目地址: https://gitcode.com/GitHub_Trending/kuber/kubernetes本文基于仓库中 CHANGELOG-1.20.md 这一完整发布说明系统梳理 Kubernetes v1.20.x 系列从 v1.20.0 GA 到 v1.20.15的全部版本脉络v1.20.0 的重大新特性、升级前必读的紧急变更、两个高危 CVE 的修复版本以及各补丁版本的关键缺陷修复。读完后你可以判断当前集群应升级到哪个 v1.20.x 补丁版本、升级前需要调整哪些 Feature Gate 与命令行参数并了解这些变更在仓库源码中的落点。v1.20.x 系列版本总览CHANGELOG-1.20.md 记录了 v1.20 系列的全部 23 个发布版本按时间倒序排列为类别版本稳定版GA 系列v1.20.0、v1.20.1 … v1.20.15候选版v1.20.0-rc.0测试版v1.20.0-beta.2、v1.20.0-beta.1、v1.20.0-beta.0预发布版v1.20.0-alpha.3、v1.20.0-alpha.2、v1.20.0-alpha.1其中v1.20.0是 GA 正式版其 Changelog since v1.19.0 部分汇总了相对 v1.19 的全部变化v1.20.15是该系列中收录的最新补丁版本。所有其他版本目录v1.10 到 v1.37可在 CHANGELOG/README.md 中按系列检索。每个版本条目包含固定的四部分下载产物均附带 sha512 校验和用于下载后验证完整性Source Codekubernetes.tar.gz含预编译二进制与kubernetes-src.tar.gz纯源码Client Binarieskubernetes-client-os-arch.tar.gzkubectl、kube-proxy 客户端组件覆盖 darwin-amd64、linux-386/amd64/arm/arm64/ppc64le/s390x、windows-386/amd64 等架构Server Binarieskubernetes-server-linux-arch.tar.gzkube-apiserver、kube-controller-manager、kube-scheduler仅 linux 五种架构Node Binarieskubernetes-node-linux-arch.tar.gzkubelet、kube-proxy与kubernetes-node-windows-amd64.tar.gz。例如 v1.20.0 的kubernetes-client-linux-amd64.tar.gz的 sha512 为081472833601aa4fa78e79239f67833aa4efcb4efe714426cd01d4ddf6f36fbf304ef7e1f5373bff0fdff44a845f7560165c093c108bd359b5ab4189f36b1f2f可在原文档 Downloads for v1.20.0 一节查到全部产物校验值。v1.20.0 重大主题Whats Newv1.20.0 的 Whats New (Major Themes) 一节列出了 18 项主题性变更下面逐一展开并对可溯源到当前仓库的关键特性给出源码位置。dockershim 弃用Dockershim deprecationv1.20 起kubelet 内置的 Docker 运行时支持dockershim一个实现了 CRI 的 Docker 适配模块被正式弃用将在未来版本移除。Docker 镜像本身不受影响——Docker 制作的镜像仍可在所有运行时中工作。社区同步提供了详细博客与 FAQ。Deprecation 分类下的原文明确建议评估迁移到完整的 CRIv1alpha1 或 v1 合规容器运行时。从源码结构看kubelet 的容器运行时对接层位于pkg/kubelet/kuberuntime/目录dockershim 相关代码随后版本中逐步收缩这一弃用是 1.24 彻底移除 Docker 支持的起点。client-go 外部凭据插件支持集群信息传递client-go 的 credential pluginexec 认证插件现在可以通过KUBERNETES_EXEC_INFO环境变量获取当前集群信息便于外部工具如云厂商 CLI在认证时感知集群上下文。CronJob controller v2AlphaFeature Gate 开启基于 informer而非轮询的替代版CronJob控制器以 alpha 特性引入具有实验性的性能改进。对应控制器源码位于仓库pkg/controller/cronjob/目录v2 实现将取代默认行为。PID Limits 毕业至 GASupportNodePidsLimit节点与 Pod 间 PID 隔离和SupportPodPidsLimit限制单 Pod 的 PID 数量两个特性在 beta 阶段默认启用一年后于 v1.20 毕业为 GA。API Priority and FairnessAPF毕业至 Beta 并默认开启1.18 首次引入的 API 优先级与公平性APF在 v1.20默认启用kube-apiserver可将进入请求按优先级类别PriorityLevelConfiguration分类调度。⚠️ 升级注意开启 APF 的 1.19 服务器不应与 1.20 服务器混合部署在多服务器集群中原文 Urgent Upgrade Notes 明确警告。v1.20.7 补丁还补充了一条新规则将探针路径/readyz、/healthz、/livez全部豁免防止 kubelet 因 APF 排队误重启健康的 apiserver 实例。IPv4/IPv6 双栈重新实现1.20 基于用户与社区反馈重新实现了双栈支持重点是双栈 Service集群启用双栈后Service 可配置使用 IPv4、IPv6 或两者且可修改既有 Service 的设置。这是一个对 alpha API 的BREAKING CHANGEService 的双栈字段由单一ipFamily改为三个字段——ipFamilyPolicy取值SingleStack、PreferDualStack、RequireDualStack、ipFamilies分配给 Service 的族列表、clusterIPs包含clusterIP整体由IPv6DualStackFeature Gate 控制。默认行为下 Service 仍为单栈绝大多数用户无需设置任何字段。构建工具链go1.15.5v1.20 GA 版本使用 go1.15.5 构建含配套基础设施更新补丁版本持续跟进v1.20.9 起使用 Go 1.15.14v1.20.10 起使用 Go 1.15.15。CSI Volume Snapshot 毕业至 GACSI 卷快照在 v1.20 转 GA为触发卷快照操作提供了标准方式让用户在任何 Kubernetes 环境无论底层存储提供商以可移植方式执行快照并成为构建应用级/集群级备份等企业存储管理功能的基础构件。注意前提发行版需打包 Snapshot 控制器、Snapshot CRDs 与校验 webhook且集群中须部署支持快照能力的 CSI 驱动。非递归卷属主设置FSGroup转 Beta默认情况下fsgroup字段在每次挂载时递归更新卷内所有文件的权限文件多的卷会导致挂载与 Pod 启动非常缓慢。该特性允许 Pod 通过PodFSGroupChangePolicy声明仅当卷根目录的属主/权限与期望不匹配时才修改避免全量递归操作。CSIDriver 的 FSGroup 策略转 BetaCSIDriver 可显式声明是否由 Kubernetes 通过fsgroup管理其卷的权限与属主。CSI 驱动安全增强AlphaCSIServiceAccountToken新 alpha 特性CSIServiceAccountToken允许 CSI 驱动以为其挂载卷的 Pod 的身份发起调用而非使用 CSI 驱动自身的 ServiceAccount。这改善了挂载过程的安全态势卷的 ACL 绑定到 Pod 的 ServiceAccount无需给 CSI 驱动授予不必要的权限——对 secrets-store-csi-driver 这类处理密钥的驱动尤为关键。由于令牌可轮换且短生命周期该特性还让 CSI 驱动能周期性地在NodePublishVolumeRPC 中拿到新令牌也适用于证书等短生命周期卷。优雅节点关机Graceful Node ShutdownAlphaGracefulNodeShutdown特性在 v1.20 进入 Alphakubelet 可感知节点的系统关机事件在系统关机期间优雅终止 Pod。在仓库中该特性定义于 pkg/features/kube_features.go#L466-L470GracefulNodeShutdown及其依赖GracefulNodeShutdownBasedOnPodPriority、Windows 平台的WindowsGracefulNodeShutdown实现主体在 pkg/kubelet/nodeshutdown/ 包中nodeshutdown_manager.go负责监听系统关机信号并触发 Pod 驱逐systemd/inhibit_linux.go通过 systemd 的 inhibit lock 机制感知systemd-logind的关机/休眠信号v1.20.5 补丁修复了重复获取 inhibit lock 的问题v1.20.5 还增加了节点关机期间同步节点状态、并用 Pod 准入 handler 拒绝新 Pod的行为。运行时日志脱敏Runtime log sanitation日志可配置运行时保护防止敏感数据泄漏。对应实现入口是--experimental-logging-sanitization标志见 Feature 分类PR #96370属于实验性特性。Pod 资源指标/metrics/resources端点提供按需计算的资源指标启用后报告所有运行中 Pod 的请求资源requests与期望限制limits。RootCAConfigMap 转 BetaRootCAConfigMap与BoundServiceAccountTokenVolume解耦并转 Beta默认启用kube-controller-manager 会在每个命名空间发布名为kube-root-ca.crt的 ConfigMap内含用于校验 kube-apiserver 连接的 CA 证书包。kubectl debug 转 Betakubectl alpha debug升级为内置命令kubectl debug源码位于 staging/src/k8s.io/kubectl/pkg/cmd/debug/debug.go调试模板在profiles.go。v1.20 支持的排障场景创建 Pod 副本可更换容器镜像或命令类似kubectl set image来调试启动即崩溃的工作负载通过新副本或临时容器ephemeral container仍为 alpha、默认不启用为 distroless 容器注入调试工具创建运行在宿主命名空间、可访问宿主文件系统的容器来调试节点问题。注意两点作为新内置命令kubectl debug会遮蔽任何同名debug插件需重命名插件kubectl alpha debug调用方式已弃用并将在后续版本移除脚本应改用kubectl debug。kubeadm 移除弃用标志kubeadm 在本版本应用了多项弃用与移除详见下节 Deprecation 与 Urgent Upgrade Notes如移除--experimental-kustomize改用 1.19 引入的--experimental-patches移除kubeadm alpha kubelet config enable-dynamic等。Pod Hostname as FQDN 转 Beta1.19 曾以 Feature Gate 提供的SetHostnameAsFQDN在 v1.20 默认启用Pod 的 hostname 将设置为 FQDN 形式。TokenRequest / TokenRequestProjection 毕业至 GAServiceAccount 令牌投影转为稳定特性可生成不出现在 Secret 对象中、且生命周期绑定到 Pod 的 SA 令牌。对应的两个 Feature Gate 将在 1.21 移除。⚠️ API server 因此需要三个必选参数见紧急升级说明。RuntimeClass 毕业至 GAnode.k8s.ioAPI 组从v1beta1提升为v1v1beta1弃用并将在未来版本移除应开始使用v1。Cloud Controller Manager 改由云厂商独立发行Kubernetes 主仓库不再构建并发行 Cloud Controller Manager 二进制每个云厂商需自行构建与发行该二进制构建参考staging/src/k8s.io/cloud-provider/sample。托管服务的问题应咨询对应云厂商非托管场景可联系 SIG Cloud Provider。其他值得注意的 API 与功能变更HPA 支持容器级资源指标源基于容器资源用量而非仅 Pod进行扩缩容SCTP 支持转 GAPod、Service、NetworkPolicy 的 API 对象层面不代表内核或所有网络插件支持 SCTP 流量AppProtocol 对 Endpoints 和 Services 转 GAServiceAppProtocolgate 将在 1.21 弃用Service 新增clusterIPs字段clusterIPs[0]是clusterIP的同义词创建/更新时同步Service.spec.allocateLoadBalancerNodePortsfalse可禁用 LoadBalancer 类型 Service 的自动 NodePort 分配Service 类型变更时自动清理无用字段如 LoadBalancer 改 ClusterIP 自动清除 NodePortLoadBalancer 混合协议启用MixedProtocolLBServicegate默认关后可在同一 LoadBalancer Service 使用混合协议值EndpointSlice 新增serving与terminating状态、受 gate 保护的NodeName字段discovery.k8s.io/v1alpha1弃用、1.21 移除failure-domain.beta.kubernetes.io/*标签再次提醒弃用应改用topology.kubernetes.io/zone与topology.kubernetes.io/regionServer-Side Apply 将 LabelSelector 字段视为原子字段整个 selector 由单一 writer 整体管理kubectl新能力kubectl create ingress、kubectl delete foreground|background|orphan前向级联删除、kubectl wait --ignore-not-found、kubectl patch --patch-file、kubectl config get-users / delete-user、KUBECTL_EXTERNAL_DIFF支持参数、kubectl get ingress优先使用networking.k8s.io/v1调度新的默认调度插件顺序降低使用 taint 与 node affinity 时的调度/抢占延迟DefaultPodTopologySpread转 Beta 默认启用PodTopologySpread插件新增defaultingType参数kube-apiserver 维护自身 Lease 标识APIServerIdentitygate新增identity-lease-duration-seconds、identity-lease-renew-interval-seconds、identity-lease-garbage-collection-check-period-seconds三个标志--etcd-healthcheck-timeout可配置 etcd 健康检查超时默认 2 秒--audit-log-compress支持审计日志轮转压缩kube-controller-manager 卷插件网络限制--volume-host-allow-local-loopbackfalse禁止卷插件访问本地/回环地址--volume-host-cidr-denylist如127.0.0.1/28,feed::/16拒绝特定 CIDRHTTP/2 连接健康检查在所有 Kubernetes 客户端默认启用可用HTTP2_READ_IDLE_TIMEOUT_SECONDS/HTTP2_PING_TIMEOUT_SECONDS环境变量调优前者设为 0 时禁用scheduler、controller-manager、cloud-controller-manager 迁移到 LeaseLock做 leader electionGPU 指标默认禁用双栈裸金属集群kubelet --node-ip可传双栈 IP如10.1.0.5,fd01::0005kubelet 支持基于容器的镜像仓库凭据插件alphaexec 型。v1.20.0 弃用与移除Deprecationkubelet 的 Docker 支持dockershim弃用未来版本移除kubeadm 自托管self-hosting实验命令弃用kubeadm alpha certs升级为父命令kubeadm certs移除已弃用的kubeadm alpha kubelet config enable-dynamic与kubeadm upgrade node的--kubelet-config标志kubectl --delete-local-data弃用kubelet 弃用端点metrics/resource/v1alpha1已移除请改用metrics/resource移除多个弃用调度器指标DeprecatedSchedulingDuration等alpha 指标binding_duration_seconds与scheduling_algorithm_preemption_evaluation_seconds弃用已被framework_extension_point_duration_seconds覆盖计划 1.21 移除EgressSelectorConfiguration API 中Master类型的 EgressSelection 弃用新增controlplaneMaster在 v1.22 移除v1alpha1 PodPreset API 与准入插件移除无内置替代可用准入 webhook 替代--redirect-container-streaming不再起作用v1.22 移除。Known Issues已知问题v1.20.0 记录了一项已知问题kubelet 的 Summary API 缺少加速器accelerator指标——cadvisor_stats_provider提供 AcceleratorStats 而cri_stats_provider不提供因此使用 cri_stats_provider 时 Summary API 没有加速器指标issue #96873。紧急升级说明Urgent Upgrade Notes原文用 (No, really, you MUST read this before you upgrade) 强调了本节以下为 v1.20.0 的全部条目Exec probe 超时修复kubelet 修复了 exec 探针超时不被遵守的 bug。由于未显式指定时默认超时为1s这可能过短导致意外行为请确保依赖该行为的 Pod 正确配置探针超时。该行为变化可通过关闭ExecProbeTimeoutFeature Gate 临时禁用该 gate 未来版本将锁定并移除。该 gate 在当前仓库中仍可见于 pkg/features/kube_features.go#L431。RuntimeClass GAnode.k8s.io组v1beta1弃用尽快迁移到v1。APF 转 Beta开启 APF 的 1.19 服务器不要与 1.20 服务器混布。CSI 驱动行为变化kubelet 不再按 CSI 规范为NodePublishVolume创建target_path也不再检查 staging/target 路径是否为挂载点或已损坏——CSI 驱动必须自身保证幂等与挂载校验。kubeadm master 标签/污点重命名node-role.kubernetes.io/master标签弃用未来 GA 弃用期后移除同时并行打上node-role.kubernetes.io/control-plane标签kubeadm upgrade apply会为仅有 master 标签的存量节点补打 control-plane 标签node-role.kubernetes.io/master:NoSchedule污点弃用kubeadm 管理的 CoreDNS/kube-dns manifest 已为未来污点node-role.kubernetes.io/control-plane:NoSchedule预置 toleration该污点当时尚未实际打上依赖 kubeadm 的工具备工具应尽快改用 control-plane 标签工作负载应提前 toleration 未来的新污点。kubeadm 网络子网校验加强ServiceSubnet 掩码不能分配超过 20 位PodSubnet 会与 kube-controller-manager 的--node-cidr-mask-size校验不兼容则失败IPv6 部署下 kubeadm 不再自动设置 node-mask必须自行确认 IPv6 service subnet 掩码与默认 node mask/64兼容或显式设置此前 podSubnet 掩码低于 /112 时会自动计算 node-mask 的行为被移除。--experimental-kustomize标志从 kubeadm 命令中移除改用 1.19 引入的--experimental-patches。Windows hyper-v 容器 Feature Gate 在 1.20 弃用1.21 移除。kube-apiserver 不安全端口能力移除自 v1.10 弃用的 insecure port 能力被移除。--address与--insecure-bind-address对 kube-apiserver 无效v1.24 移除--port与--insecure-port只允许设为 0v1.24 移除。双栈 ServicealphaBREAKING CHANGE字段由单一ipFamily改为ipFamilyPolicy/ipFamilies/clusterIPs三字段由IPv6DualStackgate 控制。TokenRequest GA 带来的 API server 必选参数--service-account-issuer设为标识 API server、在集群生命周期内稳定的 URL--service-account-key-file一个或多个含公钥的文件用于校验令牌--service-account-signing-key-file含私钥、用于签名 SA 令牌的文件可与 kube-controller-manager 的--service-account-private-key-file相同。kubeadm alpha kubeconfig user接受--config并移除旧标志apiserver-advertise-address/apiserver-bind-port改用 InitConfiguration 的localAPIEndpoint或 ClusterConfiguration 的controlPlaneEndpoint、cluster-name改用clusterName、cert-dir改用certificatesDir。垃圾回收控制器对错误 ownerReference 的处理确定化检测到子对象与属主命名空间不匹配时记录OwnerRefInvalidNamespace事件引用了同命名空间不存在的 namespaced 属主 uid 的 namespaced 对象将一致地按属主不存在处理并删除子对象引用了 namespaced 属主 uid 的集群级对象将一致地按属主不可解析处理并被 GC 忽略。升级前建议运行kubectl-check-ownerreferences工具排查存量非法 ownerReferences。v1.20.x 补丁版本的安全修复重要补丁版本中两个带 Important Security Information 的版本是安全升级的关键判据v1.20.11修复 CVE-2021-25741CVSS High 8.8符号链接交换可导致宿主文件系统访问。攻击者可通过创建带 subpath 卷挂载的容器访问卷之外包括宿主文件系统的文件与目录。受影响版本kubelet v1.22.0–v1.22.1、v1.21.0–v1.21.4、v1.20.0–v1.20.10、≤ v1.19.14修复版本v1.22.2、v1.21.5、v1.20.11、v1.19.15报告人Google 的 Fabricio Voznika 与 Mark WoltersCVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H。该版本另含修复Azure NSG 规则检查忽略大小写、kube-proxy 清理 LoadBalancer ingress IP 的过期 conntrack UDP 条目、scheduler_volume_scheduling_duration_seconds_bucket指标桶修复、subpath 挂载传入附加参数避免偶发失败以及——使用kubectl replace替换 Service 时不再需要 read-modify-write 循环获取.spec.clusterIP与.spec.ports[].nodePort新对象未指定时 API server 自动沿用原值。v1.20.6修复 CVE-2021-25735CVSS Medium 6.5Validating Admission Webhook 未观察到某些旧字段。Node 更新可能绕过基于 Node 对象旧状态做拒绝决策的 Validating Admission Webhook。仅影响依赖特定字段旧值的校验插件kubelet 走内置 NodeRestriction 插件的调用不受影响。受影响版本kube-apiserver v1.20.0–v1.20.5、v1.19.0–v1.19.9、≤ v1.18.17修复版本v1.21.0、v1.20.6、v1.19.10、v1.18.18报告人RedHat 的 Rogerio Bastos 与 Ari LimaCVSS:3.0/AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:H/A:H。v1.20.6 同时包含多项重要 API/缺陷修复SSA 对 APIService 资源的支持修复、重新生成 protobuf 代码修复 CVE-2021-3121、AWS 云提供商支持无kubernetes.io/cluster/name标签自动发现子网并新增service.beta.kubernetes.io/aws-load-balancer-subnets注解、修复 v1.20.2–v1.20.5 中 AzureFile inline 卷 secret 查找命名空间的破坏性变化、APF 过滤器数据竞争修复、启动时先加载已有 webhook 配置再接纳首个写请求的竞态修复、单 etcd lease 挂载对象上限事件降低主节点不稳定性、EndpointSlice 最大端口数从 100 提升到 20000。各补丁版本关键修复速览以下按版本摘录原文记录的代表性修复完整清单见 CHANGELOG/CHANGELOG-1.20.mdv1.20.15修复 kube-scheduler 处理带无效 selector 的 Pod 时的 panicPR #107558修复 API 请求超时处理的罕见竞态#107461。v1.20.14调度器因瞬时错误漏掉删除事件时确保 Pod 从调度器缓存移除#106695修复 CSI 驱动失败后 SELinux 卷重标记#106554kubeadmcerts check-expiration不再强制要求 ca.key 存在、缺失 etcd/ca.key 时按外部 CA 处理#106927/#106923调度器 assumed Pod 等待 nodeName 更新的时间由 30s 放宽为 2min#106686。v1.20.13debian-base/debian-iptables/setcap 基础镜像升级获取 CVE 修复EndpointSlice Mirroring 控制器在 Service 增加 selector 时清理受管 EndpointSlice#106136修复记录超时 API 调用时的并发 map 访问 panic#106124Windows 支持 100 个以上磁盘挂载#105673k8s.io/kube-openapi升级。v1.20.12修复 CRD schema 中含字面 null 值枚举的处理#104990回滚引入基于均衡资源分配意外调度行为的 PR#105239该行为最初来自 v1.20.9 的 #102925后被 v1.20.12 显式 revertgolang.org/x/text升级至 v0.3.6 修复 CVE-2020-28852#102602修复扩展器在抢占时未被调用#103019。v1.20.10Go 1.15.15 构建修复 scheduler extenders 在抢占时不被调用修复不可解析status.certificate的 CSR 清理问题修复 websocket watch 超时时未正确关闭的问题。v1.20.9Go 1.15.14 构建修复NodeResourcesMostAllocated/NodeResourcesBalancedAllocation插件在无 request 容器节点上的打分错误该 PR 后被 v1.20.12 revert调度器改为对 pod status 生成 merge patch 而非整 Pod#103133sigs.k8s.io/structured-merge-diff/v4升级 v4.0.3→v4.1.2。v1.20.8lease 控制器引入抖动系数平滑对 apiserver 的负载修复 endpoint slice mirroring 将 NotReadyAddresses 镜像为 Ready 的 bug修复 preemptor 幻影 Pod修复 Windows dockershim 容器 stats 访问错误修复 CSI 迁移卷的误 detach启动时 GC 悬空 VolumeAttachments。v1.20.7APF 新增探针路径豁免规则修复 JSON 日志 Duration 编码缺失导致的 panic修复 startupProbe 在容器首次重启后失效修复 port-forward 内存泄漏此前一次修复因引入 kubelet 段错误回归被 v1.20.8 回滚kubectl create service遵循 namespace 标志。v1.20.5kubelet 自动清理孤儿卷目录节点关机期间同步节点状态并拒绝新 Pod修复失败节点 NoExecute 污点未正确设置CORS/并发信号等 kubelet 稳定性修复。v1.20.4本版本仅依赖变更原文标注 Nothing has changed属于依赖整理版本。v1.20.3 / v1.20.2 / v1.20.1以 Bug or Regression 类修复为主涵盖 Azure 云提供商稳定性、kubeadm upgrade、API 机制等。依赖变更Dependencies原文每个版本条目末尾列出该版本相对上一版本的依赖 Added / Changed / Removed。v1.20.0 相对 v1.19 的重要依赖变化包括github.com/containerd/containerdv1.3.3→v1.4.1、github.com/google/cadvisorv0.37.0→v0.38.5、k8s.io/klog/v2v2.2.0→v2.4.0、github.com/gorilla/websocketv1.4.0→v1.4.2、sigs.k8s.io/structured-merge-diff/v4v4.0.1→v4.0.2 等补丁版本中影响安全的主要依赖变更是 v1.20.12 的golang.org/x/textv0.3.4→v0.3.6CVE-2020-28852与 v1.20.6 的github.com/gogo/protobufv1.3.1→v1.3.2配合 CVE-2021-3121 修复。升级路径建议基于发布说明的事实安全底线凡运行 v1.20.0–v1.20.10 的 kubelet应至少升级到v1.20.11CVE-2021-25741High运行 v1.20.0–v1.20.5 的 kube-apiserver应至少升级到v1.20.6CVE-2021-25735。系列内最新补丁为 v1.20.15。GA 升级前核对上文紧急升级说明全部 13 条特别是 TokenRequest GA 的三个必选 API server 参数、双栈 Service 的 alpha API 破坏性变化、kubeadm control-plane 标签/污点迁移以及 GC 对非法 ownerReference 的新确定性行为。验证下载使用对应版本条目中的 sha512 校验和验证四个下载产物。版本对照v1.19 系列的对应说明见 CHANGELOG/CHANGELOG-1.19.md更早/更新系列可在 CHANGELOG/README.md 索引中找到。小结v1.20 是 Kubernetes 历史上承上启下的一版dockershim 弃用开启了容器运行时生态的分水岭APF 默认开启重塑了 apiserver 的流控模型TokenRequest、RuntimeClass、CSI Volume Snapshot、PID Limits 等多项关键特性在同一个版本毕业 GA双栈 Service 与 Graceful Node Shutdown 则分别为网络与节点生命周期铺设了后续演进的路线。结合 v1.20.6 与 v1.20.11 两个安全补丁版本本系列发布说明既是功能迁移清单也是生产集群升级决策的直接依据。【免费下载链接】kubernetesProduction-Grade Container Scheduling and Management项目地址: https://gitcode.com/GitHub_Trending/kuber/kubernetes创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考