本文介绍了学习k8s源代码环境准备相关工作,包括如何解决包依赖问题等。

1. go环境准备

安装go:https://golang.org/dl/ ,参考官方说明安装即可。

修改go环境变量:

  • windows 10环境:搜索框输入env 》编辑系统环境变量 》点击环境变量 》点击GOPATH 》编辑 》输入如 D:\Learning\gopath 》保存 。 (注:如果打开了powershell,需要关闭重新打开powershell后生效) 
  • mac环境:vim ~/.bash_profile 》添加路径,如 export GOPAHT=~/Downloads/Learning/gopath 。(生效命令:source ~/.bash_profile)

2. 代码下载

k8s代码库地址:https://github.com/kubernetes/kubernetes

在GOPATH路径下创建 src/k8s.io(windows为src\k8s.io) 文件夹 ,切换到k8s.io目录下下载k8s代码库

  • git clone方式:git clone  https://github.com/kubernetes/kubernetes , 可能比较慢,建议直接下载zip
  • 直接下载方式:点击绿色按钮 Clone or download 》Download ZIP 》下载,下载完解压,重命名为kubernetes。(windows环境解压后可能有两层目录,要里面那层)

最终的目录结果为:$GOPATH/src/k8s.io/kubernetes/README.md (windows为\)

3. 依赖包准备

因为某些原因,国内不能直接下载k8s依赖相关go package,但k8s代码库使用govendor本身自带了相关package,操作如下:

windows环境

k8s代码库根目录vendor目录下存放了所有依赖包,但是vendor\k8s.io下诸如 kubectl、kubelet等包是软链到k8s根目录staging/src/k8s.io/下,windows不能识别,需要手工复制替换,具体操作过程为:

  1. 删除vendor\k8s.io目录下所有的软链文件:如api、kubectl、kubelet等。
  2. 复制staging下的相关包到vendor\k8s.io下
  3. 复制vendor目录下所有文件到GOPATH src目录下

如果不熟悉powershell,建议直接windows窗口页面直接操作,powershell具体命令为:

cd $env:GOPATH
Get-Item .\src\k8s.io\kubernetes\vendor\k8s.io\* | Where-Object { $_.Length -gt 1 } | Remove-Item
Copy-Item -Recurse -Force .\src\k8s.io\kubernetes\staging\src\k8s.io\* .\src\k8s.io\kubernetes\vendor\k8s.io\
Copy-Item -Recurse -Force .\src\k8s.io\kubernetes\vendor\* .\src\

mac环境:

不需要考虑软链问题,直接复制vendor下依赖包

cd $GOPATH
cp -r src/k8s.io/kubernetes/vendor/* src/

4. 创建工程

IDE建议用Visual Studio Code,

  • windows:File 》Open Folder 》 选择GOPATH src目录 》点击选择文件夹
  • mac:File 》Open..  》选择GOPATH src目录 》点击打开

打开k8s.io/kubernetes/cmd/kubectl/kubectl.go,vscode提示的go相关插件都安装即可,成功样例如下:

5. 其他

 

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐