2020年4月10日
前言 以docker和kubernetes为代表的的容器技术现在在市场上接受度越来越高,业界现在也有较多成熟产品,公有云有阿里华为腾通,私有云有OpenShift,才云,青云kubesphere,Rancher,灵雀云都做的不错, 为什么我们还折腾自建的容器平台?
1、自己搭建过的东西更加有掌控力,据我交流,不少公司在体量到了一定程度之后都走上了自建的道路 2、自己搭建过后才对整体框架有了一个清晰的认知。 主要是结合自己的理解和实践,手把手教还不太熟悉容器的同学搭建一套自己的容器平台……
阅读全文
2020年4月10日
准备 禁用swap Kubernetes 1.8开始要求必须禁用Swap,如果不关闭,默认配置下kubelet将无法启动。
vim /etc/fstab # / was on /dev/sda1 during installation UUID=8cc33106-20fc-43b7-ad52-298eed8ccae6 / ext4 errors=remount-ro 0 1 #/swapfile none swap sw 0 0 把swapfile行注释掉后执行……
阅读全文
2019年8月8日
Etcd磁盘要求 官方原文链接: https://github.com/etcd-io/etcd/blob/master/Documentation/op-guide/hardware.md
Etcd对磁盘写入延时非常敏感
高速磁盘是保证etcd部署性能和稳定性的关键因素。
慢磁盘会增加etcd的请求延时,潜在影响集群的稳定性。因为etcd一致性协议依赖于元数据写入持久化日志,并且要求集群大多数成员将请求写入磁盘。此外,etcd还会到磁盘上增量检查集群的状态,从而可以截断日志。如果这些写操作花费太长的时间,心跳就可能会超时,触发选举操作,从而破坏集群的稳定性。
etcd对磁盘写入延时非常敏感。通常稳定达到50 IOPS(比如:一个7200转的磁盘)是必须的,对于负载很高的集群,推荐能稳定达到500 IOPS(比如:一个典型的本地SSD盘或者高性能的虚拟块设备盘)。注意,大多数云服务提供商发布的是瞬时并发IOPS,并不是稳定的IOPS,瞬时并发IOPS可能十倍于稳定连续的IOPS(说明:因为瞬时并发IOPS可能会写缓存,或者测试时无其他用户竞争磁盘资源,所以会很高,当测试时间很长后,就会测试出设备的真实IOPS能力,这个在国内云厂商基本没有这个问题)。测试稳定连续IOPS,我们建议使用磁盘基准测试工具,比如 diskbench 或者 fio。……
阅读全文
2018年8月15日
存储数据结构 Etcd存储在集群搭建和使用篇有简介,总结起来有如下特点:
采用kv型数据存储,一般情况下比关系型数据库快。 支持动态存储(内存)以及静态存储(磁盘)。 分布式存储,可集成为多节点集群。 存储方式,采用类似目录结构。 1、只有叶子节点才能真正存储数据,相当于文件。 2、叶子节点的父节点一定是目录,目录不能存储数据。 叶子节点数据结构位于 /store/store.……
阅读全文
2018年8月10日
put操作 put操作是etcd v3 client支持的命令,和v2的set用法差不多
但是需要注意的是,如果你在一个3节点的etcd集群中,A节点切换为v3 client版本,然后put进了一对key-value,在B节点,还是v2的client,这个时候你get不到数据的,如果在B节点切换到了v3 client,这个时候才可以get到数据
简单的说,v2和v3 client,插入数据到同一个etcd集群中,数据不能互通……
阅读全文
2018年8月8日
以etcd或者docker中的raft协议为列子,来解析raft协议的实际落地
server通信 概述 server之前的消息传递并不是简单的request-response模型,而是读写分离模型,
即每两个server之间会建立两条链路,对于每一个server来说,一条链路专门用来发送数据,另一条链路专门用来接收数据.
在代码实现中,通过streamWriter发送数据,通过streamReader接收数据。即通过streamReader接收数据接收到数据后会直接响应,在处理完数据后通过streamWriter将响应发送到对端
对于每个server来说,不管是leader、candicate还是follower,都会维持一个peers数组,每个peer对应集群中的一个server,负责处理server之间的一些数据交互。
当server需要向其他server发送数据时,只需要找到其他server对应的peer,然后向peer的streamWriter的msgc通道发送数据即可,streamWriter会监听msgc通道的数据并发送到对端server;……
阅读全文
2018年8月8日
配置文件 etcd配置文件位于/etc/etcd/etcd.conf,该配置文件一共有5个section
名称 作用 member 本节点的配置,包括监听服务端口、心跳时间等 cluster 集群配置,包括集群状态、集群名称以及本节点广播地址 proxy 用于网络自动发现服务 security 安全配置 logging 日志功能组件 具体配置采集可以见另一个文章《Etcd集群配置和使用》……
阅读全文
2018年8月1日
启动 启动从源码 /etcdmain/main.go 中的main函数开始
func Main() { checkSupportArch() // 检查系统是否支持 if len(os.……
阅读全文