执行流程

  • 在执行机器上生成证书和kubeconfig文件
  • 在执行机器上wget下载离线包和sealos二进制使用scp拷贝到目标机器上(masters和nodes)
  • 在master0上执行kubeadm init
  • 在其它master上执行kubeadm join 并设置控制面,这个过程会在其它master上起etcd并与master0的etcd组成集群,并启动控制组建(apiserver controller等)
  • join node节点,会在node上配置ipvs规则,配置/etc/hosts等

有个细节是所有对apiserver进行访问都是通过域名,因为master上连接自己就行,node需要通过虚拟ip链接多个master,这个每个节点的kubelet与kube-proxy访问apiserver的地址是不一样的,而kubeadm又只能在配置文件中指定一个地址,所以使用一个域名但是每个节点解析不同。

使用域名的好处还有就是IP地址发生变化时仅需要修改解析即可。

本地内核负载

通过这样的方式实现每个node上通过本地内核负载均衡访问masters:

复制代码

  +----------+                       +---------------+  virturl server: 127.0.0.1:6443| mater0   |<----------------------| ipvs nodes    |    real servers:+----------+                      |+---------------+            10.103.97.200:6443|                             10.103.97.201:6443+----------+                      |                             10.103.97.202:6443| mater1   |<---------------------++----------+                      ||+----------+                      || mater2   |<---------------------++----------+

在node上起了一个lvscare的static pod去守护这个 ipvs, 一旦apiserver不可访问了,会自动清理掉所有node上对应的ipvs规则, master恢复正常时添加回来。

所以在你的node上加了三个东西,可以直观的看到:

复制代码

cat /etc/kubernetes/manifests   # 这下面增加了lvscare的static pod
ipvsadm -Ln                     # 可以看到创建的ipvs规则
cat /etc/hosts                  # 增加了虚拟IP的地址解析

sealos已经把lvscare本地负载和百年证书已经在sealos中支持,使用起来极其方便!!!

离线包结构分析

复制代码

.
|____docker # docker的离线包
| |____docker.tgz
| |____README.md
|____bin # 指定版本的bin文件
| |____conntrack
| |____kubeadm
| |____kubelet
| |____kubelet-pre-start.sh
| |____kubectl
| |____crictl
|____images # kubernetes的离线镜像
| |____images.tar
| |____README.md
|____shell # 离线包的部署脚本,sealos会自动调用
| |____master.sh
| |____init.sh
| |____docker.sh
|____README.md
|____conf
| |____net   # 高版本的sealos已经集成
| | |____calico.yaml
| |____10-kubeadm.conf # kubeadm的配置文件
| |____calico.yaml
| |____kubeadm.yaml
| |____kubelet.service
| |____docker.servic

init.sh脚本中拷贝bin文件到$PATH下面,配置systemd,关闭swap防火墙等,然后导入集群所需要的镜像。

master.sh主要执行了kubeadm init

conf下面有有我需要的如kubeadm的配置文件,calico yaml文件等等

sealos会调用二者。 所以大部分兼容不同版本都可以微调脚本做到。

参考链接:

https://www.sealyun.com/instructions

k8s安装工具:sealos设计原理及离线包结构分析相关推荐

  1. 图解 DataX 核心设计原理

    DataX 是阿里巴巴开源的一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL.Oracle 等).HDFS.Hive.ODPS.HBase.FTP 等各种异构数据源之间稳定高效的数据 ...

  2. 某单位招聘考试需要考核数学英语计算机,2010年10月自学考试电子商务网站设计原理试题...

    全国2010年10月高等教育自学考试 电子商务网站设计原理试题 课程代码:00906 一.单项选择题(本大题共20小题,每小题1分,共20分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将 ...

  3. 配置中心Apollo的设计原理

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 来源:https://urlify.cn/eIBZne 前言 Ap ...

  4. java B2B2C Springcloud电子商城系统-Ribbon设计原理

    Ribbon 是netflix 公司开源的基于客户端的负载均衡组件,是Spring Cloud大家庭中非常重要的一个模块:Ribbon应该也是整个大家庭中相对而言比较复杂的模块,直接影响到服务调度的质 ...

  5. quartz 分布式_后端必备分布式技术之-调度系统Quartz设计原理

    调度系统作为分布式系统技术中重要的一环,了解其技术原理必不可少,不同系统内部采用的调度系统叫法不一样,但大致功能都类似,而Quartz作为经典的开源企业级调度系统,怎么能不研究一下呢? 为什么要学习q ...

  6. kafka入门:简介、使用场景、设计原理、主要配置及集群搭建

    为什么80%的码农都做不了架构师?>>>    kafka入门:简介.使用场景.设计原理.主要配置及集群搭建(转) 问题导读: 1.zookeeper在kafka的作用是什么? 2. ...

  7. 计算机键盘的设计原理图,人体工程学键盘的设计原理

    人体工程学键盘的推出是为了适应人手的角度,有效的减少腕部疲劳,那么,人体工程学键盘的设计原理是什么呢?让学习啦小编带着大家来了解吧 使用计算机和打字机都需要进行键盘操作,长时间从事键盘操作往往产生手腕 ...

  8. 《不只是美:信息图表设计原理与经典案例》—— 2.5 功能限制形式

    本节书摘来异步社区<不只是美:信息图表设计原理与经典案例>一书中的第2章,第2.5节,作者:[美]Alberto Cairo,更多章节内容可以访问云栖社区"异步社区"公 ...

  9. kafka入门:简介、使用场景、设计原理、主要配置及集群搭建--转载

    问题导读: 1.zookeeper在kafka的作用是什么? 2.kafka中几乎不允许对消息进行"随机读写"的原因是什么? 3.kafka集群consumer和producer状 ...

最新文章

  1. php查找函数所在文件
  2. S - 母牛的故事(递推)
  3. 二十、深入Python迭代器和生成器
  4. c++访问者模式visitor
  5. Android Studio解决未识别Java文件(出现红J)问题
  6. 转载--C语言:浮点数在内存中的表示
  7. MariaDB 10 Slave Crash-Safe需转为GTID复制模式
  8. C#编程(二十五)----------接口
  9. oracle学习笔记(4)
  10. springboot日志写入mysql_springboot运用logback将日志写入数据库
  11. 云服务器发送开锁信息给单车,史上超全共享单车车锁的开锁方式(含具体方案)...
  12. RINEX广播星历文件读取(N文件)
  13. 晶体二极管 三极管 MOS原理
  14. 一剪梅·红藕香残玉簟秋
  15. #L190616楼市穿越与未来锚点
  16. android服务无法启动,Android服务无法启动(Android service would't start)
  17. 学Java开发到底能做什么工作?
  18. 02- pandas 数据库 (数据库)
  19. 职场“老好人”生存法则
  20. 市场贡献超千亿,单身人口养活了几十个行业

热门文章

  1. 工业用微型计算机(17)-指令系统(12)
  2. .net随笔-vb.net打开外部程序发送键盘信号(3)
  3. 【NLP】词嵌入基础和Word2vec
  4. 【机器学习】在大数据上使用PySpark进行K-Means
  5. 【机器学习基础】优化算法详解
  6. ACM金牌导师1个月带你一起魔鬼刷爆算法题!
  7. 【Python基础】一文搞定pandas的数据合并
  8. 【时间序列】使用微软Power BI进行时间序列预测
  9. 常见算法的python实现(Github标星75.5k+)
  10. 助力区域性银行突破困局,网易云信入选爱分析报告典型案例