yum安裝etcd集群


    前一篇文章介紹了如何yum安裝簡單的kubernetes集群,其中etcd是單點部署。本篇我們來搭建etcd集群,方便日后搭建kubernetes HA集群架構。

1,環境配置說明

  etcd1  192.168.20.71

  etcd2  192.168.20.72

  etcd3  192.168.20.73

2,etcd版本

[root@master1 ~]# etcdctl --version
etcdctl version: 3.2.22
API version: 2

3,開始安裝

  etcd每台安裝步驟都一樣,所以etcd2、etcd3都以etcd1步驟一樣

  安裝只需一條命令即可:

  yum -y install etcd

4,查看並修改etcd配置文件

 1 #修配etcd配置文件
 2 [root@master1 ~]# ls /etc/etcd/
 3 etcd.conf  etcd.conf.back
 4 [root@master1 ~]# grep -v '^#' /etc/etcd/etcd.conf
 5 ETCD_NAME=etcd1
 6 
 7 ETCD_DATA_DIR="/var/lib/etcd/etcd1"
 8 
 9 ETCD_LISTEN_PEER_URLS="http://192.168.20.71:2380"
10 
11 ETCD_LISTEN_CLIENT_URLS="http://127.0.0.1:2379,http://192.168.20.71:2379"
12 
13 ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.20.71:2380"
14 
15 ETCD_INITIAL_CLUSTER="etcd1=http://192.168.20.71:2380,etcd2=http://192.168.20.72:2380,etcd3=http://192.168.20.73:2380"
16 
17 ETCD_INITIAL_CLUSTER_STATE="new"
18 
19 ETCD_INITIAL_CLUSTER_TOKEN="etcd-test"
20 
21 ETCD_ADVERTISE_CLIENT_URLS="http://192.168.20.71:2379"

5,啟動etcd服務

 1 #etcd啟動配置文件為:
 2 [root@master1 ~]# cat /usr/lib/systemd/system/etcd.service 
 3 [Unit]
 4 Description=Etcd Server
 5 After=network.target
 6 After=network-online.target
 7 Wants=network-online.target
 8 
 9 [Service]
10 Type=notify
11 WorkingDirectory=/var/lib/etcd/
12 EnvironmentFile=-/etc/etcd/etcd.conf
13 User=etcd
14 # set GOMAXPROCS to number of processors
15 ExecStart=/bin/bash -c "GOMAXPROCS=$(nproc) /usr/bin/etcd --name=\"${ETCD_NAME}\" --data-dir=\"${ETCD_DATA_DIR}\" \
16                     --listen-peer-urls=\"${ETCD_LISTEN_PEER_URLS}\" \
17                     --listen-client-urls=\"${ETCD_LISTEN_CLIENT_URLS}\" \
18                     --advertise-client-urls=\"${ETCD_ADVERTISE_CLIENT_URLS}\" \
19                     --initial-cluster-token=\"${ETCD_INITIAL_CLUSTER_TOKEN}\" \
20                     --initial-cluster=\"${ETCD_INITIAL_CLUSTER}\" \
21                     --initial-cluster-state=\"${ETCD_INITIAL_CLUSTER_STATE}\""
22 Restart=on-failure
23 LimitNOFILE=65536
24 
25 [Install]
26 WantedBy=multi-user.target
27 
28 #啟動etcd服務
29 systemctl start etcd
30 #查看啟動狀態
31 systemctl status etcd

6,etcd2、etcd3配置文件

 1 #etcd2配置文件
 2 [root@master2 ~]# cat /etc/etcd/etcd.conf
 3 ETCD_NAME=etcd2
 4                                                                                                                                                                    
 5 ETCD_DATA_DIR="/var/lib/etcd/etcd2"
 6 
 7 ETCD_LISTEN_PEER_URLS="http://192.168.20.72:2380"
 8 
 9 ETCD_LISTEN_CLIENT_URLS="http://127.0.0.1:2379,http://192.168.20.72:2379"
10 
11 ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.20.72:2380"
12 
13 ETCD_INITIAL_CLUSTER="etcd1=http://192.168.20.71:2380,etcd2=http://192.168.20.72:2380,etcd3=http://192.168.20.73:2380"
14 
15 ETCD_INITIAL_CLUSTER_STATE="new"
16 
17 ETCD_INITIAL_CLUSTER_TOKEN="etcd-test"
18 
19 ETCD_ADVERTISE_CLIENT_URLS="http://192.168.20.72:2379"
20 
21 
22 #etcd3 配置文件
23 [root@master ~]# cat /etc/etcd/etcd.conf
24 ETCD_NAME=etcd3
25                                                                                                                                                                    
26 ETCD_DATA_DIR="/var/lib/etcd/etcd3"
27 
28 ETCD_LISTEN_PEER_URLS="http://192.168.20.73:2380"
29 
30 ETCD_LISTEN_CLIENT_URLS="http://127.0.0.1:2379,http://192.168.20.73:2379"
31 
32 ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.20.73:2380"
33 
34 ETCD_INITIAL_CLUSTER="etcd1=http://192.168.20.71:2380,etcd2=http://192.168.20.72:2380,etcd3=http://192.168.20.73:2380"
35 
36 ETCD_INITIAL_CLUSTER_STATE="new"
37 
38 ETCD_INITIAL_CLUSTER_TOKEN="etcd-test"
39 
40 ETCD_ADVERTISE_CLIENT_URLS="http://192.168.20.73:2379"
41 
42 #分別啟動etcd2、etcd3服務
43 #查看cluster狀態
44 [root@master1 ~]# etcdctl cluster-health
45 member 85b5f1a0537e385d is healthy: got healthy result from http://192.168.20.71:2379
46 member 9f304c9e0feb949d is healthy: got healthy result from http://192.168.20.72:2379
47 member ec71f609370df393 is healthy: got healthy result from http://192.168.20.73:2379
48 cluster is healthy
49 
50 #列出etcd服務狀態
51 [root@master1 ~]# etcdctl member list
52 85b5f1a0537e385d: name=etcd1 peerURLs=http://192.168.20.71:2380 clientURLs=http://192.168.20.71:2379 isLeader=false
53 9f304c9e0feb949d: name=etcd2 peerURLs=http://192.168.20.72:2380 clientURLs=http://192.168.20.72:2379 isLeader=false
54 ec71f609370df393: name=etcd3 peerURLs=http://192.168.20.73:2380 clientURLs=http://192.168.20.73:2379 isLeader=true
55 
56 #從列出信息可以看出,目前是etcd3為主節點。
57 #查看etcd服務啟動日志,可通過 tail -f /var/log/message 動態查看

7,至此,etcd集群已配置完成。接下來可以對kubernetes集群apiserver配置文件進行修改,使其指向etcd集群

 1 #修改master節點,apiserver配置文件
 2 [root@master ~]# cat /etc/kubernetes/apiserver 
 3 ###
 4 ## kubernetes system config
 5 KUBE_API_ADDRESS="--address=0.0.0.0"
 6 KUBE_API_PORT="--port=8080"
 7 KUBELET_PORT="--kubelet-port=10250"
 8 KUBE_ETCD_SERVERS="--etcd-servers=http://192.168.20.71:2379,http://192.168.20.72:2379,http://192.168.20.73:2379"
 9 KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16"
10 KUBE_API_ARGS="--service_account_key_file=/etc/kubernetes/serviceaccount.key"
11 KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota"
12 KUBE_API_ARGS=""
13 
14 #k8s集群做任何調整后,都需要重啟服務
15 #重啟master各組件,可連起來寫
16 systemctl restart kube-apiserver kube-controller-manager kube-scheduler
17 #重啟node1、node2各組件
18 systemctl restart kubelet kube-proxy
19 
20 #再次在master節點查看etcd、node集群狀態
21 #測試,可關閉一台etcd服務,創建一個pod,無異常
22 #通過測試可以得出,etcd集群至少需要2個etcd節點才可以正常工作。

8,如何創建pod,參加下一篇文章。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM