Kubernetes 运行pod.yaml时规范无效
当我运行我的Pod时,我得到的Pod(cas de)无效规范:禁止的Pod更新可能不会更改除Kubernetes 运行pod.yaml时规范无效,kubernetes,google-kubernetes-engine,Kubernetes,Google Kubernetes Engine,当我运行我的Pod时,我得到的Pod(cas de)无效规范:禁止的Pod更新可能不会更改除spec.containers[*].image,spec.initContainers[*].image,spec.activeDeadlineSeconds或spec.tolerations以外的字段(仅添加到现有的公差) 然而,我在kubernetes网站上搜索,没有发现任何错误: (我真的不明白我的错误在哪里) 在Pod或部署中设置volumeMounts更好吗 apiVersion: v1 ki
spec.containers[*].image
,spec.initContainers[*].image
,spec.activeDeadlineSeconds
或spec.tolerations
以外的字段(仅添加到现有的公差)
然而,我在kubernetes网站上搜索,没有发现任何错误:
(我真的不明白我的错误在哪里)
在Pod或部署中设置volumeMounts
更好吗
apiVersion: v1
kind: Pod
metadata:
name: cas-de
namespace: ds-svc
spec:
containers:
- name: ds-mg-cas
image: "docker-all.xxx.net/library/ds-mg-cas:latest"
imagePullPolicy: Always
ports:
- containerPort: 8443
- containerPort: 6402
env:
- name: JAVA_APP_CONFIGS
value: "/apps/ds-cas/configs"
- name: JAVA_EXTRA_PARAMS
value: "-Djava.security.auth.login.config=./config/jaas.config -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=6402"
volumeMounts:
- name: ds-cas-config
mountPath: "/apps/ds-cas/context"
volumes:
- name: ds-cas-config
hostPath:
path: "/apps/ds-cas/context"
YAML模板是有效的。某些字段可能已被更改,但被禁止,然后执行
kubectl apply…
看起来更像是一种发展。解决方案是使用
kubectl delete pod cas de
命令删除现有pod,然后执行kubectl apply-f file.yaml
或kubectl create-f file.yaml
在对象最初创建后,不允许更改对象上的几个字段。作为一个具体示例,请注意,volumeMounts
“无法更新”。如果遇到这些情况之一,则需要删除并重新创建对象(可能首先使用不同的名称创建新对象)
在Pod或部署中设置volumeMounts
更好吗
不要使用裸豆荚;始终更喜欢使用管理POD的控制器之一,通常是部署
更改为部署实际上可以解决此问题,因为更新部署的pod规范将经历创建新pod、等待可用pod,然后为您删除旧pod的过程。它从不尝试就地更新Pod。您是在创建新Pod还是在更新Pod?还有,这个吊舱已经是部署的一部分了吗?