ホームページ  >  記事  >  システムチュートリアル  >  Docker エンジン Swarm にワーカー ノードを追加します。

Docker エンジン Swarm にワーカー ノードを追加します。

WBOY
WBOY転載
2023-12-28 11:05:141117ブラウズ
###導入### CentOS 7.2 で数週間前に始めた作業を続けてみましょう。このガイドでは、Docker 1.12 に組み込まれているネイティブのクラスタリング機能とオーケストレーション機能を初期化して起動する方法を学びました。ただし、マネージャー ノードのみがあり、他のワーカー ノードはありません。今日はこれについて詳しく説明します。

非対称ノードを Sawrm に追加する方法を説明します。たとえば、CentOS の隣に Fedora 24 を追加すると、両方のノードがクラスターに参加し、優れた負荷分散などが行われます。もちろん楽な道ではありませんし、障害も出てきますので、かなり楽しいはずです。
Docker 引擎的 Swarm中添加工作者节点!

ティーザー

前提条件

他のノードを Swarm に追加する前に、いくつかのことを行う必要があります。理想的には、すべてのノードで同じバージョンの Docker を実行する必要があります。ネイティブ オーケストレーション機能をサポートするには、少なくとも 1.12 である必要があります。 CentOS と同様、Fedora の組み込みリポジトリには最新のビルド バージョンがないため、手動でビルドするか、Docker リポジトリを使用して正しいバージョンを手動で追加してインストールし、依存関係の競合を修正する必要があります。 CentOS でこれを行う方法はすでに説明しましたが、プロセスは同じです。
さらに、すべてのノードが相互に通信できる必要があります。これには、マネージャーとワーカー ノードが相互に通信できるように、正しいルーティング ルールとファイアウォール ルールが必要です。そうしないと、ノードを Swarm に追加できません。最も簡単な修正は、ファイアウォール ルールを一時的にクリアすることです (iptables -F) が、これによりセキュリティが危険にさらされる可能性があります。何をしようとしているのかを十分に理解し、ノードとポートに正しいルールを作成してください。

デーモンからのエラー応答: ノードが参加する前にタイムアウトに達しました。swarm への参加試行はバックグラウンドで続行されます。ノードの現在の swarm ステータスを確認するには、「docker info」コマンドを使用してください。

デーモンからのエラー応答: ノードが参加する前にタイムアウトしました。 Swarm に参加する試みはバックグラウンドで続行されます。 「docker info」コマンドを使用して、ノードの現在の Swarm ステータスを表示します。

同じ Docker イメージをホスト マシンに提供する必要があります。前のチュートリアルでは Apache イメージを作成しましたが、ワーカー ノードで同じことを行うか、作成したイメージを配布する必要があります。これを行わないと、エラーが発生します。 Docker のセットアップにヘルプが必要な場合は、私の入門ガイドと Web チュートリアルをお読みください。

リーリー 今すぐ始めましょう

これで、CentOS マシンが起動し、コンテナが正常に作成されました。ホスト ポートを使用してサービスに接続でき、すべて問題ないようです。現在、Swarm にはマネージャーのみがいます。
Docker 引擎的 Swarm中添加工作者节点!

###マネージャー###

ワーカーに参加

新しいノードを追加するには、join コマンドを使用する必要があります。ただし、ワーカー ノードが Swarm マネージャーに対して適切に認証できるように、最初にトークン、IP アドレス、およびポートを指定する必要があります。次に、(Fedora 上で) を実行します: リーリー

ファイアウォールとルーティング ルールを修正しないと、タイムアウト エラーが発生します。すでに Swarm に参加している場合、join コマンドを繰り返すとエラーが発生します:

リーリー

疑わしい場合は、Swarm を終了して、もう一度試してください:

リーリー

ワーカー ノードでは、docker 情報を使用してステータスを確認できます:

リーリー

サービスを作成または拡張する

ここで、Docker がコンテナをノード間で分散するかどうか、またその方法を検討する必要があります。私のテストでは、非常に軽い負荷の下で非常に単純なバランシング アルゴリズムを実証しました。 1、2 回試した後、スケーリングや更新を試みた後でも、Docker は実行中のサービスを新しいワーカーに再割り当てしませんでした。同様に、ある時点で、ワーカー ノード上に新しいサービスが作成されます。おそらくこれが最良の選択肢です。


Docker 引擎的 Swarm中添加工作者节点!スケールサービス

Docker 引擎的 Swarm中添加工作者节点!サービスls

Docker 引擎的 Swarm中添加工作者节点!サービス、その他

Docker 引擎的 Swarm中添加工作者节点! 新しいワーカー ノード上に新しいサービスを完全に作成します。

しばらくすると、2 つのコンテナ間で既存のサービスが再分散されますが、これには時間がかかります。新しいサービスはうまく機能します。これはまだ初期の段階での観察なので、現時点ではそれ以上のことは言えません。今こそ、探索と調整を開始する時期です。


Docker 引擎的 Swarm中添加工作者节点!しばらくすると負荷分散が機能しました。

要約

Docker は機敏な小さな野獣であり、成長を続け、より複雑で強力になり、確実によりエレガントになりました。大企業に食い尽くされるのは時間の問題だった。 Swarm モードは、ネイティブ オーケストレーション機能を提供する場合にうまく機能しますが、単なる少数のコンテナを超えて、そのアルゴリズムとスケーラビリティを最大限に活用します。

私のチュートリアルでは、CentOS によって実行されるクラスターに Fedora ノードを追加し、2 つを並行して動作させる方法を示します。負荷分散についてはまだいくつかの疑問がありますが、それについては今後の記事で検討します。全体として、これが覚えておく価値のある教訓であることを願っています。 Swarm をセットアップしようとするときに発生する可能性のある前提条件と一般的な問題のいくつかについて説明し、多数のコンテナーを起動し、サービスを拡張および分散する方法についても簡単に説明しました。覚えておいてください、これはほんの始まりにすぎません。

###乾杯。

###著者について:###

私はイゴール・リュブンチッチです。現在38歳、既婚ですが子供はいません。私は現在、大胆で革新的なクラウド テクノロジー会社でチーフ エンジニアとして働いています。 2015 年の初め頃まで、私は世界最大手の IT 企業の 1 つでシステム アーキテクチャ エンジニアとして働いており、エンジニアリング コンピューティング チームと協力して、新しい Linux ベースのソリューションの開発、カーネルの最適化、Linux の問題の解決に取り組んでいました。その前は、ハイパフォーマンス コンピューティング環境向けの革新的なソリューションを設計するチームの技術リーダーを務めていました。他にもシステムスペシャリスト、システムプログラマーなどの豪華な肩書があります。かつてはこれらすべてが私の趣味でしたが、2008 年からは有償の仕事になりました。これ以上に満足できるものは何でしょうか?

2004 年から 2008 年まで、私は医療画像業界で物理学者として働いて生計を立てていました。私の仕事の専門知識は、問題解決とアルゴリズム開発に重点を置いています。この目的のために、私は主に信号と画像の処理に Matlab を広範囲に使用しています。さらに、MEDIC シックス シグマ グリーン ベルト、実験計画法、統計工学など、いくつかの主要なエンジニアリング手法の認定も取得しています。

私はまた、Linux に関するファンタジー作品と技術的な作品の両方で本を書き始めました。互いに混ざり合う。

私のオープンソース プロジェクト、出版物、特許の完全なリストを表示するには、下にスクロールしてください。

私の受賞歴、ノミネート、IT 関連認定資格の完全なリストについては、しばらくお待ちください。

以上がDocker エンジン Swarm にワーカー ノードを追加します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はlinuxprobe.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。