1. 環境整備 1.1 基本環境 NTP設定: 省略 #時間の一貫性を確保するためにNTPサービスを設定することをお勧めします etcd バージョン: v3.3.9 ファイアウォールとSELinux: ファイアウォールとSELinuxを無効にする
# ホスト名ctl set-hostname etcd1.example.com # ホスト名ctl set-hostname docker01.example.com # ホスト名ctl set-hostname docker02.example.com ヒント: ホスト名は必須ではありません。 1.2 Docker環境 上記のすべてのノードには Docker がインストールされています。詳細については、002.Docker のバージョンとインストールを参照してください。 2. etcdノードのデプロイメント ヒント: この環境はすべて Docker 化されています。つまり、etcd サービスも Docker 形式で存在します。 2.1 etcdの基本設定 # mkdir -p /var/log/etcd/ #etcd ログを保存するためのディレクトリを作成することをお勧めします# mkdir -p /data/etcd #別の etcd データ ディレクトリを作成することをお勧めします# export HOST_1=172.24.8.71 #etcd ノードの IP アドレスを設定します # export DATA_DIR=/data/etcd #クラスターのetcdデータノードを設定します # REGISTRY=quay.io/coreos/etcd #このウェアハウスを使用することをお勧めします # ETCD_VERSION=latest #etcdのバージョンを設定します # export NAME_1=etcd1 #etcdノードの名前を設定します # docker ボリューム作成 --name etcd-data ヒント: 上記のすべての操作はすべてのノードで実行する必要があります。 2.3 docker etcdクラスターを起動する [root@etcd1 ~]# docker run \ -p 2379:2379 \ -p 2380:2380 \ --volume=${DATA_DIR}:/etcd-data \ --name etcd ${REGISTRY}:${ETCD_VERSION} \ /usr/local/bin/etcd \ --data-dir=/etcd-data --name ${NAME_1} \ --initial-advertise-peer-urls http://${HOST_1}:2380 --listen-peer-urls http://0.0.0.0:2380 \ --advertise-client-urls http://${HOST_1}:2379 --listen-client-urls http://0.0.0.0:2379 \ --initial-cluster ${NAME_1}=http://${HOST_1}:2380 ヒント: quay.io/coreos/etcd イメージは中国ではプルできない可能性がありますが、外部ノードからプルしてクラスター ノードに scp することはできます。 2.4 確認と検証 [root@etcd1 ~]# docker ps
[root@etcd1 ~]# docker exec -it bcb96fb0f987 /usr/local/bin/etcdctl cluster-health [root@etcd1 ~]# docker exec -it bcb96fb0f987 /usr/local/bin/etcdctl --endpoints=http://${HOST_1}:2379 メンバーリスト 3つのDockerホストノード構成 3.1 docker01の設定 [root@docker01 ~]# vi /etc/sysconfig/docker オプション = '--cluster-store=etcd://172.24.8.71:2379 --cluster-advertise=172.24.8.72:2379' [root@docker01 ~]# systemctl dockerを再起動します 3.2 docker02の設定 [root@docker02 ~]# vi /etc/sysconfig/docker オプション = '--cluster-store=etcd://172.24.8.71:2379 --cluster-advertise=172.24.8.73:2379' [root@docker02 ~]# systemctl dockerを再起動します 3.3 オーバーレイネットワークの作成 [root@docker01 ~]# docker ネットワーク作成 -d オーバーレイ overlaynet1 418654e0092f5d1c3e4bf2b9ee73cdd22932dd60fecf12d7a3b024818118244b [root@docker01 ~]# docker ネットワーク検査 overlaynet1 [root@docker02 ~]# docker ネットワーク検査 overlaynet1 ヒント: docker01 と docker02 の両方のホストで、docker01 に作成されたオーバーレイ ネットワークを確認します。両方が存在する場合、ネットワーク データは etcd を介してローカルではなく分散されていることを意味します。 3.4 テストネットワーク [root@docker01 ~]# docker run -d --name Container01 --network overlaynet1 training/webapp python app.py [root@docker02 ~]# docker run -d --name Container02 --network overlaynet1 training/webapp python app.py [root@docker01 ~]# docker exec -it 73e984a5528a /bin/bash root@73e984a5528a:/opt/webapp# ifconfig root@73e984a5528a:/opt/webapp# ルート -n [root@docker02 ~]# docker exec -it 89eac9521743 /bin/bash root@89eac9521743:/opt/webapp# ifconfig 例:
[root@docker01 ~]# brctl show [root@docker01 ~]# dockerネットワークls その他の参考資料:
以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: Vue3 でモバイル ログインおよび登録モジュールをエレガントに実装する方法
>>: MySQL でグループ化した後、各グループの最大値を取得する詳細な例
目次問題の説明方法 1 (バックエンドが画像 URL を返す)方法 2 (フロントエンドで requ...
目次1. スロットを使用してコンポーネントを理解しやすくし、より強力にする2. Vuexストアを正し...
簡単に言えば、MySQL ワーム レプリケーションは、クエリされたデータを指定されたデータ テーブル...
1. CSS ボックスモデルボックスには、余白、境界線、パディング、コンテンツが含まれます境界線の接...
1. MySQLサービスをシャットダウンする# service mysqld stop 2. rpm...
目次概要本日正午、開発およびテスト環境の MySQL サービスで接続数が多すぎるというエラーが報告さ...
docker-maven-plugin プラグインを使用する場合、Maven は対応する jar パ...
「私たちは次の一連のモバイル製品を HTML5 で作成しています。」 「ええ、最近は多くの人が Ap...
Python8のインストールを最小化した後、Python3.8.1をインストールしました。オンライン...
設定手順1. DNSが設定されているかどうかを確認するDNSが設定されていない場合は、前の記事を参照...
1. Linuxファイアウォールの基礎Linux ファイアウォール システムは主にネットワーク層で動...
テーブルが 2 つあり、テーブル A のレコードがテーブル B に存在しない可能性があります。左結合...
国内の多くの広告主にとって、印刷広告の制作と評価は、しばしばかなり主観的です。自分の感情や美的感覚に...
目次1. 左端接頭辞原則2. 表に戻る3. インデックスプッシュダウン序文:インデックス プッシュダ...
目次BOM (ブラウザ オブジェクト モデル) 1. ウィンドウブラウザのウィンドウサイズを取得する...