クラスターのアップグレード前にマニフェストのapiVersionを正しく更新するにはどうすればよいですか?

Aug 22 2020

そこで、マニフェストを更新し、apiVersion:extensions / v1beta1apiVersion: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 kubernetesv1.15をv1.16に移行する準備をしています

回答

3 Jonas Aug 22 2020 at 05:04

Deployment 複数apiGroupsに存在するので、それは曖昧です。たとえばapps/v1、次のように指定してみてください。

kubectl get deployments.v1.apps

そして、あなたはあなたのDeploymentしかしapps/v1apiGroupを見るはずです。