当前位置: 首页 > news >正文

(四)搭建容器云管理平台笔记—安装ETCD(不使用证书)

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

一、参考介绍

etcd是什么?

A highly-available key value store for shared configuration and service discovery.

是一个用作分布式共享配置和服务发现的高可用键值对(强一致性)存储仓库

根据它的定义,它最主要场景在于:

1. 分布式系统的配置共享问题

2. 分布式系统的服务发现问题

 

二、部署

kubernetes使用etcd组件作为它状态控制组件,在部署的时候如果只单etcd模式,通常与master安装在一台机器

1. 下载

选择最新文档版Etcd v3.2.13 https://github.com/coreos/etcd/releases

CentOs75下载选择:

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

解压缩后目录结构如下:

drwxrwxr-x. 11 1000 1000 4096 Jan 3 06:01 Documentation

-rwxrwxr-x. 1 1000 1000 17829696 Jan 3 06:01 etcd

-rwxrwxr-x. 1 1000 1000 15246720 Jan 3 06:01 etcdctl

-rw-rw-r--. 1 1000 1000 33849 Jan 3 06:01 README-etcdctl.md

-rw-rw-r--. 1 1000 1000 5801 Jan 3 06:01 README.md

-rw-rw-r--. 1 1000 1000 7855 Jan 3 06:01 READMEv2-etcdctl.md

将etcd、etcdctl复制到/usr/bin目录

# cp etcd /usr/bin

# cp etcdctl /usr/bin



#chmod 777 /usr/bin/etcd

#chmod 777 /usr/bin/etcdctl

注意:二进制安装没有etcd.conf文件,需要自己参考官方编写,如果是yum安装则会自动帮你生成一份conf文件。

#使用yum安装

yum install -y etcd

mkdir /opt/etcd

2. 修改环境变量

添加环境变量,指定客户端工具etcdctl使用api v3和服务器程序etcd进行通信。

#export ETCDCTL_API=3

 

3.设置systemd服务文件(单机模式,非集群模式)

在/etc/systemd/system/目录里创建etcd.service,其内容如下:

[Unit]

Description=etcd.service

[Service]

Type=notify

TimeoutStartSec=0

Restart=always

WorkingDirectory=/var/lib/etcd

EnvironmentFile=--/etc/etcd/etcd.conf

ExecStart=/usr/bin/etcd

[Install]

WantedBy=multi-user.target

其中WorkingDirectory为etcd数据库目录,需要在etcd安装前创建

# mkdir /var/lib/etcd

最好连/var/lib/etcd/etcd.conf一并创建,即便是空文件

注意:EnvironmentFile=--/etc/etcd/etcd.conf 这个路径,如果是yum安装也是默认这个路径

单机简版配置:

ETCD_NAME=ETCD Server

ETCD_DATA_DIR="/var/lib/etcd/"

ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"

ETCD_ADVERTISE_CLIENT_URLS="http://192.168.137.3:2379"

4. 设置开机启动

#systemctl daemon-reload

#systemctl enable etcd.service

#systemctl start etcd.service

 

问题:启动报“status=203/EXEC” 错误,启动报失败

操作:chmod 777 修改执行文件权限,预先创建好/var/lib/etcd目录及其/var/lib/etcd/etcd.conf文件

 

5. 检查是否成功启动

命令1:# systemctl status etcd

命令2:# etcdctl cluster-health

# etcdctl member list 查看集群状态

结果:member 8e9e05c52164694d is healthy: got healthy result from http://localhost:2379

注意:如果etcd.conf 为空文件,那么etcd使用默认配置

参考配置文件etcd.conf

#[Member]

ETCD_DATA_DIR="/var/lib/etcd/etcd1"

ETCD_LISTEN_PEER_URLS="http://192.168.80.130:2380"

ETCD_LISTEN_CLIENT_URLS="http://192.168.80.130:2379,http://127.0.0.1:2379"

ETCD_NAME="member1"

#[Clustering]

ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.80.130:2380"

ETCD_ADVERTISE_CLIENT_URLS="http://192.168.80.130:2379"

ETCD_INITIAL_CLUSTER="member1=http://192.168.80.130:2380,member2=http://192.168.80.131:2380,memb

er3=http://172.18.2.23:2380"

ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"

ETCD_INITIAL_CLUSTER_STATE="new"

#etcd2与etcd3配置文同上,需修改ip为自己的ip

注意:Clustering 为集群配置

这里的 ETCD_DATA_DIR 与 etcd.service 的 WorkingDirectory 是不一样的

 

6. 搭建etcd集群

单机参考:http://blog.csdn.net/chen798213337/article/details/78501042 (经配置OK)

集群参考:http://blog.csdn.net/chenhaifeng2016/article/details/71122886

主要是通过配置etcd.service来实现节点之间的互相监听

例如:

# set GOMAXPROCS to number of processors

ExecStart=/usr/local/src/etcd-v3.1.7-linux-amd64/etcd \

--name infra0 \

--initial-advertise-peer-urls http://10.0.0.201:2380 \

--listen-client-urls http://10.0.0.201:2379,http://127.0.0.1:2379 \

--listen-peer-urls http://10.0.0.201:2380 \

--advertise-client-urls http://10.0.0.201:2379 \

--initial-cluster-token etcd-cluster1 \

--initial-cluster infra0=http://10.0.0.201:2380,infra1=http://10.0.0.202:2380,infra2=http://10.0.0.203:2380 \

--initial-cluster-state new

从github可以看到 official etcd ports are 2379 for client requests, and 2380 for peer communication.

 

 

 

 

 

 

 

 

 

 

 

转载于:https://my.oschina.net/pagecorrect/blog/1635918

相关文章:

  • vuex入门
  • zookeeper集群的安装
  • Godot-3D教程-02.3D性能和局限性
  • markdown编写技巧
  • vuex 存值 及 取值 的操作
  • java的IO流的一些测试
  • 扒一扒,你有多少校友在阿里?实习就来阿里云。
  • LVS+keepalived+nginx
  • 0/1背包经典例题 入门动态规划
  • HDU 2242 考研路茫茫——空调教室(边双连通)
  • Inno 安装前检测.net framework 4.0
  • MySQL5.7 添加用户、删除用户与授权
  • Puppeteer:浏览器控制器
  • Centos 如何双击执行可执行程序
  • 大幕已拉开,人工智能离我们还有多远?
  • 分享的文章《人生如棋》
  • 【翻译】babel对TC39装饰器草案的实现
  • Elasticsearch 参考指南(升级前重新索引)
  • export和import的用法总结
  • iOS 颜色设置看我就够了
  • Java 网络编程(2):UDP 的使用
  • magento 货币换算
  • Map集合、散列表、红黑树介绍
  • PhantomJS 安装
  • tensorflow学习笔记3——MNIST应用篇
  • 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  • 基于组件的设计工作流与界面抽象
  • 前嗅ForeSpider中数据浏览界面介绍
  • 如何在GitHub上创建个人博客
  • 用mpvue开发微信小程序
  • 原生 js 实现移动端 Touch 滑动反弹
  • 如何正确理解,内页权重高于首页?
  • 数据可视化之下发图实践
  • ​​​​​​​​​​​​​​汽车网络信息安全分析方法论
  • #Java第九次作业--输入输出流和文件操作
  • #pragma once与条件编译
  • #微信小程序(布局、渲染层基础知识)
  • #我与Java虚拟机的故事#连载07:我放弃了对JVM的进一步学习
  • (1)(1.9) MSP (version 4.2)
  • (二)丶RabbitMQ的六大核心
  • (附源码)基于SpringBoot和Vue的厨到家服务平台的设计与实现 毕业设计 063133
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (新)网络工程师考点串讲与真题详解
  • (转)shell中括号的特殊用法 linux if多条件判断
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • .mkp勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET : 在VS2008中计算代码度量值
  • .Net core 6.0 升8.0
  • .Net Core缓存组件(MemoryCache)源码解析
  • .NET MVC之AOP
  • .Net 中Partitioner static与dynamic的性能对比
  • .NET国产化改造探索(一)、VMware安装银河麒麟
  • [1525]字符统计2 (哈希)SDUT
  • [android学习笔记]学习jni编程
  • [ARC066F]Contest with Drinks Hard