[英]Kubernetes pods are crashing every 10 minutes due to node app, node::http2::Http2Session::ConsumeHTTP2Data()
我有一個用於一個節點應用程序的 kubernetes pods,每個 pods 每 10 分鍾左右崩潰一次,我想了解原因並穩定它。
豆莢: $ k get po | grep app
$ k get po | grep app
app-655fd5fcc9-4mtjr 0/1 CrashLoopBackOff 53 7h35m
app-655fd5fcc9-6kf82 1/1 Running 106 16h
app-655fd5fcc9-9tfbp 1/1 Running 87 16h
app-655fd5fcc9-g8x7q 1/1 Running 53 7h35m
app-655fd5fcc9-nvcc8 1/1 Running 102 16h
崩潰前的日志: $ k logs -p app-655fd5fcc9-4mtjr
node[25]: ../src/node_http2.cc:893:ssize_t node::http2::Http2Session::ConsumeHTTP2Data(): Assertion `(flags_ & SESSION_STATE_READING_STOPPED) != (0)' failed.
1: 0x8fa0c0 node::Abort() [node]
2: 0x8fa195 [node]
3: 0x959e02 node::http2::Http2Session::ConsumeHTTP2Data() [node]
4: 0x959f4f node::http2::Http2Session::OnStreamRead(long, uv_buf_t const&) [node]
5: 0xa2aad1 node::TLSWrap::ClearOut() [node]
6: 0xa2b343 node::TLSWrap::OnStreamRead(long, uv_buf_t const&) [node]
7: 0x9cf801 [node]
8: 0xa7ae09 [node]
9: 0xa7b430 [node]
10: 0xa80dd8 [node]
11: 0xa6fe6b uv_run [node]
12: 0x904725 node::Start(v8::Isolate*, node::IsolateData*, std::vector<std::string, std::allocator<std::string> > const&, std::vector<std::string, std::allocator<std::string> > const&) [node]
13: 0x90297f node::Start(int, char**) [node]
14: 0x7f1a8cbd02e1 __libc_start_main [/lib/x86_64-linux-gnu/libc.so.6]
15: 0x8bbe85 [node]
Aborted (core dumped)
npm ERR! code ELIFECYCLE
npm ERR! errno 134
npm ERR! app@1.0.1 start: `node --harmony ./entry-point.js "--max-old-space-size=7168"`
npm ERR! Exit status 134
npm ERR!
npm ERR! Failed at the app@1.0.1 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2020-03-12T00_45_17_556Z-debug.log
我通讀了$ k describe pods app-655fd5fcc9-4mtjr
但似乎沒有任何相關的有用信息一目了然。 我認為問題出在應用程序上。
我從哪里開始調試和解決這個問題?
node entry-point.js
一段時間? 這是生產代碼,但有時您必須在本地運行。$ k exec -it app-655fd5fcc9-6kf82 top
當它進入 CrashLoopBackOff 狀態時,資源使用情況似乎很好。 我的應用程序沒有直接使用 node stdlib、 http2
。 可能有一些 npm 模塊,如@google-cloud
模塊或 http 請求客戶端之一。 $ ack http2 --js # no results
畢竟問題出在應用程序上。 我們有舊的遺留代碼,使用輪詢運行帶有深度嵌套回調的函數。 它已被重構以使 func 異步並在吞吐量有限的情況下並行執行所有工作,並將控制器更改為僅等待每個 func 調用。
豆莢每 1-3 小時崩潰一次,而不是每 10 分鍾一次。 可能是應用程序的另一個問題。
不知道它是否對某人有幫助,但對我來說,我使用的是 node v10.16.3
我v10.16.3
了類似的問題,但在移動到v12.14.1
它停止彈出。
不確定到底是什么原因。 但是我的應用程序正在一個非常大的數組上運行一個循環,因為我在處理了幾個塊后手動運行了垃圾清理器。 在我的第一次清潔過程后,出現了上述錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.