kubeadm工作机制分析
介绍
kubeadm一共提供了5个子命令:
- kubeadm init
- kubeadm join
- kubeadm token
- kubeadm reset
- kubeadm version
这个可以在k8s v1.5.0 代码中cmd/kubeadm/app/cmd/cmd.go:29看到:
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。
本文转自开源中国-kubeadm工作机制分析
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
CentOS7配置Kubernetes(K8S)集群
1.物理环境 两台CentOS7机器,地址为192.168.0.51和192.168.0.61 1.1 机器信息 192.168.0.51 Master/etcd 192.168.0.61 Node 2. 部署主机 2.1 部署etcd yum -y install etcd yum安装的etcd默认配置文件在/etc/etcd/etcd.conf。编辑配置文件,更改为: # [member] ETCD_NAME=master ETCD_DATA_DIR="/var/lib/etcd/default.etcd" #ETCD_WAL_DIR="" #ETCD_SNAPSHOT_COUNT="10000" #ETCD_HEARTBEAT_INTERVAL="100" #ETCD_ELECTION_TIMEOUT="1000" #ETCD_LISTEN_PEER_URLS="http://0.0.0.0:2380" ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379,http://0.0.0.0:4001" #ETCD_MAX_SNAPSHOTS="5"...
- 下一篇
在K8S上使用RancherVM,以容器的方式跑虚机
RancherVM是一个开源的、轻量化的虚拟机管理工具,让用户能够和运行Docker容器一样,打包和运行虚拟机。 RancherVM项目自几年前推出以来,得到了大量用户的积极反馈。用户也在过去几年时间里为Rancher Labs工程团队提出了不少极有价值的意见与建议,尤其是对节点集群上的虚拟机的管理这一方面的需求。 如今,用户可以在Kubernetes上使用RancherVM了! 现在的RancherVM中添加了资源调度、基于浏览器的VNC客户端、IP地址发现、基于密钥的身份验证以及新版本的用户界面。本文将带你一探究竟! RancherVM设计思路 RancherVM在深层次上大量使用了Docker容器化以及容器镜像仓库。虚拟机基础镜像被打包成Docker镜像发布到任意Docker镜像仓库中。RancherVM还自带了很多存储在Docker Hub中的、大受欢迎的操作系统镜像。用户可以在各种公有和私有镜像仓库中进行自由选择,甚至可以运行自己的私有镜像仓库:https://docs.docker.com/registry/deploying/。 现在,每个虚拟机都运行在Kubernete...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Hadoop3单机部署,实现最简伪集群
- CentOS8编译安装MySQL8.0.19
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Mario游戏-低调大师作品
- CentOS6,CentOS7官方镜像安装Oracle11G