开发者社区> 问答> 正文

如果在主服务器上删除在运行的pod中作为volume挂载的configMap(/ secret)会发生什么?

k8s小能手 2019-01-09 14:33:09 605

假设我有一个带有configMap(或秘密)volume的pod。在创建pod时会出现ConfigMap(或机密)对象,但是当pod正在运行时,我会删除主服务器上的configMap(或机密)对象。预期的行为是什么?是否记录在任何地方?

运行的pod是否已终止?configMap(或机密)文件是否已删除且pod是否继续运行?

这是我可以找到的有关更新的文档,没有提及有关删除的任何内容。

分享到
取消 提交回答
全部回答(1)
  • k8s小能手
    2019-07-17 23:25:00

    运行的工作负载没有任何变化。一旦它们由主服务器上的kube-scheduler调度,然后由节点上的kubelet调度,ConfigMaps,Secrets等就会存储在节点的本地文件系统上。默认值是这样的:

    ConfigMaps

    /var/lib/kubelet/pods//volumes/kubernetes.io~configmap/configmapname/

    Secret

    /var/lib/kubelet/pods//volumes/kubernetes.io~secret/secret-token/
    这些实际上最终被安装在容器中某个位于pod规范上指定的路径上。

    当您删除Kubernetes中的对象时,它实际上会从其数据存储(etcd)中删除。假设您的pod需要因任何原因重新启动,它们将无法重新启动。

    简短的回答,您的工作负载没有任何变化,但如果您的pod需要重新启动,它们将无法重新启动。

    0 0

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题