2016-11-01 91 views
1

env元素使用K8仪表板的编辑没有得到保存荚的spec.containers增加。有谁知道问题是什么?Kubernetes部署:编辑吊舱的YAML文件的“规范”失败

是否有任何其他方式将环境变量添加到pods /容器?

# pods "EXAMPLE" was not valid: 
# * spec: Forbidden: pod updates may not change fields other than `containers[*].image` or `spec.activeDeadlineSeconds` 

感谢:

我通过编辑使用纳米文件做同样的,当这个错误信息。

回答

3

并非所有的字段都可以更新。这一事实在kubectl explain输出对象有时会提到(和错误你有列出了可以改变的领域,所以别人也许不能):

$ kubectl explain pod.spec.containers.env 
RESOURCE: env <[]Object> 

DESCRIPTION: 
    List of environment variables to set in the container. Cannot be updated. 

    EnvVar represents an environment variable present in a Container. 

如果部署使用Deployment object您的吊舱,那么您可以更改对象的环境变量kubectl edit,因为部署将会推出具有变量更改的Pod的更新版本,并杀死那些没有更改的Pod。显然,这种方法并没有改变Pod的位置,但它是获得你需要的一种方法。

您的另一种选择可能是使用ConfigMaps。如果您使用卷插件方法安装ConfigMap ,则应用程序会写入以了解卷的更改并使用更改时的新设置重新加载自身,但这可能是一种选择(或者至少向您提供其他可能的想法为你工作)。