kuberntes 系统使用 etcd 存储所有数据,本文档介绍部署一个三节点高可用 etcd 集群的步骤,这三个节点配置复用 ,我在这里没有做认证,如果有需要也可以做。

下载二进制文件

https://github.com/coreos/etcd/releases 页面下载最新版本的二进制文件

# wget https://github.com/etcd-io/etcd/releases/download/v3.2.24/etcd-v3.2.24-linux-amd64.tar.gz

# tar –xvf etcd-v3.2.24-linux-amd64.tar.gz

# mv etcd-v3.2.24-linux-amd64/* /usr/local/bin/

**********************************************************

这里也可以用yum方式安装

# yum install etcd –y
 
yum 安装的 Etcd 默认配置文件在 /etc/etcd/etcd.conf具体配置内容,以下*.*.*.*根据自己实际ip地址。
 
# 编辑配置文件 vim /etc/etcd/etcd.conf 
# 样例配置如下 
# 节点名称 ETCD_NAME=etcd0 
# 数据存放位置 ETCD_DATA_DIR="/var/lib/etcd/etcd0" 
# 监听其他 Etcd 实例的地址 ETCD_LISTEN_PEER_URLS="http://0.0.0.0:2380" 
# 监听客户端地址 ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379,http://0.0.0.0:4001" 
# 通知其他 Etcd 实例地址 ETCD_INITIAL_ADVERTISE_PEER_URLS="http://*.*.*.*:2380" 
# 初始化集群内节点地址 ETCD_INITIAL_CLUSTER="etcd0=http://*.*.*.*:2380,etcd1=http://*.*.*.*:2380,etcd2=http://*.*.*.*:2380" 
# 初始化集群状态,new 表示新建 ETCD_INITIAL_CLUSTER_STATE="new" 
# 初始化集群 token ETCD_INITIAL_CLUSTER_TOKEN="mritd-etcd-cluster" 
# 通知 客户端地址 ETCD_ADVERTISE_CLIENT_URLS="http://*.*.*.*:2379,http://*.*.*.*:4001"
 
************************************************************
 
在/usr/lib/systemd/system/目录下创建文件etcd.service,内容如下
 

[Unit]

Description=Etcd Server

After=network.target

After=network-online.target

Wants=network-online.target

Documentation=https://github.com/coreos

[Service]

Type=notify

WorkingDirectory=/var/lib/etcd/

EnvironmentFile=-/etc/etcd/etcd.conf

ExecStart=/usr/local/bin/etcd \
   --name ${ETCD_NAME} \
   --initial-advertise-peer-urls ${ETCD_INITIAL_ADVERTISE_PEER_URLS} \
   --listen-peer-urls ${ETCD_LISTEN_PEER_URLS} \
   --listen-client-urls ${ETCD_LISTEN_CLIENT_URLS},http://127.0.0.1:2379 \
   --advertise-client-urls ${ETCD_ADVERTISE_CLIENT_URLS} \
   --initial-cluster-token ${ETCD_INITIAL_CLUSTER_TOKEN} \
   --initial-cluster etcd1=http://172.16.*.*:2380,etcd2=http://172.16.*.*:2380,etcd3=http://172.16.*.*:2380 \
   --initial-cluster-state new \
   --data-dir=${ETCD_DATA_DIR}

Restart=on-failure

RestartSec=5

LimitNOFILE=65536

[Install]

WantedBy=multi-user.target

环境变量配置文件/etc/etcd/etcd.conf

# [member]

ETCD_NAME=etcd1

ETCD_DATA_DIR="/var/lib/etcd"

ETCD_LISTEN_PEER_URLS=http://172.16.*.*:2380

ETCD_LISTEN_CLIENT_URLS=http://172.16.*.*:2379

#[cluster]

ETCD_INITIAL_ADVERTISE_PEER_URLS=http://172.16.*.*:2380

ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"

ETCD_ADVERTISE_CLIENT_URLS=http://172.16.*.*:2379

启动etcd集群(这里的启动先启动etcd2和etcd3,最后启动etcd1)

systemctl daemon-reload
systemctl enable etcd
systemctl start etcd
systemctl status etcd
 
验证etcd集群是否正常

etcdctl cluster-health

member 295f11ee2eb4860f is healthy: got healthy result from http://172.16.*.*:2379

member 52e09c7ccb0e79aa is healthy: got healthy result from http://172.16.*.*:2379

member 58804fbff8cfcce0 is healthy: got healthy result from http://172.16.*.*:2379

cluster is healthy

etcdctl member list

295f11ee2eb4860f: name=etcd3 peerURLs=http://172.16.*.*:2380 clientURLs=http://172.16.*.*:2379 isLeader=false

52e09c7ccb0e79aa: name=etcd1 peerURLs=http://172.16.*.*:2380 clientURLs=http://172.16.*.*:2379 isLeader=false

58804fbff8cfcce0: name=etcd2 peerURLs=http://172.16.*.*:2380 clientURLs=http://172.16.*.*:2379 isLeader=true

可以看到etcd集群正常在etcd2上运行,可以停止etcd2查看etcd是否跳到别的机器上,具体自己测试一下就不过多说明

二进制部署etcd集群的更多相关文章

  1. k8s1.13.0二进制部署-ETCD集群(一)

    Kubernetes集群中主要存在两种类型的节点:master.minion节点. Minion节点为运行 Docker容器的节点,负责和节点上运行的 Docker 进行交互,并且提供了代理功能.Ma ...

  2. 2、二进制安装K8s 之 部署ETCD集群

    二进制安装K8s 之 部署ETCD集群 一.下载安装cfssl,用于k8s证书签名 二进制包地址:https://pkg.cfssl.org/ 所需软件包: cfssl 1.6.0 cfssljson ...

  3. suse 12 二进制部署 Kubernetets 1.19.7 - 第02章 - 部署etcd集群

    文章目录 1.2.部署etcd集群 1.2.0.下载etcd二进制文件 1.2.1.创建etcd证书和私钥 1.2.2.生成etcd证书和私钥 1.2.3.配置etcd为systemctl管理 1.2 ...

  4. 二进制部署 Kubernetes 集群

    二进制部署 Kubernetes 集群   提供的几种Kubernetes部署方式 minikube Minikube是一个工具,可以在本地快速运行一个单点的Kubernetes,尝试Kubernet ...

  5. 二进制部署kubernetes集群(上篇)

    1.实验架构 1.1.硬件环境 准备5台2c/2g/50g虚拟机,使用10.4.7.0/24 网络 .//因后期要直接向k8s交付java服务,因此运算节点需要4c8g.不交付服务,全部2c2g足够. ...

  6. 部署etcd集群

    部署etcd集群 第一步:先拉取etcd二进制压缩包 wget https://github.com/coreos/etcd/releases/download/v3.3.2/etcd-v3.3.2- ...

  7. 二进制部署K8S-2集群部署

    二进制部署K8S-2集群部署 感谢老男孩教育王导的公开视频,文档整理自https://www.yuque.com/duduniao/k8s. 因为在后期运行容器需要有大量的物理硬件资源使用的环境是用的 ...

  8. 使用二进制文件部署Etcd集群

    Etcd 是一个分布式键值存储系统,Kubernetes使用Etcd进行数据存储,所以先准备一个Etcd数据库,为解决Etcd单点故障,应采用集群方式部署,这里使用3台组建集群,可容忍1台机器故障,当 ...

  9. 基于已有集群动态发现方式部署 Etcd 集群

    etcd提供了多种部署集群的方式,在「通过静态发现方式部署etcd集群」 一文中我们介绍了如何通过静态发现方式部署集群. 不过很多时候,你只知道你要搭建一个多大(包含多少节点)的集群,但是并不能事先知 ...

随机推荐

  1. mysql 乱码问题的捣鼓

    mysql在ubuntu的终端下出现中文乱码的问题: 先学着在不改数据库的情况下对my.cnf配置文件进行修改, 主要的是设置 default-character-set=utf8 但是设置完后数据库 ...

  2. css3 转换 过渡 及动画

    转换transform: 通过 CSS3 转换,我们能够对元素进行移动.缩放.转动.拉长或拉伸.您可以使用 2D 或 3D 转换来转换您的元素 2D转换属性: transform 向元素应用 2D 或 ...

  3. 卸载Gac里被windows installer所reference的assembly的方法

    HKEY_LOCAL_MACHINE\Software\Classes\Installer\Assemlies\Global下找到要删除的assembly的那一项, 删除. 然后再gacutil /u ...

  4. html 表格边框的设置

    对于很多初学HTML的人来说,表格<table>是最常用的标签了,但对于表格边框的控制,很多初学者却不甚其解. 一般我们用表格的时候总会给它个border属性,比如:<table b ...

  5. solidity语言9

    输入参数 pragma solidity ^0.4.16; contract Simple { function taker(uint _a, uint _b) public pure { // do ...

  6. Ubuntu 14.04默认以字符界面启动

    在windows上跑虚拟机比较资源,特别当以图形界面启动时,如果宿主机性能不好,就相当卡. 让Ubuntu 14.04默认以字符界面启动的方法: 编辑文件:etc/default/grub 将  GR ...

  7. tensorflow 模型不兼容

    [ERROR] [1533570199.196157]: bad callback: <bound method TLDetector.image_cb of <__main__.TLDe ...

  8. ZT acct 中文man页面(1)

    acct 中文man页面(1) 2011-08-18 13:57 佚名 博客转载 我要评论(0) 字号:T | T 如果在内核编译时开启了进程记账选项(CONFIG_BSD_PROCESS_ACCT) ...

  9. c++中的const用法(很详细)——转

    http://www.cnblogs.com/ymy124/archive/2012/04/16/2451433.html const给人的第一印象就是定义常量. (1)const用于定义常量. 例如 ...

  10. Cloud Foundry Session Affinity(Sticky Session)的实现

    会话保持(Session Affinity),有时又称粘滞会话(Sticky Sessions), 是负载均衡领域设计需要着力解决的重要问题之一,也是一个相对比较复杂的问题. 会话保持是指在负载均衡器 ...