Docker Swarm 外部検証ロードバランシングが機能しない場合の解決策

Docker Swarm 外部検証ロードバランシングが機能しない場合の解決策

問題の説明

Centos7 をローカルにインストールして 3 つの仮想マシンを作成し、Swarm クラスターを初期化しました。つまり、マネージャー ノード 1 つとワーカー ノード 2 つです。3 つのマシンの IP アドレスは、 192.168.124.8 - (manager節點)192.168.124.9 - (worker節點)192.168.124.10 - (worker節點)です。

[root@localhost ~]# docker node ls
ID ホスト名 ステータス 可用性 マネージャ ステータス エンジン バージョン
j0f4up8v7epacp3vceby4exsz localhost.localdomain 準備完了 アクティブ 19.03.13
qeeqc10gl9e56w61pajjqle08 localhost.localdomain 準備完了 アクティブ 19.03.13
r5sg5m9dkwcu76t56hg0vu29t * localhost.localdomain 準備完了 アクティブ リーダー 19.03.14

次に、次のコマンドでSwarmクラスタ上でサービスを開始しました。

docker サービス作成 --name test-vote --replicas 2 --constraint node.role==worker --publish 8080:80 registry.cn-hangzhou.aliyuncs.com/anoy/vote

ワーカーノードの ip:port を直接 curl すると応答が得られますが、返される containerId は変更されず、マネージャーノードに直接アクセスすると応答が得られず、ロードバランシングが有効になっていないようです。

解決する

少し検索した後、スタックオーバーフローで答えを見つけました: https://stackoverflow.com/questions/48360577/docker-swarm-mode-routing-mesh-not-working

結局、ファイアウォールの問題であることが判明しました。ドキュメントによると、 swarm mode routing mesh有効にするには、スウォーム クラスターを初期化する前に、 tcp/udpポート7946udpポート4789を開く必要があります。https://docs.docker.com/engine/swarm/ingress/

したがって、CentOS の場合は、次のスクリプトを使用してポートを開くことができます。Swarm クラスター内の各ホストを開く必要があります。便宜上、TCP ポートと UDP ポートの両方が開かれています。ポートを開いたら、マシンを再起動する必要があります。

ファイアウォールコマンド --permanent --zone=public --add-port=4789/tcp && \
ファイアウォールコマンド --permanent --zone=public --add-port=7946/tcp && \
ファイアウォールコマンド --permanent --zone=public --add-port=4789/udp && \
ファイアウォールコマンド --permanent --zone=public --add-port=7946/udp && \
ファイアウォール-cmd --reload && \
# 再起動 sudo reboot

これで、docker swarm 外部検証ロード バランシングが有効にならないというこの記事は終わりです。docker swarm ロード バランシングに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Docker Swarm のサービス検出と負荷分散の原則の詳細な説明
  • docker swarm は指定されたノード上で指定されたコンテナをどのように実行しますか?
  • docker swarm クラスターの障害と例外の詳細な説明
  • Docker Swarmを使用してクラスターを構築する方法
  • Docker 1.12 を使用してマルチホスト Docker Swarm クラスターを構築する詳細な説明

<<:  CSSでnグリッドレイアウトを実装する方法

>>:  ES6の新機能に関する最もよく使われる知識ポイントのまとめ

推薦する

vue3+TypeScript+vue-routerの使い方

目次使いやすいプロジェクトを作成するvue-cli 作成ヴィートクリエイションvue-routerを...

vue-cropperプラグインは、画像キャプチャとアップロードコンポーネントのカプセル化を実現します。

vue-cropperプラグインをベースにした画像キャプチャとアップロードコンポーネントをカプセル...

Vueのvue-tree-colorコンポーネントの組織構造図の事例を詳しく解説

目次ネプローダーをインストールするプラグインのインポート始める配置折りたたみディスプレイノードをクリ...

例を通してMySQLの更新がテーブルをロックするかどうかを判定する

2つのケース: 1. 索引あり 2. 索引なし前提条件:方法: コマンドラインを使用してシミュレート...

win2008 サーバー セキュリティ設定の展開ドキュメント (推奨)

私は新年を迎える前からプロジェクトに取り組んでいましたが、ここ数日で、新しいサーバー用に新しく増設し...

丸い角や鋭い角を表現するために、絵の代わりに文字を使用する研究

Google Gmail ページから撮った次のスクリーンショットをご覧ください (同じ場所からスクリ...

...

HTML ではスペースはどのように表現されますか (どのような意味ですか)?

Web 開発では、次のような文字によく遭遇します: &nbsp;これは実際には HTML が...

Linux でコマンドまたはプロセスの実行時間を調べる方法

Unix ライクなシステムでは、コマンドまたはプロセスの実行がいつ開始されたか、またプロセスがどのく...

Google 翻訳ツール: 多言語ウェブサイトを素早く実装

Google Chinaは、ウェブサイトやブログを素早く簡単に多言語化できる翻訳ツールをリリースした...

MySQLデータファイルの保存場所を表示する方法

次のような疑問が湧くかもしれません。MySQLをローカル (自分のコンピュータ) にインストールした...

HTML ページ適応幅テーブル

WEB アプリケーションのページでは、テーブルがよく使用されます。列の数が限られているため、各列のコ...

HTML H タイトルタグの使用

H タグ、特に h1 タグの使用は常に議論の的となっている問題であり、私たちが研究する価値のある問題...

MySQL ページング分析の原理と効率改善

MySQL ページング分析の原理と効率改善PERCONA PERFORMANCE CONFERENC...

キーフリーログインプロセスを実現するためのLinux構成の分析

1.sshコマンドLinux では、ssh コマンドを使用して別のサーバーにログインできます。 2 ...