GCE 上的 Kubernetes 隨機停止工作
所以最終會發生什麼,一切都會正常工作,有時會持續好幾天。但是,有時當我部署我的程式碼(全部包含在它自己的 Docker 容器中,圖像儲存在 Dockerhub 上)時,它會導致 Kubernetes 崩潰,從而導致其他一切都崩潰。我一直無法找出任何押韻或理由。在大多數情況下,我還沒有找到任何真正有助於解決問題的東西。通常,無論出於何種原因,它都會重新開始工作——儘管我知道至少有一次我刪除了整個實例組並重新開始。哪個有效。
現在,當我進行部署時,我所做的就是執行
kubectl set image deployment
命令。這在大多數情況下都有效,只是偶爾會發生奇怪的事情。現在,更具體地說,發生的奇怪事情是,如果我嘗試去,
https://<master node>/ui
我會收到這樣的錯誤:{ "kind": "Status", "apiVersion": "v1", "metadata": {}, "status": "Failure", "message": "no endpoints available for service \"kubernetes-dashboard\"", "reason": "ServiceUnavailable", "code": 503 }
這是的輸出
kubectl cluster-info
Kubernetes master is running at https://104.198.207.42 GLBCDefaultBackend is running at https://104.198.207.42/api/v1/proxy/namespaces/kube-system/services/default-http-backend Heapster is running at https://104.198.207.42/api/v1/proxy/namespaces/kube-system/services/heapster KubeDNS is running at https://104.198.207.42/api/v1/proxy/namespaces/kube-system/services/kube-dns kubernetes-dashboard is running at https://104.198.207.42/api/v1/proxy/namespaces/kube-system/services/kubernetes-dashboard
寫到一半,它神奇地又開始工作了,所以我不能再粘貼任何輸出(或者,至少我不知道在哪裡尋找它)。
但是,如果有人對造成這種情況的原因以及我如何在下次發生這種情況時嘗試修復它有任何想法,那將是驚人的。當我漫無目的且看似毫無意義地嘗試修復它時,部署可能會隨機破壞事物並導致我數小時的停機時間,這非常令人沮喪。只是讓它隨機決定再次工作。
謝謝閱讀!
因此,為了文件的利益,以防萬一其他人有這個問題。我不得不升級到更大的實例,這最終是因為我遇到了 OOM(記憶體不足)錯誤。
我不記得我是如何發現這些錯誤的了,無論是命令行實用程序
kubectl logs
還是gcloud
命令行實用程序。但其中一位最終表示存在“OOM”錯誤。
我也面臨同樣的問題,每當 cpu 使用率接近 100% 時,kubernetes 儀表板都會給出同樣的錯誤
{ "kind": "Status", "apiVersion": "v1", "metadata": {}, "status": "Failure", "message": "no endpoints available for service \"kubernetes-dashboard\"", "reason": "ServiceUnavailable", "code": 503 }
當我刪除一些虛擬 pod 時,它會自動重新開始工作。
主要是我有 4 個節點,大多數 pod 只在 1-2 個節點上調度。