etcdクラスタ導入(継続的な更新)
6957 ワード
クラスタ配置
コマンドラインバージョンをv 3:export ETCDCTL_API=3
に切り替えます.
ローカルクラスタの導入
公式ツール:goreman.Procfileプロファイルに基づく方法を提供し、導入が簡単です.
実際に使用する場合,サービスの可用性を考慮して,マルチマシンクラスタが一般的である.ローカルクラスタは、テスト時に迅速にサービスを構築するために使用できます.具体的な操作は公式ドキュメントを参照し、個人がテストを推奨する場合も、マルチマシンクラスタで導入する方法です.
マルチマシンクラスタ
公式文書から参照.3つのクラスタ導入シナリオがあります.
配備する3台のマシンを想定します.
クラスタ構成パラメータの詳細:
etcd --help
-name:現在のノードの一意の名前-data-dir:バックアップ、リカバリに使用できるデータストレージディレクトリ.
-initial-advertise-peer-urls:ノードメンバー間の識別アドレスです.
-initial-cluster:すべてのクラスタメンバーの識別アドレス、initial-advertise-peer-urlsセット.
-initial-cluster-token:クラスタの一意の識別、tokenは変更されず、再起動時にクラスタを多重化します.そうしないと新しいです.
-initial-cluster-state:クラスタ状態、新規作成時にnewを記入します.
-listen-peer-urls:他のノードメンバーと通信するリスニングアドレス、≧1.
-listen-client-urls:クライアント要求を傍受するためのアドレス、≧1.
-advertise-client-urls:クライアント、他のメンバー、エージェントなど、すべてのリクエストをリスニングするために使用されます.
1.静的配置
要件:起動前にetcdメンバーアドレスをすべて知る必要があります.
以下のshellスクリプト(代替HOST_1-3)をそれぞれ3台の対応機器で直接実行すればよい.
#!/bin/bash
set -e
HOST_1=192.168.1.11
HOST_2=192.168.1.12
HOST_3=192.168.1.13
NAME_1=machine-1
NAME_2=machine-2
NAME_3=machine-3
#
DATADIR=data.etcd
# ip
IP=`ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"`
#
rm -fr $DATADIR
#
if [[ $IP =~ $HOST_1 ]]; then
IP=$HOST_1
NAME=${NAME_1}
elif [[ $IP =~ $HOST_2 ]]; then
IP=$HOST_2
NAME=${NAME_2}
elif [[ $IP =~ $HOST_3 ]]; then
IP=$HOST_3
NAME=${NAME_3}
else
echo "deploy on incorrected machine:" $IP
exit
fi
#
etcd --name $NAME \
--data-dir=$DATADIR
--initial-advertise-peer-urls http://$IP:2380 \
--listen-peer-urls http://$IP:2380 \
# :http://127.0.0.1:2379, ,
--listen-client-urls http://$IP:2379,http://127.0.0.1:2379 \
--advertise-client-urls http://$IP:2379 \
--initial-cluster $NAME_1=http://$HOST_1:2380,$NAME_2=http://$HOST_2:2380,$NAME_3=http://$HOST_3:2380 \
--initial-cluster-token etcd-cluster-01 \
--initial-cluster-state new
1.1クラスタメンバーのリストを表示するには:
etcdctl --endpoints=192.168.1.11:2379,192.168.1.12:2379,192.168.1.13:2379 member list
listen-client-urlsが指定した場合http://127.0.0.1:2379操作命令を簡略化することができる:
etcdctl member list
8e9e05c52164694d, started, machine-1, http://192.168.1.11:2380, http://192.168.1.11:2379 75e05c5dg64694qs, started, machine-2, http://192.168.1.12:2380, http://192.168.1.12:2379 3kf5c5216469qo5d, started, machine-3, http://192.168.1.13:2380, http://192.168.1.13:2379 1.2クラスタメンバーの健康状態の表示:
etcdctl --endpoints=192.168.1.11:2379,192.168.1.12:2379,192.168.1.13:2379 endpoint health
listen-client-urlsが指定した場合http://127.0.0.1:2379操作命令を簡略化することができる:
etcdctl endpoint health
192.168.1.11:2379 is healthy: successfully committed proposal: took = 2.322755ms 192.168.1.12:2379 is healthy: successfully committed proposal: took = 2.322755ms 192.168.1.13:2379 is healthy: successfully committed proposal: took = 2.322755ms 2.etcd発見導入
要件:etcdサービスが既に存在し、このサービスに基づいて新しいクラスタが作成されています.
クラスタメンバーの登録情報は、既存のetcdで管理されることが理解される.(未完待機)
3.DNS発見配備
(未完待機)