发布时间:2026/9/7 19:40:46
Kubernetes 1.11 发布全解:v1.11.0 到 v1.11.10 的版本演进、升级注意事项与源码级细节 Kubernetes 1.11 发布全解v1.11.0 到 v1.11.10 的版本演进、升级注意事项与源码级细节【免费下载链接】kubernetesProduction-Grade Container Scheduling and Management项目地址: https://gitcode.com/GitHub_Trending/kuber/kubernetesKubernetes 1.11 是 1.x 版本线中一次承上启下的发布Pod 优先级与抢占Pod Priority and Preemption在此版本转正为默认开启CoreDNS 与 IPVS 负载均衡毕业到 GAkubeadm 配置体系升级到 v1alpha2。本文基于官方仓库中的 CHANGELOG-1.11.md 全文梳理 1.11 系列v1.11.0-alpha.1 至 v1.11.10的发布脉络完整还原其中的升级须知、弃用与移除清单、特性毕业状态并结合当前仓库源码指出这些特性在今天代码库中的对应位置帮助你判断哪些 1.11 变更对现有集群与客户端代码仍有实际影响。版本谱系从 alpha 到 v1.11.10 的发布节奏CHANGELOG-1.11.md 按时间倒序记录了 1.11 系列的全部发布结构为每个版本一个 H1 标题 二进制下载表 Changelog。完整的版本序列为发布候选与预发布v1.11.0-alpha.1、v1.11.0-alpha.2、v1.11.0-beta.1、v1.11.0-beta.2、v1.11.0-rc.1、v1.11.0-rc.2、v1.11.0-rc.3正式版本v1.11.0补丁版本v1.11.1 ~ v1.11.10v1.11.10 为该系列在文档中记录的最终补丁每个版本节均包含三部分下载内容文件名与校验哈希一一对应Client Binaries客户端kubernetes-client-{darwin,linux,windows}-{386,amd64,arm,arm64,ppc64le,s390x}.tar.gz覆盖 macOS、Linux、Windows 多种架构Server Binaries服务端kubernetes-server-linux-{amd64,arm,arm64,ppc64le,s390x}.tar.gzNode Binaries节点端kubernetes-node-linux-{amd64,arm,arm64,ppc64le,s390x}.tar.gz及kubernetes-node-windows-amd64.tar.gz另有完整的kubernetes.tar.gz与kubernetes-src.tar.gz源码包。值得注意的是校验方式的演进文档中 v1.11.0 至 v1.11.3 各节使用sha256哈希而从 v1.11.4 起各节的下载表切换为sha512哈希列。例如 v1.11.3 的kubernetes.tar.gz校验值为032fd2483176aea999cc92a455676cf1dbf70538e916fedaa6b851b50c6009c3sha256而 v1.11.10 的kubernetes-src.tar.gz则给出 512 位十六进制校验值。部署时按下对应版本的哈希列做完整性校验即可。补丁版本中的关键变更v1.11.1 ~ v1.11.10补丁版本并非纯 bug 修复其中多条带有 Action Required 标记的条目需要运维侧跟进。按版本梳理如下均引自 CHANGELOG-1.11.mdv1.11.1自 v1.11.0 以来的变更移除 CSI 文件系统类型默认值 ext4此前 CSI 卷在volumeAttributes.fstype缺省时会默认按 ext4 处理该默认行为被移除官方要求不在已审查驱动列表中的 CSI 驱动先在新测试集群验证。Priority准入插件默认启用使用--enable-admission-plugins的 kube-apiserver 会自动带上Priority准入插件如果仍在用--admission-control完整指定插件集合且启用了PodPriority特性1.11 默认开启则需手动加入Priority插件。系统优先级类限制到 kube-systemsystem-node-critical与system-cluster-critical两个优先级类被PodPriority准入插件限制为只能在kube-system命名空间中使用。其他值得关注的修复修复事件高频写入拖垮 etcd 的可扩展性问题、kubectl delete删除父资源时不再等待依赖对象、修复自 1.10 起失效的RunAsGroup、垃圾回收GC控制器支持 CRD 与 APIService、kubelet 启动前先 reload systemd 配置等。v1.11.2自 v1.11.1 以来的变更Cluster Autoscaler 升级到 1.3.1GCP 部署中expendable pod priority cutoff默认值从 0 改为 -10优先级低于 0 的工作负载可能不再触发扩容建议将非关键负载的优先级设为低于 -10。Metadata Agent 与 Logging AgentGCP 相关组件的成组改进metadata agent 升级为 0.2-0.0.21-1移除 ConfigMap 改用命令行参数存活探针切换为/healthzlogging agent 调整日志严重级别、缓冲区上限降至 512k 等。修复 kube-proxy 在--healthz-port0时HealthzBindAddress的校验、使用 ExecPlugin kubeconfig 导致 kubelet 启动失败、CRD 非标准复数与子资源下的创建问题、kubectl显示设置了nominatedNodeName的 Pod 时 panic 等。v1.11.3自 v1.11.2 以来的变更Action RequiredAPI server 与 client-go 修复 UserInfo extra 数据的非字母数字字符支持。双方都升级后extra数据中才能正确包含/等在 HTTP 头中不合法以外的特殊字符。外部 PV binder例如 kube-scheduler绑定 PV 时 PVC 可能未及时同步到 controller 本地缓存修复了在 PVC 找不到时防止错误回收 PV 的逻辑。修复多个 apiserver 同时启动时创建系统优先级类出错、CRD 子资源的resourceVersion无操作写入更新、Downward API 文件注入多行 annotation 乱序等。回滚了为 Windows Pod 设置 DNS 服务器的改动DNS 交由 CNI 插件负责。v1.11.4 ~ v1.11.5v1.11.4 修复了 vSphere 清理函数中sync.RWMutex误用导致写锁实际无效的问题补丁通过在循环内匿名函数中正确加锁并延迟解锁、kube-addon-manager 新增--prune-whitelist支持解决移除 admission webhook addon 后MutatingWebhookConfiguration无法清理、集群无法准入新 Pod 的问题、apiserver panic 返回 500 而非终止进程、http/2 缓冲区调优等。v1.11.5 修复了关键安全问题 CVE-2018-1002105kube-apiserver 升级请求代理处理器upgrade request proxy handler的严重安全漏洞。此外 IPVS 模式开始支持基于连接的优雅终止connection based graceful terminationGCE/GKE 负载均衡健康检查默认间隔从 2 秒调整为 8 秒、unhealthyThreshold调整为 3。v1.11.6 ~ v1.11.8v1.11.6 引入--nodeport-addresses同一主机不同网卡使用相同 host port、--ipvs-exclude-cidrsIPVS proxier 清理规则时跳过指定 CIDR、--cni-bin-dir支持逗号分隔的多目录、CRD 的spec.additionalPrinterColumns正式进入服务端打印列能力此字段在当前仓库源码中可见staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1/types.go 中的AdditionalPrinterColumns []CustomResourceColumnDefinition。v1.11.7 修复调度器在大量不可调度 Pod 场景下的饥饿问题、预抢占逻辑竞态、kube-proxy 优雅终止引入的 deadlock。v1.11.8 引入 apiserver 请求体大小上限CREATE/UPDATE/PATCH/DELETE 请求体超过 100MB 返回 413Request Entity Too Large用最新 apiserver 库构建的自定义 apiserver 同样生效可通过ServerRunOptions.MaxRequestBodyBytes调整该限制不适用于 pods/proxy 这类代理子资源json patch 超过 10000 个操作同样返回 413。此外 watch 不再重复发送同一批事件导致观察者回到过去。v1.11.9 ~ v1.11.10v1.11.9 主要修复云厂商Azure/AWS负载均衡与安全组问题、admission webhook 请求缺少 apiVersion/kind、kube-proxy 新增metrics-port命令行参数等。v1.11.10 为系列最终补丁恢复 kubectl 的--username/--password标志kubelet 在资源压力下不再驱逐优先级为system-node-critical的静态 Pod更新 Cluster Autoscaler 至 1.3.8Node-Problem-Detector 配置在 GKE/GCE 上与 Kubernetes 版本解耦多个 GCP addonprometheus-to-sd、fluentd-gcp-scaler、event-exporter升级以获取安全修复。升级到 1.11 前必须处理的事项Urgent Upgrade Notes文档 Urgent Upgrade Notes 一节标题原样保留为 No, really, you MUST do this before you upgrade列出两条升级前必须确认的事项1. JSON 配置中字段大小写必须正确直接与 API server 通信的 JSON 资源定义中键名大小写敏感。Kubernetes 1.8 引入的一个 bug 曾让 API server 接受错误大小写的请求并自动纠正为正确大小写1.11 修复了该行为API server 恢复严格校验。严格使用kubectl管理资源的用户不受影响因为kubectl一直强制使用正确大小写。如果你的部署管线里有手写 JSON尤其是对非 kubectl 客户端发送的请求升级前必须排查字段大小写。2. Pod 优先级与抢占默认开启PodPriority在 1.11 默认启用意味着任何命名空间中的 Pod 都可以请求与系统关键 Pod 竞争、甚至抢占正在运行的系统关键 Pod 的优先级类。若不希望如此可在升级到 1.11 之前为 kube-apiserver、kube-scheduler、kubelet 同时设置--feature-gatesPodPriorityfalse。但官方并不建议禁用关键系统 Pod 依赖调度器抢占机制在集群资源紧张时仍能获得调度。文档 Before Upgrading 部分进一步给出多租户集群的配套建议为两个默认优先级类system-cluster-critical与system-node-critical创建ResourceQuota限制不可信用户创建高优先级 Pod。1.11 的主要技术主题按 SIG 划分SIG API MachineryCRD 能力大幅增强1.11 对 CustomResource 的改进是本轮 API 机制侧的主线CRD 子资源subresource转 Beta 并默认启用更新/status子资源时不再只是忽略.spec和.metadata的修改而是拒绝一切.status以外的字段更新且启用/status子资源后CRD OpenAPI 校验 schema 的根节点允许使用required与description。CRD 多版本可以定义多个版本但没有自动转换转换能力后来才引入1.11 中是 NOP converter。服务端打印列CRD 新增spec.additionalPrinterColumns字段让自定义资源在kubectl get时显示自定义列。该字段在今天的仓库源码中仍然可见见上文 apiextensions v1 types 第 201 行的AdditionalPrinterColumns字段定义说明其 API 形状自 1.11 起延续至今。CRD 状态与 Established 竞态新增 Establishing 控制器避免 Established 条件与 CR 实际可服务之间的竞态HA 部署下 Established 条件会延迟 5 秒。OpenAPI v3 校验CRD 的 OpenAPI v3 校验 schema 支持additionalProperties与properties互斥。其他CRD 元数据在反序列化与从 etcd 读取时进行修剪和 schema 校验/status子资源支持 GET 和 PATCHmutating webhook 支持 remove 操作新增dryRun查询参数1.11 中设置即拒绝为未来客户端做前向兼容/debug/flags/v端点支持通过 PUT 动态调整 glog 日志级别。SIG AuthRBAC 聚合并入 GA、凭证插件转 BetaRBACcluster role aggregation1.9 引入在 1.11 毕业到 stable行为无变化client-go credential plugins 毕业到 Beta并新增支持从外部插件获取 TLS 凭证审计事件可携带请求处理信息授权环节写入authorization.k8s.io/decisionallow/forbid与authorization.k8s.io/reason人类可读原因RBAC 场景包含放行的 role/binding/subject 名称PodSecurityPolicy 准入写入podsecuritypolicy.admission.k8s.io/admit-policy与podsecuritypolicy.admission.k8s.io/validate-policyNodeRestriction 准入插件新增能力阻止 kubelet 修改自己 Node 对象上的 taints节点不再被允许删除自己的 Node 对象旧 kubelet 在极少数云厂商 Node ID 变化场景下会尝试删除/重建自己的 Node 对象集群管理员可用kubectl delete node/nodeName清理或显式授予自删除权限。SIG Cluster Lifecyclekubeadm v1alpha2 与 CoreDNS 默认化kubeadm 配置文件 API 从v1alpha1升级到kubeadm.k8s.io/v1alpha21.11 仍可读v1alpha1并自动转换内部转换并写回集群 ConfigMap但v1alpha1读取支持将在 v1.12 移除新增一组配置管理命令kubeadm config migrate客户端侧、无需集群把旧配置升级为新版类似 Unix 管道、kubeadm config print-default、kubeadm config images list/kubeadm config images pull、kubeadm upgrade node config、kubeadm upgrade diffCoreDNS 取代 kube-dns 成为默认 DNS 提供者kube-dns 更新到 v1.14.10CoreDNS 版本 v1.1.3kubeadm 生成的 CoreDNS 容器以只读方式运行并丢弃不必要的 capabilitieskubeadm init现在把结构化、带版本号的 kubelet ComponentConfiguration 写入/var/lib/kubelet/config.yaml并把运行时动态检测的 flags 写入/var/lib/kubelet/kubeadm-flags.envkubeadm join现在阻塞等待 kubelet 完成 TLS Bootstrap 成功之前只做 discovery 就退出kubeadm upgrade修复不再因 Pod 重启产生竞态、支持外部 etcd、升级失败后可回滚并恢复 etcd、etcd 与控制面升级使用 TLSkubeadm 支持无公网环境与其他 CRI runtimekubeadm 检测 Docker cgroup driver 并以匹配的 driver 启动 kubelet消除新手常见报错。SIG NetworkIPVS 与 CoreDNS 双双 GAIPVS 模式集群内负载均衡毕业到 GA用内核 hash table 替代 iptables 规则做 Pod 负载均衡CoreDNS 毕业到 GA成为服务发现默认方案新增--nodeport-addresses不同接口监听相同 host port新增--ipvs-exclude-cidrsIPVS proxier 清理规则时不触碰指定 CIDRNetworkPolicy 可在同一个 peer 元素中同时携带namespaceSelector与podSelector从而精确指向其他命名空间中的特定 Podkubelet 的--cni-bin-dir支持逗号分隔的多个 CNI 二进制目录按顺序查找插件。SIG Node动态 kubelet 配置转 BetaDynamicKubeletConfig 转 Beta 并默认开启feature gate 默认 on但启用动态配置仍需设置 kubelet 的--dynamic-config-dir使用动态配置时必须指定Node.Spec.ConfigSource.ConfigMap.KubeletConfigKeyConfigMap 变更时 kubelet 会自动更新配置减少静默配置漂移CRI 日志轮转转 Beta 并默认启用针对 CRI 容器运行时Linux sysctl 支持转 BetaPod 与 PodSecurityPolicy 新增 sysctl 相关字段1.11 的 kubelet 会忽略 alpha 时代的 sysctl annotation存量部署必须把 annotation 迁移为 API 字段cri-toolscrictl项目 GAKubernetes 将 crictl 打入 cri-tools 的 deb/rpm 包GCE 集群默认安装 crictlPod 状态新增ContainersReadyconditionkubelet 重启后会把扩展资源extended resource容量置零设备插件重连后恢复有效值远程容器运行时 gRPC 最大消息尺寸提升到 16MBkubelet 新增--node-status-max-images控制 Node 状态中上报的最大镜像数默认 50CRI 容器日志路径从containername_attempt#.log改为containername/attempt#.log。SIG Scheduling优先级抢占 Beta 化与调度器改进Pod Priority and Preemption 毕业到 Beta 并默认开启文档强调这对运维是重大且重要的变更涉及 sig-release 的发布清单调整系统关键优先级类system critical priority classes在集群引导时自动创建调度器新增--write-config-to标志可将默认调度配置写入文件亲和/反亲和 predicate 性能显著优化nodeSelector.matchFields支持1.11 仅支持metadata.name新增scheduling_latency_seconds汇总指标并拆分为 predicate / priority / preemption 细粒度步骤RequestedToCapacityRatioPriority参数化的优先级函数把 requested/capacity 比值映射到分数利用率 0 得 10 分、利用率 100 得 0 分点之间线性插值默认禁用通过 scheduler policy 配置启用DaemonSet Pod 调度ScheduleDaemonSetPods为 alpha 特性启用后由调度器而非 DaemonSet controller 绑定 PodDaemonSet controller 只在创建时给 Pod 追加 NodeAffinity 术语替代.spec.nodeName不修改.spec.template。SIG StorageStorageProtection GA、卷扩容 BetaStorageObjectInUseProtection 毕业到 GAPod 仍在使用时禁止删除 PVC、PV 仍绑定 PVC 时禁止删除 PV卷扩容PersistentVolume 扩容转 Beta 并默认开启Pod 重启后增大卷容量新增 alpha 特性在线卷扩容Pod 不重启直接扩文件系统kubelet 侧在线文件系统扩容已实现按节点类型设置最大卷数AWS EBS 与 GCE PD 提高每节点可挂载卷上限subpath 目录可用 DownwardAPI 环境变量创建AWS EBS、Azure Disk、GCE PD、Ceph RBD 卷插件支持动态供应裸块设备raw block volumeCinder 增加块设备支持为外部 CSI 驱动提供块卷 API 支持拓扑感知的动态卷供应StorageClass API 增加限制动态卷拓扑的能力allowedTopologies的基本管道ext3/ext4 卷创建不再为 root 保留 5% 空间mkfs 传-m0PodSecurityPolicy 支持把 hostPath 挂载限制为只读且限定在特定路径前缀之下AWS EBS 卷可在 Pod 中以只读方式使用gitRepo 卷不再要求 git 1.8.5。SIG CLIkubectl 重构与新能力本轮主线是重构 kubectl 内部结构以提升命令的可组合性、可读性与可测试性为后续版本的 kubectl 插件扩展机制铺路新增kubectl wait等待一个或多个资源被删除或达到特定条件--for[delete|conditioncondition-name]新增kubectl api-resources发现集群中的资源支持按 verb 过滤并输出可与kubectl get组合的完整资源名go template 支持base64decode函数kubectl get secret SECRET -o go-template{{ .data.KEY | base64decode }}kubectl patch支持--dry-runkubectl apply --prune支持 CronJobkubectl与 client-go 在加载 kubeconfig 时会检测 user/cluster/context 重名并报错kubectl auth can-i退出码修正允许返回 0禁止返回 1kubectl rolling-update弃用改用kubectl rollout服务端打印server-side print默认启用可用--server-printfalse关闭该版本 kubectl 依赖apps/v1API不能对早于 v1.9.0 的集群工作kubectl 只保证与 ±1 个次要版本的集群兼容。其他 SIG 要点SIG InstrumentationHeapster 弃用作为迁移到新监控模型的一部分仍依赖 Heapster 做 autoscaling 的集群应迁移到 metrics-server 与 custom metrics APIkubelet 新增/metrics/probes端点以 Prometheus 指标暴露容器存活/就绪探针结果SIG WindowsWindows Pod/容器支持更多 API——Pod/Container/日志文件系统的 metrics、run_as_user安全上下文、Azure 磁盘的本地持久卷与 fstype依赖 Windows Server 1803 的新特性ConfigMap/Secret 卷挂载、SMB 与 iSCSI 的 Flexvolume 插件树外提供SIG OpenStack内置云厂商弃用改用树外 provider新增 Keystone 与 RBAC 集成的改进11 个验收测试使其成为发布 gating jobSIG vSphere云厂商支持从 Kubernetes Secret 获取凭证替代明文vsphere.conf、SAML token 认证SIG Azure支持 Standard SKU 负载均衡器与公共 IPexcludeMasterFromStandardLB默认 trueStandard LB 与service.beta.kubernetes.io/azure-load-balancer-mode注解不兼容因为除 master 外所有节点都会成为后端支持service.beta.kubernetes.io/azure-allowed-service-tags注解azuredisk PVC 可通过kubectl edit pvc扩容卷已挂载到运行中 VM 时会失败Azure 磁盘支持块设备与外部资源组VM 名称可含下划线。弃用、移除与毕业状态清单1.11 新弃用New Deprecations弃用项说明etcd2 后端继续使用将得到警告支持将在v1.13移除应尽快把集群升到 etcd3InfluxDB 集群监控随 Heapster 一起弃用建议改用 metrics-server提供kubectl top与 HPA 所用的 Metrics API长期存储需求应使用监控方案原生的 Kubernetes 支持kubelet--rotate-certificates改用 kubelet 配置文件的.RotateCertificates字段kubeadmv1alpha1配置读取支持保留到 v1.11v1.12 移除v1alpha2中.CloudProvider、.PrivilegedPods字段被删除前者改用树外云厂商 beta后者可在/etc/kubernetes/manifests/中为 apiserver 与 controller-manager 设置.SecurityContext.PrivilegedtrueMasterConfiguration的 Token 相关字段重构为BootstrapTokens切片对象内含.Token、.TTL、.Usages、.Groups.NodeName/.CRISocket迁移为.NodeRegistration.Name/.NodeRegistration.CRISocket.NoTaintMaster被删除.AuthorizationModesv1alpha2 中移除用.APIServerExtraArgs/.APIServerExtraVolumes替代v1alpha1 文件自动升级并保留信息注解service.alpha.kubernetes.io/tolerate-unready-endpoints改用Service.spec.publishNotReadyAddresseskubectl --show-allv1.11 中已无实际作用inert未来移除kubectl rolling-update改用kubectl rolloutkube-apiserver--endpoint-reconciler-type默认值变为leasemaster-count类型弃用1.13 移除OpenStack 内置云厂商改用树外 OpenStack providerkubelet--allow-privileged默认值改为 true便于向 PodSecurityPolicy 过渡client-go 旧 dynamic client新 dynamic client 已取代旧版仅保留一个版本于client-go/deprecated-dynamicOpenStack 内置凭证支持改用 cloud-provider-openstack 的client-keystone-authGitRepo 卷类型弃用替代方案InitContainer 中 git clone 到 EmptyDir再挂入业务容器PV 节点亲和的 alpha annotation升级前必须迁移到 beta 的PersistentVolume.nodeAffinity字段1.11 移除的弃用项Removed Deprecationskubeadmv1alpha2中移除.ImagePullPolicy固定为IfNotPresent需要 Always 效果时在kubeadm init前执行kubeadm config images pull离线环境可docker load预载镜像kubeadm 移除从未使用的.Etcd.SelfHosting移除已弃用且不活跃的--enable-custom-metrics移除早在 #32894 就弃用的--include-extended-apiskubelet 不再在 node spec 中写externalID自 v1.1 起弃用移除initresource准入插件core API 组移除ObjectMeta、ListOptions、DeleteOptions改从meta/v1引用check-network-mode移除弃用的--mode标志移除自 1.10 弃用的alpha.kubernetes.io/nvidia-gpu资源改用 DevicePlugins 暴露的nvidia.com/gpukube-cloud-controller-manager移除--service-account-private-key-file改用--use-service-account-credentialskube-controller-manager 中该标志仍保留移除自 1.10 弃用的 rknetes 代码用 rktlet 和 CRI 替代移除 ScheduleDaemonSetPods alpha 特性关联的 DaemonSet 调度该特性在 1.11 重新以 alpha 引入移除METADATA_AGENT_VERSION配置项移除允许 controller manager 批准 kubelet 服务端证书的 alpha 能力应改为自动化校验/批准节点证书签名请求。毕业到 Stable/GA 的特性IPVS 集群内负载均衡GACoreDNS 成为 Kubernetes DNS 插件GAAzure Go SDK 到稳定版GAClusterRole 聚合GACRI 校验测试套件GAStorageObjectInUseProtectionGA。毕业到 Beta 的特性树外/外部云厂商支持betaPod 重启后扩容 PersistentVolumesbetasysctl 支持betaAzure VM Scale SetsbetaAzure 对 Cluster Autoscaler 的支持beta限制节点对 API 的访问betaCRD 版本化betaCRI 的 Windows 容器配置betaCRI 日志与统计beta动态 Kubelet 配置betaDynamicKubeletConfiggate 默认开启CRI 容器日志轮转beta默认开启PriorityClassAPI 提升到scheduling.k8s.io/v1beta1priorityClass 特性转 betaclient-go credential exec 插件beta自定义资源子资源beta默认启用。1.11 新增 alpha 特性kube-scheduler 调度 DaemonSet Pod在线 PersistentVolume 扩容无需离线设置节点最大卷数subpath 挂载中的环境变量展开Pod 容器以特定 group 运行RunAsGrouptoken 绑定到 service 请求kubelet--experimental-qos-reserve被--qos-reserved/ kubeletconfig 的QOSReserved字段替代需启用QOSReservedfeature gate。其他重要变更与已知问题升级兼容性要点Before Upgrading 摘要除上文两条紧急事项外文档还列出若干需要代码或配置跟进的行为变化审计事件中metav1.Status响应不再整体拷贝只记录status、reason、code三个字段。例如kubectl get pods abc返回 404 Status 对象时1.11 起审计事件只含这三个字段依赖旧行为的解析代码必须更新client-go HTTP transport 使用context.Context取消 dial 操作k8s.io/client-go/transport/Config结构更新为接受带context.Context参数的函数使用到该字段的代码属于破坏性变更默认挂载传播mount propagation从HostToContainerrslave改回Noneprivate与 1.9 及更早行为一致1.10 的默认值曾导致部分 Pod 回归问题。依赖 rslave 默认行为的一方需显式设置kube-apiserver--storage-version标志移除必须改用--storage-versions聚合 API server 作者不能依赖 kube-apiserver 做授权必须自行做委托授权GC 控制器受 QPS 限制之前不受限需要更高 GC QPS 的集群要显式设置PersistentVolumeLabel准入控制器默认禁用AWS/GCE 用户依赖该功能时须加入--enable-admission-pluginskubeadm 集群的 kubelet 默认关闭 10255 只读端口改用 10250 安全端口 ServiceAccount token例如访问 kubelet/metricskubelet 4194 端口的 cAdvisor Web UI 默认关闭--cadvisor-port0--cadvisor-port将在 v1.12 移除推荐以 DaemonSet 方式部署 cAdvisorkubeadm kubelet drop-in 结构大改见 SIG Cluster Lifecycle 小节结构化配置/var/lib/kubelet/config.yaml 环境文件 KUBELET_EXTRA_ARGS/etc/default/kubelet或/etc/sysconfig/kubelet。已知问题Known IssuesIPVS 模式的 kube-proxy 尚不支持为 terminating Pod 优雅关闭连接后续版本修复——事实上 v1.11.5 的 changelog 已包含 IPVS 基于连接的优雅终止支持某些环境下 kube-proxy 需要配置覆盖 hostnameVPAalpha用户在 1.12 将大幅改实现1.11 的 VPA 配置无法自动迁移到 1.12提前使用 VPA 的用户需知晓。外部依赖版本对照文档 External Dependencies 一节给出 1.11 相对 1.10 的依赖变化部署与兼容性问题排查时可作参考默认 etcd 服务器版本v3.2.181.10 为 v3.1.12Rescheduler v0.4.01.10 为 v0.3.1Go 构建版本 go1.10.21.10 为 go1.9.3最低支持 go1.9.1 不变CNI 保持 v0.6.0CSI 从 0.2.0 升到 0.3.0Heapster v1.5.21.10 为 v1.5.0Cluster Autoscaler v1.3.01.10 为 v1.2.0kube-dns v1.14.10CAdvisor v0.30.11.10 为 v0.29.1CoreDNS v1.1.3Ingress GLBC v1.0.0OIDC 认证 coreos/go-oidc v2 不变Calico v2.6.7 不变hcsshim 升到 v0.6.11Istio addon 从 0.5.1 升到 0.8.0验证通过的 Docker 版本与 1.10 相同1.11.2–1.13.1 与 17.03.x。Bug 修复精选General Fixes and Reliability1.11 的修复清单很长以下按模块归纳对生产环境影响较大的一类API server / 存储层并发 GET/LIST 请求携带非空resourceVersion时 apiserver panic修复返回 0 条目的 ListRequest 中ResourceVersion传播不正确修复JSON patch 包含越界操作时的 panic修复补丁自定义资源时 unable to find api field 的误报修复垃圾回收控制器潜在死锁修复修复 CRD 的 OpenAPI schema 不正确问题KUBE_API_VERSIONS环境变量不再被识别测试用运行时应使用runtime-config标志。调度调度器 informer 接收不到全集群 Pod 事件修复亲和/反亲和 predicate 多处竞态与自亲和处理错误修复Pod affinity nodeSelectorTerm.matchExpressions允许为空且按文档语义处理nil/空 不匹配任何对象extender 不可用时仍然继续调度请求*kubernetes.io前缀资源、但无节点暴露该资源时Pod 保持未调度不再异常--leader-elect恢复为 true修复回归。kubelet / 存储v1.JobSpec.backoffLimit回归修复此前导致失败的 Job 被无限重启PersistentVolume.NodeAffinity.NodeSelectorTerms 被 AND 而非 OR 处理修复NFS PV 回收时的潜在无限循环修复subpath 只读挂载在 SELinux 系统、以及卷挂载路径已存在于容器镜像中的失败修复subpath 挂载中 UNIX socket 等特殊文件修复修复容器化 kubelet 的 nsenter GetFileType 问题网络中断/变更后 kubelet 更新 Node 状态卡死修复。kubectl / 工具链kubectl delete不再使用 reapers完全依赖服务端 GCkubectl auth can-i退出码修正kubectl drain --timeout在驱逐eviction路径下的修复kubectl top nodes缺失节点行的修复服务端打印的列对齐修复kubectl create secret/configmap --from-file在 Windows 上支持完整路径。1.11 变更在源码中的落点对于想核对这些 1.11 特性最终形态的读者当前仓库提供了直接的源码坐标注意本仓库主干是远晚于 1.11 的版本下列路径用于确认特性 API 形状自 1.11 引入后延续至今而非 1.11 当时的代码CRD 打印列staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1/types.go 中spec.additionalPrinterColumns对应的AdditionalPrinterColumns []CustomResourceColumnDefinition约第 201 行即 1.11 引入的服务端打印列字段特性门feature gates体系pkg/features/kube_features.go 集中定义了 kube-apiserver/kube-controller-manager/kube-scheduler/kubelet 各自的 feature gate 及其默认值。1.11 文档中反复出现的 feature gate 默认值变化如DynamicKubeletConfig、Sysctls、PodPriority正是这一机制的产物从源码结构看1.11 中默认开启的 gate 在后续版本大多已固化为默认行为甚至移除 gate 本身检索该文件可确认某个 gate 在当前版本的状态准入插件注册与默认集合--enable-admission-plugins/--disable-admission-plugins取代--admission-control后Priority等插件的默认启用逻辑位于 kube-apiserver 的选项与插件装配代码中cmd/kube-apiserver与staging/src/k8s.io/apiserver相关路径与 1.11 changelog 中 v1.11.1 起 Priority 默认启用 的说明相互印证。适用前提与使用建议本文全部内容基于 CHANGELOG-1.11.md该文件属于发布记录文档描述的是 1.11 系列当时的行为当前仓库主干代码是更新的版本行为可能已经演进例如 1.11 中仍为 beta/alpha 的特性今天可能已是 GA 或被移除。若你的集群仍在 1.11 系列或从 1.11 升级而来优先核对三件事JSON 字段大小写、PodPriority 默认开启带来的多租户优先级配额、kubeadm v1alpha2 配置迁移若集群使用 GCE/GKE 的 addonv1.11.10 中的 addon 安全升级prometheus-to-sd v0.5.0、fluentd-gcp-scaler v0.5.1 等值得跟进。二进制完整性校验v1.11.0 ~ v1.11.3 用文档给出的 sha256 列v1.11.4 ~ v1.11.10 用 sha512 列按各自版本的表格取值。本仓库中 1.11 的变更说明可通过 CHANGELOG/README.md 的目录索引与其他版本如 CHANGELOG-1.10.md、CHANGELOG-1.12.md交叉阅读以完整还原跨版本的升级路径。【免费下载链接】kubernetesProduction-Grade Container Scheduling and Management项目地址: https://gitcode.com/GitHub_Trending/kuber/kubernetes创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

2026/9/7 19:40:46

数据库课程为何从C++热身开始?CMU 15-445 Project #0解析

1. 为什么一门数据库课程要把第一个项目做成C热身很多人第一次看到CMU 15-445的Project #0时都有同一个疑问:我明明是来学数据库的,为什么第一个任务不是写SQL解析器,也不是实现存储引擎,而是先做一堆C练习?这个问题想…

2026/9/7 19:35:46

ETL设计实战:从分层架构到增量同步与性能优化

做数据集成这行越久,我越觉得 ETL 不只是一门“技术活”,它更像是在给企业数据大厦浇筑地基。不管是传统数仓还是现在的数据湖仓一体,数据要能真正用起来,第一步永远绕不开抽取、转换、加载这几个动作。很多刚入门的朋友会问我&am…

2026/9/7 20:45:55

51单片机电子密码锁完整设计方案与仿真调试全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/7 20:45:55

用RDMA实现文件传输

一、概述 我们上一篇博客介绍了RDMA的相关概念,本博客在此基础之上,使用 verbs 编程,实现 RDMA 文件传输(演示代码已开源(Github:rdma-sendfile)。 如果你还不了解QP、WR、MR等 RDMA基本要素,…

2026/9/7 20:45:55

2026防刷投票系统怎么选?5个实用标准,正式评选更公平

2026 年办投票活动,刷票是最影响活动效果的问题,尤其是正式评选,一旦刷票失控,结果就失去公信力,还容易引发争议。判断一个防刷投票系统靠不靠谱,不用懂复杂技术,看 5 个实用标准就行&#xff0…

2026/9/7 20:45:55

rancher v2.6.5 部署rancher-monitor (已监控k8s v1.23.12)

安装说明: rancher需要安装的rancher monitoring和prometheus的node exporter, rancher monitoring用来监控ranhcer里各个pods的运行状态,node exporter则用来监控裸机的运行状态rancher monitoring和prometheus的node exporter,相…

2026/9/7 20:40:54

Python实现多文件夹文件汇总:递归遍历与重名冲突处理实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/7 0:47:43

超人会飞不算本事:系统稳定依赖清晰规则与边界设计

开头先不绕弯子。“#斯坦李吐槽dc 所以超人是无缘无故会飞的嘛哈哈哈哈哈哈哈锤哥真是技术人才啊!#雷神 #复联”这类调侃式短标题,第一波冲击力在于它把两个宇宙的角色塞进同一个吐槽箱里,但细想一下就能发现,它真正碰到的根本不是…

2026/9/7 0:14:19

超人VS蜘蛛侠:拆解超级IP的影响力与传播方法论

把“蜘蛛侠 vs 超人”放在 CSDN 上聊,可能很多人第一反应是走错片场了。但如果把这两个角色看成“两个持续运营了 80 多年的文化产品”,你会发现,这场比较本质上是两个不同 IP 策略的长期结果对比:超人赢在定义了整个超级英雄题材…

2026/9/7 0:14:17

基于CNN的调制信号识别:MATLAB实现时频图分类实战

简介:本资源是一套面向通信工程与信号处理方向学习者、研究者的深度学习实践方案,聚焦调制信号自动检测与识别这一典型无线通信任务,解决传统方法依赖人工特征、低信噪比下性能下降等痛点。压缩包共12个文件(10.73MB)&…

2026/9/7 0:03:36

基于YOLOv8和PyQt5的麦穗稻穗检测识别系统设计与实现

这次我们来看一个把目标检测算法和桌面端工具结合得很典型的项目:基于 YOLOv8 PyQt5 的麦穗稻穗检测识别系统。这个项目本身不是新概念,但它的价值在于落地形态很完整。YOLOv8 负责核心的麦穗稻穗目标检测,PyQt5 负责提供可视化的桌面交互界…

2026/9/7 0:03:36

UL 1642锂电池安全标准全解析:测试项目、认证流程与避坑指南

简介:UL 1642是锂电池安全领域的重要规范,本中文版资源适合锂电池制造商、检测机构工程师及产品认证相关人员阅读,用于理解电池在设计与制造层面的安全要求、测试方法与合规要点。资源共1个PDF文件,压缩包大小834KB,便…

2026/9/7 0:03:36

BS EN 13814-1-2019游乐设施安全标准:设计与制造核心要点解析

简介:BS EN 13814-1:2019是英国采纳欧洲标准EN 13814-1:2019的正式版本,由BSI标准出版,重点规定游乐设施和游乐设备在设计与制造环节的安全准则,与BS EN 13814-2:2019、BS EN 13814-3:2019共同取代旧版BS EN 13814:2004。该标准面…

2026/9/7 16:23:03

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/6 19:33:50

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/6 10:19:40

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…