Kubernetes Pod'larında görüntü çekme nasıl yeniden denenir?


92

Kubernetes'te yeniyim. Bölmelerde bir sorunum var. Komutu çalıştırdığımda

 kubectl get pods

Sonuç:

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" düğümündeki bir sorun nedeniyle, onu yeniden başlatmam gerekiyor. Herhangi bir öneri?

Yanıtlar:


69

Genellikle "ImagePullBackOff" durumunda, birkaç saniye / dakika sonra yeniden denenir. Manuel olarak tekrar denemek istemeniz durumunda, eski bölmeyi silebilir ve bölmeyi yeniden oluşturabilirsiniz. Bölmeyi silmek ve yeniden oluşturmak için tek satırlık komut şu olacaktır:

kubectl replace --force -f <yml_file_describing_pod>

6
Bu bölmeyi yöneten çoğaltma kümeniz / denetleyiciniz varsa, onu öldürdükten sonra otomatik olarak yeni bir bölme oluşturulmalıdır.
Hem

^^ kesinlikle. Öldürme kapsülü tamamen ortadan kalksa çok endişelenirdim.
Damien Roche

3
kubectl replace --force -f ...Silme ve ardından oluşturma işleminin eşdeğer olacağına inanıyorum
Oliver

1
Senin pod Dağıtım aracılığıyla oluşturulmuş ise, o zaman sadece bir pod silmek - yenisi otomatik olarak oluşturulur
Illidan

--forceSeçenek neden gerekli?
mchawre

222

Yaml dosyasının olmaması durumunda:

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


19
$ kubectl replace --force -f <resource-file>

her şey yolunda giderse, şöyle bir şey görmelisiniz:

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

bunun ayrıntıları Kubernetes belgelerinde, "dağıtım yönetimi" ve kubectl-hile sayfası sayfalarında yazım sırasında bulunabilir.


Bölmenin kaynak dosyasının nasıl görünmesi gerektiğini nasıl bilebilirim? ./Pod.json dosyasını gördüm, ancak bağlantıda herhangi bir şablon veya benzerinden bahsedilmiyor
Dominique Paul

7

Eğer Podbir parçası olan Deploymentveya Servicebu yeniden başlar silme Podve muhtemelen başka bir düğüm üzerine yerleştirin:

$ kubectl delete po $POD_NAME

replacebir bireyse Pod:

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


2

Bölmeyi silmeyi deneyin, görüntüyü tekrar çekmeye çalışacaktır.

kubectl delete pod <pod_name> -n <namespace_name>


0

Önce bölmede neyin yanlış olduğunu görmeye çalışın:

kubectl logs -p <your_pod>

Benim durumumda YAML dosyasıyla ilgili bir problemdi.

Bu yüzden, yapılandırma dosyasını düzeltmem ve değiştirmem gerekiyordu:

kubectl replace --force -f <yml_file_describing_pod>

0

Büyük olasılıkla ImagePullBackOff sorunu, görüntünün mevcut olmaması veya pod YAML dosyasıyla ilgili bir sorundan kaynaklanmaktadır.

Ne yapacağım bu

kubectl get pod -n $namespace $POD_NAME --export > pod.yaml | kubectl -f apply -

Önceki kapsülün neden çalışmadığını görmek için pod.yaml dosyasını da görürdüm.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.