Làm thế nào để thử lại kéo hình ảnh trong Kubernetes Pods?


90

Tôi mới sử dụng kubernetes. Tôi gặp sự cố trong vỏ. Khi tôi chạy lệnh

 kubectl get pods

Kết quả:

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

Do sự cố của nút "wso2am-default-813fy", tôi cần khởi động lại nó. Bất kì lời đề nghị nào?

Câu trả lời:


68

Thông thường trong trường hợp "ImagePullBackOff", nó sẽ được thử lại sau vài giây / phút. Trong trường hợp bạn muốn thử lại theo cách thủ công, bạn có thể xóa nhóm cũ và tạo lại nhóm. Lệnh một dòng để xóa và tạo lại nhóm sẽ là:

kubectl replace --force -f <yml_file_describing_pod>

6
Nếu bạn có bộ nhân bản / bộ điều khiển quản lý nhóm này, một nhóm mới sẽ được tự động tạo sau khi giết nó.
Hem

^^ hoàn toàn. Tôi sẽ rất lo lắng nếu việc giết pod khiến nó biến mất.
Damien Roche

3
Tôi tin rằng kubectl replace --force -f ...sẽ tương đương với xóa, sau đó là tạo
Oliver

1
Nếu pod của bạn tạo ra thông qua việc triển khai, sau đó chỉ cần xóa một pod - một cái mới sẽ được tạo ra tự động
Illidan

Tại sao --forcetùy chọn là bắt buộc?
mchawre

220

Trong trường hợp không có tệp yaml:

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


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

nếu mọi việc suôn sẻ, bạn sẽ thấy một cái gì đó như:

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

chi tiết về điều này có thể được tìm thấy trong tài liệu Kubernetes, các trang "quản lý-triển khai" và kubectl-cheatsheet tại thời điểm viết bài.


Làm cách nào để biết tệp tài nguyên cho nhóm sẽ trông như thế nào? Tôi thấy các tập tin ./pod.json nhưng liên kết doesnt đề cập đến bất kỳ mẫu hoặc tương tự
Dominique Paul

7

Nếu Podmột phần của a Deploymenthoặc Service, việc xóa nó sẽ khởi động lại Podvà, có khả năng, đặt nó vào một nút khác:

$ kubectl delete po $POD_NAME

replacenếu đó là một cá nhân Pod:

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


2

Thử xóa nhóm nó sẽ cố gắng kéo lại hình ảnh.

kubectl delete pod <pod_name> -n <namespace_name>


0

Trước tiên, hãy thử xem có gì sai với nhóm:

kubectl logs -p <your_pod>

Trong trường hợp của tôi, đó là sự cố với tệp YAML.

Vì vậy, tôi cần sửa tệp cấu hình và thay thế nó:

kubectl replace --force -f <yml_file_describing_pod>

0

Hầu hết có thể vấn đề của ImagePullBackOff là do hình ảnh không hiện diện hoặc sự cố với tệp pod YAML.

Những gì tôi sẽ làm là cái này

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

Tôi cũng sẽ xem pod.yaml để xem lý do tại sao pod trước đó không hoạt động

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.