排解 GKE on AWS 的 etcd 問題

本頁說明如何解決 GKE on AWS 的 etcd 問題。

如需其他協助,請與 Cloud Customer Care 團隊聯絡。

etcd 資料磁碟已滿

etcd 資料磁碟空間不足時會發生下列錯誤,且可能以幾種不同方式呈現:

  • etcd 記錄可能會顯示寫入要求逾時錯誤:

    rafthttp: failed to save KV snapshot (write /var/etcd/data/member/snap/tmp720030520: no space left on device)
    

    您也可能會看到連線至對等互連的逾時錯誤:

    rafthttp: health check for peer [peer-id] could not connect: dial tcp [peer-ip]:2380: i/o timeout
    etcd server doesn't start:
    
  • 序列埠記錄可能指出 etcd 因空間不足而無法啟動:

    failed on file /dev/stdout (No space left on device)
    

如要判斷 etcd 執行個體的大小,請使用下列其中一種方法:

安全殼層 (SSH)

  1. 使用 SSH 連線至其中一個主要節點,然後執行下列指令:

    ETCDCTL_API=3 etcdctl --write-out=table endpoint status
    

    DB_SIZE 欄會指出使用的容量大小,如下列簡化範例輸出內容所示:

    +------------------+------------------+---------+---------+
    |    ENDPOINT      |        ID        | VERSION | DB SIZE |
    +------------------+------------------+---------+---------+
    | 10.240.0.17:2379 | 4917a7ab173fabe7 |  3.5.0  |   45 kB |
    | 10.240.0.18:2379 | 59796ba9cd1bcd72 |  3.5.0  |   45 kB |
    | 10.240.0.19:2379 | 94df724b66343e6c |  3.5.0  |   45 kB |
    +------------------+------------------+---------+---------+
    

主控台

  1. 前往控制台的 Cloud Monitoring 頁面。

    前往 Cloud Monitoring 頁面

  2. 選取「指標探索工具」

  3. 選取 metric etcd_mvcc_db_total_size_in_bytes 指標。

如要解決這個問題,請使用適用於儲存空間供應商和作業系統的適當程序,調整 etcd 的資料磁碟大小。請新增足夠的額外空間,以因應日後 etcd 的成長。

  1. 調整磁碟大小後,請檢查磁碟空間是否仍有警告:

    ETCDCTL_API=3 etcdctl alarm list
    
  2. 如果最後一欄顯示 NOSPACE,請按照下列步驟解除警報:

    ETCDCTL_API=3 etcdctl alarm disarm
    

後續步驟

如需其他協助,請與 Cloud Customer Care 聯絡。