Kubeadm入门知识

本文是极客时间张磊老师关于kubeadm入门知识的内容总结。

  • 为什么不用容器部署Kubernetes 呢?

因为这样做会带来一个很麻烦的问题,即:如何容器化 kubelet。kubelet 在配置容器网络、管理容器数

据卷时,都需要直接操作宿主机。而如果现在 kubelet 本身就运行在一个容器里,那么直接操作宿主机就会变得很麻烦。

正因为如此,kubeadm 选择了一种妥协方案:把 kubelet 直接运行在宿主机上,然后使用容器部署其他的 Kubernetes 组件。

  • kubeadm init工作流程

  1. preflight checks

kubeadm 首先要做的,是一系列的检查工作,以确定这台机器可以用来部署 Kubernetes。包括版本匹配、计算机端口、模块等信息。

  1. 生成证书和目录

Kubernetes对外提供服务所需的各种证书和对应的目录。Kubernetes 对外提供服务时,除非专门开启“不安全模式”,否则都要通过 HTTPS 才能访问 kube-apiserver。这就需要为 Kubernetes 集群配置好证书文件。

  1. kube-apiserver 所需的配置文件。

这些文件的路径是:/etc/kubernetes/xxx.conf。这些文件里面记录的是,当前这个 Master 节点的服务器地址、监听端口、证书目录等信息。客户端用这些信息链接apiserver。

  1. 为 Master 组件生成 Pod 配置文件

Kubernetes 有三个 Master 组件 kube-apiserver、kube-controller-manager、

kube-scheduler,而它们都会被使用 Pod 的方式部署起来,此外还有一个etcd。

k8s允许你把要部署的Pod 的 YAML 文件放在一个指定的目录里。这样,当这台机器上的 kubelet 启动时,它会自动检查这个目录,加载所有的 Pod YAML 文件,然后在这台机器上启动它们。

在 kubeadm 中,Master 组件的 YAML 文件会被生成在 /etc/kubernetes/manifests 路径下。

  1. bootstrap token

kubeadm 就会为集群生成一个 bootstrap token。在后面,只要持有这个token,任何一个安装了 kubelet 和 kubadm 的节点,都可以通过 kubeadm join 加入到这个集群当中。

  1. 最后一步,安装默认插件

Kubernetes 默认 kube-proxy 和 DNS这两个插件是必须安装的。它们分别用来提供整个集群的服务发现和 DNS 功能。具体操作是创建两个pod。

  • kubeadm join工作流程

kubeadm init 生成 bootstrap token 之后,你就可以在任意一台安装了 kubelet 和 kubeadm 的机器上执行 kubeadm join 了。

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

  • 配置 kubeadm 的部署参数

强烈推荐在使用 kubeadm init 部署 Master 节点时,使用下面这条指令:

$ kubeadm init --config kubeadm.yaml

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值