Kubernetes源码安装(安装Etcd)

部署Etcd集群

#创建工作目录
mkdir -p /opt/etcd/{bin,cfg,ssl} 
#将创建的证书拷贝到ssl下
cp ~/TLS/etcd/ca*pem ~/TLS/etcd/server*pem /opt/etcd/ssl/
#拉取所需要的Etcd包
wget  https://github.com/etcd-io/etcd/releases/download/v3.4.9/etcd-v3.4.9-linux-amd64.tar.gz
#解压安装包
tar xvf etcd-v3.4.9-linux-amd64.tar.gz
#将命令etcd etcdctl移动到/opt/etcd/bin目录下
mv etcd-v3.4.9-linux-amd64/{etcd,etcdctl} /opt/etcd/bin/

修改Etcd配置信息

cat > /opt/etcd/cfg/etcd.conf << EOF
#[Member]
ETCD_NAME="etcd-1"
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="https://172.22.213.49:2380"
ETCD_LISTEN_CLIENT_URLS="https://172.22.213.49:2379"

#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="https://172.22.213.49:2380"
ETCD_ADVERTISE_CLIENT_URLS="https://172.22.213.49:2379"

ETCD_INITIAL_CLUSTER="etcd-1=https://172.22.213.49:2380,etcd-2=https://172.22.213.52:2380,etcd-3=https://172.22.213.53:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new"
EOF

#参数说明
ETCD_NAME                  #节点名称,集群中唯一
ETCD_DATA_DIR:                  #数据目录
ETCD_LISTEN_PEER_URLS           #集群通信监听地址
ETCD_LISTEN_CLIENT_URLS         #客户端访问监听地址
ETCD_INITIAL_ADVERTISE_PEER_URLS#集群通告地址
ETCD_ADVERTISE_CLIENT_URLS    #客户端通告地址
ETCD_INITIAL_CLUSTER          #集群节点地址
ETCD_INITIAL_CLUSTER_TOKEN   #集群 Token
ETCD_INITIAL_CLUSTER_STATE    #加入集群的当前状态,new 是新集群,existing 表示加入已有集群

添加到systemd管理

cat > /usr/lib/systemd/system/etcd.service << EOF
[Unit]
Description=Etcd Server
After=network.target
After=network-online.target
Wants=network-online.target
 
[Service]
Type=notify
EnvironmentFile=/opt/etcd/cfg/etcd.conf
ExecStart=/opt/etcd/bin/etcd \
--cert-file=/opt/etcd/ssl/server.pem \
--key-file=/opt/etcd/ssl/server-key.pem \
--peer-cert-file=/opt/etcd/ssl/server.pem \
--peer-key-file=/opt/etcd/ssl/server-key.pem \
--trusted-ca-file=/opt/etcd/ssl/ca.pem \
--peer-trusted-ca-file=/opt/etcd/ssl/ca.pem \
--logger=zap
Restart=on-failure
LimitNOFILE=65536
 
[Install]
WantedBy=multi-user.target
EOF

将Etcd推送到其他节点

#将master做的配置推送到node1~2
#拷贝etcd目录
scp -r /opt/etcd/ node1:/opt/
#拷贝服务文件
scp /usr/lib/systemd/system/etcd.service node1:/usr/lib/systemd/system/
 
#拷贝etcd目录
scp -r /opt/etcd/ node2:/opt/
#拷贝服务文件
scp /usr/lib/systemd/system/etcd.service node2:/usr/lib/systemd/system/

修改节点的Etcd配置

#其他节点的配置和master的配置一样,注意修改/opt/etcd/cfg/etcd.conf文件中的IP地址,IP地址不同

node1
vim /opt/etcd/cfg/etcd.conf
#[Member]
ETCD_NAME="etcd-2"
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="https://172.22.213.52:2380"
ETCD_LISTEN_CLIENT_URLS="https://172.22.213.52:2379"

#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="https://172.22.213.52:2380"
ETCD_ADVERTISE_CLIENT_URLS="https://172.22.213.52:2379"

ETCD_INITIAL_CLUSTER="etcd-1=https://172.22.213.49:2380,etcd-2=https://172.22.213.52:2380,etcd-3=https://172.22.213.53:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new"

node2
vim /opt/etcd/cfg/etcd.conf
#[Member]
ETCD_NAME="etcd-3"
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="https://172.22.213.53:2380"
ETCD_LISTEN_CLIENT_URLS="https://172.22.213.53:2379"

#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="https://172.22.213.53:2380"
ETCD_ADVERTISE_CLIENT_URLS="https://172.22.213.53:2379"

ETCD_INITIAL_CLUSTER="etcd-1=https://172.22.213.49:2380,etcd-2=https://172.22.213.52:2380,etcd-3=https://172.22.213.53:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new"

启动Etcd

#使修改的配置文件生效
systemctl daemon-reload
#启动Etcd并设置开机自启
systemctl start etcd && systemctl enable etcd    #注意三个节点需同时启动

报错:

[root@node1 cfg]# systemctl start etcd
Job for etcd.service failed because a timeout was exceeded. See “systemctl status etcd.service” and “journalctl -xe” for details.

由于未同时启动三个节点导致,所以服务超时

也有可能受Etcd版本不同,V3 和V2,解决方案如下:

 vim /etc/profile
 #在文件末尾添加如下内容
 export ETCDCTL_API=3
 保存并退出
 source /etc/profile
 启动Etcd即可

查看Etcd集群状态

ETCDCTL_API=3 /opt/etcd/bin/etcdctl --cacert=/opt/etcd/ssl/ca.pem --cert=/opt/etcd/ssl/server.pem  --key=/opt/etcd/ssl/server-key.pem --endpoints="https://172.22.213.49:2379,https://172.22.213.52:2379,https://172.22.213.53:2379" endpoint health

#出现以下结果未集群正常
https://172.22.213.53:2379 is healthy: successfully committed proposal: took = 13.884077ms
https://172.22.213.49:2379 is healthy: successfully committed proposal: took = 13.5873ms
https://172.22.213.52:2379 is healthy: successfully committed proposal: took = 14.504876ms
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值