目前,kubernetes已成为容器编排领域的事实标准,其开源社区也成为了最热门的项目之一,且其周边项目如其他编排工具、DevOps、微服务项目等等也都积极向kubernetes靠拢,支持或者基于kubernetes运行。因此,参与kubernetes社区,研究和贡献开源项目成为了极具价值的事情,尤其是主项目kubernetes是其中的重中之重(https://github.com/kubernetes/kubernetes)。
本篇文章就来探讨一下kubernetes项目的基本知识,和windows下开发编译环境准备。
Kubernetes主项目是由众多子项目组合而成的,每个子项目由一个Special Interest Group (SIG)管理。想参与社区贡献的话先选择一个SIG,这是SIG列表https://github.com/kubernetes/community/blob/master/sig-list.md。每个SIG都有不同的贡献规则、邮件列表和slack频道和定期视频会议等。
贡献者须知:
贡献前需要签署CLAhttps://github.com/kubernetes/community/blob/master/CLA.md
找到一个合适的与贡献相关的SIG,并对这个SIG的章程等进行了解
可以先从issue问题处理开始做起贡献,如果写代码比较困难可以从文档更新入手,甚至提issue也是受欢迎的
kubernetes是一个github项目,基本按照pull request、review、testing方式
遇到问题可以到slack讨论:http://slack.k8s.io/
windows环境搭建:
一、准备:
下载Golang并安装:https://studygolang.com/dl
下载LiteIDE并安装:https://www.golangtc.com/download/liteide
下载源码:https://github.com/kubernetes/kubernetes
建议直接在网页下载ZIP包,网速比较快且包比较小,从git clone的话国内网速很慢而且包含了大量的git历史记录文件(500+M)。
二、项目搭建:
新建C:\k8s\src\k8s.io\
将kubernetes-master.zip解压缩至此文件夹下,并改名kubernetes
将C:\k8s\src\k8s.io\kubernetes\vendor下的内容剪切至C:\k8s\src下。vendor目录下的包在单独编译时会出现问题。
删除C:\k8s\src\k8s.io下面的单独文件文件(不包括文件夹)
将文件夹C:\k8s\src\k8s.io\kubernetes\staging\src\k8s.io复制到C:\k8s\src下。编译时所需要的包。
打开LiteIDE,打开C:\k8s\src\k8s.io\kubernetes目录。工具-管理GOPATH,添加C:\k8s\
可以对pkg和cmd里面的文件夹进行编译
三、其中主要目录:
pkg为kubernetes主体代码
cmd为kubernetes所有后台进程代码,如kube-apiserver、kube-controller-manager、kube-scheduler、kubelet等等,而这些进程的具体业务逻辑代码则都在pkg种实现了
test是一些测试代码