序文 単一障害点を解決するには、マスター/スレーブ ホット スタンバイ ソリューションを構成する必要があります。サーバーの数は限られているため、Docker を使用してインストールと構成をシミュレートします。 この構成では、Docker がデフォルトでインストールされます。 設定環境: centos7 64 ビット Docker バージョン: Docker バージョン 17.12.1-ce、ビルド 7390fc6 1. Centos7イメージを取得する docker pull centos:7 2. コンテナを作成する docker run -it -d --name centos1 -d centos:7 3. コンテナcentos1を入力します docker exec -it centos1 bash 4. 共通ツールをインストールする yum updateyum install -y vimyum install -y wgetyum install -y gcc-c++ yum install -y pcre pcre-devel yum install -y zlib zlib-devel yum install -y openssl openssl--develyum install -y popt-develyum install -y initscripts yum インストール -y ネットツール 5. コンテナを新しいイメージにパッケージ化し、将来的にはそのイメージから直接コンテナを作成する docker commit -a 'cfh' -m 'centos with common tools' centos1 centos_base 6. 以前に作成したcentos1コンテナを削除し、ベースイメージでコンテナを再作成し、keepalived+nginxをインストールします。 docker rm -f centos1 #コンテナ内でsystemctlサービスを使用する必要があり、/usr/sbin/initを追加する必要があります docker run -it --name centos_temp -d --privileged centos_base /usr/sbin/init docker exec -it centos_temp bash 著者: 江湖九九 リンク: https://juejin.im/post/5dc517386fb9a04a9272110b 出典: Nuggets。著作権は著者に帰属します。商用目的での複製の場合は、著者に連絡して許可を得てください。非商用目的での複製の場合は、出典を明記してください。 7. nginxをインストールする #yum を使用して nginx をインストールします。Nginx ライブラリを含める必要があります。Nginx ライブラリ rpm -Uvh をインストールします http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm # 次のコマンドを使用してnginxをインストールします yum インストール -y nginx #nginxを起動する systemctl nginx.service を起動します #起動が成功したかどうかを確認します。nginx のウェルカム インターフェイスが表示され、インストールが成功したことが示されます。curl 172.17.0.2 8. keepalivedをインストールする 1. keepalived 2. 解凍してインストールします: tar -zxvf keepalived-1.2.18.tar.gz -C /usr/local/ 3. opensslプラグインをダウンロードします 4. keepalived のコンパイルを開始します cd /usr/local/keepalived-1.2.18/ && ./configure --prefix=/usr/local/keepalived 5. 9. システムサービスとしてkeepalivedをインストールする mkdir /etc/keepalivedcp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/次に、keepalived スクリプト ファイルをコピーします: cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/ln -s /usr/local/sbin/keepalived /usr/sbin/起動時に開始するように設定できます: chkconfig keepalived on、これでインストールが完了しました。 #起動時にエラーが発生した場合は、次のコマンドを実行してください cd /usr/sbin/ rm -f キープアライブ cp /usr/local/keepalived/sbin/keepalived /usr/sbin/ #共通コマンド systemctl daemon-reload はリロードします systemctl enable keepalived.service は起動時に自動起動を設定します systemctl disabled keepalived.service は起動時に自動起動をキャンセルします systemctl start keepalived.service は起動します systemctl stop keepalived.service は停止します systemctl status keepalived.service はサービスステータスをチェックします 10. /etc/keepalived/keepalived.confファイルを変更する #設定ファイルのバックアップ cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.backup rm -f キープアライブド.conf vim キープアライブド.conf #設定ファイルは以下のとおりです vrrp_script chk_nginx { スクリプト "/etc/keepalived/nginx_check.sh" 間隔2 体重 -20 } vrrp_インスタンス VI_1 { 状態マスター インターフェース eth0 仮想ルータID 121 マルチキャスト送信元IP 172.17.0.6 優先度100 先取りしない 広告_int 1 認証 認証タイプ PASS 認証パスワード 1111 } トラックスクリプト { chk_nginx } 仮想IPアドレス{ 172.17.0.100 } } 11. ハートビート検出ファイルを追加する vim nginx_check.sh #以下はスクリプトの内容です#!/bin/bash A=`ps -C nginx –no-header |wc -l` [ $A -eq 0 ]の場合 ローカル 睡眠2 if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then キルオールキープアライブ フィ フィ 12. スクリプトの実行権限を与える chmod +x nginx_check.sh 13. スタートアップを設定する systemctl は keepalived.service を有効にします。 #keepalived を開く systemctl 開始 keepalived.service 14. 仮想 IP が成功したかどうかを確認します。ホスト マシンで次のコマンドを実行します。nginx の welcome インターフェイスが表示されたら、成功したことを示します。 カール 172.17.0.100 15. centos_temp コンテナをイメージに再パッケージ化し、この新しいイメージを使用してさらに 2 つのコンテナを作成し、ホット スタンバイ効果を実現します。 docker commit -a 'cfh' -m 'centos と keepalived nginx' centos_temp centos_kn 16. すべてのコンテナを削除する docker rm -f `docker ps -a -q` 17. centos_knイメージを使用してメインサーバーコンテナを作成する docker run --privileged -tid --name centos_master --restart=always centos_kn /usr/sbin/init docker exec -it centos_master bash 18. centos_masterのnginxのウェルカムページを修正します。 vim /usr/share/nginx/html/index.html 19. スレーブサーバーコンテナを作成する docker run --privileged -tid --name centos_slave --restart=always centos_kn /usr/sbin/init docker exec -it centos_slave bash #keepalived.conf 設定ファイルを修正します。主に状態と優先度パラメータを調整します。マスターノードの優先度値はスレーブノードの優先度値よりも大きくする必要があります。vrrp_script chk_nginx { スクリプト "/etc/keepalived/nginx_check.sh" 間隔2 体重 -20 } vrrp_インスタンス VI_1 { 状態 SLAVE インターフェース eth0 仮想ルータID 121 マルチキャスト送信元IP 172.17.0.6 優先度80 先取りしない 広告_int 1 認証 認証タイプ PASS 認証パスワード 1111 } トラックスクリプト { chk_nginx } 仮想IPアドレス{ 172.17.0.100 } } 20. 変更後にリロードする systemctlデーモンリロード systemctl を再起動します。 21. nginx のウェルカム ページを変更します (nginx が起動していない場合は、systemctl start nginx.service を実行します) vim /usr/share/nginx/html/index.html 22. テスト A> ホスト、centos_master、centos_slaveでそれぞれ次のコマンドテストを実行します。マスターのウェルカムページが表示されれば、設定は成功です 1/3 カール 172.17.0.100 B> この時、centos_masterコンテナを停止(docker stop centos_master)し、centos_slaveコンテナを残して以下のコマンドを実行します。Slaveページに切り替わればkeepalivedの設定が成功していることになります 2/3 カール 172.17.0.100 C> centos_master コンテナを再起動し、次のコマンドを実行して、スレーブからマスターへの切り替えが行われたかどうかを確認します。切り替えが成功した場合は、構成が成功したことを意味します。 カール 172.17.0.100 注: テスト中、コンテナを再起動した後、nginx は起動しませんでした。コンテナに入って起動する必要があります。そうしないと、マスター ページにアクセスできませんが、ping は実行できます。 次のコマンドを実行して、nginx がランダムに起動するように設定し、コンテナを再起動するたびに手動で nginx を起動する必要がないようにする。 chkconfig nginx オン 以上が設定手順の全てです。皆様の勉強の参考になれば幸いです。また、123WORDPRESS.COM を応援して頂ければ幸いです。 以下もご興味があるかもしれません:
|
>>: Vue カードスタイルのクリックして切り替える画像コンポーネントの使用方法の詳細な説明
目次カスタム Vite プラグインvite-plugin-markdownの使用Front Matt...
MySQL 8.0.16 以降では、パスワードの有効期限ポリシーを設定できます。今日は、この小さな知...
1. どのように構築しますか? es5 でクラスを構築する一般的な方法を確認しましょう。まず、es5...
最近、あるプロジェクトに取り組んでいたとき、ページに透かし効果を追加するように依頼されました。さっそ...
Mysqlが2つのテーブルを関連付けると、次のエラーメッセージが生成されます:照合順序の不正な組み合...
開発中にこのような問題に遭遇しましたビデオ視聴記録が 100 に更新されると、視聴されたことを意味し...
1|0 カーネルをコンパイルする(1)uname -rコマンドを実行してカーネルバージョンを表示しま...
ダウンロードダウンロードアドレス: https://redis.io/download /usr/l...
このドキュメントを作成した当時は2019年12月頃で、er2.200が最新バージョンでした。 1.画...
目次1. はじめに2. 直接回復2.1 mysqldumpバックアップの完全リカバリ2.2 xtra...
序文サーバーを展開した後、私は大きな喜びを感じながら自分の Web サイトにアクセスし、見たものすべ...
インストール必要な書類は下部に記載されていますステップ1 mysql-installer-web-c...
ブロック引用の定義と使用法<blockquote> タグは引用ブロックを定義します。 &...
目次概要1. メニューとルーティング処理2. メニューとルートリスト3. ログインプロセスの処理概要...
前のセクションでは、コンテンツ、サーバー、JavaScript、CSS など、Web サイトのパフォ...