簡體   English   中英

推出后 kubernetes UnexpectedAdmissionError

[英]kubernetes UnexpectedAdmissionError after rollout

我有一個服務未能回復一些 HTTP 請求,挖掘它的日志似乎是某種 DNS 在到達proxy服務時失敗

'proxy' failed to resolve 'proxy.default.svc.cluster.local' after 2 queries

所以我找不到任何問題並嘗試kubectl rollout restart deployment/backend 就在這之后,這些出現在 pod 列表中:

backend-54769cbb4-xkwf2              0/1     UnexpectedAdmissionError   0          4h6m
backend-54769cbb4-xlpgf              0/1     UnexpectedAdmissionError   0          4h4m
backend-54769cbb4-xmnr5              0/1     UnexpectedAdmissionError   0          4h7m
backend-54769cbb4-xmq5n              0/1     UnexpectedAdmissionError   0          4h7m
backend-54769cbb4-xphrw              0/1     UnexpectedAdmissionError   0          4h5m
backend-54769cbb4-xrmrq              0/1     UnexpectedAdmissionError   0          4h1m
backend-54769cbb4-xrmw8              0/1     UnexpectedAdmissionError   0          4h6m
backend-54769cbb4-xt4ck              0/1     UnexpectedAdmissionError   0          4h4m
backend-54769cbb4-xws8r              0/1     UnexpectedAdmissionError   0          4h6m
backend-54769cbb4-xx6r4              0/1     UnexpectedAdmissionError   0          4h5m
backend-54769cbb4-xxpfd              0/1     UnexpectedAdmissionError   0          4h6m
backend-54769cbb4-xzjql              0/1     UnexpectedAdmissionError   0          4h4m
backend-54769cbb4-xzzlk              0/1     UnexpectedAdmissionError   0          4h7m
backend-54769cbb4-z46ms              0/1     UnexpectedAdmissionError   0          4h5m
backend-54769cbb4-z4sl7              0/1     UnexpectedAdmissionError   0          4h6m
backend-54769cbb4-z6jpj              0/1     UnexpectedAdmissionError   0          4h5m
backend-54769cbb4-z6ngq              0/1     UnexpectedAdmissionError   0          4h6m
backend-54769cbb4-z8w4h              0/1     UnexpectedAdmissionError   0          4h5m
backend-54769cbb4-z9jqb              0/1     UnexpectedAdmissionError   0          4h3m
backend-54769cbb4-zbvqm              0/1     UnexpectedAdmissionError   0          4h2m
backend-54769cbb4-zcfxg              0/1     UnexpectedAdmissionError   0          4h3m
backend-54769cbb4-zcvqm              0/1     UnexpectedAdmissionError   0          4h6m
backend-54769cbb4-zf2f8              0/1     UnexpectedAdmissionError   0          4h2m
backend-54769cbb4-zgnkh              0/1     UnexpectedAdmissionError   0          4h7m
backend-54769cbb4-zhdr8              0/1     UnexpectedAdmissionError   0          4h2m
backend-54769cbb4-zhx6g              0/1     UnexpectedAdmissionError   0          4h7m
backend-54769cbb4-zj8f2              0/1     UnexpectedAdmissionError   0          4h3m
backend-54769cbb4-zjbwp              0/1     UnexpectedAdmissionError   0          4h5m
backend-54769cbb4-zjc8g              0/1     UnexpectedAdmissionError   0          4h3m
backend-54769cbb4-zjdcp              0/1     UnexpectedAdmissionError   0          4h4m
backend-54769cbb4-zkcrb              0/1     UnexpectedAdmissionError   0          4h7m
backend-54769cbb4-zlpll              0/1     UnexpectedAdmissionError   0          4h2m
backend-54769cbb4-zm2cx              0/1     UnexpectedAdmissionError   0          4h6m
backend-54769cbb4-zn7mr              0/1     UnexpectedAdmissionError   0          4h6m
backend-54769cbb4-znjkp              0/1     UnexpectedAdmissionError   0          4h3m
backend-54769cbb4-zpnk7              0/1     UnexpectedAdmissionError   0          4h2m
backend-54769cbb4-zrrl7              0/1     UnexpectedAdmissionError   0          4h2m
backend-54769cbb4-zsdsz              0/1     UnexpectedAdmissionError   0          4h4m
backend-54769cbb4-ztdx8              0/1     UnexpectedAdmissionError   0          4h2m
backend-54769cbb4-ztln6              0/1     UnexpectedAdmissionError   0          4h2m
backend-54769cbb4-ztplg              0/1     UnexpectedAdmissionError   0          4h6m
backend-54769cbb4-ztzfh              0/1     UnexpectedAdmissionError   0          4h2m
backend-54769cbb4-zvb8g              0/1     UnexpectedAdmissionError   0          4h6m
backend-54769cbb4-zwsr8              0/1     UnexpectedAdmissionError   0          4h7m
backend-54769cbb4-zwvxr              0/1     UnexpectedAdmissionError   0          4h5m
backend-54769cbb4-zwx6h              0/1     UnexpectedAdmissionError   0          4h6m
backend-54769cbb4-zz4bf              0/1     UnexpectedAdmissionError   0          4h1m
backend-54769cbb4-zzq6t              0/1     UnexpectedAdmissionError   0          4h2m

(還有更多)

所以我又添加了兩個節點,現在一切似乎都很好,除了這個我不明白的錯誤 state 中的 pod 列表。 這是什么UnexpectedAdmissionError ,我該怎么辦?

注意:這是一個 DigitalOcean 集群

Client Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.3", GitCommit:"2d3c76f9091b6bec110a5e63777c332469e0cba2", GitTreeState:"clean", BuildDate:"2019-08-19T12:38:36Z", GoVersion:"go1.12.9", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.3", GitCommit:"2d3c76f9091b6bec110a5e63777c332469e0cba2", GitTreeState:"clean", BuildDate:"2019-08-19T11:05:50Z", GoVersion:"go1.12.9", Compiler:"gc", Platform:"linux/amd64"}

以下似乎很重要: kubectl describe one_failed_pod

Events:
  Type     Reason                    Age    From                    Message
  ----     ------                    ----   ----                    -------
  Normal   Scheduled                 2m51s  default-scheduler       Successfully assigned default/backend-549f576d5f-xzdv4 to std-16gb-g7mo
  Warning  UnexpectedAdmissionError  2m51s  kubelet, std-16gb-g7mo  Update plugin resources failed due to failed to write checkpoint file "kubelet_internal_checkpoint": write /var/lib/kubelet/device-plugins/.543592130: no space left on device, which is unexpected.

我遇到了同樣的問題,在用 UnexpectedAdmissionError 描述其中一個 pod 時,我看到了以下內容:

由於未能寫入設備插件檢查點文件“kubelet_internal_checkpoint”,更新插件資源失敗:寫入/var/lib/kubelet/device-plugins/.525608957:設備上沒有剩余空間,這是意外的。

在描述節點時:

OutOfDisk Unknown 2020 年 6 月 30 日星期二 14:07:04 -0400 2020 年 6 月 30 日星期二 14:12:05 -0400 NodeStatusUnknown Kubelet 停止發布節點狀態。

我通過重啟節點解決了這個問題

因為 pod 甚至還沒有啟動,所以您實際上無法檢查日志。 然而,描述 pod 給我帶來了錯誤。 worker5 節點存在一些磁盤/cpu/內存利用率問題。

kubectl get pods | grep -i err
kube-system      coredns-autoscaler-79599b9dc6-6l8s8                            0/1     UnexpectedAdmissionError   0          10h     <none>        worker5   <none>           <none>
kube-system      coredns-autoscaler-79599b9dc6-kzt9z                            0/1     UnexpectedAdmissionError   0          10h     <none>        worker5   <none>           <none>
kube-system      coredns-autoscaler-79599b9dc6-tgkrc                            0/1     UnexpectedAdmissionError   0          10h     <none>        worker5   <none>           <none>

kubectl describe pod -n kube-system coredns-autoscaler-79599b9dc6-kzt9z

Reason:         UnexpectedAdmissionError
Message:        Pod Allocate failed due to failed to write checkpoint file "kubelet_internal_checkpoint": mkdir /var: file exists, which is unexpected

第一步是重新啟動解決問題的節點 原因是我們已將一些備份還原到新集群,而還原過程導致了此問題。

對於 pod,因為它們是副本集的一部分,所以它們在其他工作節點上生成。 因此,我們刪除了 pod。

一種快速刪除大量 pod 的方法,您可以使用:

kubectl get pods -n namespace | grep -i Error | cut -d' ' -f 1 | xargs kubectl delete pod

刪除整個集群中的所有錯誤 pod

kubectl get pods -A | grep -i Error | awk '{print $2}' | xargs kubectl delete pod

您可以使用標志 -A/--all-namespaces 從集群中的所有命名空間獲取 pod。

但是,如果它們沒有自動生成,這很奇怪,您可以運行kubectl replace

kubectl get pod coredns-autoscaler-79599b9dc6-6l8s8 -n kube-system -o yaml | kubectl replace --force -f -

如需進一步詳細閱讀,請參閱kubectl replace --help和以下博客

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM