一键部署

# 创建一个Master节点
$ kubeadm init# 将一个Node节点加入到当前集群中
$ kubeadm join <Master节点的IP和端口>

kubeadm 的工作原理

  • Kubernetes 的架构和它的组件。在部署时,它的每一个组件都是一个需要被执行的、单独的二进制文件。所以不难想象,SaltStack 这样的运维工具或者由社区维护的脚本的功能,就是要把这些二进制文件传输到指定的机器当中,然后编写控制脚本来启停这些组件
  • 为什么不用容器部署 Kubernetes ?
  • 除了跟容器运行时打交道外,kubelet 在配置容器网络、管理容器数据卷时,都需要直接操作宿主机。而如果现在 kubelet 本身就运行在一个容器里,那么直接操作宿主机就会变得很麻烦。对于网络配置来说还好,kubelet 容器可以通过不开启 Network Namespace(即 Docker 的 host network 模式)的方式,直接共享宿主机的网络栈。可是,要让 kubelet 隔着容器的 Mount Namespace 和文件系统,操作宿主机的文件系统,就有点儿困难
  • kubeadm选择把 kubelet 直接运行在宿主机上,然后使用容器部署其他的 Kubernetes 组件
  • 使用 kubeadm 的第一步,是在机器上手动安装 kubeadm、kubelet 和 kubectl 这三个二进制文件。下来,就可以使用“kubeadm init”部署 Master 节点了。
  • 执行 kubeadm init 指令后,kubeadm 首先要做的,是一系列的检查工作,以确定这台机器可以用来部署 Kubernetes。这一步检查,我们称为“Preflight Checks”
  • 在通过了 Preflight Checks 之后,kubeadm 要为你做的,是生成 Kubernetes 对外提供服务所需的各种证书和对应的目录。
  • 证书生成后,kubeadm 接下来会为其他组件生成访问 kube-apiserver 所需的配置文件。这些文件的路径是:/etc/kubernetes/xxx.conf
  • 接下来,kubeadm 会为 Master 组件生成 Pod 配置文件。我已经在上一篇文章中和你介绍过 Kubernetes 有三个 Master 组件 kube-apiserver、kube-controller-manager、kube-scheduler,而它们都会被使用 Pod 的方式部署起来
  • 然后,kubeadm 就会为集群生成一个 bootstrap token。在后面,只要持有这个 token,任何一个安装了 kubelet 和 kubadm 的节点,都可以通过 kubeadm join 加入到这个集群当中。
  • 在 token 生成之后,kubeadm 会将 ca.crt 等 Master 节点的重要信息,通过 ConfigMap 的方式保存在 Etcd 当中,供后续部署 Node 节点使用
  • kubeadm init 的最后一步,就是安装默认插件。Kubernetes 默认 kube-proxy 和 DNS 这两个插件是必须安装的。它们分别用来提供整个集群的服务发现和 DNS 功能。其实,这两个插件也只是两个容器镜像而已,所以 kubeadm 只要用 Kubernetes 客户端创建两个 Pod 就可以了。

kubeadm join 的工作流程

  • kubeadm 至少需要发起一次“不安全模式”的访问到 kube-apiserver,从而拿到保存在 ConfigMap 中的 cluster-info(它保存了 APIServer 的授权信息)。而 bootstrap token,扮演的就是这个过程中的安全验证的角色

K8S:使用kubeadm一键部署相关推荐

  1. k8s 集群一键部署(持续更新)

    介绍 使用原生shell脚本构建k8s一键部署资源包,软件最终命名:kubefit***.tgz 机制介绍: 简单化:只需要配置集群IP地址和制定的安装配置文件 个性化:支持自定义部署位置 易用化:内 ...

  2. 使用Helm 在容器服务k8s集群一键部署wordpress

    摘要: Helm 是啥? 微服务和容器化给复杂应用部署与管理带来了极大的挑战.Helm是目前Kubernetes服务编排领域的唯一开源子项目,做为Kubernetes应用的一个包管理工具,可理解为Ku ...

  3. 不努力提高效率,小姐姐都被人追走了:K8S一键部署了解一下?

    点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 随着互联网时代的不断发展,开发者可能会面临这样的困境:为了解决问题.提升开发效率而竭力研发出 ...

  4. DockerK8s---通过kubeadm快速部署K8s

    文章目录 Docker&K8s---通过kubeadm快速部署K8s 环境准备 环境初始化 开始安装 安装docker 添加kubernetes的yum软件源 安装kubeadm,kubele ...

  5. K8s 支持一键部署

    随着互联网时代的不断发展,开发者可能会面临这样的困境:为了解决问题.提升开发效率而竭力研发出来的"创新",似乎削弱了他们在公司的重要程度,甚至取代了他们原先的地位.比如,在云原生时 ...

  6. 使用kubeadm快速部署一套稳定的K8S集群

    文章目录 一. 操作系统初始化配置 1.1 设置主机名 1.2 设置hosts解析主机名 1.3 关闭SELinux和防火墙 1.4 关闭swap 1.5 设置系统参数 1.6 设置节点间的SSH免密 ...

  7. kubeasz一键部署containerd运行时、高可用k8s(1.26.x)集群-Day 02

    1. 生产环境部署架构 (1)多master节点,实现master节点的高可用和高性能. (2)单独的etcd分布式集群(生产使用SSD盘),高可用持久化k8s资源对象数据,并实现高可用. (3)多n ...

  8. Kubernetes 一键部署利器:kubeadm

    文章目录 集群部署痛点 kubeadm 的工作原理 kubeadm init 的工作流程 kubeadm join 的工作流程 kubeadm 的部署配置参数 集群部署痛点 Kubernetes 的部 ...

  9. Kubernetes一键部署利器:kubeadm

    要真正发挥容器技术的实力,你就不能仅仅局限于对 Linux 容器本身的钻研和使用. 这些知识更适合作为你的技术储备,以便在需要的时候可以帮你更快的定位问题,并解决问题. 而更深入的学习容器技术的关键在 ...

最新文章

  1. android 实现全屏代码
  2. NOIP 2012 T2 国王游戏 (贪心+高精)
  3. UOJ #274. 【清华集训2016】温暖会指引我们前行 [lct]
  4. 2019/1/14,15 Python今日收获
  5. DL之GD:利用LogisticGD算法(梯度下降)依次基于一次函数和二次函数分布的数据集实现二分类预测(超平面可视化)
  6. Hibernate学习(二):heibernate核心接口
  7. windows phone7 学习笔记14——地理位置服务与反应性扩展框架
  8. python二值化特征_OpenCV-Python系列之轮廓特征高阶
  9. web.xml 配置
  10. 流利说公布上市后首份财报:第三季净收入1.8亿
  11. netflix-hystrix-简例
  12. 改进:js修改iOS微信浏览器的title
  13. java运行时数据区、程序计数器(pc寄存器)、Java虚拟机栈、栈帧、局部变量表、操作数栈
  14. 【期末复习】计算机算法设计与分析
  15. 如何下载Xcode DMG或XIP文件?
  16. 使用C++编写卷积神经网络(一)
  17. 橡胶支座抗压弹性模量计算公式_橡胶支座计算
  18. 扒一扒:2020台湾Android-Kotlin--Java-面試題庫,竟如此--
  19. 有没有测试牙齿需不需要修正的软件,测一测,你的牙齿需要矫正吗?
  20. 给定起止时间跨年计算周次(oracle函数)

热门文章

  1. 180728 逆向-SMC出题笔记
  2. centos sqlite3安装及简单命令
  3. 搭建相亲源码,如何实现Nginx反向代理
  4. Cross-Origin Read Blocking (CORB) blocked cross-origin response 问题
  5. Unity XR Interaction Toolkit中Action与Device的差异探究
  6. 非线性干扰观测器应用于四通道架构
  7. 单细胞分析实录(2): 使用Cell Ranger得到表达矩阵
  8. 自定义组件开发七 自定义容器
  9. linux 开机 自启动mysql 8.0.13
  10. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java基于Web的小区物业管理系统2xjhe