kubernetes实践之一:Etcd3集群搭建

一:Etcd简介
ETCD是用于共享配置和服务发现的分布式,一致性的KV存储系统。类似于Zookeeper.
ETCD的使用场景:配置管理,服务注册于发现,选主,应用调度,分布式队列,分布式锁.
ETCD使用Raft协议来维护集群内各个节点状态的一致性。简单说,ETCD集群是一个分布式系统,由多个节点相互通信构成整体对外服务,每个节点都存储了完整的数据,并且通过Raft协议保证每个节点维护的数据是一致的。

二:Etcd3集群背景

10.116.137.196    k8s_master
10.116.82.28        k8s_node1
10.116.36.57        k8s_node2

Etcd版本: etcd-v3.1.8-linux-amd64.tar.gz( https://github.com/coreos/etcd/releases

三:Etcd3安装

1.环境变量设置  vi /etc/profile

export ETCDCTL_API=3

2.关闭系统防火墙

systemctl disable firewalld
systemctl stop firewalld

3.安装

tar -zxvf etcd-v3.1.8-linux-amd64.tar.gz
cp etcd /usr/bin/
cp etcdctl /usr/bin/

创建/etc/etcd/etcd.conf 配置文件
创建 /usr/lib/systemd/system/etcd.service   systemctl启动文件。

4.配置文件(蓝色背景处为三个节点需要修改的地方

etcd.service


点击(此处)折叠或打开

  1. [Unit]
  2. Description=Etcd Server
  3. After=network.target
  4. After=network-online.target
  5. Wants=network-online.target

  6. [Service]
  7. Type=notify
  8. WorkingDirectory=/var/lib/etcd/
  9. EnvironmentFile=/etc/etcd/etcd.conf
  10. ExecStart=/bin/bash -c "GOMAXPROCS=$(nproc) /usr/bin/etcd --name=\"${ETCD_NAME}\" --data-dir=\"${ETCD_DATA_DIR}\" --listen-client-urls=\"${ETCD_LISTEN_CLIENT_URLS}\" --listen-peer-urls=\"${ETCD_LISTEN_PEER_URLS}\" --advertise-client-urls=\"${ETCD_ADVERTISE_CLIENT_URLS}\" --initial-advertise-peer-urls=\"${ETCD_INITIAL_ADVERTISE_PEER_URLS}\" --initial-cluster=\"${ETCD_INITIAL_CLUSTER}\" --initial-cluster-state=\"${ETCD_INITIAL_CLUSTER_STATE}\""
  11. Restart=on-failure
  12. LimitNOFILE=65536

  13. [Install]
  14. WantedBy=multi-user.target
etcd.conf 配置文件( https://github.com/coreos/etcd/blob/master/etcd.conf.yml.sample


点击(此处)折叠或打开

  1. # [member]
  2. ETCD_NAME=k8s_master
  3. ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
  4. ETCD_LISTEN_PEER_URLS="http://120.25.154.90:2380"
  5. ETCD_LISTEN_CLIENT_URLS="http://120.25.154.90:2379,http://127.0.0.1:2379"

  6. # [cluster]
  7. ETCD_INITIAL_ADVERTISE_PEER_URLS="http://120.25.154.90:2380"
  8. ETCD_INITIAL_CLUSTER="k8s_master=http://120.25.154.90:2380,k8s_node1=http://120.25.220.176:2380,k8s_node2=http://112.74.105.178:2380"
  9. ETCD_INITIAL_CLUSTER_STATE="new"
  10. ETCD_INITIAL_CLUSTER_TOKEN="k8s-etcd-cluster"
  11. ETCD_ADVERTISE_CLIENT_URLS="http://120.25.154.90:2379"
5.启动 通过systemctl start命令启动etcd服务,同时使用systemctl enable 命令将服务加入开机启动列表中

systemctl     daemon-reload
systemctl     enable    etcd.service
systemctl     start       etcd.service

6.启动结果查询



四:Etcd配置参数说明( https://coreos.com/etcd/docs/latest/op-guide/configuration.html


点击(此处)折叠或打开

  1. Etcd的参数配置方式有两种,一种是命令行的方式,一种是环境变量的方式。命令行方式的优先级高于环境变量的方式。

  2. Etcd默认2379端口处理客户端的请求;2380端口用于集群各成员间的通信。

  3. #[member]

  4. -name 或 ETCD_NAME:

  5. 指定当前etcd成员的名称 默认值为"default",通常用户Hostname来命名。

  6. -data-dir或ETCD_DATA_DIR:

  7. etcd数据文件目录,默认是“${name}.etcd”

  8. –snapshot-count或ETCD_SNAPSHOT_COUNT:

  9. 指定多少次commit操作会触发一次磁盘快照,默认值是10000

  10. –heartbeat-interval或 ETCD_ELECTION_TIMEOUT:

  11. 心跳信号间隔,毫秒级,默认是100毫秒。

  12. –listen-peer-urls或 ETCD_LISTEN_PEER_URLS

  13. 用于监听集群中其他成员的发送信息的地址。默认值是“http://localhost:2380”

  14. –listen-client-urls或ETCD_LISTEN_CLIENT_URLS:
  15. 用于监听客户端发来的信息的地址,默认值是“http://localhost:2379”

  16. –max-snapshots或ETCD_MAX_SNAPSHOTS
  17. 镜像文件的最大个数,默认是5.0表示无限制

  18. –max-wals或ETCD_MAX_WALS:

  19. #[cluster]
  20. –initial-advertise-peer-urls或 ETCD_INITIAL_ADVERTISE_PEER_URLS:
  21. 集群中各节点相互通信的地址。

  22. –initial-cluster或ETCD_INITIAL_CLUSTER:
  23. 初始集群由哪些成员组成 默认值是“efault=http://localhost:2380”

  24. –initial-cluster-state或ETCD_INITIAL_CLUSTER_STATE:
  25. 集群的初始状态,其值有“new”和“existing”,默认为“new”

  26. –initial-cluster-token:ETCD_INITIAL_CLUSTER_TOKEN:

  27. 集群名称

  28. –advertise-client-urls或ETCD_ADVERTISE_CLIENT_URLS:

  29. 客户端与集群通信地址


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28624388/viewspace-2140242/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/28624388/viewspace-2140242/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值