=http://etcd2:2380,etcd3=http://etcd3:2380' - '--initial-cluster-state=new' ports: - =http://etcd2:2380' - '--listen-peer-urls=http://0.0.0.0:2380' - '--listen-client-urls=http ://0.0.0.0:2379' - '--advertise-client-urls=http://etcd2:2379' - '--initial-cluster-token =http://etcd2:2380,etcd3=http://etcd3:2380' - '--initial-cluster-state=new' ports: - =http://etcd2:2380,etcd3=http://etcd3:2380' - '--initial-cluster-state=new' ports: -
=http://etcd2:2380 etcd1: image: 192.168.86.8:5000/etcd ports: - "2380:2379" volumes =http://etcd2:2380 etcd2: image: 192.168.86.8:5000/etcd ports: - "2381:2379" volumes : - etcd2:/etcd_data command: - /usr/local/bin/etcd - -name - etcd2 - http://0.0.0.0:2379 - -initial-advertise-peer-urls - http://etcd2:2380 - - =http://etcd2:2380 volumes: etcd0: etcd1: etcd2: 注意,上面的image: 192.168.86.8:5000/etcd 是用的私有仓库,大家可以使用官方版本
=http://etcd2:2380,etcd3=http://etcd3:2380' - '--initial-cluster-state=new' ports: - =http://etcd2:2380' - '--listen-peer-urls=http://0.0.0.0:2380' - '--listen-client-urls=http ://0.0.0.0:2379' - '--advertise-client-urls=http://etcd2:2379' - '--initial-cluster-token =http://etcd2:2380,etcd3=http://etcd3:2380' - '--initial-cluster-state=new' ports: - =http://etcd2:2380,etcd3=http://etcd3:2380' - '--initial-cluster-state=new' ports: -
=http://etcd2:2380,etcd3=http://etcd3:2380 - ETCD_INITIAL_CLUSTER_STATE=new volumes: /volumes/etcd/data1:/bitnami/etcd etcd2: container_name: builder-etcd2 image: bitnami/etcd - ETCD_INITIAL_ADVERTISE_PEER_URLS=http://etcd2:2380 - ETCD_LISTEN_PEER_URLS=http://0.0.0.0 =http://etcd2:2380,etcd3=http://etcd3:2380 - ETCD_INITIAL_CLUSTER_STATE=new volumes: =http://etcd2:2380,etcd3=http://etcd3:2380 - ETCD_INITIAL_CLUSTER_STATE=new volumes:
=http://etcd2:2380,etcd3=http://etcd3:2380' - '--initial-cluster-state=new' ports: - =http://etcd2:2380' - '--listen-peer-urls=http://0.0.0.0:2380' - '--listen-client-urls=http ://0.0.0.0:2379' - '--advertise-client-urls=http://etcd2:2379' - '--initial-cluster-token =http://etcd2:2380,etcd3=http://etcd3:2380' - '--initial-cluster-state=new' ports: - =http://etcd2:2380,etcd3=http://etcd3:2380' - '--initial-cluster-state=new' ports: -
=http://etcd2:2380,etcd3=http://etcd3:2380' - '--initial-cluster-state=new' ports: - =http://etcd2:2380' - '--listen-peer-urls=http://0.0.0.0:2380' - '--listen-client-urls=http ://0.0.0.0:2379' - '--advertise-client-urls=http://etcd2:2379' - '--initial-cluster-token =http://etcd2:2380,etcd3=http://etcd3:2380' - '--initial-cluster-state=new' ports: - =http://etcd2:2380,etcd3=http://etcd3:2380' - '--initial-cluster-state=new' ports: -
=http://etcd2:2380,etcd3=http://etcd3:2380 - ETCD_INITIAL_CLUSTER_STATE=new volumes: /volumes/etcd/data1:/bitnami/etcd etcd2: container_name: builder-etcd2 image: bitnami/etcd - ETCD_INITIAL_ADVERTISE_PEER_URLS=http://etcd2:2380 - ETCD_LISTEN_PEER_URLS=http://0.0.0.0 =http://etcd2:2380,etcd3=http://etcd3:2380 - ETCD_INITIAL_CLUSTER_STATE=new volumes: =http://etcd2:2380,etcd3=http://etcd3:2380 - ETCD_INITIAL_CLUSTER_STATE=new volumes:
服务,保证时间一致性 etcd版本:v3.3.9 防火墙及SELinux:关闭防火墙和SELinux 名称 地址 主机名 备注 etcd1 172.24.8.31 etcd1.example.com etcd2 \ 6 --initial-cluster-token etcd-cluster-1 \ 7 --initial-cluster etcd1=http://172.24.8.31:2380,etcd2 1 [root@etcd2 ~]# etcd --name etcd2 --data-dir /data/etcd \ 2 --initial-advertise-peer-urls http:// \ 6 --initial-cluster-token etcd-cluster-1 \ 7 --initial-cluster etcd1=http://172.24.8.31:2380,etcd2 3.2 更新成员url 若成员etcd2的IP地址有变动,需要更新url,则需要执行以下操作: 1 [root@etcd3 ~]# ifconfig eth0 2 inet 172.24.8.40
节点执行下面数据恢复操作,然后重启 etcd ## 说明:在 / etc/systemd/system/etcd.service 找到 --inital-cluster etcd1=https://xxxx:2380,etcd2 节点操作】 cd /backup/k8s1/ ETCDCTL_API=3 etcdctl snapshot restore snapshot.db --name etcd2 --initial-cluster etcd1=https://192.168.1.200:2380,etcd2=https://192.168.1.202:2380,etcd3=https://192.168.1.203:2380 restart etcd ③【etcd3 节点操作】 cd /backup/k8s1/ ETCDCTL_API=3 etcdctl snapshot restore snapshot.db --name etcd2 --initial-cluster etcd1=https://192.168.1.200:2380,etcd2=https://192.168.1.202:2380,etcd3=https://
2380 ETCD_INITIAL_CLUSTER_TOKEN=etcd-c1uster ETCD_INITIAL_CLUSTER="etcd1=https://192.168.3.135:2380,etcd2 2380 ETCD_INITIAL_CLUSTER_TOKEN=etcd-c1uster ETCD_INITIAL_CLUSTER="etcd1=https://192.168.3.135:2380,etcd2 2380 ETCD_INITIAL_CLUSTER_TOKEN=etcd-c1uster ETCD_INITIAL_CLUSTER="etcd1=https://192.168.3.135:2380,etcd2 ETCD_NAME:etcd节点名称,每个节点都应不同,例如etcd1、etcd2、etcd3。 ETCD_DATA_DIR:etcd数据存储目录,例如/etc/etcd/data/etcd1。 ETCD_INITIAL_CLUSTER:集群各节点的endpoint列表,例如"etcd1=https://192.168.3.135:2380,etcd2=https://192.168.3.136
localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.43.233 etcd1 192.168.43.130 etcd2 //127.0.0.1:2379,http://192.168.43.233:2379" ETCD_INITIAL_CLUSTER="etcd1=http://192.168.43.233:2380,etcd2 http://192.168.43.246:2380" ETCD_INITIAL_CLUSTER_TOKEN="etcd-token" ETCD_INITIAL_CLUSTER_STATE="new" etcd2 //127.0.0.1:2379,http://192.168.43.130:2379" ETCD_INITIAL_CLUSTER="etcd1=http://192.168.43.233:2380,etcd2 //127.0.0.1:2379,http://192.168.43.246:2379" ETCD_INITIAL_CLUSTER="etcd1=http://192.168.43.233:2380,etcd2
defrag 执行时间 > election timeout,则集群会进入重新选主模式) 环境模拟 端口映射 单机环境写集群搭建,以下是端口映射 etcd1 2379 -> 2391 2380 -> 2381 etcd2 Debug/data/etcd1/run.log 2>&1 & ETCDCTL_API=3 etcd --name etcd-2 --data-dir /Users/noogel/Debug/data/etcd2 auto-compaction-retention=1000 --quota-backend-bytes 8589934592 --election-timeout 5000 > /Users/noogel/Debug/data/etcd2 etcd3/run.log 2>&1 & 历史数据清理命令 rm -rf /Users/noogel/Debug/data/etcd1 rm -rf /Users/noogel/Debug/data/etcd2 rm -rf /Users/noogel/Debug/data/etcd3 mkdir etcd1 etcd2 etcd3 日常运维 常规命令 export ETCDCTL_API=3 // 节点列表查询
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.10.1:2380" ETCD_INITIAL_CLUSTER="etcd1=http://192.168.10.1:2380,etcd2 2380" ETCD_ADVERTISE_CLIENT_URLS="http://192.168.10.1:2379" 在node1节点上编辑etcd配置文件 # [member] ETCD_NAME=etcd2 ETCD_DATA_DIR="/var/lib/etcd/etcd2" ETCD_LISTEN_PEER_URLS="http://192.168.10.2:2380" ETCD_LISTEN_CLIENT_URLS ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.10.2:2380" ETCD_INITIAL_CLUSTER="etcd1=http://192.168.10.1:2380,etcd2 ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.10.3:2380" ETCD_INITIAL_CLUSTER="etcd1=http://192.168.10.1:2380,etcd2
endpoints=localhost:22379 get foo etcdctl --endpoints=localhost:22379 del foo 关闭/重启节点 goreman run stop etcd2 goreman run restart etcd2
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.10.1:2380" ETCD_INITIAL_CLUSTER="etcd1=http://192.168.10.1:2380,etcd2 2380" ETCD_ADVERTISE_CLIENT_URLS="http://192.168.10.1:2379" 在node1节点上编辑etcd配置文件 # [member] ETCD_NAME=etcd2 ETCD_DATA_DIR="/var/lib/etcd/etcd2" ETCD_LISTEN_PEER_URLS="http://192.168.10.2:2380" ETCD_LISTEN_CLIENT_URLS ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.10.2:2380" ETCD_INITIAL_CLUSTER="etcd1=http://192.168.10.1:2380,etcd2 ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.10.3:2380" ETCD_INITIAL_CLUSTER="etcd1=http://192.168.10.1:2380,etcd2
--initial-cluster-token etcd-cluster-1 \ --initial-cluster etcd1=https://192.168.202.128:2380, etcd2 启动 /opt/etcd/bin/etcd --name etcd2 --initial-advertise-peer-urls https://192.168.202.129:2380 \ -initial-cluster-token etcd-cluster-1 \ --initial-cluster etcd1=https://192.168.202.128:2380, etcd2 initial-cluster-token etcd-cluster-1 \ --initial-cluster etcd1=https://192.168.202.128:2380, etcd2 //192.168.202.129:2379,https://192.168.202.130:2379" member list # 输出如下: 48e15f7612b3de1, started, etcd2
ETCD_DISCOVERY_PROXY="" #ETCD_DISCOVERY_SRV="" ETCD_INITIAL_CLUSTER="etcd1=http://192.168.50.128:2380,etcd2 ://192.168.50.135:2379,http://127.0.0.1:2379" #ETCD_MAX_SNAPSHOTS="5" #ETCD_MAX_WALS="5" ETCD_NAME="etcd2 ETCD_DISCOVERY_PROXY="" #ETCD_DISCOVERY_SRV="" ETCD_INITIAL_CLUSTER="etcd1=http://192.168.50.128:2380,etcd2 http://192.168.50.128:2380 clientURLs=http://192.168.50.128:2379 isLeader=true 94b5d90215d70e1e: name=etcd2
安装集群 准备三台服务器 172.31.43.166 etcd0 172.31.43.114 etcd1 172.31.34.237 etcd2 分别在三台服务器上下载etcd。 etcd-cluster-pro \ --initial-cluster etcd0=http://172.31.43.166:2380,etcd1=http://172.31.43.114:2380,etcd2 etcd-cluster-pro \ --initial-cluster etcd0=http://172.31.43.166:2380,etcd1=http://172.31.43.114:2380,etcd2 Restart=always RestartSec=5s LimitNOFILE=40000 TimeoutStartSec=0 ExecStart=/usr/local/bin/etcd -name etcd2 etcd-cluster-pro \ --initial-cluster etcd0=http://172.31.43.166:2380,etcd1=http://172.31.43.114:2380,etcd2
--initial-cluster-token etcd-cluster-1 \ --initial-cluster etcd1=https://192.168.202.128:2380, etcd2 启动 /opt/etcd/bin/etcd --name etcd2 --initial-advertise-peer-urls https://192.168.202.129:2380 \ -initial-cluster-token etcd-cluster-1 \ --initial-cluster etcd1=https://192.168.202.128:2380, etcd2 initial-cluster-token etcd-cluster-1 \ --initial-cluster etcd1=https://192.168.202.128:2380, etcd2 //192.168.202.129:2379,https://192.168.202.130:2379" member list # 输出如下: 48e15f7612b3de1, started, etcd2
https://10.211.55.50:2380 | https://10.211.55.50:2379 | false | | ad1ee26f89ef12f4 | started | etcd2 ETCD_NAME="etcd3" ETCD_INITIAL_CLUSTER="etcd1=https://10.211.55.50:2380,etcd3=https://10.211.55.52:2380,etcd2 10.211.55.50:2380 --initial-cluster-token=etcd-cluster-1 --initial-cluster=etcd1=https://10.211.55.50:2380,etcd2 ","wal-dir":"etcd1.etcd/member/wal","data-dir":"etcd1.etcd","snap-dir":"etcd1.etcd/member/snap"} # etcd2 cacert /etc/etcd/ssl/etcd-ca.pem --cert /etc/etcd/ssl/etcd.pem --key /etc/etcd/ssl/etcd-key.pem --name etcd2