【问题标题】:How to correctly update apiVersion of manifests prior to cluster upgrade?如何在集群升级之前正确更新清单的 apiVersion?
【发布时间】:2020-12-11 07:00:14
【问题描述】:

所以我确实更新了清单并将 apiVersion: extensions/v1beta1 替换为 apiVersion: apps/v1

apiVersion: apps/v1
kind: Deployment
metadata:
  name: secretmanager
  namespace: kube-system
spec:
  selector:
    matchLabels:
      app: secretmanager
  template:
    metadata:
      labels:
        app: secretmanager
    spec:
    ...

然后我应用了更改

k apply -f deployment.yaml

Warning: kubectl apply should be used on resource created by either kubectl create --save-config or kubectl apply
deployment.apps/secretmanager configured

我也试过

k replace --force -f deployment.yaml

这重新创建了 POD(停机时间:(),但如果您尝试输出部署的 yaml 配置,我仍然会看到旧值

k get deployments -n kube-system secretmanager -o yaml 

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  annotations:
    deployment.kubernetes.io/revision: "1"
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"apps/v1","kind":"Deployment",
      "metadata":{"annotations":{},"name":"secretmanager","namespace":"kube-system"}....}
  creationTimestamp: "2020-08-21T21:43:21Z"
  generation: 2
  name: secretmanager
  namespace: kube-system
  resourceVersion: "99352965"
  selfLink: /apis/extensions/v1beta1/namespaces/kube-system/deployments/secretmanager
  uid: 3d49aeb5-08a0-47c8-aac8-78da98d4c342
spec:

所以我仍然看到这个 apiVersion: extensions/v1beta1

我做错了什么?

我正在准备将 eks kubernetes v1.15 迁移到 v1.16

【问题讨论】:

    标签: kubernetes kubectl amazon-eks kubernetes-upgrade


    【解决方案1】:

    Deploymentexists in multiple apiGroups,所以是模棱两可的。尝试指定例如apps/v1 与:

    kubectl get deployments.v1.apps
    

    你应该看到你的Deployment,但是apps/v1 apiGroup。

    【讨论】:

    • 这是否意味着我不应该修改清单而只运行集群升级例程?
    • @DmitrySemenov,是的,这是真的。
    • 谢谢@Jonas。因此,如果现有入口资源具有 apiVersion: extensions/v1beta1,那么我是否应该在集群升级之前对其进行更新?那么如果我不更新清单并更新集群会发生什么。该资源会自动切换到 apiVersion: extensions/v1beta1 还是会失败,我必须删除/创建清单?
    • @DmitrySemenov 这是针对存在于多个 apiGroups 中的Deployment。其他 api 可能不存在于多个 apiGroup 中,可能需要迁移。查找您要升级到的版本的文档,例如kubernetes.io/blog/2019/07/18/api-deprecations-in-1-16
    • 查看显着变化,例如"spec.selector 现在是必需的并且在创建后不可变;使用现有的模板标签作为无缝升级的选择器"
    猜你喜欢
    • 2021-12-08
    • 1970-01-01
    • 2016-08-02
    • 1970-01-01
    • 2021-03-25
    • 2011-04-05
    • 1970-01-01
    • 2016-06-20
    • 1970-01-01
    相关资源
    最近更新 更多