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 つの方法のまとめ

推薦する

カタツムリ映画システムのDocker展開の詳細なプロセス分析

環境に関する声明ホストOS: Cetnos7.9 最小インストールdocker バージョン: 20....

Docker が占有するディスク領域をクリーンアップする方法

Docker は多くのスペースを占有します。コンテナを実行したり、イメージを取得したり、アプリケー...

CentOS7.4 で JDK1.8 をインストールするためのグラフィカル チュートリアル

Linux インストール JDK1.8 手順1. CentOS に独自の openJDK があるかど...

HTML テーブルの使い方 (Web ページの視覚効果を表示する)

NetEase Blog で HTML を使用する場合、テンプレートに直接コードを追加できることは...

Vueはログイン時に画像認証コードを実装します

この記事では、Vueログイン用画像認証コードの具体的なコードを例として紹介します。具体的な内容は以下...

HTMLエリアタグの詳しい説明

<area> タグは、イメージ マップ内の領域を定義します (注: イメージ マップはク...

CSS 配置レイアウト (位置、配置レイアウト スキル)

1. ポジショニングとは何ですか? CSS の position 属性には、absolute/re...

ウェブページの幅を携帯電話の画面(ビューポート)の幅に自動的に適応させる実装コード

一般的な書き方は次のとおりです。 XML/HTML コードコンテンツをクリップボードにコピー<...

MySQLイベント計画タスクに関する簡単な説明

1. イベントが有効になっているかどうかを確認する'%sche%' のような変数を表...

HTML リンク アンカー タグと SEO におけるその役割の概要

<a> タグは主に、ハイパーリンクまたはアンカー リンクとも呼ばれるリンクとブックマーク...

Tomcat サーバーの設定と Web プロジェクトの公開に関する IDEA グラフィック チュートリアル

1. Webプロジェクトを作成したら、Tomcatを例にサーバーを構成する必要があります。 2. 実...

Linux で誤って削除したメッセージ ファイルを復元する方法

プロセスで使用されていて、誤って削除されたファイルがある場合、それらを回復することができます。プロセ...

Dockerでランナーコンテナを構成する方法

1. ランナーコンテナを作成する mk@mk-pc:~/Desktop$ docker run -d...

Windows で削除された MySQL 8.0.17 のルート アカウントとパスワードを回復する方法

少し前にSQLの独学を終え、MySQL 8.0.17をダウンロードしました。インストールして設定した...

CocosCreator スケルトンアニメーション ドラゴンボーン

CocosCreator バージョン 2.3.4ドラゴンボーンアニメーションキールアニメーションを ...