k8s的核心组件etcd的安装使用、快照说明及etcd命令详解【含单节点,多节点和新节点加入说明】(1)

user list Lists all users

user passwd Changes password of user

user grant-role Grants a role to a user

user revoke-role Revokes a role from a user

role add Adds a new role

role delete Deletes a role

role get Gets detailed information of a role

role list Lists all roles

role grant-permission Grants a key to a role

role revoke-permission Revokes a key from a role

check perf Check the performance of the etcd cluster

help

如:创建、查看、删除

文件存储是以表链接的形式。

[root@etcd1 ~]# #/ccx/date1是存储路径,"ccx is superhero"是数据内容

[root@etcd1 ~]# etcdctl put /ccx/date1 “ccx is superhero”

OK

[root@etcd1 ~]# etcdctl get /ccx/date1

/ccx/date1

ccx is superhero

[root@etcd1 ~]#

[root@etcd1 ~]# etcdctl del /ccx/date1

1

[root@etcd1 ~]#

[root@etcd1 ~]# etcdctl get /ccx/date1

其他节点访问该etcd

  • 准确来说,叫做远程执行其他etcd命令罢了【注意,这仅仅是远程访问而已,并不是该集群的一部分】

命令:etcdctl --endpoints IP:2379 这跟需要执行的命令【2和3的版本命令不一样】

  • 如下,我在157上查看156这个etc的数据

[root@etcd2 ~]# #我查看3的内容,本地也需要切换到3的环境,否则命令找不到

[root@etcd2 ~]# export ETCDCTL_API=3

[root@etcd2 ~]# etcdctl --endpoints http://192.168.59.156:2379 get /ccx/date1

/ccx/date1

ccx is superhero

[root@etcd2 ~]#

[root@etcd2 ~]#

[root@etcd2 ~]# ip a | grep 59

inet 192.168.59.157/24 brd 192.168.59.255 scope global ens32

[root@etcd2 ~]#

取消版本定义【恢复默认】


  • 比如我之前定义了版本3,现在想让其恢复到默认状态【默认位版本2】

注:k8s在1.5版本以后默认使用的是版本3向etcd写入数据。

  • 命令:unset ETCDCTL_API

[root@etcd1 ~]# export ETCDCTL_API=3

[root@etcd1 ~]#

[root@etcd1 ~]# unset ETCDCTL_API

[root@etcd1 ~]#

多节点配置

====================================================================

  • 前面说过,最好是3台,我用2台以配置文件的形式加入,第三台用加入集群的方式。

配置主节点【主节点leader】


  • 注:这个没有真正的主节点概念,我只是用这个来做第一个配置,为了后面好说明,所以命其为 “主节点”

  • 先停止etcd服务并清除现有数据【我是用上面单节点配置的,已经配置并启动etcd服务】

注:必须清空数据,否则会报错

[root@etcd1 ~]# systemctl stop etcd

[root@etcd1 ~]# rm -rf /var/lib/etcd/*

[root@etcd1 ~]#

[root@etcd1 ~]# ls /var/lib/etcd

修改配置文件

  • 文件:/etc/etcd/etcd.conf

  • 可以看到,现在配置文件中可用的就这么几行

[root@etcd1 ~]# grep -o ‘[#].*’ /etc/etcd/etcd.conf

ETCD_DATA_DIR=“/var/lib/etcd/default.etcd”

ETCD_LISTEN_PEER_URLS=“http://localhost:2380,http://192.168.59.156:2380”

ETCD_LISTEN_CLIENT_URLS=“http://localhost:2379,http://192.168.59.156:2379”

ETCD_NAME=“default”

ETCD_ADVERTISE_CLIENT_URLS=“http://localhost:2379,http://192.168.59.156:2379”

[root@etcd1 ~]#

  • 直接vim /etc/etcd/etcd.conf,将里面的东西删完,复制下面内容进去修改IP,其他不变。

  • 192.168.59.156为我当前节点IP,192.168.59.157/158为我准备加入该节点的IP

[root@etcd1 ~]# vim /etc/etcd/etcd.conf

#数据存储位置【自定义】

ETCD_DATA_DIR=“/var/lib/etcd/cluster.etcd”

#服务器间通讯端口

ETCD_LISTEN_PEER_URLS=“http://192.168.59.156:2380,http://localhost:2380”

客户端通讯端口

ETCD_LISTEN_CLIENT_URLS=“http://192.168.59.156:2379,http://localhost:2379”

#集群名字【自定义】

ETCD_NAME=“etcd-156”

#端口监听

ETCD_INITIAL_ADVERTISE_PEER_URLS=“http://192.168.59.156:2380”

#端口监听

ETCD_ADVERTISE_CLIENT_URLS=“http://localhost:2379,http://192.168.59.156:2379”

#所有集群IP信息都需要列出来【自己和要加入该集群的ip,前面的名称是上面的集群名字,不能乱写】

ETCD_INITIAL_CLUSTER=“etcd-156=http://192.168.59.156:2380,etcd-157=http://192.168.59.157:2380”

#类似于秘钥【每台上面的这个值要一样】

ETCD_INITIAL_CLUSTER_TOKEN=“etcd-cluster”

#新集群值必须为new

ETCD_INITIAL_CLUSTER_STATE=“new”

  • 参数详细说明:

  • ETCD_DATA_DIR 服务运行数据保存的路径

  • ETCD_NAME 节点名称,默认为default

-ETCD_LISTEN_PEER_URLS 监听的同伴通信的地址,比如http://ip:2380,如果有多个,使用逗号分隔。需要 所有节点都能够访问,所以不要使用 localhost!

  • ETCD_LISTEN_CLIENT_URLS 监听的客户端服务地址

  • ETCD_ADVERTISE_CLIENT_URLS 对外公告的该节点客户端监听地址,这个值会告诉集群中其他节点。

  • ETCD_INITIAL_ADVERTISE_PEER_URLS 对外公告的该节点同伴监听地址,这个值会告诉集群中其他节点

  • ETCD_INITIAL_CLUSTER 集群中所有节点的信息

  • ETCD_INITIAL_CLUSTER_STATE 新建集群的时候,这个值为 new;假如加入已经存在的集群,这个值为 existing。

  • ETCD_INITIAL_CLUSTER_TOKEN 集群的ID,多个集群的时候,每个集群的ID必须保持唯一

导入配置文件到其他节点

  • 主节点上将配置文件拷贝到另外一个节点上【导入前要先去另外节点上安装etcd服务】

[root@etcd1 ~]# scp /etc/etcd/etcd.conf 192.168.59.157:/etc/etcd/

root@192.168.59.157’s password:

etcd.conf 100% 567 984.1KB/s 00:00

[root@etcd1 ~]#

其他节点同步主节点【备节点】


  • 注:加入主节点其实和主节点的配置是一样的,为了方便说明才命其为:”其他节点“

安装etcd包

  • 安装etcd包:yum -y install etcd

修改配置文件

  • 我在主节点上已经将配置文件导入过来了,所以直接将ip和NAME修改即可【其他不变】。

  • 修改IP:在编辑界面输入::1,6s/156/157/g可以直接替换1-6行的ip【仅替换1-6行】

在这里插入图片描述

  • 修改ETCD_NAME=,修改规则如下图

在这里插入图片描述

  • 如,我157修改完毕以后的配置文件信息如下

[root@etcd2 ~]# cat /etc/etcd/etcd.conf

ETCD_DATA_DIR=“/var/lib/etcd/cluster.etcd”

ETCD_LISTEN_PEER_URLS=“http://192.168.59.157:2380,http://localhost:2380”

ETCD_LISTEN_CLIENT_URLS=“http://192.168.59.157:2379,http://localhost:2379”

ETCD_NAME=“etcd-157”

ETCD_INITIAL_ADVERTISE_PEER_URLS=“http://192.168.59.157:2380”

ETCD_ADVERTISE_CLIENT_URLS=“http://localhost:2379,http://192.168.59.157:2379”

ETCD_INITIAL_CLUSTER=“etcd-156=http://192.168.59.156:2380,etcd-157=http://192.168.59.157:2380”

ETCD_INITIAL_CLUSTER_TOKEN=“etcd-cluster”

ETCD_INITIAL_CLUSTER_STATE=“new”

[root@etcd2 ~]#

启动etcd服务

  • 这个玩意有启动顺序的,我们现在主节点上启动该服务

命令:systemctl start etcd

这时候是卡主的【是正常的,要让另外节点etcd服务都起来以后该节点才会启完】

在这里插入图片描述

  • 然后我们去启动其他节点的etcd服务

命令:systemctl start etcd

[root@etcd2 ~]# systemctl start etcd

[root@etcd2 ~]#

  • 这时候主节点的etcd服务才会启动完毕

[root@etcd1 ~]# systemctl start etcd

[root@etcd1 ~]#

  • 上面所有节点服务都启动完毕以后,再所有节点执行加入开启启动的命令:

systemctl enable etcd

#注意主机名是3台的

[root@etcd1 ~]# systemctl enable etcd

[root@etcd1 ~]#

[root@etcd2 ~]# systemctl enable etcd

Created symlink from /etc/systemd/system/multi-user.target.wants/etcd.service to /usr/lib/systemd/system/etcd.service.

[root@etcd2 ~]#

至此,主备节点就配置完毕了

新节点加入集群


  • 所谓新节点加入集群,就是一台新的主机,需要加入到已存在的集群里面

  • 这个需要在版本2上完成,所以需要将版本切回2,否则会报member命令不存在。

命令:export ETCDCTL_API=2

  • 14
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值