yas*_*sai 6 kubernetes kubelet kubernetes-secrets configmap
假设我有一个带有 configMap(或秘密)卷的 pod。ConfigMap(或秘密)对象在 Pod 创建期间存在,但我在 Pod 运行时删除了主服务器上的 configMap(或秘密)对象。预期的行为是什么?它在任何地方都有记录吗?
正在运行的 Pod 是否已终止?configMap(或秘密)文件是否被删除并且 pod 继续运行?
这是我能找到的有关更新的文档,没有提及任何有关删除的内容。
当更新已在卷中使用的 ConfigMap 时,投影键最终也会更新。Kubelet 在每次定期同步时都会检查已安装的 ConfigMap 是否是最新的。但是,它使用本地基于 ttl 的缓存来获取 ConfigMap 的当前值。因此,从 ConfigMap 更新到新 key 投射到 pod 的总延迟可以长达 kubelet 同步周期 + kubelet 中 ConfigMap 缓存的 ttl。
您运行的工作负载不会发生任何变化。一旦它们被 master 上的 kube-scheduler 调度,然后被节点上的 kubelet 调度,ConfigMaps、Secrets等就会存储在节点的本地文件系统上。默认是这样的:
# ConfigMaps
/var/lib/kubelet/pods/<pod-id>/volumes/kubernetes.io~configmap/configmapname/
# Secret
/var/lib/kubelet/pods/<pod-id>/volumes/kubernetes.io~secret/secret-token/
Run Code Online (Sandbox Code Playgroud)
这些实际上最终会安装在容器中您在 Pod 规范中指定的路径上的某个位置。
当您在 Kubernetes 中删除对象时,它实际上会从其数据存储 (etcd) 中删除。假设您的 Pod 出于某种原因需要重新启动,它们将无法重新启动。
简而言之,您运行的工作负载不会发生任何变化,但如果您的 Pod 需要重新启动,它们将无法重新启动。
| 归档时间: |
|
| 查看次数: |
2021 次 |
| 最近记录: |