ACK Edge集群支持邊緣節點自治,在邊緣和云端網絡斷連狀態下,保證邊緣節點上的業務應用仍然可以持續穩定地運行,而不會被驅逐或者遷移到其他邊緣節點。如果您將邊緣節點設置為非自治,云邊斷連時節點上的應用在到達容忍時間之后將會被驅逐。本文介紹如何通過控制臺為邊緣節點設置節點的自治屬性。
前提條件
背景信息
設置邊緣節點自治包括設置節點自治和節點非自治兩種配置,邊緣節點接入集群后默認為非自治狀態。
當邊緣節點被設置為自治狀態時,如果邊緣節點和云端管控斷連,此時不僅系統能夠保證節點上的應用不會被驅逐,而且節點上的應用也會自動恢復。設置節點自治適用于邊緣計算的弱網絡連接場景。
當邊緣節點被設置為非自治狀態時,如果邊緣節點和云端管控斷連,節點因不能正常地將心跳上報至管控端,而會被設置為不可用(not ready)狀態,且節點上的應用在到達容忍時間之后將會被驅逐。
操作步驟
通過控制臺的方式開啟節點自治
登錄容器服務管理控制臺,在左側導航欄選擇集群。
在集群列表頁面,單擊目標集群名稱,然后在左側導航欄,選擇 。
在節點頁面,選擇目標節點操作列的 。
說明僅當前節點是邊緣節點時,才會顯示節點自治設置按鈕。
在彈出的節點自治設置對話框中,單擊確定。
通過kubectl命令行的方式開啟節點自治
給邊緣節點添加如下注解,開啟節點自治。
kubectl annotate node xxx node.beta.openyurt.io/autonomy=true --overwrite
查看節點自治狀態
在集群列表頁面,單擊目標集群名稱,然后在左側導航欄,選擇 。
在節點頁面,選擇目標節點操作列的。
在基本信息頁面下方找到狀態頁簽,查看類型為Autonomy對應狀態是True表示自治開啟成功。
配置緩存組件
當前EdgeHub會將節點上的組件所需要的相關數據進行緩存,在云邊斷網時確保這些組件可以正常運行,磁盤緩存目錄為/etc/kubernetes/cache
。
緩存的數據指的是與API Server進行交互的數據,比如Pod、ConfigMap等資源信息,不包含業務數據。
如果您有組件需要在邊緣節點斷網的情況下依賴API Server的數據信息來正常運行,可以按照如下步驟進行配置。
獲取您的開發人員提供的User-Agent,如果是社區組件,可以在社區內進行查詢。
登錄容器服務管理控制臺,在左側導航欄選擇集群。
在集群列表頁面,單擊目標集群名稱,然后在左側導航欄,選擇 。
切換命名空間為kube-system,找到名稱為edge-hub-cfg的ConfigMap,在右側單擊YAML 編輯。
將您的User-Agent添加到
cache_agents
配置項中,然后單擊確定。您可以登錄節點,進入
/etc/kubernetes/cache
目錄,查看是否有名為您的User-Agent的目錄。
配置完成后,對應的組件和API Server之間交互的數據都會保存到節點的磁盤里。如果您開啟了節點自治,組件將會從本地磁盤獲取數據,從而確保正常運行。