Amazon Elastic Kubernetes Service (Amazon EKS) ノードの nf_conntrack_max クォータを引き上げたいと思っています。
解決策
現状の nf_conntrack_max 値を確認する
次の手順を実行します。
- SSH または AWS Systems Manager の機能である Session 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) として計算されます。例えば、CPU コアが 2 つあるノードで、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 クラスターのネットワーキングアドオンを管理する
kube-proxy (Kubernetes ウェブサイト)
AWS Systems Manager Session Manager