web-dev-qa-db-ja.com

kubernetes Podsでimage pullを再試行するには?

私はkubernetesが初めてです。ポッドに問題があります。コマンドを実行したとき

 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"ノードの問題により、再起動する必要があります。なにか提案を?

72

通常 "ImagePullBackOff"の場合、数秒/数分後に再試行されます。手動で再試行したい場合は、古いポッドを削除してポッドを再作成できます。ポッドを削除して再作成するための1行のコマンドは次のようになります。

kubectl replace --force -f <yml_file_describing_pod>
53
Ayon Nahiyan

Yamlファイルがない場合

kubectl get pod PODNAME -n NAMESPACE -o yaml | kubectl replace --force -f -

199
Maciek Sawicki
$ kubectl replace --force -f <resource-file>

すべてうまくいけば、次のようになるはずです。

<resource-type> <resource-name> deleted
<resource-type> <resource-name> replaced

これについての詳細は、執筆時点でKubernetesのドキュメントの "manage-deployment"と kubectl-cheatsheet のページにあります。

19
eversMcc

PodDeploymentまたはServiceの一部である場合、それを削除するとPodが再起動され、場合によっては別のノードに配置されます。

$ kubectl delete po $POD_NAME

もしそれが個々のreplaceであればPod

$ kubectl get po -n $namespace $POD_NAME -o yaml | kubectl replace -f -

6
Carlos Nunez

ポッドを削除してみてください。もう一度画像を取得しようとします。

kubectl delete pod <pod_name> -n <namespace_name>

1
Sachin Arote

まず、ポッドの何が問題になっているのかを確認してください。

kubectl logs -p <your_pod>

私の場合、YAMLファイルに問題がありました。

そのため、設定ファイルを修正して置き換える必要があります。

kubectl replace --force -f <yml_file_describing_pod>
0
edubriguenti