Kubernetes 1.19的新功能总结(更新了什么!)
首先
这个条目是从Kubernetes 1.19的CHANGELOG中整理出来的”What’s new!”以及每个变更点的链接页面。
有关详细信息,请参考各个链接页面。
关于更改内容的详细链接
Metrics Changes と SIG Instrumentation @watawuwu
Known Issues, Urgent Upgrade Notes @shmurata
SIG Apps @yosshi_
SIG API Machinery @Ladicle
SIG Auth @hiyosi
SIG CLI @superbrothers
SIG Cluster Lifecycle @yuanying
SIG Node @uesyn
SIG Storage @ysakashita
SIG Network @tkusumi
SIG Scheduling @everpeace
新闻有什么新动态!
停用即将启用的API警告
SIG API Machinery已经实施了用于显示“弃用API使用警告”给kubectl用户和API使用者,并显示给集群管理员的指标。
对于弃用API的请求,将返回包含被删除的API以及替代API信息的警告。
还可以通过Admission Webhook或指定为自定义资源的弃用版本来返回警告。
永远避免处于测试状态
从Kubernetes 1.20版本开始,SIG架构将执行一项新的政策,即将所有REST API从beta版迁移至正式版,时间限定在9个月内。
这个新政策背后的动机是避免功能长时间停留在beta版。
一旦新的API进入beta版,它将在9个月内迁移至其中一种状态。
-
- GAとし、betaのものを非推奨とする
- 新しいbetaバージョンを出して、古いものを非推奨とする
REST API经过9个月后,下一个Kubernetes版本会将该API版本标为不推荐使用。详细信息请参考Kubernetes博客。
扩展支持调试 CLI 中的 Pod 和节点。
SIG CLI 是通过扩展 kubectl 来进行调试,并支持两个新的调试工作流程。
一是通过复制创建 Pod 进行调试,二是通过在主机的 namespaces 中创建容器进行节点调试。
这些功能在以下情况下非常有用。
-
- エフェメラルコンテナが有効になっていないクラスタにデバッグコンテナを挿入する
-
- クラッシュするコンテナのイメージを変更したり、コマンドを sleep 1d に変更したりすることで、デバッグを容易にする
- ノードのホストファイルシステムの構成ファイルを調べる
这些新的工作流不需要新的集群功能,因此您可以使用 kubectl alpha debug 命令在现有集群上进行测试。我们期待您对使用 kubectl 进行调试的反馈。请通过创建问题、加入 Kubernetes Slack 的 #sig-cli 频道,或在 kubernetes/enhancements#1441 问题上发表评论与我们联系。
结构化日志
SIG Instrumentation已经对日志消息的结构和对Kubernetes对象的引用进行了标准化。通过结构化日志,使得解析、处理、存储、查询和分析日志更加容易。klog库的新方法可以强制规范日志消息的结构。
kube-controller-manager と kube-scheduler の引数に–logging-formatオプションでフォーマットを指定できます。
默认情况下启用了EndpointSlices。
EndpointSlices是一种令人兴奋的新API,它取代了可扩展和可扩展的Endpoints API。
EndpointSlices跟踪Service后面的Pod的IP地址、端口、就绪状态和拓扑信息。
在 Kubernetes 版本 1.19 中,这个功能将默认在 kube-proxy 中启用,并且将读取 EndpointSlices 而不是 Endpoints。这是一个几乎不可见的变更,但在大规模集群中应该会导致明显的可扩展性改进。此外,在将来的 Kubernetes 发布中,将启用重要的新功能,如拓扑感知路由。
Ingress即将推出正式版。
SIG网络在Kubernetes v1.19中正式推出了广泛使用的Ingress API。
这一变更是对Kubernetes贡献者多年来努力的认可,为Kubernetes未来的网络API工作打开了更多可能性。
seccomp已经正式发布到一般可用性。
Kubernetes现在支持seccomp,该功能可通过限制Pod和容器的系统调用来增强工作负载的安全性。为此,seccompProfile字段已被添加到Pod和容器的securityContext对象中。
securityContext:
seccompProfile:
type: RuntimeDefault|Localhost|Unconfined # choose one of the three
localhostProfile: my-profiles/profile-allow.json # only necessary if type == Localhost
seccomp.security.alpha.kubernetes.io/pod和container.seccomp.security.alpha.kubernetes.io/…的注释已被弃用,并将在Kubernetes v1.22.0中删除。
目前,新增加的字段和注释可以相互转换,因此不需要对集群中现有的工作负载进行转换操作。
添加了一份关于使用seccomp限制容器系统调用的新文档。
将图像生成转移到社区控制中
截至Kubernetes v1.19,在Kubernetes容器映像中,存储在{asia,eu,us}.gcr.io/k8s-artifacts-prod的社区控制存储桶中。k8s.gcr.io的虚拟域名已经更新到这个新的存储桶中。这样一来,生产环境的艺术品将由社区管理。
KubeSchedulerConfiguration进入beta阶段。
SIG Scheduling将KubeSchedulerConfiguration升级为Beta版本。通过KubeSchedulerConfiguration功能,可以调整kube-scheduler的算法和特定配置。可以方便地启用或禁用选择的调度阶段的特定功能(包括插件)。此外,可以从一个kube-scheduler实例中提供称为”profile”的不同配置。Pod可以通过.spec.schedulerName字段选择要调度的配置文件。
CSI迁移- AzureDisk和vSphere(测试版)
所有与In-tree的Volume插件相关的云服务提供商都将被移出Kubernetes核心。
通过CSI迁移功能,所有现有Volume将通过路由到各自的CSI驱动程序的操作来继续运行,即使在代码被删除的情况下仍然能够使用传统API。
AzureDisk和vSphere的此功能已升级为Beta版。
存储容量跟踪
从前,Kubernetes调度器假定额外的持久存储在集群的任何地方都可用且容量无限。
通过拓扑限制,它已解决了前者,但以前的Pod调度未考虑到可能存在的剩余存储容量不足以启动新Pod的情况。
通过添加用于CSI驱动程序报告存储容量的API,存储容量跟踪(Alpha功能)使得Kubernetes调度器在选择Pod的新节点时可以利用此信息。
这个功能作为支持受容量限制的本地卷和其他卷类型的动态供应的基础。
CSI卷健康监测
CSI健康モニタリングのアルファバージョンがKubernetes 1.19でリリースされました。この機能により、CSIドライバーは下位レイヤーのストレージからの異常なボリュームの状態をKubernetesと共有できるようになり、PVCやPodのイベントへ報告することができます。この機能は、Kubernetesにおける個々のボリュームの健康問題の検出と解決のためのプログラムによる取り組みに役立つものです。
一般短暂的音量
Kubernetes支持与Pod相关联的临时写入空间(内置的“emptyDir”卷类型)以及用于在Pod内加载数据(内置的ConfigMap和Secret卷类型以及”CSI inline volumes”)的卷插件。
这个新的generic ephemeral volumes的alpha功能使得可以将现有支持动态供应的存储驱动程序用作与Pod的生命周期相关联的临时卷。
通过这种方式,可以提供不同类型的临时存储(例如持久内存)或在节点上分散的本地磁盘作为根目录磁盘。
所有用于卷供应的StorageClass参数均受支持。
支持存储容量跟踪、快照/还原、卷大小更改等PersistentVolumeClaim的所有功能。
不可更改的秘密和配置映射(测试版)
您可以将Secret和ConfigMap卷标记为不可变。这样,如果集群中有许多Secret和ConfigMap卷,可以大大减轻API服务器的负担。有关详细信息,请参阅ConfigMap和Secret。
Windows的CSI代理
CSI Proxy for Windows has been upgraded to version 1.19 beta. CSI Proxy allows Windows containers to perform privileged storage operations, enabling CSI drivers to run on Windows. In the beta version, CSI Proxy for Windows supported storage drivers that utilize Direct Attached Storage (DAS) and SMB.
仪表板第二版
SIG UI发布了Kubernetes Dashboard的v2版本。最新发布可在kubernetes/dashboard代码库中获取。Kubernetes Dashboard支持CRD,并包括新的翻译和AngularJS版本升级。
Windows 的 containerd 支持进入了 beta 阶段。
Kubernetes v1.18中首次引入的Windows containerd支持将在此版本中成为beta版本。这包括了对Windows Server version 2004的支持添加。(完整版本的兼容性信息请参考Windows的相关文档)
SIG Windows在此版本中包含了一些额外的功能。
-
- DSR(Direct Server Return)モードをサポートし、大量のサービスを効率的にスケールアップ可能
-
- Windows ContainerでCPU Limitを利用可能になりました
- メトリクスの収集と様りのパフォーマンスを向上しました
将Kubernetes的支持期限延长至一年。
在Kubernetes 1.19版本上,通过次要版本的补丁发布来修复错误的支持时间已经从9个月增加到1年。
在Long Term Support WG 2019年初的调查中,有相当数量的Kubernetes终端用户在之前的九个月支持期内没有进行升级。一年的支持期为终端用户提供了所期望的缓冲,并与熟悉的年度计划周期更加相协调。