使用K8仪表板的“ 编辑”env添加到spec.containers窗格中的元素不会保存。有人知道问题出在哪里吗?
还有其他方法可以将环境变量添加到容器/容器吗?
通过使用nano编辑文件来执行此操作时出现此错误:
# pods "EXAMPLE" was not valid:
# * spec: Forbidden: pod updates may not change fields other than `containers[*].image` or `spec.activeDeadlineSeconds`
Run Code Online (Sandbox Code Playgroud)
谢谢。
kis*_*shu 10
我们无法编辑正在运行的 pod 的环境变量、资源限制、服务帐户。但当然,我们可以编辑/更新镜像名称、容忍度和活动截止时间秒等。但是,“部署”可以轻松编辑,因为“pod”是部署规范的子模板。为了“编辑”正在运行的 Pod 并进行所需的更改,可以使用以下方法。
将 Pod 定义提取到文件中,进行必要的更改,删除现有 Pod,然后从编辑的文件创建新 Pod:
kubectl get pod my-pod -o yaml > my-new-pod.yaml
vi my-new-pod.yaml
kubectl delete pod my-pod
kubectl create -f my-new-pod.yaml
Run Code Online (Sandbox Code Playgroud)
并非所有字段都可以更新。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.
Run Code Online (Sandbox Code Playgroud)
如果使用部署荚部署对象,那么您可以在更改环境变量是与对象kubectl edit,因为部署将推出咖啡包的更新版本有变量的变化并杀死老荚没有。显然,该方法不会更改Pod的位置,但这是获得所需内容的一种方法。
您的另一个选择可能是使用ConfigMaps。如果使用卷插件方法安装ConfigMap,并且编写应用程序时要注意卷的更改,并在更改时使用新设置重新加载自身,则它可能是一个选择(或者至少为您提供了其他可能适用的想法)您)。
| 归档时间: |
|
| 查看次数: |
2078 次 |
| 最近记录: |