在centos上,是可以直接使用yum安装etcd的:

# yum list | grep etcd
etcd.x86_64 3.2.9-3.el7 @extras

但是,在debian上却没有安装包,所以就只能手动安装了,不过也很简单。

可以找台centos的机器,安装好之后把配置文件拿过来套用一下就好了。

etcd version: 3.2.9

OS version: debian stretch

三个etcd节点:

etcd0     192.168.5.42
etcd1 192.168.5.104
etcd2 192.168.5.105

1、下载软件包并解压

# wget https://github.com/coreos/etcd/releases/download/v3.2.9/etcd-v3.2.9-linux-arm64.tar.gz
# tar xvf etcd-v3.2.9-linux-arm64.tar.gz
# cd etcd-v3.2.9-linux-amd64/
# cp -a etcd etcdctl /usr/bin/

2、创建unit文件,该文件三个节点相同,复制到每个节点即可

# vim /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/etcd [Service]
Type=notify
WorkingDirectory=/var/lib/etcd/
EnvironmentFile=-/etc/etcd/10-etcd.conf
User=root
# set GOMAXPROCS to number of processors
ExecStart=/bin/bash -c "GOMAXPROCS=$(nproc) /usr/bin/etcd --name=\"${ETCD_NAME}\" \
--data-dir=\"${ETCD_DATA_DIR}\" \
--listen-client-urls=\"${ETCD_LISTEN_CLIENT_URLS}\" \
--initial-advertise-peer-urls=\"${ETCD_INITIAL_ADVERTISE_PEER_URLS}\" \
--listen-peer-urls=\"${ETCD_LISTEN_PEER_URLS}\" \
--advertise-client-urls=\"${ETCD_ADVERTISE_CLIENT_URLS}\" \
--initial-cluster-token=\"${ETCD_INITIAL_CLUSTER_TOKEN}\" \
--initial-cluster=\"${ETCD_INITIAL_CLUSTER}\" \
--initial-cluster-state=\"${ETCD_INITIAL_CLUSTER_STATE}\""
Restart=on-failure
LimitNOFILE=65536
RestartSec=5s [Install]
WantedBy=multi-user.target

3、创建配置文件,这里每个节点有所不同(实例名称和IP不一样)

# vim /etc/etcd/10-etcd.conf
ETCD_NAME=etcd0
ETCD_DATA_DIR="/var/lib/etcd"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.5.42:2380"
ETCD_LISTEN_PEER_URLS="http://192.168.5.42:2380"
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
ETCD_ADVERTISE_CLIENT_URLS="http://0.0.0.0:2379"
ETCD_INITIAL_CLUSTER_TOKEN="my-etcd-token"
ETCD_INITIAL_CLUSTER="etcd0=http://192.168.5.42:2380,etcd1=http://192.168.5.104:2380,etcd2=http://192.168.5.105:2380"
ETCD_INITIAL_CLUSTER_STATE="new"
# vim /etc/etcd/10-etcd.conf
ETCD_NAME=etcd1
ETCD_DATA_DIR="/var/lib/etcd"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.5.104:2380"
ETCD_LISTEN_PEER_URLS="http://192.168.5.104:2380"
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
ETCD_ADVERTISE_CLIENT_URLS="http://0.0.0.0:2379"
ETCD_INITIAL_CLUSTER_TOKEN="my-etcd-token"
ETCD_INITIAL_CLUSTER="etcd0=http://192.168.5.42:2380,etcd1=http://192.168.5.104:2380,etcd2=http://192.168.5.105:2380"
ETCD_INITIAL_CLUSTER_STATE="new"
# vim /etc/etcd/10-etcd.conf
ETCD_NAME=etcd2
ETCD_DATA_DIR="/var/lib/etcd"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.5.105:2380"
ETCD_LISTEN_PEER_URLS="http://192.168.5.105:2380"
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
ETCD_ADVERTISE_CLIENT_URLS="http://0.0.0.0:2379"
ETCD_INITIAL_CLUSTER_TOKEN="my-etcd-token"
ETCD_INITIAL_CLUSTER="etcd0=http://192.168.5.42:2380,etcd1=http://192.168.5.104:2380,etcd2=http://192.168.5.105:2380"
ETCD_INITIAL_CLUSTER_STATE="new"

4、启动服务。这里要说一下的是,集群模式下,单独起一个节点的时候会挂起等待选举,而且等待超时之后服务状态是failed,不过其实服务已经正常启动了。为了防止这种情况,在超时时间之内把三个节点都启动就好了。这个超时时间也是可以设置的,以及如果超时服务状态failed时,只需要在三个节点都启动后再重启一次服务状态就正常了。

# systemctl daemon-reload
# systemctl start etcd && systemctl enable etcd

5、验证集群状态

# etcdctl member list
93ac7045b7c80fe2, started, etcd2, http://192.168.5.105:2380, http://0.0.0.0:2379
cceea3802386922f, started, etcd1, http://192.168.5.104:2380, http://0.0.0.0:2379
e1f394bfa58b2a7f, started, etcd0, http://192.168.5.42:2380, http://0.0.0.0:2379

也可以通过curl访问:

# curl http://192.168.6.15:2379/v2/members
{"members":[{"id":"93ac7045b7c80fe2","name":"etcd2","peerURLs":["http://192.168.5.105:2380"],"clientURLs":["http://0.0.0.0:2379"]},{"id":"cceea3802386922f","name":"etcd1","peerURLs":["http://192.168.5.104:2380"],"clientURLs":["http://0.0.0.0:2379"]},{"id":"e1f394bfa58b2a7f","name":"etcd0","peerURLs":["http://192.168.5.42:2380"],"clientURLs":["http://0.0.0.0:2379"]}]}

debian9使用systemd部署etcd集群的更多相关文章

  1. 部署etcd集群

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

  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后台数据库etcd:安装部署etcd集群,数据备份与恢复

    目录 一.系统环境 二.前言 三.etcd数据库 3.1 概述 四.安装部署etcd单节点 4.1 环境介绍 4.2 配置节点的基本环境 4.3 安装部署etcd单节点 4.4 使用客户端访问etcd ...

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

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

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

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

  7. 基于 DNS 动态发现方式部署 Etcd 集群

    使用discovery的方式来搭建etcd集群方式有两种:etcd discovery和DNS discovery.在 「基于已有集群动态发现方式部署etcd集群」一文中讲解了etcd discove ...

  8. 基于Docker部署ETCD集群

    基于Docker部署ETCD集群 关于ETCD要不要使用TLS? 首先TLS的目的是为了鉴权为了防止别人任意的连接上你的etcd集群.其实意思就是说如果你要放到公网上的ETCD集群,并开放端口,我建议 ...

  9. 一键部署ETCD集群脚本

    这里使用三个节点,系统版本为CentOS7 # vim deploy-etcd.sh #!/bin/bash set -x set -e #更改这里的IP, 只支持部署3个节点etcd集群 decla ...

随机推荐

  1. Android开发——Android中的二维码生成与扫描

    0. 前言 今天这篇文章主要描述二维码的生成与扫描,使用目前流行的Zxing,为什么要讲二维码,因为二维码太普遍了,随便一个Android APP都会有二维码扫描.本篇旨在帮助有需求的同学快速完成二维 ...

  2. Windows下面的常用的快捷键

    最小化的快捷键: 最小化当前窗口:Alt+ESC 还原刚刚最小化的窗口:Alt+Tab(次快捷键组合可以在多个窗口中切换) 显示桌面,切换之前的桌面:Win+D   在浏览器页面之间切换:Ctrl+T ...

  3. Flutter - 创建侧滑菜单(不使用navigatior,仅改变content)

    之前写过一篇文章,Flutter - 创建横跨所有页面的侧滑菜单.这个里面中使用了Navigator.of(context).push来导航到新的页面. 这次介绍一种不使用导航,仅仅改变content ...

  4. Asp.Net_序列化、反序列化

    .net序列化及反序列化 在我们深入探讨C#序列化和反序列化之前我们先要明白什么是序列化,它又称串行化,是.NET运行时环境用来支持用户定义类型的流化的机制.序列化就是把一个对象保存到一个文件或数据库 ...

  5. liunx总结题

    一.            简述什么是Linux内核,这个学期学了Linux课程的哪些内容.(10分) Linux内核诞生于1991年,由芬兰学生Linus Torvalds(林纳斯.托瓦斯)发起,那 ...

  6. c语言数字图像处理(一):bmp图片格式及灰度图片转换

    本篇文章首先介绍了bmp图片格式,主要参考wiki上的内容,包括bmp文件的存储方式,对于一些常见的bmp文件格式都给了例子,并且对8位 16位RGB555 16位RGB565格式的bmp文件进行了简 ...

  7. MIT-6.828-JOS-lab3:User Environments

    Lab 3: User Environments实验报告 tags:mit-6.828 os 概述: 本文是lab3的实验报告,主要介绍JOS中的进程,异常处理,系统调用.内容上分为三部分: 用户环境 ...

  8. hive orc压缩数据异常java.lang.ClassCastException: org.apache.hadoop.io.Text cannot be cast to org.apache.hadoop.hive.ql.io.orc.OrcSerde$OrcSerdeRow

    hive表在创建时候指定存储格式 STORED AS ORC tblproperties ('orc.compress'='SNAPPY'); 当insert数据到表时抛出异常 Caused by: ...

  9. 《Linux内核分析》第一周学习小结 计算机是如何工作的?

    <Linux内核分析>第一周.计算机是如何工作的? 20135204 郝智宇  一.存储程序计算机工作模型 1.      冯诺依曼体系结构: 数字计算机的数制采用二进制:计算机应该按照程 ...

  10. Linux内核分析作业三

    构造一个简单的Linux系统MenuOS 复习 计算机三大法宝 存储程序计算机 函数调用堆栈 中断 操作系统两把宝剑 中断上下文的切换 进程上下文的切换 一.Linux内核源代码简介 函数目录 Lin ...