如何在集群升级之前正确更新清单的 apiVersion?
How to correctly update apiVersion of manifests prior to cluster upgrade?
所以我确实更新了清单并将 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
Deployment
exists in multiple apiGroups,所以是有歧义的。尝试指定例如apps/v1
与:
kubectl get deployments.v1.apps
您应该会看到您的 Deployment
,但带有 apps/v1
apiGroup。
所以我确实更新了清单并将 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
Deployment
exists in multiple apiGroups,所以是有歧义的。尝试指定例如apps/v1
与:
kubectl get deployments.v1.apps
您应该会看到您的 Deployment
,但带有 apps/v1
apiGroup。