我想增加 Amazon Elastic Kubernetes Service (Amazon EKS) 节点上的 nf_conntrack_max 配额。
解决方法
检查当前 nf_conntrack_max 的值
完成以下步骤:
- 使用 SSH 或会话管理器(AWS Systems Manager 的一项功能)连接到您的 Worker 节点。
- 运行以下命令获取当前 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。由于 131072 大于 32768 乘以 2 的值,因此 nf_conntrack_max 的值为 131072。
-
保存您的更改,然后关闭编辑器。
重新启动 kube-proxy 进程守护程序
修改 ConfigMap 后,运行以下命令重新启动 kube-proxy 进程守护程序以应用此更改:
kubectl rollout restart daemonset kube-proxy -n kube-system
验证 nf_conntrack_max 的值是否已更新
**重要事项:**当您增加 nf_conntrack_max 时,节点内存使用量会增加。每个连接跟踪条目大约占用 300 字节的内存。确保您已分配足够的内存。
完成以下步骤:
- 使用 SSH 或会话管理器连接到您的 Worker 节点。
- 运行以下命令确认 nf_conntrack_max 值已更新:
cat /proc/sys/net/netfilter/nf_conntrack_max
相关信息
更新 Kubernetes kube-proxy 自行管理的附加组件
管理 Amazon EKS 集群的联网附加组件
Kubernetes 网站上的 kube-proxy
AWS Systems Manager 会话管理器