etcd-クラスタ


前述の基礎の上でetcdクラスタをする一般的な情況etcdは3ノードクラスタを使って、ここで機械は制限して、もとの1 master+2 nodeの環境の基礎で2 etcdクラスタに修正します.主に構成です!まず、2台のマシンにetcdyum install-y etcdをインストールする必要がありますインストールが完了すると、構成1の変更が開始されます.2つのマシンによるetcd.confの変更は192.168.1.5でvi/etc/etcd/etcd.conf
ETCD_DATA_DIR="/var/lib/etcd/etcd01"
ETCD_LISTEN_PEER_URLS="http://192.168.1.5:2380"
ETCD_LISTEN_CLIENT_URLS="http://192.168.1.5:2379,http://127.0.0.1:2379"
ETCD_NAME="etcd01"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.1.5:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.1.5:2379,http://127.0.0.1:2379"
ETCD_INITIAL_CLUSTER="etcd01=http://192.168.1.5:2380,etcd02=http://192.168.1.6:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new"

192.168.1.6でvi/etc/etcd/etcd.conf
ETCD_DATA_DIR="/var/lib/etcd/etcd02"
ETCD_LISTEN_PEER_URLS="http://192.168.1.6:2380"
ETCD_LISTEN_CLIENT_URLS="http://192.168.1.6:2379,http://127.0.0.1:2379"
ETCD_NAME="etcd02"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.1.6:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.1.6:2379,http://127.0.0.1:2379"
ETCD_INITIAL_CLUSTER="etcd01=http://192.168.1.5:2380,etcd02=http://192.168.1.6:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new"

要点解析:ETCD_DATA_DIR="/var/lib/etcd/etcd 01"#ノードはetcd 01ディレクトリを格納し、独自にETCD_を作成するLISTEN_PEER_URLS="http://192.168.1.5:2380「#傍受URL、ノード間通信用ETCD_LISTEN_CLIENT_URLS="http://192.168.1.5:2379,http://127.0.0.1:2379「#対外提供サービスの住所:例えばhttp://ip:2379,http://127.0.0.1:2379 を選択すると、クライアントはetcdとインタラクティブに接続されます.ETCD_NAME="etcd 01"#etcdノード名ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.1.5:2380「#このノードの仲間がアドレスを傍受し、この値はクラスタ内の他のノードETCDに通知されます.ADVERTISE_CLIENT_URLS="http://192.168.1.5:2379,http://127.0.0.1:2379「#外部に通知されたノードクライアントの傍受アドレス.この値はクラスタ内の他のノードETCD_に通知されます.INITIAL_CLUSTER="etcd01=http://192.168.1.5:2380,etcd02=http://192.168.1.6:2380"#クラスタ内のすべてのノードの情報ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"#クラスタのtokenETCD_INITIAL_CLUSTER_STATE="new"#その他127.0.0.1:2379このアドレスは重要で、一括して構成する必要があります.
2起動ファイルvi/usr/lib/systemd/system/etcd.serviceの変更
[Unit]
Description=Etcd Server
After=network.target
After=network-online.target
Wants=network-online.target
[Service]
Type=notify
WorkingDirectory=/var/lib/etcd/
EnvironmentFile=-/etc/etcd/etcd.conf
User=etcd
ExecStart=/bin/bash -c "GOMAXPROCS=$(nproc) /usr/bin/etcd --name=\"${ETCD_NAME}\" --data-dir=\"${ETCD_DATA_DIR}\" --listen-client-urls=\"${ETCD_LISTEN_CLIENT_URLS}\" --listen-peer-urls=\"${ETCD_LISTEN_PEER_URLS}\" --advertise-client-urls=\"${ETCD_ADVERTISE_CLIENT_URLS}\" --initial-cluster-token=\"${ETCD_INITIAL_CLUSTER_TOKEN}\" --initial-cluster=\"${ETCD_INITIAL_CLUSTER}\" --initial-cluster-state=\"${ETCD_INITIAL_CLUSTER_STATE}\" "
Restart=on-failure
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target

起動オプションExecStartにプロファイルの内容を追加するには
3.flannelネットワークの修正
cat /etc/sysconfig/flanneld 
FLANNEL_ETCD_ENDPOINTS="http://192.168.1.5:2379,http://192.168.1.6:2379"
FLANNEL_ETCD_PREFIX="/atomic.io/network"
#FLANNEL_OPTIONS=""

すべてのendpointアドレスを追加
4.マスターのapiserverの構成を変更する
KUBE_ETCD_SERVERS="--etcd-servers=http://192.168.1.5:2379,192.168.1.6:2379"

5サービスシステムctl daemon-reloadsystemctl enable etcd.servicesystemctl start etcd.service
for SERVICES in etcd kube-apiserver kube-controller-manager kube-scheduler; do systemctl restart $SERVICES;done
6,ネットワークの再定義
kubectl get pods --all-namespaces -o widekubectl get svc --all-namespaces -o wide
.etcdでflannelネットワークetcdctl mk/atomic.io/network/config'{"Network":"172.17.0.0/16"}'を定義する
2つのマシンのnodeサービスを別々に再起動
etcdctl member listクラスタ状態を表示[root@k8s-master home]# etcdctl member list50bd23ff02a14a31: name=etcd02 peerURLs=http://192.168.1.6:2380 clientURLs=http://127.0.0.1:2379,http://192.168.1.6:2379 isLeader=falsec59bcebe80c5afdb: name=etcd01 peerURLs=http://192.168.1.5:2380 clientURLs=http://127.0.0.1:2379,http://192.168.1.5:2379 isLeader=true