全部產品
Search
文件中心

Container Service for Kubernetes:診斷邊緣節點問題

更新時間:Aug 12, 2026

在管理邊緣節點過程中,可能會遇到一些問題,包括接入失敗和升級失敗的問題。本文介紹邊緣節點會遇到的常見問題和對應的解決方案。

如何處理邊緣節點接入失敗的問題?

當指令碼執行時出現問題,請參考以下常見問題列表進行處理。若出現以下表格中不存在的問題,請收集節點診斷資訊後,提交工單排查處理。關於如何收集邊緣節點診斷資訊,請參見如何收集ACK Edge叢集節點的診斷資訊?

接入失敗資訊

失敗原因

處理建議

The os XXX unsupport

當前邊緣節點的系統版本不支援。

關於支援的邊緣節點的系統列表,請參見添加邊緣節點

invalid nodeName

節點名稱不合法。

  • 節點名稱只能由英文小寫字母、中劃線(-)和半形句號(.)組成。

  • 節點名稱不能超過253個字元。

  • 節點名稱不能以localhost開頭。

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的二進位檔案。

執行edgeadm reset命令清理節點後重新接入。

error run phase post-check: timed out waiting for the condition

系統組件啟動失敗。

  1. 請重新下載edgeadm工具,並執行edgeadm reset後重新接入,確保您使用的是最新版本的edgeadm。

  2. 檢查邊緣節點是否能正常訪問依賴的公網地址。相關地址清單請參見公網接入的網路設定

  3. 收集邊緣節點診斷資訊,並提交工單排查,關於如何收集診斷資訊,請參見如何收集ACK Edge叢集節點的診斷資訊?

如何處理邊緣節點升級失敗的問題?

升級邊緣節點池時,若未返回升級成功結果This node has been upgraded successfully,請參考以下內容排查處理。

升級失敗資訊

可能原因

處理建議

edgeadm version xxxx does not match cluster version

升級工具版本與叢集版本不匹配。

  1. 檢查叢集控制面是否已經完成升級。

  2. 檢查TARGET_CLUSTER_VERSION參數是否填寫正確。

node has already been upgraded to xxx

節點已經是升級後的目標版本。

如果確認節點上還有組件沒有完成升級,請保留日誌並提交工單處理。

kubelet target version xxxx does not match cluster version xxxx

指定的kubelet升級的版本與叢集控制面版本不匹配。

  1. 如果指定了kubelet-version參數,請檢查該參數是否填寫正確(與叢集控制面版本一致)。

  2. 如果沒有指定該參數,請提交工單處理。

Parameter currentVersion cann't null

使用了老版本的edgeadm。

  1. 請檢查edgeadm版本是否為最新版本。

  2. 當前支援的叢集升級範圍為1.18升級到1.20版本、1.20升級到1.22版本。

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叢集的節點出現異常時,您可以參見以下步驟收集叢集節點的診斷資訊,以供資料分析使用。

  1. 登入到ACK Edge叢集的異常節點。

  2. 執行如下命令,下載診斷指令碼。

    curl -o /usr/local/bin/diagnose_edge_node.sh https://aliacs-k8s-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/public/diagnose/diagnose_k8s.sh
  3. 執行如下命令,給診斷指令碼添加執行許可權。

    chmod u+x /usr/local/bin/diagnose_edge_node.sh
  4. 執行如下命令,進入指定目錄。

    cd /usr/local/bin/
  5. 執行如下命令,運行診斷指令碼。

    ./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 給支援人員
  6. 執行ll命令,確認存在diagnose_1578310147.tar.gz診斷資訊檔。