簡體   English   中英

在谷歌雲 Kube.netes 集群中,我的 pod 有時會全部重啟,我如何找到重啟的原因?

[英]in a google cloud Kubernetes cluster my pods sometimes all restart, how do I find the reason for the restart?

我的所有 pod 有時都會重新啟動,我不確定如何弄清楚為什么會這樣。 谷歌雲中有什么地方可以獲取該信息嗎? 或要運行的 kubectl 命令? 它每隔幾個月左右發生一次。 也許沒有那么頻繁。

檢查您的集群和節點池操作也是一件好事。

  1. 在雲shell查看集群運行情況,運行命令:
gcloud container operations list
  1. 使用命令檢查節點的年齡
kubectl get nodes
  1. 檢查並分析您的部署對集群升級、節點池升級和節點池自動修復等操作的反應。 如果您的集群升級或節點池升級,您可以使用以下查詢檢查雲日志記錄:

請注意,您必須在查詢中添加集群和節點池名稱。

控制平面(master)升級:

resource.type="gke_cluster"
log_id("cloudaudit.googleapis.com/activity")
protoPayload.methodName:("UpdateCluster" OR "UpdateClusterInternal")
(protoPayload.metadata.operationType="UPGRADE_MASTER"
  OR protoPayload.response.operationType="UPGRADE_MASTER")
resource.labels.cluster_name=""

節點池升級

resource.type="gke_nodepool"
log_id("cloudaudit.googleapis.com/activity")
protoPayload.methodName:("UpdateNodePool" OR "UpdateClusterInternal")
protoPayload.metadata.operationType="UPGRADE_NODES"
resource.labels.cluster_name=""
resource.labels.nodepool_name=""

使用以下方法檢查 pod 重啟的原因:

使用kubectl describe deployment <deployment_name>kubectl describe pod <pod_name>其中包含信息。

# Events:
#   Type     Reason   Age                 From               Message
#   ----     ------   ----                ----               -------
#   Warning  BackOff  40m                 kubelet, gke-xx    Back-off restarting failed container
# ..

可以看到由於鏡像拉取退避,pod 重啟了。 我們需要解決該特定問題。

使用以下命令檢查日志: kubectl logs <pod_name>

要獲取容器(重新啟動的容器)的先前日志,您可以在 pod 上使用 --previous 鍵,如下所示:

kubectl logs your_pod_name --previous

您還可以將最終消息寫入 /dev/termination-log,這將按照docs中的描述顯示。

附上故障排除文檔以供參考。

暫無
暫無

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

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