1. 程式人生 > 其它 >Rancher RKE 叢集針對大型部署的 etcd 調優

Rancher RKE 叢集針對大型部署的 etcd 調優

擴充套件 keyspace 容量

參考:https://etcd.io/docs/v3.4.0/op-guide/maintenance/#space-quota

etcd 的預設的 keyspace 大小為 2GB,上限為 8GB。當您執行具有 15 個或更多叢集的大型 Rancher 安裝時,建議您擴大 keyspace 容量和主機大小。如果您預計在垃圾回收間隔期間容器的變化率很高,在較小的安裝中也可以調整 keyspace 大小,適應變化率。

Kubernetes 每隔五分鐘會自動清理一次 etcd 資料集。如果發生了部署抖動,Kubernetes 會在垃圾回收發生之前,將足夠多的事件寫入 etcd。五分鐘後,Kubernetes 執行自動清理時,會將 etcd 資料集刪除,清理所有內容,導致 keyspace 被填滿。如果在 etcd 日誌或 Kubernetes API 伺服器日誌中看到mvcc: database space exceeded錯誤,您可以通過在 etcd 伺服器上設定quota-backend-bytes。增加 keyspace 的大小。

示例:將 keyspace 大小增加到 5GB

## RKE cluster.yml
---
services:
  etcd:
    extra_args:
      quota-backend-bytes: 5368709120

擴充套件 etcd 磁碟效能

參考:https://etcd.io/docs/v3.4.0/tuning/#disk

另外,為了減少 etcd 磁碟上的 IO 爭用,可以將專用裝置放在 data 和 wal 目錄下。另外,etcd 最佳實踐中有說明 etcd 的特性:etcd 會在叢集中的節點之間複製資料,所以映象 RAID 配置是不必要的。您可以不配置 RAID 映象,使用這部分計算資源增加可用的 IOPS,提升磁碟效能。

要在 RKE 叢集中實施此解決方案,/var/lib/etcd/data 和 /var/lib/etcd/wal目錄將需要在底層主機上掛載磁碟並對其進行格式化。在etcd服務的extra_args指令中,必須包含wal_dir目錄。如果不指定wal_dir,則 etcd 程序將嘗試在wal許可權不足的情況下操縱基礎安裝。

示例:調整主機上的磁碟優先順序

## RKE cluster.yml
---
services:
  etcd:
    extra_args:
      data-dir: "/var/lib/rancher/etcd/data/"
      wal-dir: "/var/lib/rancher/etcd/wal/wal_dir"
    extra_binds:
      - "/var/lib/etcd/data:/var/lib/rancher/etcd/data"
      - "/var/lib/etcd/wal:/var/lib/rancher/etcd/wal"
作者:Varden 出處:http://www.cnblogs.com/varden/ 本文內容如有雷同,請聯絡作者! 本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,否則保留追究法律責任的權利。