我有一个
kubernetes
集群工作得很好。我有10个工作节点和1个主设备。我下面有一个
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。
编辑
我还想问一下,当创建部署时,节点开始第一次从容器注册表中提取图像。一旦它们被本地下载到节点上,当图像在本地存在时,为什么还要再次拉图像呢?
请提出一些好的选择。谢谢。