当我运行我的Pod时,我得到了Pod (Cas)是无效的规范:禁止的荚更新除了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"发布于 2018-10-08 14:30:41
YAML模板有效。其中一些字段可能已被更改,并被禁止,然后执行kubectl apply ....。
看上去更像是一个发展。解决方案是使用kubectl delete pod cas-de命令删除现有的pod,然后执行kubectl apply -f file.yaml或kubectl create -f file.yaml。
发布于 2018-10-08 19:44:49
对象上有几个字段,在最初创建对象之后,您根本不允许更改这些字段。作为一个具体的例子,集装箱参考文件注意到volumeMounts“不能更新”。如果遇到其中一种情况,则需要删除并重新创建对象(可能先使用不同的名称创建新的对象)。
在Pod或部署中设置
volumeMounts更好吗?
永远不要使用裸Pods;总是喜欢使用管理Pods的控制器之一,最常见的是部署。
更改为部署实际上解决了这个问题,因为更新部署的Pod规范将经历创建新pod、等待其可用的顺序,然后为您删除旧的Pod。它从不尝试在适当的地方更新一个Pod。
https://stackoverflow.com/questions/52704071
复制相似问题