ビュー:
プロファイルの適用範囲:レベル1 - ワーカーノード
Kubelet に iptables の管理を許可する。
Kubeletsは、ポッドのネットワークオプションの選択に基づいて、必要なiptablesの変更を自動的に管理できます。iptablesの変更はkubeletsに任せることをお勧めします。これにより、iptablesの設定がポッドのネットワーク設定と同期したままになります。動的なポッドネットワーク設定の変更に対して手動でiptablesを設定すると、ポッド/コンテナ間および外部との通信が妨げられる可能性があります。iptablesのルールが厳しすぎたり、緩すぎたりすることがあります。

影響

Kubeletはシステム上のiptablesを管理し、同期を保ちます。他のiptables管理ソリューションを使用している場合、いくつかの競合が発生する可能性があります。

監査

監査方法 1:
注意
注意
まず、各ノードにSSHします。各ノードで以下のコマンドを実行してKubeletプロセスを見つけます
ps -ef | grep kubelet
上記のコマンドの出力に引数 --make-iptables-util-chains が含まれている場合、それが true に設定されていることを確認してください。--make-iptables-util-chains 引数が存在せず、--config によって指定された Kubelet 設定ファイルがある場合、そのファイルが makeIPTablesUtilChains を false に設定していないことを確認してください。
監査方法2:
API configz エンドポイントを使用する場合、Kubelet を実行しているノードからライブ構成を抽出して、authentication... "makeIPTablesUtilChains": true のステータスを検索することを検討してください。ローカルプロキシポートと次の変数を設定し、プロキシポート番号とノード名を指定します:
 HOSTNAME_PORT="localhost-and-port-number" NODE_NAME="The-Name-Of-Node-To-Extract-Configuration" from the output of "kubectl get nodes" 
 kubectl proxy --port=8001 & export HOSTNAME_PORT=localhost:8001 (例のホストとポート番号) export NODE_NAME=ip-192.168.31.226.ec2.internal (「kubectl get nodes」からの例のノード名) curl --SSL "http://${HOSTNAME_PORT}/api/v1/nodes/${NODE_NAME}/proxy/configz" 

修復

修正方法 1:
  1. Kubelet config ファイルを変更する場合は、/etc/kubernetes/kubelet/kubelet-config.json ファイルを編集し、以下のパラメータを true に設定してください
     "makeIPTablesUtilChains": true 
  2. /etc/systemd/system/kubelet.service.d/10-kubelet-args.conf--make-iptables-util-chains 引数を設定しないようにしてください。そうしないと、Kubelet 設定ファイルが上書きされます。
修復方法 2:
  1. 実行可能な引数を使用する場合は、各ワーカーノードの kubelet サービスファイル /etc/systemd/system/kubelet.service.d/10-kubelet-args.conf を編集し、KUBELET_ARGS 変数文字列の末尾に以下のパラメータを追加します。
     --make-iptables-util-chains=true 
修正方法 3:
  1. API configz エンドポイントを使用する場合、kubelet を実行しているノードからライブ構成を抽出して、"makeIPTablesUtilChains": true のステータスを検索することを検討してください。
     kubectl proxy --port=8001 & export HOSTNAME_PORT=localhost:8001 (例のホストとポート番号) export NODE_NAME=ip-192.168.31.226.ec2.internal (例のノード名 "kubectl get nodes" から) curl --SSL "http://${HOSTNAME_PORT}/api/v1/nodes/${NODE_NAME}/proxy/configz" 
3つの修正すべてに対して: システムに基づいて、kubeletサービスを再起動し、次のコマンドでステータスを確認してください:
 systemctl daemon-reload systemctl restart kubelet.service systemctl status kubelet -l 

初期設定値

Amazon EKS ドキュメントでデフォルト値を参照してください。