我是kubernetes的新手。我在pod中有一个问题。当我运行命令
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”的情况下,它会在几秒钟/几分钟后重试。如果您想再次手动尝试,可以删除旧窗格并重新创建窗格。删除并重新创建pod的一行命令是:
kubectl replace --force -f <yml_file_describing_pod>
如果没有yaml文件:
kubectl get pod PODNAME -n NAMESPACE -o yaml | kubectl replace --force -f -
$ kubectl replace --force -f <resource-file>
如果一切顺利,你应该看到类似的东西:
<resource-type> <resource-name> deleted
<resource-type> <resource-name> replaced
有关详细信息,请参阅Kubernetes文档,“manage-deployment”和kubectl-cheatsheet页面。
如果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>