我已經使用部署在 kubernetes 中部署了我的應用程式。
- 每當用戶登錄應用程式 pod 時,都會為該用戶生成會話。
- 為了保持會話粘性,我使用 Nginx 入口注釋設定了會話 cookie。
- 當 hpa 縮減 pod 應用程式用戶在 pod 被終止時分階段注銷問題。如果 ingress 使用這個 pod 生成了一個會話。它需要重新登錄。
- 我想要的是某種優雅的連接終止。當 pod 處于終止狀態時,它應該為現有會話提供服務,直到寬限期。
uj5u.com熱心網友回復:
我想要的是某種優雅的連接終止。當 pod 處于終止狀態時,它應該為現有會話提供服務,直到寬限期。
您可以使用 POD 規范中的密鑰:terminationGracePeriodSeconds
這將等待提到的第二個,然后 POD 將被終止。
您可以在以下位置閱讀更多資訊:https : //cloud.google.com/blog/products/containers-kubernetes/kubernetes-best-practices-termination-with-grace
uj5u.com熱心網友回復:
答案Harsh Manvar很棒,但是,我想稍微擴展一下 :)
您當然可以在 POD 規范中使用terminateGracePeriodSeconds。看例子yaml:
apiVersion: v1
kind: Pod
metadata:
name: my-pod
spec:
containers:
- name: my-container
image: my-image
terminationGracePeriodSeconds: 60
此時,Kubernetes 等待指定的時間,稱為終止寬限期。默認情況下,這是 30 秒。重要的是要注意,這與 preStop 鉤子和 SIGTERM 信號并行發生。Kubernetes 不會等待 preStop 鉤子完成。
如果您的應用程式在終止 GracePeriod 完成之前完成關閉并退出,Kubernetes 會立即進入下一步。
如果您的 Pod 通常需要超過 30 秒的時間才能關閉,請確保增加寬限期。您可以通過在 Pod YAML 中設定 terminateGracePeriodSeconds 選項來實作。例如,將其更改為 60 秒。
更多資訊請看這里。
如果您想知道pod 生命周期的具體情況,請參閱官方檔案的此鏈接。關于Pod 終止的部分應該是最有趣的。您還將獲得它描述終止是如何發生的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/394517.html
標籤:Kubernetes 会议 会话cookies Kubernetes 入口 Kubernetes-pod
上一篇:游戲物件到達某個位置后如何停止
