我們有一個deamonset,我們想讓它成為HA(不是我們的deamonset),以下是否也適用于deamaon set的HA?
- 親和力(反親和力)
- 容忍的
- 資料庫
我們在每個集群上都有 3 個作業節點我在過去部署過,但不確定什么也適用于 deamonset,這不是我們的應用程式,但我們需要確保它是 HA,因為它是關鍵應用程式
更新
將以下內容添加到 deamonset 是否有意義,假設我有 3 個作業節點并且我希望它僅在foo作業節點中調度?
spec:
tolerations:
- effect: NoSchedule
key: WorkGroup
operator: Equal
value: foo
- effect: NoExecute
key: WorkGroup
operator: Equal
value: foo
nodeSelector:
workpcloud.io/group: foo
uj5u.com熱心網友回復:
你問了兩個有點不相關的問題。
以下是否也適用于 deamaon 集的 HA?
- 親和力(反親和力)
- 容忍的
- 資料庫
守護行程(通常)在“每個節點一個 pod”的策略上運行——你不能使它成為 HA(例如,通過使用自動縮放),并且你將(假設你使用默認值)擁有盡可能多的守護行程副本因為你有節點,除非你明確指定要運行 daemonset pod 的節點,使用nodeSelector和/或之類的東西tolerations,在這種情況下你將擁有更少的 pod。上面鏈接的檔案頁面提供了更多詳細資訊并有一些示例
這不是我們的應用程式,但我們需要確保它是 HA,因為它是關鍵應用程式
您是在問如何使您的關鍵應用程式具有高可用性?我會假設你是。
如果該應用程式如您所說的那么重要,那么有一些入門建議:
- 確保您至少有 3 個副本(4 是一個好的起始編號)
- 如果您必須將這些 pod 安排在具有污點的節點池上,請添加容忍度
- 根據需要使用節點選擇器(例如,對于區域或區域,但僅在必要時對這些區域中存在的磁盤之類的東西執行)
- 使用親和力來分組或傳播您的副本。絕對會推薦使用傳播,這樣如果一個節點出現故障,其他副本仍然處于運行狀態
- 使用pod 優先級向集群表明您的 pod 比其他 pod 更重要(請注意,如果將其設定得太高可能會導致問題)
- 為 PagerDuty、OpsGenie 等設定通知,以便在應用程式出現故障時通知您(或您的運營團隊)。如果應用程式很關鍵,那么您會想知道它盡快關閉。
- 設定pod 中斷預算和水平 pod 自動縮放器,以確保約定數量的 pod 始終處于運行狀態。
uj5u.com熱心網友回復:
您無法控制 DaemonSet 中的副本,因為 DaemonSet 每個節點將有一個 pod。
您需要將物件更改為 Deployment 或 Statefulset 以管理副本計數并使用 nodeSelector 將其部署在所有節點中。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/434281.html
標籤:亚马逊网络服务 Kubernetes 谷歌云平台 高可用性
