中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

kubeadm配置高可用etcd集群

發布時間:2020-07-01 11:43:51 來源:網絡 閱讀:598 作者:lovek8s 欄目:系統運維

k8s默認在控制平面節點上的kubelet管理的靜態pod中運行單個成員的etcd集群,但這不是高可用的方案。

etcd高可用集群至少需要三個成員組成。

etcd默認端口為2379,2380,三個節點的這兩個端口都要能通。
可以在kubeadm配置文件更改默認端口。

這個實驗有五個服務器
我開的騰訊云香港服務器做的實驗,網速很快,ssh穩定。
百度云沒測。
阿里云測試不給力。
推薦騰訊云。
k8s1: master1
k8s2: node1
k8s3: haproxy
k8s4: master2
k8s5: master3

1.首先在k8s master1上安裝kubeadm,kubelet,kubectl,然后kubeadm init,最后kubectl get nodes,確認k8s1 master1準備就緒。
k8s安裝: ubuntu18安裝kubernetes v1.15

2.分別在k8s node1,k8s master2,k8s master3上安裝kubeadm,kubectl,kubelet
k8s安裝: ubuntu18安裝kubernetes v1.15

3.在k8s master1上的kubeadm-init.out文件找到join worker node和 join control-plane node的命令。

4.分別在k8s master2和k8s master3上執行join命令,注意,—control-plane
kubeadm join k8s1:6443 --token 8vqitz.g1qyah2wpd3n723o \
--discovery-token-ca-cert-hash sha256:abd9a745b8561df603ccd58e162d7eb11b416feb4a7bbe1216a3aa114f4fecd9 \
--control-plane --certificate-key 0e1e2844d565e657465f41707d8995b2d9d64246d5f2bf90f475b7782343254f

5.在node1上執行join命令
kubeadm join k8s1:6443 --token 8vqitz.g1qyah2wpd3n723o \
--discovery-token-ca-cert-hash sha256:abd9a745b8561df603ccd58e162d7eb11b416feb4a7bbe1216a3aa114f4fecd9

6.現在master1 , master2, master3都可以執行kubectl管理k8s集群。
kubectl get nodes
顯示有三個master,一個node.

7.安裝haproxy負載均衡
apt-get update
apt-get install haproxy -y
cd /etc/haproxy
cp haproxy.conf haproxy.conf.bak
在defaults下面
log global
mode tcp
option tcplog
frontend proxynode
bind *:80
stats uri /proxystats
default_backend k8s-qq
backend k8s-qq
balance roundrobin
server master1 172.19.0.12:6443 check
server master2 172.19.0.8:6443 check
server master3 172.19.0.4:6443 check
systemctl restart haproxy
systemctl enable haproxy

8.查看haproxy
https://k8s3.example.com/proxystats
能看到三個后端服務器

9.查看運行etcd的pod
kubectl -n kube-system get pods | grep etcd
這里我們能看到k8s1,k8s2,k8s3上分別運行etcd

10.查看etcd的日志
kubectl -n kube-system logs etcd-k8s1
kubectl -n kube-system logs etcd-k8s1 -f

11.登錄到另一個etcd的pod上檢查etcd集群狀態
kubectl -n kube-system exec -it k8s2 — /bin/sh
/# ETCDCTL_API=3 etcdctl -w table \
—endpoints 172.19.0.12:2379, 172.19.0.4:2379, 172.19.0.8:2379 \
—cacert /etc/kubernetes/pki/etcd/ca.crt \
—cert /etc/kubernetes/pki/etcd/server.crt \
—key /etc/kubernetes/pki/etcd/server.key \
endpoint status
這里會顯示我們的三個etcd,其中一個為true,二個為false.

12.測試故障轉移
12.1.假設現在k8s2為ture,ssh登錄到k8s2,然后關閉docker
systemctl stop docker
12.2.查看節點信息
kubectl get node
顯示k8s2為NotReady狀態。
12.4.在k8s3上再次查看endpoint status,發現k8s2現在為false,現在k8s3為true
12.5.不能關閉k8s1的docker測試,關閉k8s1,整個集群不可用。
12.6.查看haproxy的統計報告。
12.7.測試完后,啟動docker

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

合山市| 余庆县| 崇信县| 常州市| 周口市| 固始县| 蓬溪县| 定日县| 治多县| 徐闻县| 鹤壁市| 额济纳旗| 江阴市| 顺义区| 南雄市| 陵川县| 三都| 长兴县| 威远县| 万年县| 武山县| 修水县| 铜川市| 教育| 资溪县| 鲁甸县| 尼木县| 会宁县| 航空| 大化| 革吉县| 三门峡市| 托克逊县| 洪雅县| 米泉市| 华亭县| 靖西县| 开封县| 南投县| 平舆县| 安顺市|