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. 【代码笔记】Java文件的输入输出(1)——Java.io包的初步理解

    Java里面文件的输入输出全部在java.io包里面. Java.io包里面所有的类都需要掌握. java.io包里面所有的东西都在上面了. 包里面的相关类.异常等树关系如下 类分层结构 java.l ...

  2. OAuth2.0 入门与进阶

     一.基础知识 1.OAuth产生背景 很多网站.APP 弱化甚至没有搭建自己的账号体系,而是直接使用社会化登录的方式,这样不仅免去了用户注册账号的麻烦.还可以获取用户的好友关系来增强自身的社交功能. ...

  3. java 将long类型的数值转无符号数

    由于JAVA中基本数据类型均为有符号数,而且最大数据类型long为8字节假如long为负数时,最高位为1,转为无符号数时会超出long的取值范围,所以转换规则如下: 方法: public static ...

  4. Jenkins新建节点,启动方式没有“通过Java Web启动代理”选项怎么办?

    在Jenkins中,打开“系统管理”→“管理节点”→“新建节点”页面时,“启动方式”选项没有“通过Java Web启动代理”,怎么办? 打开“系统管理”,进入“全局安全配置”页面. 1. “JNLP代 ...

  5. solidity语言7

    单位和全局变量 Ether Units: wei, finney, szabo, ether Time Units: 1 == 1 seconds 1 minutes == 60 seconds 1 ...

  6. 深入理解linux源码安装三板斧

    概述: 根据源码包中 Makefile.in 文件的指示,configure 脚本检查当前的系统环境和配置选项,在当前目录中生成 Makefile 文件(还有其它本文无需关心的文件),然后 make ...

  7. 利用raphael画图

    raphael是一个js的矢量库,可以js操作DOM可以实现柱形图.走势图等一些基本的图形: 一.使用: 在html中设置<div class="my"></di ...

  8. angularjs filter详解

    过滤器(filter)正如其名,作用就是接收一个输入,通过某个规则进行处理,然后返回处理后的结果. 主要用在数据的格式化上,例如获取一个数组中的子集,对数组中的元素进行排序等. ng内置了一些过滤器, ...

  9. 原生JavaScript实现JSON合并(递归深度合并)

    // 遇到相同元素级属性,以(minor)为准 // 不返还新Object,而是main改变 function mergeJSON(minor, main) { for(var key in mino ...

  10. 遍历目录树 - Unicode 模式

    =info     遍历目录树 支持 Unicode     Code by 523066680@163.com     2017-03         V0.5 使用Win32API判断目录硬链接 ...