当前位置: 代码网 > 手机>品牌>华为 > k8s的核心组件etcd的安装使用、快照说明及etcd命令详解【含单节点,多节点和新节点加入说明】(1)

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

2024年08月02日 华为 我要评论
整个快照恢复过程略显复杂,但上面这些操作是可以写成脚本的,用脚本一键恢复。无证书快照创建与恢复学习视频:《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!k8s中的etcd文件存储位置其实上面配置文件中有说明,容器中etcd的存储位置是:自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

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

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com