[Kubernetes]CentOS7下Etcd集群搭建

- 日理万妓 2022-04-04 06:22 470阅读 0赞






Etcd简要介绍

Etcd是Kubernetes集群中的一个十分重要的组件,用于保存集群所有的网络配置和对象的状态信息
Etcd构建自身高可用集群主要有三种形式:
①静态发现: 预先已知 Etcd 集群中有哪些节点,在启动时直接指定好Etcd的各个node节点地址
②Etcd动态发现:通过已有的Etcd集群作为数据交互点,然后在扩展新的集群时实现通过已有集群进行服务发现的机制
③DNS动态发现:通过DNS查询方式获取其他节点地址信息
这篇文章主要介绍第一种方式.后期如果还有时间和精力研究的话,我再来写另外两种,但是目前先介绍第一种方式







开始前准备

三台机器,用于部署k8s的运行环境:






















节点 ip
Master 192.168.22.237
Node1 192.168.22.235
Node2 192.168.22.236

首先,将以上信息添加到三台主机的hosts文件中,编辑/etc/hosts文件,写入下面信息:

  1. 192.168.22.237 master
  2. 192.168.22.235 node1
  3. 192.168.22.236 node2






安装配置Etcd

使用yum安装

  1. yum install etcd -y

使用yum安装的etcd默认配置文件会在/etc/etcd/etcd.conf下,安装完之后,我们需要对etcd的配置文件做一些修改
下面是配置文件的内容:

  1. #[Member]
  2. #ETCD_CORS=""
  3. #数据存放位置
  4. ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
  5. #ETCD_WAL_DIR=""
  6. #监听其他Etcd实例的地址
  7. ETCD_LISTEN_PEER_URLS="http://localhost:2380"
  8. #监听客户端地址
  9. ETCD_LISTEN_CLIENT_URLS="http://localhost:2379"
  10. #ETCD_MAX_SNAPSHOTS="5"
  11. #ETCD_MAX_WALS="5"
  12. #节点名称
  13. ETCD_NAME="default"
  14. #ETCD_SNAPSHOT_COUNT="100000"
  15. #ETCD_HEARTBEAT_INTERVAL="100"
  16. #ETCD_ELECTION_TIMEOUT="1000"
  17. #ETCD_QUOTA_BACKEND_BYTES="0"
  18. #ETCD_MAX_REQUEST_BYTES="1572864"
  19. #ETCD_GRPC_KEEPALIVE_MIN_TIME="5s"
  20. #ETCD_GRPC_KEEPALIVE_INTERVAL="2h0m0s"
  21. #ETCD_GRPC_KEEPALIVE_TIMEOUT="20s"
  22. #
  23. #[Clustering]
  24. #通知其他Etcd实例地址
  25. ETCD_INITIAL_ADVERTISE_PEER_URLS="http://localhost:2380"
  26. #通知客户端地址
  27. ETCD_ADVERTISE_CLIENT_URLS="http://localhost:2379"
  28. #ETCD_DISCOVERY=""
  29. #ETCD_DISCOVERY_FALLBACK="proxy"
  30. #ETCD_DISCOVERY_PROXY=""
  31. #ETCD_DISCOVERY_SRV=""
  32. #初始化集群内节点地址
  33. #ETCD_INITIAL_CLUSTER="default=http://localhost:2380"
  34. #初始化集群token
  35. #ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
  36. #初始化集群状态,new表示新建
  37. #ETCD_INITIAL_CLUSTER_STATE="new"
  38. #ETCD_STRICT_RECONFIG_CHECK="true"
  39. #ETCD_ENABLE_V2="true"
  40. #
  41. #[Proxy]
  42. #ETCD_PROXY="off"
  43. #ETCD_PROXY_FAILURE_WAIT="5000"
  44. #ETCD_PROXY_REFRESH_INTERVAL="30000"
  45. #ETCD_PROXY_DIAL_TIMEOUT="1000"
  46. #ETCD_PROXY_WRITE_TIMEOUT="5000"
  47. #ETCD_PROXY_READ_TIMEOUT="0"
  48. #
  49. #[Security]
  50. #ETCD_CERT_FILE=""
  51. #ETCD_KEY_FILE=""
  52. #ETCD_CLIENT_CERT_AUTH="false"
  53. #ETCD_TRUSTED_CA_FILE=""
  54. #ETCD_AUTO_TLS="false"
  55. #ETCD_PEER_CERT_FILE=""
  56. #ETCD_PEER_KEY_FILE=""
  57. #ETCD_PEER_CLIENT_CERT_AUTH="false"
  58. #ETCD_PEER_TRUSTED_CA_FILE=""
  59. #ETCD_PEER_AUTO_TLS="false"
  60. #
  61. #[Logging]
  62. #ETCD_DEBUG="false"
  63. #ETCD_LOG_PACKAGE_LEVELS=""
  64. #ETCD_LOG_OUTPUT="default"
  65. #
  66. #[Unsafe]
  67. #ETCD_FORCE_NEW_CLUSTER="false"
  68. #
  69. #[Version]
  70. #ETCD_VERSION="false"
  71. #ETCD_AUTO_COMPACTION_RETENTION="0"
  72. #
  73. #[Profiling]
  74. #ETCD_ENABLE_PPROF="false"
  75. #ETCD_METRICS="basic"
  76. #
  77. #[Auth]
  78. #ETCD_AUTH_TOKEN="simple"

看着有些头大对吧?其实在实际操作过程中,我们只需要改动几个地方就OK了.在此以192.168.22.237 master为例进行配置,具体根据自己的实际情况来配置

  1. ETCD_LISTEN_PEER_URLS="http://192.168.22.237:2380" ->本机ip是多少就写多少
  2. ETCD_LISTEN_CLIENT_URLS="http://192.168.22.237:2379,http://127.0.0.1:2379" ->本机ip是多少就写多少,同时加上http://127.0.0.1:2379
  3. ETCD_NAME="master" ->自己设置的,在hosts文件里面有,根据配置即可
  4. ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.22.237:2380" ->本机ip是多少就写多少
  5. ETCD_ADVERTISE_CLIENT_URLS="http://192.168.22.237:2379" ->本机ip是多少就写多少
  6. ETCD_INITIAL_CLUSTER="master=http://192.168.22.237:2380,node1=http://192.168.22.235:2380,node2=http://192.168.22.236:2380" ->自己设置的,在hosts文件里面有,根据配置即可

将三台服务器配置好之后,再分别启动etcd

  1. 启动服务:systemctl start etcd.service
  2. 查看状态:systemctl status etcd.service

如图,可以看到,etcd服务已经起来了
在这里插入图片描述
接下来我们可以通过命令查看etcd集群的状态

  1. etcdctl cluster-health

在这里插入图片描述
可以看到,etcd集群状态是正常的
到此,关于CentOS7下Etcd集群搭建,便是结束了,感谢您的阅读~

发表评论

表情:
评论列表 (有 0 条评论,470人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Etcd

    前言: > 前面我提到k8s的高可用搭建,于是后面有人评论etcd用的master自己的还是外部的etcd集群。我回答是用master自带的,今天为了解决那个朋友提出的问