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