前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >kubeadm工作机制分析

kubeadm工作机制分析

作者头像
Walton
发布2018-04-13 16:54:17
1.4K0
发布2018-04-13 16:54:17
举报
文章被收录于专栏:KubernetesKubernetes

更多关于kubernetes的深入文章,请看我csdn或者oschina的博客主页。

介绍

kubeadm一共提供了5个子命令:

  • kubeadm init
  • kubeadm join
  • kubeadm token
  • kubeadm reset
  • kubeadm version

这个可以在k8s v1.5.0 代码中cmd/kubeadm/app/cmd/cmd.go:29看到:

代码语言:javascript
复制
func NewKubeadmCommand(f cmdutil.Factory, in io.Reader, out, err io.Writer) *cobra.Command {
	cmds := &cobra.Command{
		Use:   "kubeadm",
		Short: "kubeadm: easily bootstrap a secure Kubernetes cluster",
		...
	}
	cmds.ResetFlags()
	cmds.SetGlobalNormalizationFunc(flag.WarnWordSepNormalizeFunc)

	cmds.AddCommand(NewCmdInit(out))
	cmds.AddCommand(NewCmdJoin(out))
	cmds.AddCommand(NewCmdReset(out))
	cmds.AddCommand(NewCmdToken(out))
	cmds.AddCommand(NewCmdVersion(out))

	return cmds
}

其中kubeadm init 和join两个子命令是最为关键的。通过在master上执行kubeadm init,完成master的初始化,然后再在其他node上执行kube join将node加入到cluster,即可完成一套安全集群的搭建。

更多关于kubeadm的介绍和入门知识,请参考一下官方文档:

废话不多说,通过阅读kubernetes v1.5.0源码后,下面分别给出kube init和join两个子命令的工作流程图,据此你就能了解其工作机制。

kubeadm init工作机制

输入图片说明
输入图片说明

kubeadm join工作机制

输入图片说明
输入图片说明

##总结

  • kubeadm init主要工作:
    • 创建集群安全相关的的key、certs和conf文件。
    • 创建kube-apiserver、kube-controller-manager、kube-scheduler、etcd(如果没有配置external etcd)这些static pod的json格式的manifest文件,kubelet负责启动这些master组件。
    • 通过addons方式启动kube-discovery deployment、kube-proxy daemonSet、kube-dns deployment。
  • kubeadm join主要负责创建kubelet.conf,使kubelet能与API Server建立连接:
    • 访问kube-discovery服务获取cluster info(包含cluster ca证书、API Server endpoint列表和token。
    • 利用定的token,检验cluster info的签名。
    • 检验成功后,再与API Server建立连接,请求API Server为该node创建证书。
    • 根据获取到的证书创建kubelet.conf。

更多关于kubernetes的深入文章,请看我csdn或者oschina的博客主页。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • kubeadm init工作机制
  • kubeadm join工作机制
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档