kubernetes實踐之一:Etcd3叢集搭建

dbasdk發表於2018-06-12
一:Etcd簡介
ETCD是用於共享配置和服務發現的分散式,一致性的KV儲存系統。類似於Zookeeper.
ETCD的使用場景:配置管理,服務註冊於發現,選主,應用排程,分散式佇列,分散式鎖.
ETCD使用Raft協議來維護叢集內各個節點狀態的一致性。簡單說,ETCD叢集是一個分散式系統,由多個節點相互通訊構成整體對外服務,每個節點都儲存了完整的資料,並且通過Raft協議保證每個節點維護的資料是一致的。

二:Etcd3叢集背景

10.116.137.196    k8s_master
10.116.82.28       k8s_node1
10.116.36.57       k8s_node2

Etcd版本:etcd-v3.1.8-linux-amd64.tar.gz(https://github.com/coreos/etcd/releases

三:Etcd3安裝

1.環境變數設定  vi /etc/profile

export ETCDCTL_API=3

2.關閉系統防火牆

systemctl disable firewalld
systemctl stop firewalld

3.安裝

tar -zxvf etcd-v3.1.8-linux-amd64.tar.gz
cp etcd /usr/bin/
cp etcdctl /usr/bin/

建立/etc/etcd/etcd.conf 配置檔案
建立/usr/lib/systemd/system/etcd.service   systemctl啟動檔案。

4.配置檔案(藍色背景處為三個節點需要修改的地方

etcd.service


點選(此處)摺疊或開啟

  1. [Unit]
  2. Description=Etcd Server
  3. After=network.target
  4. After=network-online.target
  5. Wants=network-online.target

  6. [Service]
  7. Type=notify
  8. WorkingDirectory=/var/lib/etcd/
  9. EnvironmentFile=/etc/etcd/etcd.conf
  10. 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-advertise-peer-urls=\"${ETCD_INITIAL_ADVERTISE_PEER_URLS}\" --initial-cluster=\"${ETCD_INITIAL_CLUSTER}\" --initial-cluster-state=\"${ETCD_INITIAL_CLUSTER_STATE}\""
  11. Restart=on-failure
  12. LimitNOFILE=65536

  13. [Install]
  14. WantedBy=multi-user.target
etcd.conf 配置檔案(https://github.com/coreos/etcd/blob/master/etcd.conf.yml.sample


點選(此處)摺疊或開啟

  1. # [member]
  2. ETCD_NAME=k8s_master
  3. ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
  4. ETCD_LISTEN_PEER_URLS="http://120.25.154.90:2380"
  5. ETCD_LISTEN_CLIENT_URLS="http://120.25.154.90:2379,http://127.0.0.1:2379"

  6. # [cluster]
  7. ETCD_INITIAL_ADVERTISE_PEER_URLS="http://120.25.154.90:2380"
  8. ETCD_INITIAL_CLUSTER="k8s_master=http://120.25.154.90:2380,k8s_node1=http://120.25.220.176:2380,k8s_node2=http://112.74.105.178:2380"
  9. ETCD_INITIAL_CLUSTER_STATE="new"
  10. ETCD_INITIAL_CLUSTER_TOKEN="k8s-etcd-cluster"
  11. ETCD_ADVERTISE_CLIENT_URLS="http://120.25.154.90:2379"
5.啟動 通過systemctl start命令啟動etcd服務,同時使用systemctl enable 命令將服務加入開機啟動列表中

systemctl     daemon-reload
systemctl     enable    etcd.service
systemctl     start       etcd.service

6.啟動結果查詢



四:Etcd配置引數說明(https://coreos.com/etcd/docs/latest/op-guide/configuration.html


點選(此處)摺疊或開啟

  1. Etcd的引數配置方式有兩種,一種是命令列的方式,一種是環境變數的方式。命令列方式的優先順序高於環境變數的方式。

  2. Etcd預設2379埠處理客戶端的請求;2380埠用於叢集各成員間的通訊。

  3. #[member]

  4. -name 或 ETCD_NAME:

  5. 指定當前etcd成員的名稱 預設值為"default",通常使用者Hostname來命名。

  6. -data-dir或ETCD_DATA_DIR:

  7. etcd資料檔案目錄,預設是“${name}.etcd”

  8. –snapshot-count或ETCD_SNAPSHOT_COUNT:

  9. 指定多少次commit操作會觸發一次磁碟快照,預設值是10000

  10. –heartbeat-interval或 ETCD_ELECTION_TIMEOUT:

  11. 心跳訊號間隔,毫秒級,預設是100毫秒。

  12. –listen-peer-urls或 ETCD_LISTEN_PEER_URLS

  13. 用於監聽叢集中其他成員的傳送資訊的地址。預設值是“http://localhost:2380”

  14. –listen-client-urls或ETCD_LISTEN_CLIENT_URLS:
  15. 用於監聽客戶端發來的資訊的地址,預設值是“http://localhost:2379”

  16. –max-snapshots或ETCD_MAX_SNAPSHOTS
  17. 映象檔案的最大個數,預設是5.0表示無限制

  18. –max-wals或ETCD_MAX_WALS:

  19. #[cluster]
  20. –initial-advertise-peer-urls或 ETCD_INITIAL_ADVERTISE_PEER_URLS:
  21. 叢集中各節點相互通訊的地址。

  22. –initial-cluster或ETCD_INITIAL_CLUSTER:
  23. 初始叢集由哪些成員組成 預設值是“efault=http://localhost:2380”

  24. –initial-cluster-state或ETCD_INITIAL_CLUSTER_STATE:
  25. 叢集的初始狀態,其值有“new”和“existing”,預設為“new”

  26. –initial-cluster-token:ETCD_INITIAL_CLUSTER_TOKEN:

  27. 叢集名稱

  28. –advertise-client-urls或ETCD_ADVERTISE_CLIENT_URLS:

  29. 客戶端與叢集通訊地址


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28624388/viewspace-2140242/,如需轉載,請註明出處,否則將追究法律責任。

相關文章