![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=1738868895-ngF7fvxgF4BIVE01vZn3Baywk2wjxHIa-0-24e0cfac0328753e645503995309003f)
图2-1 Kubernetes构建方式
首先,将Kubernetes源码通过Go语言工具下载下来,并切换至Kubernetes 1.14代码版本,命令示例如下:
![](https://epubservercos.yuewen.com/FF83E6/17517091906682706/epubprivate/OEBPS/Images/38914_27_1.jpg?sign=1738868895-C47qhprX2y8U8Ni9suI7PFFOpWLyArOI-0-c4ff7e2f6c268dc3f05cb4d4eaa8f885)
注意:构建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=1738868895-b92zUduIEqPVcw3inERPxXWhMTVysmzJ-0-e0be94fa708dda572f72002acfb8b81b)
![](https://epubservercos.yuewen.com/FF83E6/17517091906682706/epubprivate/OEBPS/Images/38914_28_1.jpg?sign=1738868895-D3q7h1hL3NRu6ht5E5KLhQqRAhqYlYF0-0-60449dba8aed864a7c905a5ee4f5adce)
从cloc代码统计命令的输出可以看到,Kubernetes 1.14拥有大约357万行代码,其中Go语言代码占303万行,这是非常庞大的代码量。当然,其中也包含通过代码生成器生成的Go语言代码文件。
提示:本书中所有的源码文件路径,都以Kubernetes源码根目录作为代码路径(即$GOPATH/src/k8s.io/kubernetes)。