ACK Edge叢集支援邊緣節點自治,在邊緣和雲端網路斷連狀態下,保證邊緣節點上的業務應用仍然可以持續穩定地運行,而不會被驅逐或者遷移到其他邊緣節點。如果您將邊緣節點設定為非自治,雲邊斷連時節點上的應用在到達容忍時間之後將會被驅逐。本文介紹如何通過控制台為邊緣節點設定節點的自治屬性。
前提條件
背景資訊
設定邊緣節點自治包括設定節點自治和節點非自治兩種配置,邊緣節點接入叢集後預設為非自治狀態。
當邊緣節點被設定為自治狀態時,如果邊緣節點和雲端管控斷連,此時不僅系統能夠保證節點上的應用不會被驅逐,而且節點上的應用也會自動回復。設定節點自治適用於邊緣計算的弱網路連接情境。
當邊緣節點被設定為非自治狀態時,如果邊緣節點和雲端管控斷連,節點因不能正常地將心跳上報至管控端,而會被設定為不可用(not ready)狀態,且節點上的應用在到達容忍時間之後將會被驅逐。
操作步驟
通過控制台的方式開啟節點自治
登入Container Service管理主控台,在左側導覽列選擇叢集。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇 。
在節點頁面,選擇目標節點操作列的 。
說明僅當前節點是邊緣節點時,才會顯示節點自治設定按鈕。
在彈出的節點自治設定對話方塊中,單擊確定。
通過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,如果是社區組件,可以在社區內進行查詢。
登入Container Service管理主控台,在左側導覽列選擇叢集。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇 。
切換命名空間為kube-system,找到名稱為edge-hub-cfg的ConfigMap,在右側單擊YAML 編輯。
將您的User-Agent添加到
cache_agents
配置項中,然後單擊確定。您可以登入節點,進入
/etc/kubernetes/cache
目錄,查看是否有名為您的User-Agent的目錄。
配置完成後,對應的組件和API Server之間互動的資料都會儲存到節點的磁碟裡。如果您開啟了節點自治,組件將會從本地磁碟擷取資料,從而確保正常運行。