1. 程式人生 > >k8s部署etcd集群

k8s部署etcd集群

spa 節點和 acer 綠色 done lib magic class list

1、k8s部署高可用etcd集群時遇到了一些麻煩,這個是自己其中一個etcd的配置文件

例如:

[Unit]
Description=Etcd Server
After=network.target
After=network-online.target
Wants=network-online.target
Documentation=https://github.com/coreos


[Service]
User=k8s
Type=notify
WorkingDirectory=/var/lib/etcd/

ExecStart=/opt/k8s/bin/etcd   --
data-dir=/var/lib/etcd \ --name=ELK-chaofeng04 \ --cert-file=/etc/etcd/cert/etcd.pem \ --key-file=/etc/etcd/cert/etcd-key.pem \ --trusted-ca-file=/etc/kubernetes/cert/ca.pem \ --peer-cert-file=/etc/etcd/cert/etcd.pem \ --peer-key-file=/etc/etcd/cert/etcd-key.pem \ --peer-trusted-ca-file=/etc/kubernetes/cert/ca.pem \
--peer-client-cert-auth \ --client-cert-auth \ --listen-peer-urls=https://172.16.0.54:2380 \ --initial-advertise-peer-urls=https://172.16.0.54:2380 \ --listen-client-urls=https://172.16.0.54:2379,https://127.0.0.1:2379 \ --advertise-client-urls=https://172.16.0.54:2379 \ --initial-cluster-token=etcd-cluster-0 \
--initial-cluster ELK-chaofeng04=https://172.16.0.54:2380,ELK-chaofeng05=https://172.16.0.55:2380,ELK-chaofeng06=https://172.16.0.56:2380 \ --initial-cluster-state=new Restart=on-failure RestartSec=5 LimitNOFILE=65536 [Install] WantedBy=multi-user.target

這只是其中的一個節點上的配置文件,其他的節點上的配置文件大同小異,只是IP和hostname主機名不同罷了。

2、在部署的過程中,不會發現這三個etcd的輸出是這樣子的:

第一個節點:

技術分享圖片

第二個節點:

技術分享圖片

第三個節點:

技術分享圖片

通過輸出會覺得第一個節點和第三個節點時有問題的,但是其實是沒有的。三個節點分別只要能看到綠色的“activing(running)”就表示是成功的,當然,還可以再一步進行如下的驗證,說明etcd集群沒有問題:

技術分享圖片

magic17.sh的腳本如下所示:

#!/bin/bash
source /opt/k8s/bin/environment.sh
for node_ip in ${NODE_IPS[@]}
do
    echo ">>> ${node_ip}" 
    ETCDCTL_API=3 /opt/k8s/bin/etcdctl     --endpoints=https://${node_ip}:2379 \
    --cacert=/etc/kubernetes/cert/ca.pem \
    --cert=/etc/etcd/cert/etcd.pem \
    --key=/etc/etcd/cert/etcd-key.pem endpoint health
done

k8s部署etcd集群