Kubernetes v1.16 对API的更改
前段时间安装Kubernetes v1.16.2,然后从v1.14版本的拷贝yaml文件过来执行,很多都报没有相应的api,查看一下新版本的api
admissionregistration.k8s.io/v1
admissionregistration.k8s.io/v1beta1
apiextensions.k8s.io/v1
apiextensions.k8s.io/v1beta1
apiregistration.k8s.io/v1
apiregistration.k8s.io/v1beta1
apps/v1
authentication.k8s.io/v1
authentication.k8s.io/v1beta1
authorization.k8s.io/v1
authorization.k8s.io/v1beta1
autoscaling/v1
autoscaling/v2beta1
autoscaling/v2beta2
batch/v1
batch/v1beta1
certificates.k8s.io/v1beta1
coordination.k8s.io/v1
coordination.k8s.io/v1beta1
custom.metrics.k8s.io/v1beta1
events.k8s.io/v1beta1
extensions/v1beta1
metrics.k8s.io/v1beta1
networking.k8s.io/v1
networking.k8s.io/v1beta1
node.k8s.io/v1beta1
policy/v1beta1
rbac.authorization.k8s.io/v1
rbac.authorization.k8s.io/v1beta1
scheduling.k8s.io/v1
scheduling.k8s.io/v1beta1
storage.k8s.io/v1
storage.k8s.io/v1beta1
v1
发现确实有更改
Kubernetes v1.16 于 2019 年 9 月发布,大家最需要关注的是部分API将弃用。
v1.16.0 对以下四种类型资源的 API 做出调整
NetworkPolicy
PodSecurityPolicies
Ingress
DaemonSet
Deployment
StatefulSet
ReplicaSet
API 具体调整细节如下
DaemonSet, Deployment, StatefulSet 和 ReplicaSet 从 extensions/v1beta1 改用 apps/v1;apps/v1 从 v1. 版本开始提供API。 NetworkPolicies 从 extensions/v1beta1 改用 networking.k8s.io/v1;networking.k8s.io/v1 从 v1. 版本开始提供API。 PodSecurityPolicies 从 extensions/v1beta1 改用 policy/v1beta1;policy/v1beta1 从 v1. 版本开始提供API。
Ingress 从 extensions/v1beta1 改用 networking.k8s.io/v1beta1;networking.k8s.io/v1beta1 从v1. 版本开始提供API。
默认情况不在提供上面API,如果实在要临时启用,可使用 --runtime-config apiserver 标志临时启用这些API
apps/v1beta1=true apps/v1beta2=true extensions/v1beta1/daemonsets=true,extensions/v1beta1/deployments=true,extensions/v1beta1/replicasets=true,extensions/v1beta1/networkpolicies=true,extensions/v1beta1/podsecuritypolicies=true
注意:上面提供的 API 将在 v1.18 完全删除。
下面列举部分 API 弃用预告
extensions/v1beta1从 v1.20 开始将不再提供 Ingress 资源。networking.k8s.io/v1beta1从 v1.14 开始提供API。可以通过networking.k8s.io/v1beta1API 检索现有的持久数据。scheduling.k8s.io/v1beta1和scheduling.k8s.io/v1alpha1从 v1.17 起不再提供PriorityClass资源。改用scheduling.k8s.io/v1API,自 v1.14 起可用。可以通过scheduling.k8s.io/v1API 检索现有的持久数据。export自 v1.14 起已弃用,将在 v1.18 删除。- 不推荐使用的节点条件类型
OutOfDisk已被删除。使用DiskPressure条件代替。 GA PodPriority功能现在默认情况下处于打开状态,无法禁用。功能将在 v1.18 中删除。alpha.service-controller.kubernetes.io/exclude-balancer不推荐使用云负载均衡器排除节点标签(使用 Service Type = LoadBalancer),而推荐使用node.kubernetes.io/exclude-balancer。alpha.service-controller.kubernetes.io/exclude-balancer将在 v1.18 删除。admissionregistration.k8s.io/v1beta1版本MutatingWebhookConfiguration和 ValidatingWebhookConfiguration已过时,将在 v1.19 移除。使用admissionregistration.k8s.io/v1替代。
升级到 v1.16.0 之前需要做什么?
更改 YAML 文件以引用新的 API
更新自定义集成和控制器来调用新的 API
- 更新第三方工具(ingress controllers、持续交付系统)来调用新的 API
迁移到新的 Ingress API 只需要更改 API 路径——API 字段保持不变。然而,迁移其他资源(如Deployment)将需要基于更改的字段进行一些更新。你可以使用 kubectl convert 命令自动转换现有对象:
kubectl convert -f <file> --output-version <group>/<version>
例如,要将旧的 Deployment 转换为 apps/v1,可以执行:kubectl convert -f ./my-deployment.yaml --output-version apps/v1。注意,这可能使用非理想的默认值。要了解关于特定资源的更多信息,请检查 Kubernetes API reference[1]。
测试
可以通过配置 --runtime-config 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
更多
关于升级到 v1.16.0 更多详情请见 https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.16.md
参考链接
- https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.16.md
- https://zhuanlan.zhihu.com/p/74626407
- https://moelove.info/2019/07/22/K8S-%E7%94%9F%E6%80%81%E5%91%A8%E6%8A%A5-2019-07-15~2019-07-21/
Kubernetes v1.16 对API的更改的更多相关文章
- Kubernetes v1.16 发布 | 云原生生态周报 Vol. 20
作者:心贵.进超.元毅.心水.衷源.洗兵 业界要闻 Kubernetes v1.16 发布 在这次发布中值得关注的一些特性和 Feature: CRD 正式进入 GA 阶段: Admission We ...
- 使用 kubeadm 安装 kubernetes v1.16.0
近日通过kubeadm 安装 kubernetes v1.16.0,踩过不少坑,现记录下安装过程. 安装环境: 系 统:CentOS Linux release 7.6 Docke ...
- Kubernetes V1.16.2部署Dashboard V2.0(beta5)
Kubernetes V1.16.2部署Dashboard V2.0(beta5) 在Master上部署Dashboard 集群安装部署请看安装Kubernetes V1.16.2 kubectl g ...
- 安装Kubernetes V1.16.2
安装Kubernetes V1.16.2 准备硬件环境 利用VirtualBox准备两台Linux虚拟机(K8S集群2台起步),系统用CentOS(我用的是的CentOS-7-x86_64-DVD-1 ...
- Ubuntu 18.04 环境下 kubernetes v1.16.2 单机部署说明
一.安装环境 本次部署使用阿里云ECS 操作系统: Ubuntu 18.04 64位 实例规格: ecs.c6.large 2U4G 二.kubernetes 版本 k8s.gcr.io/kube- ...
- kubernetes V1.16 Ingress-nginx部署
Ingress 在Kubernetes中,服务和Pod的IP地址仅可以在集群网络内部使用,对于集群外的应用是不可见的.为了使外部的应用能够访问集群内的服务,在Kubernetes中可以通过NodePo ...
- kubernetes实战(二十六):kubeadm 安装 高可用 k8s v1.16.x dashboard 2.x
1.基本配置 基本配置.内核升级.基本服务安装参考https://www.cnblogs.com/dukuan/p/10278637.html,或者参考<再也不踩坑的Kubernetes实战指南 ...
- k8s kubernetes 核心笔记 镜像仓库 项目k8s改造(含最新k8s v1.16.2版本)
k8s kubernetes 核心笔记 镜像仓库 项目k8s改造 2019/10/24 Chenxin 一 基本资料 一 参考: https://kubernetes.io/ 官网 https://k ...
- 二进制搭建Kubernetes集群(最新v1.16.0版本)
目录 1.生产环境k8s平台架构 2.官方提供三种部署方式 3.服务器规划 4.系统初始化 5.Etcd集群部署 5.1.安装cfssl工具 5.2.生成etcd证书 5.2.1 创建用来生成 CA ...
随机推荐
- Yii2 kineditor
用 kineditor实现异步 <table cellspadding=5 width=400> <tr height='150'> <td valign="t ...
- SQL Server索引管理之六大铁律
索引是以表列为基础的数据库对象.索引中保存着表中排序的索引列,并且纪录了索引列在数据库表中的物理存储位置,实现了表中数据的逻辑排序.通过索引,可以加快数据的查询速度和减少系统的响应时间;可以使表和表之 ...
- 【CF1257B】Magic Stick【思维】
题意:每次可以对a进行两种操作,1:如果是偶数,则变成3*a/2:2:变成a-1 显然当a=1时,b只能为1 a=2或3时,b只能为123 a>3时,b可以为任意数 代码: #include&l ...
- 团队冲刺DAY1
团队冲刺DAY1 今天的内容是对未来6天的突击有一个大致的规划. 我们小组的选题是客户端-服务器安全信息传递系统,通过讨论,我们认为大概有四个难题. 第一个是服务器和客户端,我们打算用第二天来完成. ...
- 动态调试某个apk的smali代码,微信举例
本地环境: PC:windows 10,Intellij IDEA (android studio应该一样的) 手机:nexus5 8.1系统, 其他依赖:smalidea插件,xposed 插件 h ...
- 斯坦福【概率与统计】课程笔记(五):EDA | 箱线图
介绍箱线图之前,需要先介绍若干个其需要的术语 min:整个样本的最小值 max:整个样本的最大值 Range:即整个样本的取值范围,Range = max - min Inter-Quartile R ...
- Prim算法生成迷宫
初始化地图 function initMaze(r,c){ let row = new Array(2 * r + 1) for(let i = 0; i < row.length; i++){ ...
- MySQL总结03
MySQL表的引擎常用的有两种:MyISAM.InnoDB MyISAM引擎 MySQL5.5之前数据库默认的存储引擎都是MyISAM,MySQL5.5之后(包括5.5)用的是InnoDB. 每一个M ...
- pixi与lottie-web的benchmark测试
生产版本 "dependencies": { "lottie-web": "^5.5.7", "pixi-spin ...
- queue队列消费者生产者测试
from multiprocessing import JoinableQueue from threading import Thread def worker(q): while True: tr ...