kubernetes實踐之一:Etcd3叢集搭建
一: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
etcd.conf 配置檔案(https://github.com/coreos/etcd/blob/master/etcd.conf.yml.sample)
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)
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
點選(此處)摺疊或開啟
-
[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
-
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}\""
-
Restart=on-failure
-
LimitNOFILE=65536
-
-
[Install]
- WantedBy=multi-user.target
點選(此處)摺疊或開啟
-
# [member]
-
ETCD_NAME=k8s_master
-
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
-
ETCD_LISTEN_PEER_URLS="http://120.25.154.90:2380"
-
ETCD_LISTEN_CLIENT_URLS="http://120.25.154.90:2379,http://127.0.0.1:2379"
-
-
# [cluster]
-
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://120.25.154.90:2380"
-
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"
-
ETCD_INITIAL_CLUSTER_STATE="new"
-
ETCD_INITIAL_CLUSTER_TOKEN="k8s-etcd-cluster"
- ETCD_ADVERTISE_CLIENT_URLS="http://120.25.154.90:2379"
systemctl daemon-reload
systemctl enable etcd.service
systemctl start etcd.service
6.啟動結果查詢
四:Etcd配置引數說明(https://coreos.com/etcd/docs/latest/op-guide/configuration.html)
點選(此處)摺疊或開啟
-
Etcd的引數配置方式有兩種,一種是命令列的方式,一種是環境變數的方式。命令列方式的優先順序高於環境變數的方式。
-
-
Etcd預設2379埠處理客戶端的請求;2380埠用於叢集各成員間的通訊。
-
-
#[member]
-
-
-name 或 ETCD_NAME:
-
-
指定當前etcd成員的名稱 預設值為"default",通常使用者Hostname來命名。
-
-
-data-dir或ETCD_DATA_DIR:
-
-
etcd資料檔案目錄,預設是“${name}.etcd”
-
-
–snapshot-count或ETCD_SNAPSHOT_COUNT:
-
-
指定多少次commit操作會觸發一次磁碟快照,預設值是10000
-
-
–heartbeat-interval或 ETCD_ELECTION_TIMEOUT:
-
-
心跳訊號間隔,毫秒級,預設是100毫秒。
-
-
–listen-peer-urls或 ETCD_LISTEN_PEER_URLS
-
-
用於監聽叢集中其他成員的傳送資訊的地址。預設值是“http://localhost:2380”
-
-
–listen-client-urls或ETCD_LISTEN_CLIENT_URLS:
-
用於監聽客戶端發來的資訊的地址,預設值是“http://localhost:2379”
-
-
–max-snapshots或ETCD_MAX_SNAPSHOTS
-
映象檔案的最大個數,預設是5.0表示無限制
-
-
–max-wals或ETCD_MAX_WALS:
-
-
#[cluster]
-
–initial-advertise-peer-urls或 ETCD_INITIAL_ADVERTISE_PEER_URLS:
-
叢集中各節點相互通訊的地址。
-
-
–initial-cluster或ETCD_INITIAL_CLUSTER:
-
初始叢集由哪些成員組成 預設值是“efault=http://localhost:2380”
-
-
–initial-cluster-state或ETCD_INITIAL_CLUSTER_STATE:
-
叢集的初始狀態,其值有“new”和“existing”,預設為“new”
-
-
–initial-cluster-token:ETCD_INITIAL_CLUSTER_TOKEN:
-
-
叢集名稱
-
-
–advertise-client-urls或ETCD_ADVERTISE_CLIENT_URLS:
-
- 客戶端與叢集通訊地址
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28624388/viewspace-2140242/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Kubernetes 叢集搭建(上)
- Kubernetes 叢集搭建(下)
- Kubernetes叢集搭建(vagrant)
- Docker Swarm 叢集搭建實踐DockerSwarm
- 京東雲Kubernetes叢集最佳實踐
- Kubernetes叢集健康檢查最佳實踐
- Kubernetes 叢集無損升級實踐
- 三艾雲 Kubernetes 叢集最佳實踐
- 搭建 Kubernetes 高可用叢集
- Redis叢集環境搭建實踐Redis
- 利用 Kubeadm部署 Kubernetes 1.13.1 叢集實踐錄
- 美團點評Kubernetes叢集管理實踐
- 《從 0 到 1:搭建一個完整的 Kubernetes 叢集》實踐踩坑
- Kubernetes實戰:高可用叢集的搭建和部署
- 使用Kubeadm搭建高可用Kubernetes叢集
- hadoop叢集搭建及程式設計實踐Hadoop程式設計
- kubernetes實踐之十五:Kubernetes叢集主要啟動引數說明
- 實踐展示openEuler部署Kubernetes 1.29.4版本叢集
- Kubernetes 叢集升級指南:從理論到實踐
- 使用 Kind 搭建你的本地 Kubernetes 叢集
- 搭建高可用kubernetes叢集(keepalived+haproxy)
- [雲原生]Kubernetes - 叢集搭建(第2章)
- 【Kubernetes學習筆記】-kubeadm 手動搭建kubernetes 叢集筆記
- 用Ansible 自動化搭建本地Kubernetes叢集
- vivo大規模Kubernetes叢集自動化運維實踐運維
- vivo大規模 Kubernetes 叢集自動化運維實踐運維
- influxDB叢集模式實踐UX模式
- kubernetes實踐之十八:叢集各模組之間的通訊
- Kubernetes 叢集和應用監控方案的設計與實踐
- Containerd+Kubernetes搭建k8s叢集教程。AIK8S
- 使用 Docker 快速搭建單機版的 Kubernetes 叢集Docker
- 基於Kubernetes v1.24.0的叢集搭建(三)
- 手把手從0到1:搭建Kubernetes叢集
- 搭建kubernetes 叢集的安裝過程和方法
- 基於Kubernetes v1.24.0的叢集搭建(一)
- 基於Kubernetes v1.24.0的叢集搭建(二)
- 搭建zookeeper叢集(偽叢集)
- RabbitMQ叢集運維實踐MQ運維