引言
Kubernetes是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。 Kubernetes 拥有一个庞大且快速增长的生态系统。Kubernetes 的服务、支持和工具广泛可用。在容器化部署的时代,K8s作为一个可弹性运行分布式系统的框架,提供了包括但不限于服务发现和负载均衡、存储编排、自动部署和回滚、自动完成装箱计算、自我修复、秘钥与配置管理的服务。简而言之,kubernetes提供了一种集成化的容器编排方案。
在目前存在的kubernetes解决方案中,Kubeadm是一种颇具代表性的工具,它提供了 kubeadm init 和 kubeadm join 的方法。作为创建Kubernetes集群的 “快捷途径” 的最佳实践,我们可以利用kubeadm轻易地在服务器环境拉起集群、实现集群的启动、运行、扩容。但是,目前现网中对k8s以及kubeadm的研究探讨大多局限于实验环境中,对应的研究成果并不能直接应用与生产环境。因此,我决定基于实际生产环境中对kubernetes集群的具体要求,结合k8s的源代码进行分析,希望能够为k8s的研究者提供一定的参考,以便将k8s这一划时代的工具更好的应用到互联网领域,为实现把数字世界带入每个人、每个家庭、每个组织,构建万物互联的智能世界而努力。
Kubernetes源码及其研究环境
在本文的探讨中,使用的kubernetes源代码及相应的研究环境如下:
https://github.com/kubernetes/kubernetes Kubernetes源码_20220403Version
GoLand2021.3.4_运行时版本: 11.0.14.1+1-b1751.46amd64_Go1.18 代码分析及复现工具
Ubuntu20.04 编译机及部署环境[待定]