(一)k8s源码学习之环境准备
本文介绍了学习k8s源代码环境准备相关工作,包括如何解决包依赖问题等。1. go环境准备安装go:https://golang.org/dl/,参考官方说明安装即可。修改go环境变量:windows 10环境:搜索框输入env 》编辑系统环境变量 》点击环境变量 》点击GOPATH 》编辑 》输入如 D:\Learning\gopath 》保存 。 (注:如果打开了powersh...
本文介绍了学习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不能识别,需要手工复制替换,具体操作过程为:
- 删除vendor\k8s.io目录下所有的软链文件:如api、kubectl、kubelet等。
- 复制staging下的相关包到vendor\k8s.io下
- 复制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. 其他
- 修改go proxy: https://goproxy.io/ ,可以下载godep等工具,记得添加GOPATH bin目录到系统环境变量
go env -w GOPROXY=https://goproxy.io,direct
- 关于go包依赖管理govendor:
- windows powershell使用文档:https://docs.microsoft.com/zh-cn/powershell/
更多推荐
所有评论(0)