etcd

YUM仓库在线简易安装单节点K8S(纯实战)

核能气质少年 提交于 2020-02-04 11:45:19
使用YUM仓库在线简易安装单节点K8S 实验环境: 使用系统:centos7.4 名称 角色 IP地址 centos7-min2 master 192.168.142.220 centos7-4 node 192.168.142.136 实验实施步骤: 一、配置步骤目录 master端配置 node端配置 实验结果检查 二、master端配置 使用yum仓库安装atcd数据库、kubernetes组件、flannel网络组件 [root@master ~]# yum install -y etcd kubernetes flannel 修改etcd配置文件 [root@master ~]# vim /etc/etcd/etcd.conf //按照下图进行修改 ETCD_DATA_DIR="/var/lib/etcd/default.etcd" //数据文件存放路径 ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379" //对外提供服务的地址 ETCD_NAME="default" ETCD_ADVERTISE_CLIENT_URLS="http://localhost:2379" //该节点客户端监听地址 修改apiserver配置文件 [root@master ~]# vim /etc/kubernetes/apiserver /

etcd 基本原理

匆匆过客 提交于 2020-02-03 12:27:25
经典应用场景 服务发现 动态添加微服务 多实例的透明访问与故障重启透明化 使得API网关也成为无状态服务,便于水平扩容 消息订阅与发布 负载均衡 分布式通知 心跳检测,任务汇报,系统调度等 分布式锁 分布式队列(并发控制) 分布式选主(master节点的高可用) 通常情况下分布式系统和 Master 都是有状态逻辑的,无法允许多个 Master 同时运行 可以通过 etcd 来实现选主,将其中的一个 Master 选主成 Leader,负责控制整个集群中所有 Slave 的状态 当 Leader 节点发生异常之后,通过 etcd 能够选取出一个新的节点成为主节点,并且注册新的 IP 之后,Slave 又能够拉取新的主节点的 IP,从而会继续恢复服务 实现原理 架构 HTTP Server 处理API请求与心跳和同步消息 Store 大多数功能的具体实现 包括数据索引,节点状态变更,监控与反馈等 Raft 强一致性算法的现实 WAL(write ahead log) 储存数据在内存并进行持久化储存 处理过程 HTTP Server接受请求并转发给store进行处理 如果涉及节点修改,则交给raft进行状态变更、日志记录 然后同步给其他节点以确认数据提交 最后提交数据,并再次同步 集群部署 由于raft算法需要多数节点投票,因此etcd部署时推荐 奇数 个节点构成集群 高可用

K8S集群安装 之 安装主控节点etcd服务

无人久伴 提交于 2020-02-03 00:34:34
一、在根证书服务器上创建基于根证书的config配置文件 200 certs]# cd /opt/certs/ 200 certs]# vi /opt/certs/ca-config.json { "signing": { "default": { "expiry": "175200h" }, "profiles": { "server": { "expiry": "175200h", "usages": [ "signing", "key encipherment", "server auth" ] }, "client": { "expiry": "175200h", "usages": [ "signing", "key encipherment", "client auth" ] }, "peer": { "expiry": "175200h", "usages": [ "signing", "key encipherment", "server auth", "client auth" ] } } } } 二、创建etcd自签证书签名请求csr的json配置文件 200 certs]# vi etcd-peer-csr.json { "CN": "k8s-etcd", "hosts": [ "10.3.153.212", "10.3.153.221", "10.3.153

【汇智学堂】ETCD环境搭建

爷,独闯天下 提交于 2020-01-31 22:52:09
ETCD环境搭建 我们开始搭建阅读etcd源码的环境,推荐使用Goland。 环境变量 首先需要从Golang官网上下载最新的Golang包,下载完成后进行解压。打开~/.bash_profile文件,添加如下内容,配置环境变量: export GOROOT = / Users / xxx / Documents / go export GOBIN = $GOROOT / bin export GOARCH = amd64 export GOOS = darwin export GOPATH = / Users / xxx / Documents / GoProject export PATH = $PATH : $GOBIN : $GOPATH / bin 最后执行“source .bash_profile”命令编译配置文件。通过“go env”命令验证变量配置是否成功。 代码结构 下载etcd的源代码: go get github.com/coreos/etcd/cmd/etcd 下载完成后,将代码直接导入Goland中。各个模块的主要功能,如下: raft:Raft协议的核心实现。 raft-http:Raft协议中各个节点发送消息时使用的网络层实现。 wal和snap:WAL日志和快照存储相关的实现。 store:etcd中的v2版本存储实现。 mvcc

docker可视化集中管理工具shipyard安装部署

本秂侑毒 提交于 2020-01-30 13:31:53
转载自 https://www.cnblogs.com/heyongboke/p/10837503.html Shipyard是在Docker Swarm实现对容器、镜像、docker集群、仓库、节点进行管理的web系统。 1.Shipyard功能 1 Shipyard是一个集成管理docker容器、镜像、Registries的系统,它可以简化对横跨多个主机的Docker容器集群进行管理. 通过Web用户界面,你可以大致浏览相关信息,比如你的容器在使用多少处理器和内存资源、在运行哪些容器,还可以检查所有集群上的事件日志。 2.Shipyard特点: 1 2 3 4 支持多节点的集成管理; 支持镜像、容器、节点管理等功能; 可视化的容器管理和监控管理; 可动态加载节点。 3.Shipyard几个概念 1)engine 1 一个shipyard管理的docker集群可以包含一个或多个engine(引擎),一个engine就是监听tcp端口的dockerdaemon。shipyard管理docker daemon、images、containers完全基于<br>Docker API,不需要做其他的修改。另外,shipyard可以对每个engine做资源限制,包括CPU和内存;因为TCP监听相比Unix socket方式会有一定的安全隐患,所以shipyard还支持通过<br

etcd

一个人想着一个人 提交于 2020-01-30 01:00:03
随着CoreOS和Kubernetes等项目在开源社区日益火热,它们项目中都用到的etcd组件作为一个 高可用、强一致性的服务发现存储仓库 ,渐渐为开发人员所关注。在云计算时代,如何让服务快速透明地接入到计算集群中,如何让共享配置信息快速被集群中的所有机器发现,更为重要的是,如何构建这样一套高可用、安全、易于部署以及响应快速的服务集群,已经成为了迫切需要解决的问题。etcd为解决这类问题带来了福音,本文将从etcd的应用场景开始,深入解读etcd的实现方式,以供开发者们更为充分地享用etcd所带来的便利。 etcd 是一个高可用的 Key/Value 存储系统,主要用于分享配置和服务发现。etcd 的灵感来自于 ZooKeeper 和 Doozer,側重于: 简单 :支持 curl 方式的用户 API (HTTP+JSON) 安全 :可选 SSL client证书认证 高速 :单实例可达每秒 1000 次写操作 可靠 :使用 Raft 实现分布式 Etcd is written in Go and uses the raft consensus algorithm to manage a highly-available replicated log. 经典应用场景 要问etcd是什么?很多人第一反应可能是一个键值存储仓库,却没有重视官方定义的后半句,用于 配置共享和服务发现 。

Golang ETCD包的安装使用

|▌冷眼眸甩不掉的悲伤 提交于 2020-01-29 09:23:40
ETCD 日志收集项目 为什么要自己写不用ELK? ELK: 部署的时候麻烦每一个filebeat都需要配置一个配置文件 使用etcd来管理被收集的日志项。 项目的架构 上节课项目进度 kafka:消息队列 tailf:从文件里读日志 go-ini:解析配置文件 今日内容 etcd etcd介绍 详见群文件:etcd.pdf http://www.5lmh.com/%E6%95%B0%E6%8D%AE%E5%BA%93%E6%93%8D%E4%BD%9C/go%E6%93%8D%E4%BD%9Cetcd/%E6%93%8D%E4%BD%9Cetcd.html 安装etcd 详见:https://docs.qq.com/doc/DTndrQXdXYUxUU09O Ubuntu安装etcd 下载: etcd-v3.3.18-linux-amd64 解压文件即可使用,无需安装 go操作etcd 命令行操作:使用自带的 etcdctl 注意一定要使用V3版本的API 先设置环境变量: SET ETCDCTL_API=3 // Windows export ETCDCTL_API=3 // Mac&Linux 启动服务端 进入安装目录中 /usr/local/etcd-v3.3.18-linux-amd64 root@haima-PC:/usr/local/etcd-v3.3.18

kubernetes-flannel

风流意气都作罢 提交于 2020-01-29 04:09:42
在多个Node组成的Kubernetes集群内,跨主机的容器间网络互通是Kubernetes集群能够正常工作的前提条件。Kubernetes本身并不会对跨主机容器网络进行设置,这需要额外的工具来实现,开源工具flannel,Open vSwitch,Weave,Calico等都能实现跨主机的容器之间网络互通, 1. flannel(覆盖网络) flannel采用覆盖网络(Overlay Network)模型来完成对网络的打通 1.1 安装etcd 由于flannel使用etcd作为数据库,需要安装etcd https://blog.csdn.net/wanchaopeng/article/details/102912191 设置etcd为外网访问http://192.168.1.53:6379 1.2 安装flannel 需要在每台node上安装flannel,falnnel下载地址为 https://github.com/coreos/flannel/releases 下载压缩包flannel-<version>-linux-amd64.tar.gz解压,把二进制文件flanneld和mk-docker-opts.sh复制到/usr/bin(或其他PATH环境变量中的目录),即可完成对flannel的安装。 [root@node_01 /home/tools]# mv

Kubeadm搭建Kubernetes v1.17.0 集群

有些话、适合烂在心里 提交于 2020-01-28 03:22:24
Kubeadm搭建k8s集群 kubernets架构图 一.kubeadm部署kubernetes v1.17.0 集群 1.环境准备 2.角色 3.初始化(注意:全部的主机) 3.1 关闭防火墙 3.2 关闭selinux 3.2 关闭swap分区 3.3 设置主机名 3.4 配置hosts 3.5 内核调整 4. 安装kubernets和docker 4.1 添加docker的yum源 4.2 添加kubernets的yum源 4.3 安装docker kubelet kubeadm kubelectl 4.3 开启docker 4.4 开启kubelet 5. Master节点(192.168.3.71)启动集群 6. Node节点(192.168.3.72)加入集群 7. 集群检查 7.1 检查集群节点 7.2 检查pod状态 kubernets架构图 一.kubeadm部署kubernetes v1.17.0 集群 1.环境准备 系统版本:Centos7.4 硬件需求:CPU至少2核,内存至少2G 2.角色 ip 角色 安装软件 192.168.3.71 k8s-master kube-apiserver kube-schduler kube-controller-manager docker flannel kubelet 192.168.3.72 k8s-node1

SpringCloud教程-注册中心(Consul)(SpringCloud版本Greenwich.SR4)

旧时模样 提交于 2020-01-27 08:13:35
文章目录 consul简介 Consul 的优势: 创建工程consul-client 代码地址: github-spring-cloud地址 consul简介 Consul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置。与其它分布式服务注册与发现的方案,Consul 的方案更“一站式”,内置了服务注册与发现框 架、分布一致性协议实现、健康检查、Key/Value 存储、多数据中心方案,不再需要依赖其它工具(比如 ZooKeeper 等)。使用起来也较 为简单。Consul 使用 Go 语言编写,因此具有天然可移植性(支持Linux、windows和Mac OS X);安装包仅包含一个可执行文件,方便部署,与 Docker 等轻量级容器可无缝配合。 Consul 的优势: 使用 Raft 算法来保证一致性, 比复杂的 Paxos 算法更直接. 相比较而言, zookeeper 采用的是 Paxos, 而 etcd 使用的则是 Raft。 支持多数据中心,内外网的服务采用不同的端口进行监听。 多数据中心集群可以避免单数据中心的单点故障,而其部署则需要考虑网络延迟, 分片等情况等。 zookeeper 和 etcd 均不提供多数据中心功能的支持。 支持健康检查。 etcd 不提供此功能。 支持 http 和 dns 协议接口。 zookeeper