Dockerの高可用性構成の詳細な説明

Dockerの高可用性構成の詳細な説明

Docker の作成

Docker Compose は、管理対象コンテナをプロジェクト、サービス、コンテナの 3 つのレイヤーに分割します。 Docker Compose が実行されているディレクトリ内のすべてのファイル (docker-compose.yml、extends ファイル、環境変数ファイルなど) がプロジェクトを形成します。特別なプロジェクト名が指定されていない場合は、現在のディレクトリ名が使用されます。プロジェクトには複数のサービスを含めることができ、各サービスは実行中のコンテナのイメージ、パラメーター、依存関係を定義します。サービスには複数のコンテナ インスタンスを含めることができます。Docker Compose では負荷分散の問題が解決されないため、サービス検出と負荷分散を実現するには他のツールが必要です。

Docker Composeをインストールする

docker-compose-linux-x86_64 を入手して /bin ディレクトリに配置し、ソフトリンクを作成して実行権限を追加します。

chmod +x docker-compose-linux-x86_64
docker-compose は、Linux で実行できます。

後続の負荷分散テストを容易にするために、haproxy と nginx をインポートします。

docker load -i haproxy
docker load -i nginx

/tmp/にcompose設定ファイルを書き込む

[root@foundation50 compose]#vim docker-compose.yml 


httpdサービスを作成してインストールし、web1 httpdサービスでhttpdファイルを起動します。

[root@foundation50 compose]#vim web1/Dockerfile
rhel7:v1より 
エクスポーズ80 
yum install -y httpdを実行します 
index.html /var/www/html を追加します。 
CMD ["/usr/sbin/httpd","-D","フォアグラウンド"]

haproxyでhaproxy.cfg設定ファイルを作成する

チェック

haproxy 統計を表示

172.25.50.1 にアクセス

健康チェック

web3をシャットダウン


ドッカースウォーム

3台の仮想マシンを準備する

server1、server2、server3にDockerをインストールし、サービスを開始します。

1 つのノードで docker swarm init を実行し、他のノードで join コマンドを実行する必要があります。

[root@server1 ~]# docker swarm 初期化 
[root@server2~]#docker swarm に参加\
>--tokenSWMTKN-1-51igcdpg4cbgaokq535qis01osel396of153sdlp8k0ljn0rou-2m9sltwkc4uq1vfmp79ous0e4 \ 
> 172.25.50.2:2377 このノードはワーカーとしてスウォームに参加しました。

server1のノードステータスを確認する


以前にNginxをインポートし、その後flsakを3台のマシンにインポートしました

[root@server1 ~]# docker load -i flask.tar
[root@server2 ~]# docker load -i flask.tar
[root@server3 ~]# docker load -i flask.tar

異なるバックエンドの負荷分散を区別するために、ホスト名を示すステートメントをPythonで記述し、FlaskとOSにインポートします。


フラスコイメージを開き、demo.pyスクリプトをルートの下に置きます。


提出する

[root@server1 python]# docker commit vm1 python:demo

flaskという名前のクラスターを作成し、3つのバックエンドサービスノードを起動し、Pythonでdemo.pyスクリプトを読みます。

テスト

[root@foundation50 docker]# for i in {1..10}:do curl -w "\n" http://172.25.50.1;完了


サーバーが3台あるため、3回ごとにポーリングが完了し、負荷分散が実現されます。

Docker swarm ビジュアル Web 監視インターフェース

画像をインポートして作成する

[root@server1 ~]# docker load -i visualizer.tar
[root@server1 ~]# docker サービス作成 --name=viz --publish=8080:8080/tcp --constrain=node.role==manager --mount=type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock dockersamples/visualizer

監視ページを表示

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

<<:  MAC で MySQL の初期パスワードを変更する方法

>>:  JS で配列をループする 4 つの方法のまとめ

推薦する

CentOS に MySQL 5.5 をインストールするための完全な手順

目次1. インストール前の準備、インストールパッケージのダウンロード1 インストールの準備2 インス...

表には表示したい境界コードが表示されます

テーブルの共通プロパティ基本的な属性は、width (幅)、height (高さ)、border (...

システム CD をマウントして yum ウェアハウスを構築する VMware 15.5 バージョンのグラフィック チュートリアル

1. CentOS 7 仮想マシンを開きます。 2. 仮想マシンにログインし、リストにないユーザー名...

Vue カプセル化に基づくプルダウン更新およびプルアップ読み込みコンポーネント

VueとネイティブJavaScriptカプセル化に基づいて、プルダウンリフレッシュとプルアップロード...

MySQLデータベース入門:マルチインスタンス構成方法の詳しい説明

目次1. マルチインスタンスとは2. 複数インスタンスのインストールの準備3. MYSQLの複数イン...

CSS における要素の表示モード

CSS では、要素タグは、要素の表示モードの違いに応じて、インラインレベル要素とブロックレベル要素の...

Nginx コンテンツ キャッシュと共通パラメータ設定の詳細

使用シナリオ:プロジェクトのページでは、頻繁に変更されず、個別のカスタマイズも伴わない大量のデータを...

HTML における iFrame タグの 2 つの使用法

最近、私は「ぶどうコレクション」というプロジェクトに取り組んでいます。簡単に言うと、Budou ペー...

HTMLでは、div内のコンテンツが次のサイズを超えたときに自動的にスクロールバーが表示されるように設定します。

HTML ページでは、div 内のコンテンツが制限を超えた後に自動的にスクロール バーを表示する必要...

MySQLのデッドロックとログに関する詳細な説明

最近、MySQL オンラインでいくつかのデータ異常が発生しましたが、すべて早朝に発生しました。ビジネ...

Windows 10 に付属する仮想マシンのネットワークを設定するための詳細な手順 (グラフィック チュートリアル)

1. サーバー ホストをクリックし、右側の操作リストで [仮想スイッチ管理] をクリックして、仮想...

HTML 5 プレビュー

<br />オリジナル: http://www.alistapart.com/artic...

Docker に Kong ゲートウェイをインストールする方法の例

1. Dockerネットワークを作成する docker ネットワーク作成 kong-net 2. デ...

Webスキル: 複数のIEバージョンの共存ソリューション IETester

私のおすすめ複数のIEバージョンの共存のためのソリューション以前に IE6、IE7、IE8 の共存に...

SQL文におけるGROUP BYとHAVINGの使用に関する簡単な説明

GROUP BY 句と HAVING 句を紹介する前に、まず SQL 言語の特殊な関数である集計関数...