- Kubernetes源码剖析
- 郑东旭
- 348字
- 2025-02-17 20:20:40
2.1 构建方式
Kubernetes构建方式可以分为3种,分别是本地环境构建、容器环境构建、Bazel环境构建,如图2-1所示。

图2-1 Kubernetes构建方式
首先,将Kubernetes源码通过Go语言工具下载下来,并切换至Kubernetes 1.14代码版本,命令示例如下:

注意:构建Kubernetes 1.14版本,需要使用Go 1.12或更高版本。不同的Kubernetes版本对应的Go语言版本也不同。
下面通过cloc代码统计工具查看Kubernetes源码。cloc是一个由Perl语言开发的开源代码统计工具,支持多平台使用、多语言识别,能够计算指定目标文件或文件夹中的文件数(files)、空白行数(blank)、注释行数(comment)和代码行数(code)。cloc命令示例如下:


从cloc代码统计命令的输出可以看到,Kubernetes 1.14拥有大约357万行代码,其中Go语言代码占303万行,这是非常庞大的代码量。当然,其中也包含通过代码生成器生成的Go语言代码文件。
提示:本书中所有的源码文件路径,都以Kubernetes源码根目录作为代码路径(即$GOPATH/src/k8s.io/kubernetes)。