etcd

CentOS7搭建kubernetes集群环境

僤鯓⒐⒋嵵緔 提交于 2020-02-29 07:03:56
一、服务器环境准备 192.168.247.128 : k8s-master、etcd、registry 192.168.247.129 : k8s-nodeA 192.168.247.130 : k8s-nodeB 注:安装lsb_release命令:yum install redhat-lsb -y 三台机器配置相同 安装好相同版本的docker: [root @localhost ~]# docker -v Docker version 1.12.6, build 85d7426/1.12.6 三台机器上分别修改hostname: master上运行: [root @localhost ~]# hostnamectl --static set-hostname k8s-master nodeA上运行: [root @localhost ~]# hostnamectl --static set-hostname k8s-nodeA nodeB上运行: [root @localhost ~]# hostnamectl --static set-hostname k8s-nodeB 三台机器上分别配置hosts, 执行如下命令修改hosts文件: echo '192.168.247.128 k8s-master 192.168.247.128 etcd 192.168.247

Windows 下安装使用 Consul

荒凉一梦 提交于 2020-02-28 13:37:50
介绍 Consul 是一个支持多数据中心分布式高可用的服务发现和配置共享的服务软件, 由 HashiCorp 公司用 Go 语言开发, 基于 Mozilla Public License 2.0 的协议进行开源。Consul 支持健康检查, 并允许 HTTP 和 DNS 协议调用 API 存储键值对。 命令行超级好用的虚拟机管理软件 vgrant 也是 HashiCorp 公司开发的产品。一致性协议采用 Raft 算法, 用来保证服务的高可用, 使用 GOSSIP 协议管理成员和广播消息, 并且支持 ACL 访问控制。 详细可以参考:https://my.oschina.net/adairs/blog/1605766 下载安装 去官网下载: https://www.consul.io/downloads.html 得到一个 zip 压缩包 在你想要安装的位置解压就行,只有一个 consul.exe 文件(我的解压位置是:D:\Java\consul\) 通过命令行,进入D:\Java\consul\ 然后cmd 命令窗口启动: C:\>D: D:\>cd D:\Java\consul D:\Java\consul>consul agent -dev consul 自带 UI 界面,打开网址: http://localhost:8500 ,可以看到当前注册的服务界面。 Consul

DevOps专题|玩转Kubernetes网络

南楼画角 提交于 2020-02-27 18:26:13
Kubernetes无疑是当前最火热的容器编排工具,网络是kubernetes中非常重要的一环, 本文主要介绍一些相应的网络原理及术语,以及kubernetes中的网络方案和对比。 Kubernetes本身并不提供网络功能,只是把网络接口开放出来,通过插件的形式实现。为了满足不同的网络功能及需求,使容器在创建或销毁时能够容易地配置容器网络, CNI(Container Network Interface) 应运而生, CNI旨在定义运行时和插件之间的接口,在kubernetes中,CNI连接kubelet和网络插件来为容器配置对应的网络设置。 1 背景 容器网络是容器选择连接到其他容器、主机和外部网络的机制。在kubernetes网络模型设计中,往往需要每个Pod都拥有一个独立的IP地址,而且假定所有的pod都在一个可以直接连通的、扁平的网络空间中。用户不需要额外考虑如何建立Pod之间的连接,也不需要考虑将容器端口映射到主机端口等问题。所有节点都可在不用NAT的方式下同所有容器通讯,容器的地址和别人看到的地址是同一个地址。 2 技术术语 IPAM: IP地址管理;这个IP地址管理并不是容器所特有的,传统的网络比如说DHCP其实也是一种IPAM,到了容器时代我们谈IPAM,主流的两种方法:基于CIDR的IP地址段分配地或者精确为每一个容器分配IP。但总之一旦形成一个容器主机集群之后

docker跨主机通信

扶醉桌前 提交于 2020-02-27 15:35:53
目录 一.环境说明 二.master服务器 三.slave01服务器 四.验证 一.环境说明 操作系统:centos7 docker:19.03.6 主机名 IP地址 类型 root@master 192.168.1.191 masters root@slave01 192.168.1.192 slave01 二.master服务器 [ root@master ~ ] # hostnamectl set-hostname master [ root@master ~ ] # yum install -y yum-utils device-mapper-persistent-data lvm2 [ root@master ~ ] # yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo [ root@master ~ ] # yum makecache fast [ root@master ~ ] # yum -y install docker-ce [ root@master ~ ] # yum install etcd -y [ root@master ~ ] # cp /etc/etcd/etcd.conf /etc/etcd/etcd

K8S etcd参数优化

点点圈 提交于 2020-02-27 11:20:05
etcd配置 etcd 版本由 3.2.9 升级到 3.3.12 (旧版本会出现 rpc timeout 问题) etcd 新增参数配置: --auto-compaction-retention=1 (etcd 每隔一个小时数据压缩一次) --max-request-bytes=10485760 (最大请求字节,默认值 1M,调整为10M) --quota-backend-bytes=8589934592 (最大存储字节,默认值2G,写入超过2G会无法写入,调整为8G) event etcd拆分 node 规模达到 400 时,推荐etcd独立部署会有更小的延迟 [root@master1 ~]# ETCDCTL_API=3 etcdctl --endpoints=localhost:2379 --write-out=table endpoint status +----------------+------------------+---------+---------+-----------+-----------+------------+ | ENDPOINT | ID | VERSION | DB SIZE | IS LEADER | RAFT TERM | RAFT INDEX | +----------------+------------------+-------

合集| 21 篇技术文章,带你从零入门 K8s

只谈情不闲聊 提交于 2020-02-27 05:39:26
关注“阿里巴巴云原生”公众号,回复关键词**“入门”**,即可下载《CNCF x Alibaba 云原生技术公开课》PPT。 由阿里云与 CNCF 共同开发的《CNCF x Alibaba 云原生技术公开课》(视频课程)第一期已**更新完毕。**为了让大家有更好的学习体验,我们把视频课程转为图文,并请讲师重新编辑成文章,在公众号以“从零入门 K8s” 为系列进行每周连载。 本文整理了已发布图文版课程文章 21 篇,期待给正在学习 Kubernetes 的同学提供一些参考。 视频版课程 <br />点击访问:<br /> https://edu.aliyun.com/roadmap/cloudnative 图文版课程 <br />敬请关注阿里巴巴云原生公众号“从零入门 K8s”系列文章! <a name="B1I7r"></a> 图文版课程 课时 1 :第一堂“云原生”课 <br /> 课时 2 :容器基本概念 <br /> 课时 3:Kubernetes 核心概念 <br /> 课时 4:理解 Pod 与容器设计模式 <br /> 课时 5:K8s 的应用编排与管理:核心原理 <br /> 课时 6: 应用配置管理: Deplyment <br /> 课时 7:应用编排与管理:Job & DaemonSet <br /> 课时 8: 应用配置管理 <br /> 课时 9

SEATA 分布式事务入门DEMO

妖精的绣舞 提交于 2020-02-26 16:30:54
> Simple Extensible Autonomous Transacation Architecture, seata 是简单的、可扩展、自主性高的分布式架构 SEATA Server Configure > 因我们使用正式的1.0.0-GA 版本,网上大多数找到的说明都是0.X版本,有不少变动,比如,在server中取消了db_store.sql的脚本,如找不到相关内容,可以通过源码来查找,比如db脚本源码: mysql db script 下载 seata-server 创建数据库( seata ),可自定义,在 file.conf 中要用到。 -- -------------------------------- The script used when storeMode is 'db' -------------------------------- -- the table to store GlobalSession data CREATE TABLE IF NOT EXISTS `global_table` ( `xid` VARCHAR(128) NOT NULL, `transaction_id` BIGINT, `status` TINYINT NOT NULL, `application_id` VARCHAR(32), `transaction

讨论帖:如果只有两个数据中心,使用 Raft 协议还有意义吗?

末鹿安然 提交于 2020-02-26 14:04:58
作者:disksing 对 Raft 有所了解的同学都知道, Raft 一般会使用奇数个节点 ,比如 3、5、7 等等。这是因为 Raft 是 一种基于多节点投票选举机制的共识算法,通俗地说,只有超过半数节点在线才能提供服务。这里超过半数的意思是 N/2+1(而不是N/2)。举例来说,3 节点集群需要 2 个以上节点在线,5 节点集群需要 3 个以上节点在线,等等。对于偶数节点的集群,2 节点集群需要 2 节点同时在线,4 节点集群需要 3 节点在线,以此类推。实际上不只是 Raft,所有基于 Quorum 的共识算法大体上都是这么个情况,例如 Paxos,ZooKeeper 什么的,本文仅以 Raft 为例讨论。 先考察一下为什么 Raft 通常推荐使用奇数节点而不是偶数节点。 共识算法要解决的核心问题是什么呢?是分布式系统中单个节点的不可靠造成的不可用或者数据丢失。Raft 保存数据冗余副本来解决这两个问题,当少数节点发生故障时,剩余的节点会自动重新进行 leader 选举(如果需要)并继续提供服务,而且 log replication 流程也保证了剩下的节点(构成 Quorum)总是包含了故障前成功写入的最新数据,因此也不会发生数据丢失。 我们对比一下 3 节点的集群和 4 节点的集群,Quorum 分别是 2 和 3,它们能容忍的故障节点数都是 1。如果深究的话

DOCKER 04:容器资源限制和网络原理

*爱你&永不变心* 提交于 2020-02-26 12:54:10
本文主要谈谈关于主机网络和容器网络的实现原理! 容器资源限制 在某些时候我们不想让容器肆无忌惮的抢占系统资源,所以就会对其做一系列的限制,这些参数可以使用蛮力查看到: docker container run --help 主要的限制参数包含以下这些: --cpu-shares :CPU 使用占比,如一个容器配置 10,一个配置 20,另外一个配置 10,那就是资源分配:1:2:1。 --memory :限制内存,比如配置 200M,但是如果不配置 swap,则实际内存其实是 400M。 --memory-swap :限制 swap,结合内存限制使用。 虚拟机网络名称空间(选择性了解) docker 网络隔离的实现方式其实就是网络名称空间的方式,但是这方面的知识其实对于就算是运维工程师也不一定有详细的了解,所以这部分内容作为选择性了解。简单的对其实现方式说明,然后看看效果是怎样的。 1. 建立两个网络名称空间: # 查看现有的网络名称空间 ip netns ls # 新建两个网络名称空间 ip netns add net-ns-1 ip netns add net-ns-2 # 在两个网络名称空间中分别查看它的网卡信息 ip netns exec net-ns-1 ip a ip netns exec net-ns-2 ip a 结果如图: 可以看到各自拥有一张回环网卡,并且未启动

Etcd集群部署小结

坚强是说给别人听的谎言 提交于 2020-02-26 04:48:24
etcd集群模式 这里的集群模式是指完全集群模式,当然也可以在单机上通过不同的端口,部署伪集群模式,只是那样做只适合测试环境,生产环境考虑到可用性的话需要将etcd实例分布到不同的主机上,这里集群搭建有三种方式,分布是静态配置,etcd发现,dns发现 下面将在以下三台主机上搭建etcd集群, etcd0 192.168.115.136 etcd1 192.168.115.137 etcd2 192.168.115.138 在每个节点上: yum install etcd -y ssh-keygen -t rsa yum -y install openssh-clients ssh-copy-id -i ~/.ssh/id_rsa.pub node1 ssh-copy-id -i ~/.ssh/id_rsa.pub node2 ssh-copy-id -i ~/.ssh/id_rsa.pub node3 2.1 配置项说明 --name #etcd集群中的节点名,这里可以随意,可区分且不重复就行 --listen-peer-urls #监听的用于节点之间通信的url,可监听多个,集群内部将通过这些url进行数据交互(如选举,数据同步等) --initial-advertise-peer-urls #建议用于节点之间通信的url,节点间将以该值进行通信。 --listen