1.golang环境搭建
1.1 widows
- 下载地址 选择msi格式的文件即可
- 安装完毕后,进入terminal界面,输入命令go vension,检验golang安装是否完毕
- 可供配置go的环境变量
GOROOT:go语言的安装目录
GOPATH:go语言的工程目录
GO111MODULE:GO111MODULE是Go语言1.11版本引入的环境变量,用于控制Go的依赖管理模式。当GO111MODULE=off时,Go将采用旧的GOPATH依赖管理方式。当GO111MODULE=on时,Go将使用新的基于模块的依赖管理方式,并忽略GOPATH
GOPROXY:golang镜像源代理地址
#建议配置
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.io,direct
1.2 linux
下文给出cenrtos下的golang环境配置脚本
#!/bin/bash
# 安装依赖
yum install -y wget git
# 下载并安装Go
wget https://golang.google.cn/dl/go1.20.4.linux-amd64.tar.gz
tar -xzf go1.20.4.linux-amd64.tar.gz
mv go /usr/local
# 设置环境变量
echo 'export PATH=$PATH:/usr/local/go/bin' >> /etc/profile
echo 'export GOPATH=$HOME/go' >> /etc/profile
echo 'export PATH=$PATH:$GOPATH/bin' >> /etc/profile
source /etc/profile
# 验证安装是否成功
go version
go env -w GOPROXY=https://mirrors.aliyun.com/goproxy/
2. 源码环境搭建
环境:k8s版本1.23
编译器:goland 操作系统:windows
源码下载:https://gitee.com/mirrors/kubernetes:
注意:官网的源码下载速度过慢,建议从gitee上拉取镜像
- 创建目录
为了保证后文执行go mod相关命令不出现异常文件,建议将所有clone的源码保存在GOPATH路径下的src文件夹中。如下图所示,D://go_workbench是笔者的GOPATH路径。
- 检查k8s源码中的go.mod文件内容,在src目录下创建目录层级k8s.io/kubernetes,在这里clone k8s代码
# go.mod文件内容
module k8s.io/kubernetes
go 1.21
- 在goland中clone源码并选择保存在上述目录中
- clone完毕后,在代码路径下执行命令构建依赖
PS D:\go_workbench\src\k8s.io\kubernetes> go mod tidy
PS D:\go_workbench\src\k8s.io\kubernetes> go mod vendor
- 等待goland的index构建完毕后,可以开始源码阅读了
goland为了阅读体验,添加了一些索引,方便定位代码位置,所以在上述流程完毕后,可能需要等待一段时间才可以构建好代码环境。