在雲邊情境下,邊緣節點可能會因為網路不穩定而處於離線狀態。離線的邊緣節點如果設定了節點自治,節點上的業務可以不受影響持續運行,但您無法再通過雲端控制面對節點上的業務做營運變更。ACK Edge叢集提供了邊緣節點離線營運工具,用於支援使用者在緊急情況下,對離線節點上的業務進行營運操作,例如業務復原,資源變更配置,業務配置修改等。本文為您介紹如何使用邊緣節點離線營運工具。
前提條件
注意事項
該營運工具只能在邊緣節點離線的情況下作為緊急營運方式來使用。
該工具只支援修改Pod、ConfigMap、Secret三類資源。
該工具只能修改本節點上的資源,例如當您修改了ConfigMap的內容,只在本節點生效,其他節點使用了該ConfigMap也不受影響。
該營運工具所做的操作不會同步到雲端,當節點狀態恢複正常之後,該工具所做的改動會被雲端的內容重新覆蓋。若您需要修改永久生效,需要在叢集雲端中重新修改。
擷取edgeadm營運工具
執行以下命令擷取離線營運工具:
export REGION="" INTERCONNECT_MODE="" CLUSTER_VERSION=""; export ARCH=$(uname -m | awk '{print ($1 == "x86_64") ? "amd64" : (($1 == "aarch64") ? "arm64" : "amd64")}') INTERNAL=$( [ "$INTERCONNECT_MODE" = "private" ] && echo "-internal" || echo "" ); wget http://aliacs-k8s-${REGION}.oss-${REGION}${INTERNAL}.aliyuncs.com/public/pkg/run/attach/${CLUSTER_VERSION}/${ARCH}/edgeadm -O edgeadm; chmod u+x edgeadm;
參數說明如下:
參數 | 說明 | 樣本值 |
CLUSTER_VERSION | ACK Edge叢集發布的版本和具體版本號碼,請參見版本發布說明。 | 1.26.3-aliyun.1 |
REGION | ACK Edge叢集支援的地區及其Region ID,請參見開服地區。 | cn-hangzhou |
INTERCONNECT_MODE | 指定節點接入的網路類型。
| basic |
常見營運操作
在下述情境中,需要替換執行命令中的變數資訊。變數資訊和擷取方式如下表。
變數 | 說明 | 擷取方式 |
| 替換為要修改的Pod的名稱。 | 可以通過在節點上執行 |
| 替換為Pod所在的Namespace名稱。 | |
| 替換為該Pod對應的ID。 | |
| 替換為要修改的ConfigMap名稱。 | 在節點上執行 |
| 替換要修改的Secret的名稱。 | 在節點上執行 |
情境一:修改Pod模板
在Pod所在的邊緣節點上執行如下命令,開啟修改Pod模板的編輯介面。
edgeadm -n {namespace} edit pod {pod-name}
進入編輯模式,修改Pod模板內容,儲存並退出。
修改成功後,Pod會自動重啟,可以通過如下命令查詢Pod配置,驗證修改是否生效。
crictl inspectp {pod-id}
情境二:修改指定Pod的ConfigMap
在Pod所在的邊緣節點上執行如下命令,開啟修改ConfigMap模板的編輯介面。
edgeadm -n {namespace} -p {pod-name} edit configmap {configmap-name}
進入編輯模式,修改ConfigMap模板內容,儲存並退出。
修改成功後,指定的Pod會自動重啟並使用修改後的ConfigMap。如果節點上還有其他Pod使用該ConfigMap,您可以通過如下命令手動重啟Pod使修改生效。
crictl stopp {pod-id}
說明該命令只會停止Pod,Pod停止後會被kubelet自動重啟。
情境三:修改指定Pod的Secret
在Pod所在的邊緣節點上執行如下命令,開啟修改Secret模板的編輯介面。
edgeadm -n {namespace} -p {pod-name} edit secret {secret-name}
進入編輯模式,修改Secret模板內容,儲存並退出。
修改成功後,指定的Pod會自動重啟並使用修改後的Secret。如果節點上還有其他Pod使用該Secret,您可以通過如下命令手動重啟Pod使修改生效。
crictl stopp {pod-id}