kubernetes - ImgPullBackOff 失败时 kubernetes pod 是否会重启
问题描述
我有一个kubernetes
集群工作得很好。我有 10 个工作节点和 1 个主设备。对于 pod 和容器,我有以下deployment.yaml
文件类型。DaemonSet
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: deployment
namespace: mynamespace
spec:
replicas: 2
selector:
matchLabels:
name: deployment
template:
metadata:
labels:
name: deployment
spec:
#List of all the containers
containers:
- name: container1
image: CRname/container1
imagePullPolicy: Always
volumeMounts:
- mountPath: /share
name: share-files
securityContext:
privileged: true
- name: container2
image: CRname/container2
imagePullPolicy: Always
volumeMounts:
- mountPath: /share
name: share-files
securityContext:
privileged: true
volumes:
- name: share-files
hostPath:
path: /home/user/shared-folder
imagePullSecrets:
- name: Mysecret
nodeSelector:
NodeType: ALL
从上面开始,这两个容器开始在所有工作节点上运行并且运行良好。但我观察到,有时很少有节点显示错误,ImagePullBackOff
这意味着由于某些网络或任何其他问题,它无法下载图像。我确实使用describe
命令来检查哪个图像失败了。但问题是它没有尝试自动重新下载图像。我不得不删除 pod,因此它会自动创建,然后它工作正常。
我只想知道为什么 pod 会显示此错误,并且不要尝试重新下载图像。有什么我可以在yaml
文件中添加的,以便它在任何类型的错误时自动删除和重新创建 pod。
编辑我还想问一下,当部署创建时,节点第一次开始从容器注册表中提取图像。一旦它们在节点上本地下载,当图像在本地存在时,为什么它必须再次拉动图像。?
请提出一些好的选择。谢谢。
解决方案
imagePullPolicy: Always
导致您每次重新启动 pod 时都会下载图像。
并且 Pod 总是由 daemonset 重新启动,所以请稍等片刻。
推荐阅读
- fluentd - 为什么 fluentd JSON 解析器无法正常工作?
- ms-word - 带有 bookdown::word_document2 和 rmarkdown 的数字列表
- cmake - Windows 10 上的最新 CMake 和 LLVM
- ruby - 委托给类方法
- file - Perl 用户输入文件搜索
- javascript - Discord bot 不播放有年龄限制的视频
- c++ - 段错误在gtest中的堆栈上初始化引用变量
- r - 在 R 中使用 ifelse 语句创建新变量
- r - 使用 data.table 解决方案根据 id 将观察结果分组到指定数量的组中
- javascript - 动画 Javascript OnMouseOver