![Kubernetes源码剖析](https://wfqqreader-1252317822.image.myqcloud.com/cover/962/32435962/b_32435962.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
2.1 构建方式
Kubernetes构建方式可以分为3种,分别是本地环境构建、容器环境构建、Bazel环境构建,如图2-1所示。
![](https://epubservercos.yuewen.com/FF83E6/17517091906682706/epubprivate/OEBPS/Images/38914_26_1.jpg?sign=1739303358-F4YMMvkUgOvDpbryBuNCI1O5oqUIn3gL-0-176454a3e2af16474ef2420b11b461e1)
图2-1 Kubernetes构建方式
首先,将Kubernetes源码通过Go语言工具下载下来,并切换至Kubernetes 1.14代码版本,命令示例如下:
![](https://epubservercos.yuewen.com/FF83E6/17517091906682706/epubprivate/OEBPS/Images/38914_27_1.jpg?sign=1739303358-XcYA8HY4UIsdRLajjtrCh6sSfjfvZBvN-0-c0193454fb37792adf5871773e220e01)
注意:构建Kubernetes 1.14版本,需要使用Go 1.12或更高版本。不同的Kubernetes版本对应的Go语言版本也不同。
下面通过cloc代码统计工具查看Kubernetes源码。cloc是一个由Perl语言开发的开源代码统计工具,支持多平台使用、多语言识别,能够计算指定目标文件或文件夹中的文件数(files)、空白行数(blank)、注释行数(comment)和代码行数(code)。cloc命令示例如下:
![](https://epubservercos.yuewen.com/FF83E6/17517091906682706/epubprivate/OEBPS/Images/38914_27_2.jpg?sign=1739303358-nTvs5ZU8lgDYJmby9E4Q0N9vb4PpWfXK-0-3f4a6a5ae5e0c0c0da08db682dc9274e)
![](https://epubservercos.yuewen.com/FF83E6/17517091906682706/epubprivate/OEBPS/Images/38914_28_1.jpg?sign=1739303358-uGWsZ5lAyrTnNPhzVOdltFq2L7o9SM8Y-0-6b9fa6fc6179aadbcc38b79e68159d5f)
从cloc代码统计命令的输出可以看到,Kubernetes 1.14拥有大约357万行代码,其中Go语言代码占303万行,这是非常庞大的代码量。当然,其中也包含通过代码生成器生成的Go语言代码文件。
提示:本书中所有的源码文件路径,都以Kubernetes源码根目录作为代码路径(即$GOPATH/src/k8s.io/kubernetes)。