SwarmはDockerの機能であり、Dockerホストとコンテナーを大規模に簡単に実行できます。Swarm、またはDockerクラスターは、_manager_ノードとして機能する1つ以上のDockerizedホストと、任意の数の_worker_ノードで構成されます。このようなシステムをセットアップするには、Linuxファイアウォールを慎重に操作する必要があります。Swarmが正しく機能するために必要なネットワークポートは次のとおりです。Machineが機能するために必要です。Machineは、Dockerホストのオーケストレーションに使用されます。Swarmまたはクラスターのノード間の通信に使用されます。マネージャーノードでのみ開く必要があります。+」(コンテナネットワーク検出)。+(コンテナーの入力ネットワーク)。7でLinuxファイアウォールを構成します。7のデフォルトのファイアウォールアプリケーションですが、IPTablesも使用できます。このチュートリアルでは両方の方法について説明しますが、それぞれが同じ結果をもたらすため、最も使い慣れた方法を選択できます。前提条件この記事を進める前に、次のことを行う必要があります。Workerを含む、クラスターを構成するホストをセットアップします。MachineでリモートDockerホストを管理する7))これらを設定します。7サーバーでは、デフォルトで無効になっています。Swarmが機能するために必要なネットワークポートを追加しましょう。開始する前に、そのステータスを確認します。firewalld次に、起動時に起動するように有効にします。firewalldSwarmマネージャーとなるノードで、次のコマンドを使用して必要なポートを開きます。--permanentその後、ファイアウォールをリロードします。--reload次に、Dockerを再起動します。docker次に、Swarmワーカーとして機能する各ノードで、次のコマンドを実行します。--permanentその後、ファイアウォールをリロードします。--reload次に、Dockerを再起動します。Swarmに必要なポートを開くことに成功しました。Swarmポートを開くLinuxディストリビューションでIPTablesを使用するには、まず他のファイアウォールユーティリティをアンインストールする必要があります。FirewallDからIPTablesに切り替えるには、最初にFirewallDを停止します。iptables-services`パッケージをインストールします。iptables-services次に、IPTablesを開始します。iptables次に、起動時に自動的に起動するように有効にします。Swarm固有のルールをINPUTチェーンに追加する前に、そのチェーンのデフォルトルールを見てみましょう。--line-numbers出力は次のようになります。dpt:sshまとめると、デフォルトのルールはサーバーにステートフルな保護を提供し、すでに確立されているトラフィックを除くすべての入力トラフィックを拒否します。SSHトラフィックは許可されています。これはキャッチオール拒否ルールであるため、上で強調表示されているルール番号5に注意してください。Swarmが適切に機能するには、追加するルールをこのルールの上に追加する必要があります。INPUTチェーンに追加するのではなく、新しいルールを挿入する必要があります。+`ユーティリティを使用して必要なルールを追加できます。この最初のコマンドセットは、Swarmマネージャーとして機能するノードで実行する必要があります。ACCEPTこれらのルールはランタイムルールであり、システムを再起動すると失われます。現在のランタイムルールをファイルに保存して、再起動後も保持するには、次のように入力します。`というファイルに保存されます。+`を使用してルールを表示すると、すべてのルールがキャッチオール拒否ルールの上に挿入されていることがわかります。icmp-host-prohibited次に、Dockerを再起動します。dockerSwarmワーカーとして機能するノードで、次のコマンドを実行します。ACCEPTルールをディスクに保存します。save次に、Dockerを再起動します。Swarmに必要なポートを開くのに必要なことはそれだけです。Firewallの仕組み]をご覧ください。結論FirewallDとIPTablesは、Linuxの世界で最も人気のある2つのファイアウォール管理アプリケーションです。Swarmのセットアップに必要なネットワークポートを開く方法を読んだだけです。使用する方法は個人的な好みの問題です。すべて同じように機能するからです。