如何在 kubernetes Pods 中重试图像拉取?
How to retry image pull in a kubernetes Pods?
我是 kubernetes 新手。我在 pods 中遇到问题。当我 运行 命令
kubectl get pods
结果:
NAME READY STATUS RESTARTS AGE
mysql-apim-db-1viwg 1/1 Running 1 20h
mysql-govdb-qioee 1/1 Running 1 20h
mysql-userdb-l8q8c 1/1 Running 0 20h
wso2am-default-813fy 0/1 ImagePullBackOff 0 20h
由于"wso2am-default-813fy"节点的问题,我需要重启它。有什么建议吗?
通常在 "ImagePullBackOff" 的情况下会在 seconds/minutes 之后重试。如果您想手动重试,您可以删除旧的 pod 并重新创建 pod。删除和重新创建 pod 的一行命令是:
kubectl replace --force -f <yml_file_describing_pod>
$ kubectl replace --force -f <resource-file>
如果一切顺利,您应该会看到如下内容:
<resource-type> <resource-name> deleted
<resource-type> <resource-name> replaced
撰写本文时,可以在 Kubernetes 文档、"manage-deployment" 和 kubectl-cheatsheet 页面中找到详细信息。
如果没有yaml文件:
kubectl get pod PODNAME -n NAMESPACE -o yaml | kubectl replace --force -f -
如果 Pod
是 Deployment
或 Service
的一部分,删除它会重新启动 Pod
,并有可能将其放置到另一个节点上:
$ kubectl delete po $POD_NAME
replace
如果是个人的话Pod
:
$ kubectl get po -n $namespace $POD_NAME -o yaml | kubectl replace -f -
先试试看pod有什么问题:
kubectl logs -p <your_pod>
在我的例子中,这是 YAML 文件的问题。
所以,我需要更正配置文件并替换它:
kubectl replace --force -f <yml_file_describing_pod>
尝试删除 pod,它会再次尝试拉取镜像。
kubectl delete pod <pod_name> -n <namespace_name>
ImagePullBackOff 的问题很可能是由于图像不存在或 pod YAML 文件的问题。
我要做的就是这个
kubectl get pod -n $namespace $POD_NAME --export > pod.yaml | kubectl -f apply -
我还会看到 pod.yaml 以了解为什么早期的 pod 不起作用
也有可能是未定义拉取策略或 kubernetes 配置为从集线器拉取但由于网络问题而失败。尝试设置本地安全注册表并执行拉取。它会起作用。
我是 kubernetes 新手。我在 pods 中遇到问题。当我 运行 命令
kubectl get pods
结果:
NAME READY STATUS RESTARTS AGE
mysql-apim-db-1viwg 1/1 Running 1 20h
mysql-govdb-qioee 1/1 Running 1 20h
mysql-userdb-l8q8c 1/1 Running 0 20h
wso2am-default-813fy 0/1 ImagePullBackOff 0 20h
由于"wso2am-default-813fy"节点的问题,我需要重启它。有什么建议吗?
通常在 "ImagePullBackOff" 的情况下会在 seconds/minutes 之后重试。如果您想手动重试,您可以删除旧的 pod 并重新创建 pod。删除和重新创建 pod 的一行命令是:
kubectl replace --force -f <yml_file_describing_pod>
$ kubectl replace --force -f <resource-file>
如果一切顺利,您应该会看到如下内容:
<resource-type> <resource-name> deleted
<resource-type> <resource-name> replaced
撰写本文时,可以在 Kubernetes 文档、"manage-deployment" 和 kubectl-cheatsheet 页面中找到详细信息。
如果没有yaml文件:
kubectl get pod PODNAME -n NAMESPACE -o yaml | kubectl replace --force -f -
如果 Pod
是 Deployment
或 Service
的一部分,删除它会重新启动 Pod
,并有可能将其放置到另一个节点上:
$ kubectl delete po $POD_NAME
replace
如果是个人的话Pod
:
$ kubectl get po -n $namespace $POD_NAME -o yaml | kubectl replace -f -
先试试看pod有什么问题:
kubectl logs -p <your_pod>
在我的例子中,这是 YAML 文件的问题。
所以,我需要更正配置文件并替换它:
kubectl replace --force -f <yml_file_describing_pod>
尝试删除 pod,它会再次尝试拉取镜像。
kubectl delete pod <pod_name> -n <namespace_name>
ImagePullBackOff 的问题很可能是由于图像不存在或 pod YAML 文件的问题。
我要做的就是这个
kubectl get pod -n $namespace $POD_NAME --export > pod.yaml | kubectl -f apply -
我还会看到 pod.yaml 以了解为什么早期的 pod 不起作用
也有可能是未定义拉取策略或 kubernetes 配置为从集线器拉取但由于网络问题而失败。尝试设置本地安全注册表并执行拉取。它会起作用。