Kubernetes v1.16.0 已经发布,该版本由 31 个增强功能组成:8 个进入稳定,8 个进入 Beta,15 个进入 Alpha。
四大主题如下:
- Custom resources:CRD 是对 Kubernetes 的扩展,用以服务于新的资源类型,自 1.7 版本以来,CRD 已经在 Beta 版中可用。在 1.16 版本中,CRD 正式步入通用可用性(GA)
- Admission webhook:Admission webhooks 作为 Kubernetes 扩展机制被广泛使用,并且自 1.9 版本以来已经在 Beta 版中可用。在 1.16 版本中,Admission webhook 也正式步入通用可用性(GA)
- Overhauled metrics:Kubernetes 广泛使用一个全局 metrics registry 来注册要公开的 metrics。通过实现 metrics registry,metrics 可以以更透明的方式注册。而在这之前,Kubernetes metrics 被排除在任何稳定性需求之外
- Volume Extension:新版本有大量和 Volume 及 Volume 修改相关的增强。CSI 规范中对 Volume 调整的支持正在转向 Beta 版,它允许任何 CSI spec Volume plugin 都可以调整大小
其他值得注意的功能更新:
- 拓扑管理器是一个新的 Kubelet 组件,旨在协调资源分配决策,以提供优化的资源分配
- IPv4/IPv6 双栈允许将 IPv4 和 IPv6 地址分配给 Pods 和服务
- API Server Network Proxy 在 1.16 版本中进入 Alpha
- Cloud Controller Manager Migration 增强
- 继续淘汰 extensions/v1beta1、apps/v1beta1 和 apps/v1beta2 API,这些扩展会在 1.16 版本中被弃用
已知的问题:
etcd 和 KMS plugin 的健康检查没有在新的 livez
的 和 readyz
端点中公开。这将在 v1.16.1 中得到修正。
运行iptables
1.8.0 或更新版本的系统应以兼容模式启动它。请注意,这将影响所有版本的 Kubernetes,而不仅仅是 v1.16.0。
升级前须知:
集群生命周期
amd64
的容器镜像 tar 文件现在将包含 RepoTags manifest.json 的体系结构。如果你正在使用 Docker 清单,则没有可见的更改 (#80266)
在 TLS 引导用户依赖 bootstrap-kubelet.conf 之后,kubeadm 现在已删除 bootstrap-kubelet.conf 文件,用户应该切换到包含节点凭证的 kubelet.conf 文件(#80676)。
beta.kubernetes.io/metadata-proxy-ready
、beta.kubernetes.io/masq-agent-ds-ready
、beta.kubernetes.io/kube-proxy-ds-ready
(节点标签)不再添加到新节点上。
- ip-mask-agent addon 开始使用标签
node.kubernetes.io/masq-agent-ds-ready
作为其节点选择器; - kube-proxy addon 开始使用标签
node.kubernetes.io/kube-proxy-ds-ready
作为其节点选择器; - metada -proxy addon 开始使用标签
cloud.google.com/metada -proxy-ready
作为其节点选择器。
存储
- 当为 CSI 驱动启用 PodInfoOnMount 时,Volume 上下文中新的 csi.storage.k8s.io/ephemeral 参数允许驱动程序的 NodePublishVolume 实现根据具体情况确定该 Volume 是临时性的还是正常的持久卷(#79983)
- 为 VerifyVolumesAreAttached 和 BulkVolume-Verify 添加 CSI Migration Shim(#81792)
- 新版本将 VolumePVCDataSource(克隆)特性提升到 Beta 版(#81792)
- 将 in-tree 和 CSI Volume 的 Volume Limits 集成到一个 scheduler predicate 中 (#77595)