在管理邊緣節點過程中,可能會遇到一些問題,包括接入失敗和升級失敗的問題。本文介紹邊緣節點會遇到的常見問題和對應的解決方案。
如何處理邊緣節點接入失敗的問題?
當腳本執行時出現問題,請參考以下常見問題列表進行處理。若出現以下表格中不存在的問題,請收集節點診斷信息后,提交工單排查處理。關于如何收集邊緣節點診斷信息,請參見如何收集ACK Edge集群節點的診斷信息?
接入失敗信息 | 失敗原因 | 處理建議 |
The os XXX unsupport | 當前邊緣節點的系統版本不支持。 | 關于支持的邊緣節點的系統列表,請參見添加邊緣節點。 |
invalid nodeName | 節點名稱不合法。 |
|
Node route overlaps with service cidr | 節點的路由表網段與集群創建時配置的Pod CIDR或Service CIDR沖突。 | 重新創建集群,請注意配置Pod CIDR與Service CIDR,需避免與邊緣節點的NameServer地址以及路由表網段沖突。 |
response error msg: TOKEN_EXPIRED | 接入Token過期。 |
|
A node named XXX is already exist in the cluster | 集群中已存在同名的節點。 | 下線集群中的同名節點。 |
error run phase join-node: failed to get cluster info: failed to get cluster-info configmap, Get "https://xx.xxx.xx.xx:6443/api/v1/namespaces/kube-public/configmaps/cluster-info": dial tcp xx.xxx.xx.xx:6443: i/o timeout | 獲取集群cluster-info失敗。 | edgeadm接入邊緣節點時需要通過該地址訪問APIServer, 請檢查API Server負載均衡(SLB)ACL規則是否限制了該地址的訪問。 |
error run phase join-node: Install edge-hub failed: Copy file /tmp/edge-hub to /usr/bin/edge-hub fail: open /usr/bin/edge-hub: text file busy | 40009 | 40009 | 安裝edge-hub失敗,節點上已經存在edge-hub的二進制文件。 | 執行 |
error run phase post-check: timed out waiting for the condition | 系統組件啟動失敗。 |
|
如何處理邊緣節點升級失敗的問題?
升級邊緣節點池時,若未返回升級成功結果This node has been upgraded successfully
,請參考以下內容排查處理。
升級失敗信息 | 可能原因 | 處理建議 |
edgeadm version xxxx does not match cluster version | 升級工具版本與集群版本不匹配。 |
|
node has already been upgraded to xxx | 節點已經是升級后的目標版本。 | 如果確認節點上還有組件沒有完成升級,請保留日志并提交工單處理。 |
kubelet target version xxxx does not match cluster version xxxx | 指定的kubelet升級的版本與集群控制面版本不匹配。 |
|
Parameter currentVersion cann't null | 使用了老版本的edgeadm。 |
|
upgrade kubelet failed at phase install, recover to previous state. error run phase upgrade: xxxx | 升級失敗,且已自動回滾到之前的狀態,節點狀態不受影響。 | 請保留日志并提交工單處理。 |
upgrade kubelet failed at phase install, recover to previous state recover kubelet failed, err: xxx error run phase upgrade: xxxx | 升級失敗,且自動回滾失敗,節點狀態會受到影響。 | 請保留日志并提交工單處理。 |
如何收集ACK Edge集群節點的診斷信息?
當ACK Edge集群的節點出現異常時,您可以參見以下步驟收集集群節點的診斷信息,以供數據分析使用。
登錄到ACK Edge集群的異常節點。
執行如下命令,下載診斷腳本。
curl -o /usr/local/bin/diagnose_edge_node.sh https://aliacs-k8s-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/public/diagnose/diagnose_k8s.sh
執行如下命令,給診斷腳本添加執行權限。
chmod u+x /usr/local/bin/diagnose_edge_node.sh
執行如下命令,進入指定目錄。
cd /usr/local/bin/
執行如下命令,運行診斷腳本。
./diagnose_edge_node.sh
預期輸出如下。每次執行診斷腳本產生的診斷信息文件名稱不同,本示例以
diagnose_1578310147.tar.gz
為例,具體以實際環境為準。...... + echo 'please get diagnose_1578310147.tar.gz for diagnostics' please get diagnose_1578310147.tar.gz for diagnostics + echo '請提交 diagnose_1578310147.tar.gz 給技術支持' 請提交 diagnose_1578310147.tar.gz 給技術支持
執行
ll
命令,確認存在diagnose_1578310147.tar.gz
診斷信息文件。