Dot-Net

終止GracePeriodSeconds 不是

  • November 16, 2019

我有一個 .NET Core 控制台應用程序在我通過 Kubernetes 部署的 docker 容器中執行。當我更新部署映像時,我想將現有的 pod 保留一段時間,而不接受新的連接,而是讓現有的連接保持活動狀態一段時間以允許現有使用者完成。

查看 Kubernetes 文件,我認為終止寬限期秒是要添加的屬性,但它似乎不起作用。一旦我更改了部署中列出的映像,現有的 pod 就會被刪除 - 不應用寬限期。

有人對我在這種情況下做錯了什麼有任何想法嗎?我在文件中看不到任何內容。

下面我的 .yml 文件中的位:

spec: 
  terminationGracePeriodSeconds: 60
  containers:
      - name: myApplication

寬限期的工作方式是立即向主 docker 程序發送一個 SIGTERM 信號,然後允許它在一定時間內自行退出,然後再強制關閉。如果您的應用程序立即退出,那是因為它在收到此信號時退出。

您的應用程序可以擷取 SIGTERM 信號,然後在所有打開操作完成後自行退出。或者它可以捕捉到 SIGTERM 信號,什麼也不做,等待它以不同的方式被強制關閉。

引用自:https://stackoverflow.com/questions/50627308