批量更新所有kubernetes部署API版本

批量更新所有kubernetes部署API版本,kubernetes,google-kubernetes-engine,Kubernetes,Google Kubernetes Engine,我在大多数部署中使用的是apiversion:apps/v1beta2,但是Kubernetes群集版本1.14建议使用apiversion:apps/v1。此外,v1beta2将从Kubernetes 1.16中弃用 是否有更好的选项来减少手动工作并将所有版本为apps/v1beta2的部署更新为v1 或者我可以使用补丁所有部署。在应用任何更改之前,请确保它们包括任何必要的更改,以适应1.16版本。 其中一些变化是: 不再提供扩展/v1beta1、应用/v1beta1和应用/v1beta2AP

我在大多数部署中使用的是
apiversion:apps/v1beta2
,但是Kubernetes群集版本
1.14
建议使用
apiversion:apps/v1
。此外,v1beta2将从
Kubernetes 1.16
中弃用

是否有更好的选项来减少手动工作并将所有版本为
apps/v1beta2
的部署更新为
v1


或者我可以使用
补丁
所有部署。

在应用任何更改之前,请确保它们包括任何必要的更改,以适应
1.16
版本。

其中一些变化是:

不再提供扩展/v1beta1应用/v1beta1应用/v1beta2API版本中的部署

  • 迁移到使用从v1.9开始提供的应用程序/v1API版本。可以通过新版本检索/更新现有的持久化数据
  • 显著变化:
    • spec.rollbackTo
      已删除
    • spec.selector
      现在是必需的,并且在创建后是不可变的;使用现有模板标签作为无缝升级的选择器
    • spec.progressDeadlineSeconds
      现在默认为
      600
      seconds(扩展/v1beta1中的默认值没有截止日期)
    • spec.revisionHistoryLimit
      现在默认为
      10
      apps/v1beta1
      中的默认值是
      2
      extensions/v1beta1
      中的默认值是保留所有)
    • maxsupge
      maxUnavailable
      现在默认值为
      25%
      extensions/v1beta1
      中的默认值为
      1
--

请参考以上链接检查上述必要的更改


kubectl补丁
有一份关于它的官方文件:

不幸的是,
kubectl补丁
确实更改了示例中的
YAML
定义,但它无法更改
apiVersion


kubectl convert
kubectl
中内置了一个名为
kubectl convert
的工具,它可以转换现有的
YAML
以适应
1.16
版本请记住,它很快就会被弃用。看一看关于它的文章:


shell脚本 您还可以使用您选择的语言编写脚本,该语言将发生变化:

  • apiVersion:apps/v1beta2
  • apiVersion:apps/v1beta1
致:

  • apiVersion:apps/v1

您还可以看看:


如果你对此有任何疑问,请告诉我

在应用任何更改之前,请确保这些更改包括任何必要的更改,以适应
1.16
版本。

其中一些变化是:

不再提供扩展/v1beta1应用/v1beta1应用/v1beta2API版本中的部署

  • 迁移到使用从v1.9开始提供的应用程序/v1API版本。可以通过新版本检索/更新现有的持久化数据
  • 显著变化:
    • spec.rollbackTo
      已删除
    • spec.selector
      现在是必需的,并且在创建后是不可变的;使用现有模板标签作为无缝升级的选择器
    • spec.progressDeadlineSeconds
      现在默认为
      600
      seconds(扩展/v1beta1中的默认值没有截止日期)
    • spec.revisionHistoryLimit
      现在默认为
      10
      apps/v1beta1
      中的默认值是
      2
      extensions/v1beta1
      中的默认值是保留所有)
    • maxsupge
      maxUnavailable
      现在默认值为
      25%
      extensions/v1beta1
      中的默认值为
      1
--

请参考以上链接检查上述必要的更改


kubectl补丁
有一份关于它的官方文件:

不幸的是,
kubectl补丁
确实更改了示例中的
YAML
定义,但它无法更改
apiVersion


kubectl convert
kubectl
中内置了一个名为
kubectl convert
的工具,它可以转换现有的
YAML
以适应
1.16
版本请记住,它很快就会被弃用。看一看关于它的文章:


shell脚本 您还可以使用您选择的语言编写脚本,该语言将发生变化:

  • apiVersion:apps/v1beta2
  • apiVersion:apps/v1beta1
致:

  • apiVersion:apps/v1

您还可以看看:


如果你对此有任何疑问,请告诉我

您可以尝试使用move2kube()工具来实现上述功能

要实现上述目标,请执行以下操作:

创建定义集群类型的yaml文件,如下所示(调用为clusterconfig.yaml):

然后运行:

move2kube translate -s <folder containing your clusterconfig.yaml file and kubernetes yaml files>
move2kube translate-s

交互式工具将要求提供所需信息并进行翻译。

您可以尝试使用move2kube()工具来实现上述功能

要实现上述目标,请执行以下操作:

创建定义集群类型的yaml文件,如下所示(调用为clusterconfig.yaml):

然后运行:

move2kube translate -s <folder containing your clusterconfig.yaml file and kubernetes yaml files>
move2kube translate-s
交互式工具将要求提供所需信息并进行翻译