我想增加 Amazon Elastic Kubernetes Service (Amazon EKS) 節點上的 nf_conntrack_max 配額。
解決方法
檢查目前的 nf_conntrack_max 值
請完成以下步驟:
- 使用 SSH 或 Session Manager (AWS Systems Manager 的一項功能) 連線至您的工作節點。
- 執行以下命令以取得目前的 nf_conntrack_max 值:
cat /proc/sys/net/netfilter/nf_conntrack_max
修改 kube-proxy ConfigMap
請完成以下步驟:
-
執行以下命令以編輯 kube-proxy-config ConfigMap:
kubectl edit configmap kube-proxy-config -n kube-system
-
在 conntrack 底下,增加 min 值:
conntrack:
maxPerCore: 32768
min: 131072
**注意:**將範例值替換為您的值。將 nf_conntrack_max 值計算為 max(min, maxPerCore * number_of_CPU_cores)。例如,您在具有 2 個 CPU 核心的節點上,將 min 設定為 131072,並將 maxPerCore 設定為 32768。nf_conntrack_max 值會變成 131072,因為 131072 大於 32768 乘以 2。
-
儲存變更,然後關閉編輯器。
重新啟動 kube-proxy DaemonSet
修改 ConfigMap 後,執行以下命令以重新啟動 kube-proxy DaemonSet,套用變更:
kubectl rollout restart daemonset kube-proxy -n kube-system
確認 nf_conntrack_max 值已更新
**重要事項:**當您增加 nf_conntrack_max 時,節點記憶體用量會增加。每個連線追蹤項目大約使用 300 位元組的記憶體。請確認您分配了足夠的記憶體。
請完成以下步驟:
- 使用 SSH 或 Session Manager 連線到您的工作節點。
- 執行以下命令以確認 nf_conntrack_max 值已更新:
cat /proc/sys/net/netfilter/nf_conntrack_max
相關資訊
更新 Kubernetes kube-proxy 自行管理附加元件
管理 Amazon EKS 叢集的網路附加元件
Kubernetes 網站上的 kube-proxy
AWS Systems Manager Session Manager