Image generated by [ChatGPT](https://chatgpt.com/)

SystemExit 使 asyncio.run_coroutine_threadsafe 永遠卡住

今天在 debug Ray 的某個 issue 的時候,因為沒注意到 Python 的 asyncio.run_coroutine_threadsafe 的特殊行為,官方 doc 沒有特別說明,要去看 CPython source code 才知道,導致 debug 了有點久的時間,特此紀錄。 根據 官方文檔 ,這個 function 是用來把一個 coroutine 跑在另一個 thread 上面的 event loop 裡面,然後他會 return 一個 Future object。 ...

發佈於: 2025-03-05 · 最後修改: 2025-03-18 · 劉奇聖
Photo by [Kent Pilcher](https://unsplash.com/@kent_pilcher?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash) on [Unsplash](https://unsplash.com/photos/black-instrument-cluster-panel-jW8hkB_Qmj8?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash)

如何使用 K3d 在本地環境中重現 Kubernetes 的 Node-pressure Eviction

前情提要 前幾天在開發 KubeRay 專案的時候,從 issue 的留言區 學到了一個 Kubernetes 的知識,原來 Eviction 還有分 Node-pressure Eviction 和 API-initiated Eviction 兩種。API-initiated Eviction 是直接 call API,或是使用像是 kubectl drain 之類的指令,特性是不管怎樣最終以這種方式被 Evict 的 Pod 會被 delete 掉,通常就會在另一個 node 上被重新 create。但是如果是 Node-pressure Eviction 的話,kubelet 只會把 Pod 的 Phase 設成 Failed,而不會把 Pod delete 掉,所以 controller 沒有特別處理的話,Pod 就不會在另一個 node 上面被重新 create。 ...

發佈於: 2024-07-05 · 最後修改: 2024-08-31 · 劉奇聖