ホームページ > 記事 > コンピューターのチュートリアル > Kubernetes クラスターで Iptables を Ipvs に置き換える方法
Kubernetes では、kube-proxy がネットワーク プロキシであることは誰もが知っていますが、その主な役割は、クラスタ内のサービスにロード バランシングとサービス ディスカバリ機能を提供することです。 kube-proxy にはさまざまな動作モードがあり、その中で iptables モードと ipvs モードが 2 つの一般的なモードです。 iptables モードでは、kube-proxy は iptables ルールを通じて負荷分散とサービス検出を実装しますが、ipvs モードでは Linux カーネルの IPVS (IP Virtual Server) テクノロジーを使用して、より効率的な負荷分散を実現します。適切なモードの選択は、クラスターのニーズとパフォーマンス要件によって異なります。 iptables モードは小規模なクラスターに適していますが、ipvs モードはより優れたパフォーマンスとスケーラビリティを提供するため、大規模なクラスターに適しています。したがって、Kubernetes クラスターをデプロイする場合は、実際のニーズと規制に基づく必要があります
iptables と ipvs は、Linux カーネルのネットワーク プロキシ テクノロジであり、負荷分散とサービス検出に使用されます。両者の違いは、iptables がルールベースのファイアウォールであるのに対し、ipvs はネットワーク層ベースの負荷分散ツールであることです。
iptables ルールに基づく実装では、負荷分散とサービス検出を実現するために各ノードに一連のルールを追加しますが、ipvs はネットワーク プロキシをより効率的に処理できるカーネル レベルの負荷分散テクノロジです。 iptables は主にネットワーク パケットのフィルタリングと転送に重点を置いているのに対し、ipvs はネットワーク リソースをより効果的に管理および最適化できる負荷分散とトラフィック分散に重点を置いています。この 2 つを合理的に組み合わせることで、ネットワーク トラフィックのバランスが改善され、効率的に処理され、システム全体のパフォーマンスと安定性が向上します。
高負荷状況では、ipvs モードの kube-proxy のパフォーマンスが向上します。これは、カーネル レベルに基づいてネットワーク負荷分散を実行し、より効率的であるためです。ただし、シナリオによっては、Iptables モードでもパフォーマンスが向上する場合があります。
Iptables モードの Kube-proxy Kubernetes バージョン 1.16 より前では、iptables を使用してポート転送を実装するには、TCP ベースのロード バランシングとサービス ディスカバリのみを実装でき、4 層のロード バランシングをサポートできませんでした。 Kubernetes バージョン 1.16 では、4 層の負荷分散をサポートできる iptables-nat モードが追加されました。対照的に、ipvs モードは TCP、UDP、SCTP、および 4 層負荷分散をサポートし、オンライン ハッシュ、IP ハッシュ、ラウンド ロビン、最小接続などの複数の負荷分散アルゴリズムをサポートします。
iptables の欠点の 1 つは、カーネル レベルで動作することです。iptables ルールが複雑すぎると、システムのパフォーマンスに影響を与える可能性があります。さらに、iptables ルールはカーネル内で集中化されているため、変更するのが比較的困難です。
Kubernetes システムでは、kubeadm 管理ツールは kube-proxy を処理するためにデフォルトで ipvs モードを選択します。同時に、Kubernetes は自動プルアップ、ロールバック、フェイルオーバーなどのさまざまな例外処理メカニズムも提供しますなど、システムの信頼性、高可用性、フォールト トレランスを確保し、iptables の処理中に発生する可能性のある問題を回避し、フォールト処理とフォールト トレランスの観点からシステム全体のパフォーマンスを向上させます。
操作はすべてのノードで行われます
<code>cat >> /etc/sysctl.conf/etc/sysconfig/modules/ipvs.modules</code>
以上がKubernetes クラスターで Iptables を Ipvs に置き換える方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。