gpt4 book ai didi

kubernetes - 如何在运行的Kubernetes Pod中更新卷?

转载 作者:行者123 更新时间:2023-12-02 11:45:26 25 4
gpt4 key购买 nike

我有一个已经在Minikube(v0.23.0)节点上运行的Kubernetes容器。

一些上下文:这是从启用插件创建的coredns pod。我正在浏览此博客文章,以尝试为我的Kubernetes集群设置自定义DNS条目:https://coredns.io/2017/05/08/custom-dns-entries-for-kubernetes/

我可以毫无问题地替换配置映射;我更改了博客文章中的模板规范以适合我的需求并运行:

kubectl create -f configmap.yml -o yaml --dry-run | kubectl replace -f -

那似乎行得通;我使用kubectl检查了configmap,一切看起来都很好。

但是我不确定如何更新卷。我试图将这样的东西放在文件中:
apiVersion: v1
kind: Pod
metadata:
labels:
k8s-app: coredns
namespace: kube-system
spec:
containers:
- name: coredns
volumes:
- configMap:
items:
- key: Corefile
path: Corefile
- key: cluster.db
path: cluster.db
name: coredns
name: config-volume

然后我尝试通过以下方式应用它:
kubectl create -f k8s_config/coredns/volumes.yml -o yaml --dry-run | kubectl apply -f -

但这给出了此错误信息:
error: error when retrieving current configuration of:
&{0xc4218be840 0xc420213500 kube-system STDIN 0xc421a9e5e0 0xc421a9e5e0 false}
from server for: "STDIN": resource name may not be empty

我还尝试将coredns pod的内容转储到文件中,相应地更改volume部分,然后替换pod,但得到以下消息:
The Pod "coredns-6b4fd7784-xhb5s" is invalid: spec: Forbidden: pod updates may not change fields other than `spec.containers[*].image`, `spec.initContainers[*].image`, `spec.activeDeadlineSeconds` or `spec.tolerations` (only additions to existing tolerations)

除了删除Pod并重新备份之外,我应该如何更新Pod中的卷?可能吗?

我想另一个总的问题是:更新/配置 coredns pod / plugin的正确方法是什么?我似乎在任何地方都找不到指南。在博客文章中,内容如下:

To create the new zone, we need to modify the coredns.yaml we have been using to create an additional file in the pod.



但是,这一定是来自在Kubernetes中手动设置coredns时产生的,现在它作为插件“可以正常工作”了,我不确定如何配置它。

最佳答案

查看Pod名称coredns-6b4fd7784-xhb5s,看起来您的CoreDNS Pod实际上是由Deployment controller管理的。

不要直接修改由部署 Controller 管理的Pod。要编辑由部署管理的Pod,请编辑部署对象本身(kubectl -n kube-system edit deployment coredns)并修改spec.template属性。编辑部署后, Controller 将删除旧的Pod,并使用更新的规范创建一个新的Pod。

如果您只是更新了ConfigMap对象并希望CoreDNS Pod接收新内容,那么它也足以简单地删除旧的Pod。部署 Controller 将使用最新版本的ConfigMap创建一个新 Controller 。

如果您担心通过删除CoreDNS Pod可能导致服务中断,请考虑将部署的spec.replica值增加到大于1的值。

关于kubernetes - 如何在运行的Kubernetes Pod中更新卷?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47314825/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com