1.16中已删除的不赞成使用的API:这是您需要知道的
作者:瓦莱里·兰西(Lyft)
随着Kubernetes API的发展,API会定期进行重组或升级。 随着API的发展,旧的API已被弃用并最终被删除。
的 v1.16 版本将停止提供以下不推荐使用的API版本,而支持更新和更稳定的API版本:
- 中的NetworkPolicy 扩展程序/ v1beta1 不再提供API版本
- 迁移使用 联网.k8s.io / v1 API版本,自v1.8起可用。 可以通过新版本检索/更新现有的持久数据。
- 中的PodSecurityPolicy 扩展程序/ v1beta1 API版本
- 迁移使用 政策/ v1beta1 API,自v1.10起可用。 可以通过新版本检索/更新现有的持久数据。
- DaemonSet中的 扩展程序/ v1beta1 和 apps / v1beta2 不再提供API版本
- 迁移使用 应用/ v1 API版本,自v1.9起可用。 可以通过新版本检索/更新现有的持久数据。
- 显着变化:
spec.templateGeneration
已移除spec.selector
现在是必需的,创建后是不变的;使用现有的模板标签作为选择器以进行无缝升级spec.updateStrategy.type
now defaults toRollingUpdate
(the default in扩展程序/ v1beta1
wasOnDelete
)
- 部署在 扩展程序/ v1beta1, apps / v1beta1和 apps / v1beta2 不再提供API版本
- 迁移使用 应用/ v1 API版本,自v1.9起可用。 可以通过新版本检索/更新现有的持久数据。
- 显着变化:
spec.rollbackTo
已移除spec.selector
现在是必需的,创建后是不变的;使用现有的模板标签作为选择器以进行无缝升级spec.progressDeadlineSeconds
now defaults to600
seconds (the default in扩展程序/ v1beta1
was no deadline)spec.revisionHistoryLimit
now defaults to10
(the default inapps / v1beta1
was2
, the default in扩展程序/ v1beta1
was to retain all)maxSurge
和maxUnavailable
now default to25%
(the default in扩展程序/ v1beta1
was1
)
- StatefulSet中的 apps / v1beta1 和 apps / v1beta2 不再提供API版本
- 迁移使用 应用/ v1 API版本,自v1.9起可用。 可以通过新版本检索/更新现有的持久数据。
- 显着变化:
spec.selector
现在是必需的,创建后是不变的;使用现有的模板标签作为选择器以进行无缝升级spec.updateStrategy.type
now defaults toRollingUpdate
(the default inapps / v1beta1
wasOnDelete
)
- ReplicaSet在 扩展程序/ v1beta1, apps / v1beta1和 apps / v1beta2 不再提供API版本
- 迁移使用 应用/ v1 API版本,自v1.9起可用。 可以通过新版本检索/更新现有的持久数据。
- 显着变化:
spec.selector
现在是必需的,创建后是不变的;使用现有的模板标签作为选择器以进行无缝升级
的 v1.22 版本将停止提供以下不推荐使用的API版本,而支持更新和更稳定的API版本:
- 进入 扩展程序/ v1beta1 API版本将不再提供
- 迁移使用 联网.k8s.io / v1beta1 API版本,自v1.14起可用。 可以通过新版本检索/更新现有的持久数据。
该怎么办
Kubernetes 1.16将于2019年9月发布,因此请务必进行审核 立即进行您的配置和集成!
- 更改YAML文件以引用较新的API
- 更新自定义集成和控制器以调用较新的API
- 更新第三方工具(入口控制器,连续交付系统) 调用较新的API
迁移到新的Ingress API只需更改API路径-
API字段保持不变。但是,迁移其他资源(例如EG部署)
将需要根据更改的字段进行一些更新。您可以使用
kubectl convert
自动转换现有对象的命令:
kubectl convert -f <file> --output-version <group>/<version>
.
例如,转换
将较旧的Deployments部署到apps / v1,则可以运行:
kubectl convert -f ./my-deployment.yaml --output-version 应用/ v1
请注意,这可能会使用非理想的默认值。要了解有关特定产品的更多信息
资源,检查Kubernetes api参考.
您可以通过使用上述资源启动apiserver来测试集群 禁用,以模拟即将进行的删除。将以下标志添加到 apiserver启动参数:
--runtime-config=apps/v1beta1=false,apps/v1beta2=false,extensions/v1beta1/daemonsets=false,extensions/v1beta1/deployments=false,extensions/v1beta1/replicasets=false,extensions/v1beta1/networkpolicies=false,extensions/v1beta1/podsecuritypolicies=false
想知道更多?
在Kubernetes发行说明中将宣布弃用。你可以看到这些 announcements in 1.14和 1.15.
您可以阅读更多 在我们的弃用政策文件中 有关Kubernetes API和其他Kubernetes组件的弃用策略的信息。 弃用政策因组件而异(例如,主要API与 管理员CLI)和到期时间(alpha,beta或GA)。
这些细节也 先前宣布 在kubernetes-dev邮件列表中,以及Kubernetes 1.14的发行版中 和1.15。从乔丹·利吉特(Jordan Liggitt):
In case you missed it in the 1.15.0 release notes, the timelines for deprecated resources in the 扩展程序/ v1beta1, apps / v1beta1, 和 apps / v1beta2 API groups to no longer be served by default have been updated:
* NetworkPolicy resources will no longer be served from 扩展程序/ v1beta1 by default in v1.16. Migrate to the 联网.k8s.io / v1 API, available since v1.8. Existing persisted data can be retrieved/updated via the 联网.k8s.io / v1 API.
* PodSecurityPolicy resources will no longer be served from 扩展程序/ v1beta1 by default in v1.16. Migrate to the 政策/ v1beta1 API,自v1.10起可用。 Existing persisted data can be retrieved/updated via the 政策/ v1beta1 API.
* DaemonSet, Deployment, StatefulSet, 和 ReplicaSet resources will no longer be served from 扩展程序/ v1beta1, apps / v1beta1, or apps / v1beta2 by default in v1.16. Migrate to the 应用/ v1 API, available since v1.9. Existing persisted data can be retrieved/updated via the 应用/ v1 API.
To start a v1.15.0 API server with these resources disabled to flush out dependencies on these deprecated APIs, 和 ensure your application/manifests will work properly against the v1.16 release, use the following --runtime-config argument:
--runtime-config=apps/v1beta1=false,apps/v1beta2=false,extensions/v1beta1/daemonsets=false,extensions/v1beta1/deployments=false,extensions/v1beta1/replicasets=false,extensions/v1beta1/networkpolicies=false,extensions/v1beta1/podsecuritypolicies=false