[英]Azure kubernetes - Application with Session management?
我計划在 Azure kube.netes 上部署使用 session 的 Asp.net 應用程序。 如何確保傳入請求進入創建 session 的同一個 pod。
建議部署在 Kube.netes 上的應用程序具有遵循十二要素應用程序的設計。
如果應用程序是無狀態的並且不與其他實例共享任何內容,一切都會變得更容易。 請參閱十二因素應用程序 - 流程
十二要素流程是無狀態且無共享的。 任何需要持久化的數據都必須存儲在有狀態的支持服務中,通常是數據庫。
一些 web 系統依賴於“粘性會話”——即在應用進程的 memory 中緩存用戶 session 數據,並期望來自同一訪問者的未來請求被路由到同一進程。 粘性會話違反了十二因素,切勿使用或依賴。 Session state 數據非常適合提供過期時間的數據存儲,例如 Memcached 或 Redis。
使用Redis是存儲屬於用戶的臨時數據的一種方法。
對於身份驗證,我建議在Authorization: Bearer <token>
header 中使用帶有 JWT 令牌的 OpenID Connect。有關 OpenID Connect 提供商的示例,請參見例如Azure Active Directory B2C 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.