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. BIOSを確認するまず、コンピュータの起動モードを確認します。win+R と入力し、msinf...
目次通常のページングクエリ最適化する方法大きなオフセット使用ID制限大量データ問題の最適化通常のペー...
アプリケーションシナリオ1: ドメイン名ベースのリダイレクト会社の古いドメイン名は www.accp...
目次JSBridgeの起源JSBridgeの双方向通信原理JSはネイティブを呼び出すネイティブコール...
目次序文主な実装コードHTMLコードJSコード序文南の友達の多くは、雪をほとんど見たことがない、ある...
これまで、CSS の背景の属性には、color、image、repeat、attachment、po...
この記事は主にJavaScriptを使用してWeb計算機を実現する効果を記録し、参考として掲載してい...
最近、私は「ぶどうコレクション」というプロジェクトに取り組んでいます。簡単に言うと、Budou ペー...
この記事では、kubernetes1.5.2 から kubernetes1.10 にアップグレードす...
公式ドキュメント: https://dev.mysql.com/doc/refman/5.7/en/...
序文負荷分散には nginx を使用します。アーキテクチャのフロントエンドまたは中間層として、トラフ...
序文: MySQL を使用すると、時間の表示が正しくない、タイムゾーンが GMT+8 ゾーンにない、...
最近、MySQL を学び始めました。インストールはスムーズに進み、インターネット上の既成のチュートリ...
この記事では、例を使用して MySQL コード実行構造について説明します。ご参考までに、詳細は以下の...
この記事では、WeChatアプレットがSMS認証コードのカウントダウンを送信するための具体的なコード...