Kubernetes Can';在我使用新的API版本应用yaml之后,我看不到K8s中的变化
我正在将K8s从1.15升级到1.16。在此之前,我必须将我的守护程序、部署、状态集等迁移到apps/v1版本。但是当我这么做的时候,我不理解K8s的行为 假设我们有一个守护程序:Kubernetes Can';在我使用新的API版本应用yaml之后,我看不到K8s中的变化,kubernetes,yaml,Kubernetes,Yaml,我正在将K8s从1.15升级到1.16。在此之前,我必须将我的守护程序、部署、状态集等迁移到apps/v1版本。但是当我这么做的时候,我不理解K8s的行为 假设我们有一个守护程序: apiVersion: apps/v1beta2 kind: DaemonSet metadata: name: spot-interrupt-handler namespace: kube-system spec: selector: matchLabels: app: spot-i
apiVersion: apps/v1beta2
kind: DaemonSet
metadata:
name: spot-interrupt-handler
namespace: kube-system
spec:
selector:
matchLabels:
app: spot-interrupt-handler
template:
metadata:
labels:
app: spot-interrupt-handler
spec:
serviceAccountName: spot-interrupt-handler
containers:
- name: spot-interrupt-handler
image: madhuriperi/samplek8spotinterrupt:latest
imagePullPolicy: Always
env:
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: SPOT_POD_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
nodeSelector:
lifecycle: Ec2Spot
我将第一行更改为apps/v1,并成功地将此yaml应用于K8s。之后没有任何变化,POD不会重新启动。
我收到以下通知:
daemonset.apps/spot-interrupt-handler configured
kubectl get ds spot-interrupt-handler -n default -o yaml
这就是我在yaml定义开头看到的:
apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
annotations:
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"apps/v1","kind":"DaemonSet","metadata":{"annotations":{},"name":"spot-interrupt-handler","namespace":"default"},"spec":{"selector":{"matchLabels":{"app":"spot-interrupt-handler"}},"template":{"metadata":{"labels":{"app":"spot-interrupt-handler"}},"spec":{"containers":[{"env":[{"name":"POD_NAME","valueFrom":{"fieldRef":{"fieldPath":"metadata.name"}}},{"name":"NAMESPACE","valueFrom":{"fieldRef":{"fieldPath":"metadata.namespace"}}},{"name":"SPOT_POD_IP","valueFrom":{"fieldRef":{"fieldPath":"status.podIP"}}}],"image":"madhuriperi/samplek8spotinterrupt:latest","imagePullPolicy":"Always","name":"spot-interrupt-handler"}],"nodeSelector":{"lifecycle":"Ec2Spot"},"serviceAccountName":"spot-interrupt-handler"}}}}
creationTimestamp: "2021-02-09T08:34:33Z"
提前感谢我在GKE环境中复制了您的设置,在将kubernetes版本从1.15升级到1.16之后,守护程序的
apiVersion
已更改为apiVersion:apps/v1
我从GKE版本1.15.12
开始,并应用了您的配置。成功应用后,我将apiVersion更改为apps/v1
,extensions/v1beta1
仍为当前的apiVersion
将kubernetes版本升级到
version.Info{Major:“1”,Minor:“16+”,GitVersion:“v1.16.15-gke.6000”
nowapps/v1中的DS
为了检查同样的行为是否会再次发生,我创建了一个DS并升级了kubernetes版本,但没有更改apiVersion,并且它本身已更改为apps/v1