VMware+Centos7+ETCD集群安装

本文详细介绍了如何在Centos环境下使用VMware搭建ETCD集群的过程,包括配置主机名、安装ETCD、配置各节点参数、启动服务及检查集群状态等步骤,并针对一些常见问题提供了解决方案。

本文在安装实践过程中参考了https://www.cnblogs.com/zhenyuyaodidiao/p/6237019.html,后面主要记录过程中遇到得问题。

1、VMware+Centos7安装:我在VMware下安装了3个Centos系统

2、通过hostnamectl修改Centos得主机名(为了方便后面配置ETCD时候辨识),我分别修改为centos_server1、centos_server2、centos_server3。

      我的3台机器ip:hostname对应如下:

      192.168.10.131 centos_server1
      192.168.10.129 centos_server2

      192.168.10.130 centos_server3

      将上面的3台服务器信息添加到各个Centos的/etc/hosts中

3、yum install etcd -y安装ETCD:也可以自己下载ETCD进行安装。

4、我通过yum安装的etcd,默认的配置文件在/etc/etcd/etcd.conf,修改3个节点的配置信息:

centos_server1配置:

ETCD_DATA_DIR="/var/lib/etcd/default.etcd"

ETCD_LISTEN_PEER_URLS="http://0.0.0.0:2380"
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379,http://0.0.0.0:4001"
ETCD_NAME="centos_server1"
#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://centos_server1:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://centos_server1:2379,http://centos_server1:4001"
ETCD_INITIAL_CLUSTER="centos_server1=http://centos_server1:2380,centos_server2=http://centos_server2:2380,centos_server3=http://centos_server3:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"

ETCD_INITIAL_CLUSTER_STATE="new"

centos_server2配置:

ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="http://192.168.10.129:2380"
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379,http://0.0.0.0:4001"
ETCD_NAME="centos_server2"
#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.10.129:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://centos_server2:2379,http://centos_server2:4001"
ETCD_INITIAL_CLUSTER="centos_server2=http://centos_server2:2380,centos_server1=http://centos_server1:2380,centos_server3=http://centos_server3:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"

ETCD_INITIAL_CLUSTER_STATE="new"


centos_server3配置:

ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="http://0.0.0.0:2380"
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379,http://0.0.0.0:4001"
ETCD_NAME="centos_server3"
#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://centos_server3:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://centos_server3:2379,http://centos_server3:4001"
ETCD_INITIAL_CLUSTER="centos_server1=http://centos_server1:2380,centos_server2=http://centos_server2:2380,centos_server3=http://centos_server3:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"

ETCD_INITIAL_CLUSTER_STATE="new"

5、关闭防火墙:如果防火墙不关闭,部分机器可能会存在ETCD需要用的端口打不开的情况,所以新手建议直接关闭。

systemctl stop firewalld.service #停止firewall

systemctl disable firewalld.service #禁止firewall开机启动

6、各个机器上启动ETCD节点:systemctl start etcd

7、通过etcdctl member list和etcdctl cluster-health分别查看节点列表和集群状态,正常结果显示如下:


8、删除节点:

etcdctl member remove a71b5e3194c33d05

手动删除该节点的数据目录文件:rm -rf /var/lib/etcd/default.etcd

如果不删除该文件,会有信息冲突错误。

9、增加节点:

选择一个正在运行的etcd节点执行:etcdctl member add centos_server2 http://192.168.10.129:2379

启动该节点


遇到的问题:

1、dial tcp 127.0.0.1:2379: getsockopt: connection refused

解决办法:1)关闭防火墙

       2)如果是ETCD集群已经建好,删除节点后重新添加,记得一定要把配置文件中的ETCD_INITIAL_CLUSTER_STATE="new"改成ETCD_INITIAL_CLUSTER_STATE="existing",否则也会出现这个问题。

2、如果删除节点,一定需要手动删除数据目录,如果将这个被删除的节点重新加入集群,需要修改ETCD_INITIAL_CLUSTER_STATE为existing


### 在 VMware 上部署 CentOS 集群的指南 在 VMware 上部署 CentOS 集群通常涉及多个步骤,包括虚拟机配置、网络设置、服务安装集群管理。以下是详细说明: #### 1. 准备工作 确保 VMware 虚拟化环境已经安装并运行正常。为每个节点创建一个 CentOS 虚拟机实例,并分配足够的资源(CPU、内存、磁盘空间)。同时,配置静态 IP 地址以确保网络通信稳定。 #### 2. 网络配置 为所有节点配置相同的子网,并确保可以通过主机名或 IP 地址相互访问。可以使用 `hosts` 文件或 DNS 服务器来解析节点名称[^1]。 ```bash # 编辑 /etc/hosts 文件 echo "192.168.3.210 master" | sudo tee -a /etc/hosts echo "192.168.3.211 slave1" | sudo tee -a /etc/hosts echo "192.168.3.212 slave2" | sudo tee -a /etc/hosts ``` #### 3. 安装必要的软件包 在所有节点上安装基础工具,如 SSH 和防火墙管理工具。关闭防火墙或配置允许集群服务的端口通过。 ```bash sudo yum install -y epel-release sudo yum install -y sshpass rsync sudo systemctl stop firewalld sudo systemctl disable firewalld ``` #### 4. 配置时间同步 确保所有节点的时间一致,可以使用 NTP 服务进行时间同步。 ```bash sudo yum install -y ntp sudo systemctl start ntpd sudo systemctl enable ntpd ``` #### 5. 分发密钥以便无密码登录 在主节点生成 SSH 密钥,并将其分发到所有从节点。 ```bash ssh-keygen -t rsa ssh-copy-id root@slave1 ssh-copy-id root@slave2 ``` #### 6. 部署 Kubernetes 集群 如果目标是部署 Kubernetes 集群,可以参考以下命令初始化 Master 节点。 ```bash kubeadm init \ --kubernetes-version=v1.17.4 \ --pod-network-cidr=10.244.0.0/16 \ --service-cidr=10.96.0.0/12 \ --apiserver-advertise-address=192.168.3.210 ``` 将 kubeconfig 文件复制到用户目录下以方便管理。 ```bash mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config ``` #### 7. 启动核心服务 确保所有核心服务(如 etcd、kube-apiserver、kube-controller-manager、kube-scheduler)已启动并设置为开机自启[^2]。 ```bash for SERVICES in etcd kube-apiserver kube-controller-manager kube-scheduler; do systemctl restart $SERVICES systemctl enable $SERVICES done ``` #### 8. 部署 Hadoop 集群 如果目标是部署 Hadoop 集群,可以在主节点上分发配置文件并启动相关服务[^4]。 ```bash rsync -av /opt/module root@slave1:/opt/ rsync -av /opt/module root@slave2:/opt/ #!/bin/bash if [ $# -lt 1 ]; then echo "No Args Input..." exit fi case $1 in "start") echo " =================== 启动 hadoop集群 ===================" echo " --------------- 启动 hdfs ---------------" ssh hadoop104 "/opt/module/hadoop-3.2.4/sbin/start-dfs.sh" echo " --------------- 启动 yarn ---------------" ssh hadoop105 "/opt/module/hadoop-3.2.4/sbin/start-yarn.sh" echo " --------------- 启动 historyserver ---------------" ssh hadoop104 "/opt/module/hadoop-3.2.4/bin/mapred --daemon start historyserver" ;; "stop") echo " =================== 关闭 hadoop集群 ===================" echo " --------------- 关闭 historyserver ---------------" ssh hadoop104 "/opt/module/hadoop-3.2.4/bin/mapred --daemon stop historyserver" echo " --------------- 关闭 yarn ---------------" ssh hadoop105 "/opt/module/hadoop-3.2.4/sbin/stop-yarn.sh" echo " --------------- 关闭 hdfs ---------------" ssh hadoop104 "/opt/module/hadoop-3.2.4/sbin/stop-dfs.sh" ;; *) echo "Input Args Error..." ;; esac ``` ### 注意事项 - 确保所有节点之间的网络连接正常。 - 根据实际需求调整配置文件中的路径和主机名。 - 测试集群功能以验证部署是否成功。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值