在云邊場景下,邊緣節點可能會因為網絡不穩定而處于離線狀態。離線的邊緣節點如果設置了節點自治,節點上的業務可以不受影響持續運行,但您無法再通過云端控制面對節點上的業務做運維變更。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}