适用部署结构以及版本

本系列中涉及的部署方式和脚本适用于1.13.x和1.14,而且采取的是二进制程序部署方式。

脚本支持的部署模式

最小部署模式 3台主机,1台为k8s的master角色,其余2台为k8s的node角色,etcd以集群形式运行在3台上都部署(我在测试环境中使用的部署规模)

中等部署模式 6台主机,3台为k8s的master角色,其余3台为k8s的node角色,etcd以集群形式部署在3台master机器上

大型部署模式 9台主机,3台为k8s的master角色,3台为k8s的node角色,其余3台etcd以集群形式部署独立部署在单独的机器上

超大型部署 3+3+N台主机 3台为k8s的master角色 3台etcd以集群形式部署独立部署在单独的机器上 N台node角色

执行说明

  1. 所有主机配置免密登陆
  2. 操作系统版本保持一致(我的环境Centos 7.4)
  3. 网络设置保持一致,尤其是master和node角色主机相互通信的网卡名称要一致
  4. 所有脚本在任意一台master角色主机上执行
  5. 执行完1-system_initialization.sh脚本后,为了提高速度建议把所需要的安装包提前下载到/tmp/work_dir目录中无需解压
  6. 保证你下载的安装包版本和脚本中的一致,请提前查看每个组件的安装脚本
  7. 执行完5-installFlannel.sh之后建议把pod-infrastructure提前下载到本地镜像仓库中,这是k8s所需基础容器。否则后续因为下载很慢会导致你部署的POD失败。
  8. 在执行8-installAddons-CoreDNS.sh的时候建议先查看该脚本把里面所需要的镜像提前拉取下来,避免由于网络原因导致脚本执行出错
  9. 根据自己的环境修改environment.sh环境变量脚本
  10. 目前脚本还没有做如何加入现有集群的功能,所以如果一台主机要想加入现有k8s集群成为node角色需要手动部署
  11. 目前如果是多台master主机需要自行配置haproxy或者Nginx做代理
  12. 脚本中有大量注释其实就是为了说明语句或者参数或者这一步是做什么的,其目的也是为了便于理解和学习

kubernetes集群的master角色其实只需要安装kube-apiserver, kube-scheduler, kube-controller-manager;而Node角色只需要安装
kube-proxy、kubelet、docker、flannel组件;但是本版本的脚本中在Master角色上我们也安装了kube-proxy、kubelet、docker、flannel
这些组件这就变成Master主机其实也可提供Node角色的功能,但是为了避免非特殊说明的情况下POD被调度到Master主机上,我们在Master主机上
打了污点。之所以在Master上也安装那些组件主要是为了让Master可以访问service、POD的网络以及在需要的情况下在Master主机上运行POD。

其实部署脚本没有太多执行逻辑部署基本都是下载、解压、设置配置文件、拷贝、启动这些常规操作,另外安装kubernetes很多帖子都是kubeadm安装,这种方式的确安装方便,但是对于一些细节你将无法了解,所以为了理解这些组件通过二进制程序安装更合适。

关于bootstrap不太好理解,建议提前看看这篇文章:Kubernetes TLS bootstrapping 那点事

下图是我安装完成后的监控图

关于监控我会在另外一个文章中说明

代码下载

脚本代码从这里下载

Kubernetes集群部署史上最详细(一)Kubernetes集群安装的更多相关文章

  1. Kubernetes集群部署史上最详细(二)Prometheus监控Kubernetes集群

    使用Prometheus监控Kubernetes集群 监控方面Grafana采用YUM安装通过服务形式运行,部署在Master上,而Prometheus则通过POD运行,Grafana通过使用Prom ...

  2. 史上最详细“截图”搭建Hexo博客并部署到Github

    http://jingyan.baidu.com/article/d8072ac47aca0fec95cefd2d.html 大家也搭建过博客,很多时候,按着教程来做就可以了,但是我当时为了搭建Hex ...

  3. 转 史上最详细的Hadoop环境搭建

    GitChat 作者:鸣宇淳 原文:史上最详细的Hadoop环境搭建 关注公众号:GitChat 技术杂谈,一本正经的讲技术 [不要错过文末活动哦] 前言 Hadoop在大数据技术体系中的地位至关重要 ...

  4. 史上最详细“截图”搭建Hexo博客——For Windows

    http://angelen.me/2015/01/23/2015-01-23-%E5%8F%B2%E4%B8%8A%E6%9C%80%E8%AF%A6%E7%BB%86%E2%80%9C%E6%88 ...

  5. 你想找的Python资料这里全都有!没有你找不到!史上最全资料合集

    你想找的Python资料这里全都有!没有你找不到!史上最全资料合集 2017年11月15日 13:48:53 技术小百科 阅读数:1931   GitHub 上有一个 Awesome - XXX 系列 ...

  6. 史上最详细Windows版本搭建安装React Native环境配置 转载,比官网的靠谱亲测可用

    史上最详细Windows版本搭建安装React Native环境配置   2016/01/29 |  React Native技术文章 |  Sky丶清|  95条评论 |  33530 views ...

  7. 测试思想-测试设计 史上最详细测试用例设计实践总结 Part2

    史上最详细测试用例设计实践总结 by:授客 QQ:1033553122 -------------------------接 Part1-------------------------- 方法:这里 ...

  8. 史上最详细的C语言和Python的插入排序算法

    史上最详细的C语言和Python的插入排序算法插入排序原理:所谓插入排序,就像我们在打牌(斗地主)时,整理我们自己手中自己的牌一样,就像是2,1,3,9,J,K,5,4,这四张牌.我们要把它其中的几张 ...

  9. 史上最详细的XGBoost实战

    史上最详细的XGBoost实战 0. 环境介绍 Python 版 本: 3.6.2 操作系统 : Windows 集成开发环境: PyCharm 1. 安装Python环境 安装Python 首先,我 ...

随机推荐

  1. C#语言中的XmlSerializer类的XmlSerializer.Serialize(Stream,Object)方法举例详解

    在对象和 XML 文档之间进行序列化和反序列化操作. XmlSerializer 使您能够控制如何将对象编码为 XML. 命名空间:   System.Xml.Serialization程序集:  S ...

  2. Search in rotated array two

    description: Follow up for "Search in Rotated Sorted Array":What if duplicates are allowed ...

  3. PHP采用Cookie实现 购物车

    先来看一下逻辑分析图:

  4. 妙用this关键字

    妙用this关键字 ## this关键字一般this关键字都是指的是对象的本身,在类的所有方法.构造器都可以拿到this引用,这是jvm"偷偷"帮我们传递进来的引用,指向调用方法对 ...

  5. leetCode刷题(将字符串转成W形状的字符串再以Z形字符串输出)

    The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like ...

  6. HTML学习笔记5:修饰符和特殊标签

    ①修饰符:     作用:修饰显示的方式,并不改变网页的结构,需要修饰的内容写在修饰标签内     常用文字和段落修饰符: 文字斜体:<i></i>  或  <em> ...

  7. Nginx+uwsgi部署django

    0. 登录远程服务器并准备 ssh 用户@IP -p 端口 回车后,要求输入服务器密码,再输入密码 更新软件源 sudo apt-get update sudo apt-get upgrade 1. ...

  8. i++ 和 ++i;&& 和 &

    一.算数运算符(自增运算符i++.自减运算符i++)  ※  i++是先赋值(计算)再加1 :++i是先加1再赋值(计算) : int m = 5; boolean bool = ++m > 5 ...

  9. .NET开发微信小程序-生成二维码

    1.生成小程序二维码功能 直接请求相应的链接.传递相应的参数 以生成商铺的付款码为例: var shopsId = e.ShopsId //付款码的参数 var codeModel = new fun ...

  10. 为什么要使用ThreadLocalRandom代替Random生成随机数

    799 java里有伪随机型和安全型两种随机数生成器,伪随机生成器根据特定公式将seed转换成新的伪随机数据的一部分,安全随机生成器在底层依赖到操作系统提供的随机事件来生成数据. 安全随机生成器 需要 ...