etcd 집단 구축

7647 단어 kubernetesetcd
Etcd가 자체 고가용성 클러스터를 구축하는 주요 형태는 다음과 같습니다.
정적 발견: Etcd 클러스터에 어떤 노드가 있는지 미리 알고 시작할 때 Etcd의 각각의 node 노드 주소를 직접 지정하여 Etcd 동적 발견: 기존의 Etcd 클러스터를 데이터 상호작용점으로 하고 새로운 클러스터를 확장할 때 기존 클러스터를 통해 서비스 발견을 하는 메커니즘인 DNS 동적 발견을 실현한다. DNS 조회 방식을 통해 다른 노드 주소 정보를 얻는다. 여기서 우리는 Static 방식으로 세 대의 기계를 준비한다.ip는 아래와 같다(etcd가 설치되어 있음)
node1 10.211.55.2
node2 10.211.55.25
node3 10.211.55.26

환경 준비 1.node1에서 실행
hostnamectl set-hostname node1
echo "10.211.55.2 node1">> /etc/hosts
echo "10.211.55.25 node2">> /etc/hosts
echo "10.211.55.26 node3">> /etc/hosts
systemctl stop firewalld
systemctl disable firewalld
setenforce 0

2. node2에서 실행
hostnamectl set-hostname node2
echo "10.211.55.2 node1">> /etc/hosts
echo "10.211.55.25 node2">> /etc/hosts
echo "10.211.55.26 node3">> /etc/hosts
systemctl stop firewalld
systemctl disable firewalld
setenforce 0

3. node3에서 실행
hostnamectl set-hostname node3
echo "10.211.55.2 node1">> /etc/hosts
echo 10.211.55.25 node2>> /etc/hosts
echo 10.211.55.26 node3>> /etc/hosts
systemctl stop firewalld
systemctl disable firewalld
setenforce 0

1.1 node1에 들어가서run을 만들고 실행합니다.sh, 스크립트 내용은 다음과 같습니다

yum remove etcd -y
yum install etcd -y
mkdir /etcd
cd /etcd
touch run.sh
cat>/etcd/run.sh<<EOF
#!/usr/bin/env bash
# 
ETCD_NAME=node-1
# IP 
LOCAL_IP=10.211.55.2
#ETCD 
ETCD_DATA_DIR=/usr/local/etcd/data
# 
INITIAL_CLUSTER_TOKEN=etcd-cluster
# 
INITIAL_CLUSTER="node-1=http://10.211.55.2:2380,node-2=http://10.211.55.25:2380,node-3=http://10.211.55.26:2380"
# 
INITIAL_CLUSTER_STATE=new

# 
etcd --name \${ETCD_NAME} --data-dir \${ETCD_DATA_DIR} \
    --initial-advertise-peer-urls http://\${LOCAL_IP}:2380 \
    --listen-peer-urls http://\${LOCAL_IP}:2380 \
    --listen-client-urls http://\${LOCAL_IP}:2379,http://127.0.0.1:2379 \
    --advertise-client-urls http://\${LOCAL_IP}:2379 \
    --initial-cluster-token \${INITIAL_CLUSTER_TOKEN} \
    --initial-cluster \${INITIAL_CLUSTER} \
    --initial-cluster-state \${INITIAL_CLUSTER_STATE} 
EOF
nohup sh run.sh &
etcdctl member list

1.2 node2에 들어가서run을 만들고 실행합니다.sh, 스크립트 내용은 다음과 같습니다

yum remove etcd -y
yum install etcd -y
mkdir /etcd
cd /etcd
touch run.sh
cat>/etcd/run.sh<<EOF
#!/usr/bin/env bash
# 
ETCD_NAME=node-2
# IP 
LOCAL_IP=10.211.55.25
#ETCD 
ETCD_DATA_DIR=/usr/local/etcd/data
# 
INITIAL_CLUSTER_TOKEN=etcd-cluster
# 
INITIAL_CLUSTER="node-1=http://10.211.55.2:2380,node-2=http://10.211.55.25:2380,node-3=http://10.211.55.26:2380"
# 
INITIAL_CLUSTER_STATE=new

# 
etcd --name \${ETCD_NAME} --data-dir \${ETCD_DATA_DIR} \
    --initial-advertise-peer-urls http://\${LOCAL_IP}:2380 \
    --listen-peer-urls http://\${LOCAL_IP}:2380 \
    --listen-client-urls http://\${LOCAL_IP}:2379,http://127.0.0.1:2379 \
    --advertise-client-urls http://\${LOCAL_IP}:2379 \
    --initial-cluster-token \${INITIAL_CLUSTER_TOKEN} \
    --initial-cluster \${INITIAL_CLUSTER} \
    --initial-cluster-state \${INITIAL_CLUSTER_STATE} 
EOF
nohup sh run.sh &
etcdctl member list

1.3 node3에 들어가서run을 만들고 실행합니다.sh, 스크립트 내용은 다음과 같습니다

yum remove etcd -y
yum install etcd -y
mkdir /etcd
cd /etcd
touch run.sh
cat>/etcd/run.sh<<EOF
#!/usr/bin/env bash
# 
ETCD_NAME=node-3
# IP 
LOCAL_IP=10.211.55.26
#ETCD 
ETCD_DATA_DIR=/usr/local/etcd/data
# 
INITIAL_CLUSTER_TOKEN=etcd-cluster
# 
INITIAL_CLUSTER="node-1=http://10.211.55.2:2380,node-2=http://10.211.55.25:2380,node-3=http://10.211.55.26:2380"
# 
INITIAL_CLUSTER_STATE=new

# 
etcd --name \${ETCD_NAME} --data-dir \${ETCD_DATA_DIR} \
    --initial-advertise-peer-urls http://\${LOCAL_IP}:2380 \
    --listen-peer-urls http://\${LOCAL_IP}:2380 \
    --listen-client-urls http://\${LOCAL_IP}:2379,http://127.0.0.1:2379 \
    --advertise-client-urls http://\${LOCAL_IP}:2379 \
    --initial-cluster-token \${INITIAL_CLUSTER_TOKEN} \
    --initial-cluster \${INITIAL_CLUSTER} \
    --initial-cluster-state \${INITIAL_CLUSTER_STATE} 
EOF
nohup sh run.sh &
etcdctl member list

상기 절차를 통해 etcd의 설정을 완성하였다

2.1 etcd 웹 관리단 구축

docker run --rm  -d --name etcd-browser \
-p 8000:8000 \
--env ETCD_HOST=10.211.55.25 \
--env ETCD_PORT=2379 \
buddho/etcd-browser

방문http://10.211.55.25:8080/etcdkeeper/, etcd 주소를 입력하면 성공합니다

2.2 etcdkeeper 구축

docker run -it -d --name etcdkeeper \
-p 8080:8080 \
deltaprojects/etcdkeeper

방문http://10.211.55.25:8080/etcdkeeper/, etcd 주소를 입력하면 성공합니다

좋은 웹페이지 즐겨찾기