etcdクラスタ導入(継続的な更新)


クラスタ配置


コマンドラインバージョンをv 3:export ETCDCTL_API=3に切り替えます.

ローカルクラスタの導入


公式ツール:goreman.Procfileプロファイルに基づく方法を提供し、導入が簡単です.
実際に使用する場合,サービスの可用性を考慮して,マルチマシンクラスタが一般的である.ローカルクラスタは、テスト時に迅速にサービスを構築するために使用できます.具体的な操作は公式ドキュメントを参照し、個人がテストを推奨する場合も、マルチマシンクラスタで導入する方法です.

マルチマシンクラスタ


公式文書から参照.3つのクラスタ導入シナリオがあります.
  • Static
  • etcd Discovery
  • DNS Discovery

  • 配備する3台のマシンを想定します.
  • 192.168.1.11
  • 192.168.1.12
  • 192.168.1.13

  • クラスタ構成パラメータの詳細: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 list8e9e05c52164694d, 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 health192.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発見配備


    (未完待機)