适用部署结构以及版本

本系列中涉及的部署方式和脚本适用于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. node.js,express入门看详细篇

    先最简单的代码 安装 npm install express app.js 代码内容 const express = require('express') const app = express() ...

  2. 报错:严重: Servlet.service() for servlet [springmvc] in context with path [ ] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause

    解决:service类或dao类需要@Autowired

  3. WebApiClient库支持AOT

    1 库简介 WebApiClient是开源在github上的一个http客户端库,内部基于HttpClient开发,只需要定义c#接口(interface),并打上相关特性,即可异步调用http-ap ...

  4. 你可能不知道的 JavaScript 中数字取整

    网上方法很多,标题党一下,勿拍 ^_^!实际开发过程中经常遇到数字取整问题,所以这篇文章收集了一些方法,以备查询. 常用的直接取整方法 直接取整就是舍去小数部分. 1.parseInt() parse ...

  5. linux Tcpdump使用方法

    用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具. tcpdump可以将网络中传送的数据包的&qu ...

  6. SSM-MyBatis-17:Mybatis中一级缓存(主要是一级缓存存在性的证明,增删改对一级缓存会造成什么影响)

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 缓存------------------------------------------> 很熟悉的一个 ...

  7. ASP.NET Core & Docker 实战经验分享

    一.前言 最近一直在研究和实践ASP.NET Core.Docker.持续集成.在ASP.NET Core 和 Dcoker结合下遇到了一些坑,在此记录和分享,希望对大家有一些帮助. 二.中间镜像 我 ...

  8. html和js,外部js 的下载执行顺序

    当用户开始访问,首先下载html资源和外部js资源,在chrome中显示的是html先下载,然后下载外部js,外部js的下载顺序安引用顺序,但是下载到达情况则视情况而定,接着才是图片和其他资源,但是要 ...

  9. Mongodb数据更新命令、操作符

    一.Mongodb数据更新命令 Mongodb更新有两个命令:update.save. 1.1update命令 update命令格式: db.collection.update(criteria,ob ...

  10. 【NOIP模拟赛】随

    题目链接: 172.18.111.252:800/problem.php?cid=1001&pid=0 题解: 膜达神……(NOIP考这个就等爆零吧……) 显然我们得到一个结论:$ans=\s ...