网络
首先解决网络连接问题,mac shadowsocks 默认监听本地
socks5://127.0.0.1:1080
代理
git
设置 git 代理
git config --global http.proxy 'socks5://127.0.0.1:1080'
git config --global https.proxy 'socks5://127.0.0.1:1080'
go get
设置 go get http 代理
privacy
安装 privacy https://www.privoxy.org/
配置 privacy
vim /usr/local/etc/privoxy/config
在文件末尾增加
listen-address 0.0.0.0:1081
forward-socks5 / 127.0.0.1:1080 .
启动
sudo /Applications/Privoxy/startPrivoxy.sh
停止
sudo /Applications/Privoxy/stopPrivoxy.sh
go get
通过 http 代理 go get
http_proxy=127.0.0.1:1081 go get google.golang.org/appengine
Etcd v2.2.4
git clone git@github.com:coreos/etcd.git
git checkout -b phoenix tags/v2.2.4
KubeClient
usage In-Cluster
Package Management
Godep
etcd v2.2.4 使用 go 1.4 / go 1.5 build,依赖管理使用 Godep,项目中全路径引用 Godep 依赖
不建议使用 Godep 方案:尝试过 $GOPATH 下首先只保留 k8s-client,在其目录下 godep restore ./...
(实际效果:将 Godeps 下的依赖移动至 $GOPATH/src 下,新版本的 Godeps 会移除代码中的 Godeps 全路径前缀);将 etcd repository 移入 $GOPATH/src checkout 相应的分支后
godep restore ./...
,完成之后在 etcd 目录下 godep save ./...
;
godep save ./...
上述命令会将 $GOPATH 下的依赖拷贝到 Godeps 文件夹下
然而这么操作的话,并不能很好的解决依赖问题,具体原因没深究,现象是 k8s-client v2.0.0 依赖的 Godeps cloud.google.com
库版本不对,编译时会报错有变量找不到,而在 $GOPATH 下 cloud.google.com
的库是正确的
Glide
建议使用 Glide 方案,在 etcd v2 下增加新的文件夹例如 phoenix,在 phoenix 下 vim glide.yaml,例如
package: github.com/coreos/etcd/phoenix
import:
- package: k8s.io/client-go
version: v2.0.0
- package: golang.org/x/crypto
在 phoenix 文件夹下 vim phoenix.go 并 import 相应的依赖,否则 glide 不会真正添加该依赖至 vendor 目录
执行 glide update 解析并下载依赖
http_proxy=127.0.0.1:1081 glide update --strip-vendor
注意需要使用 --strip-vendor
option,将依赖 flatten 否则可能会出现 glog log_dir redefined 的错误
另外若是 flatten 之后仍然出现该错误,可修改
github.com/coreos/etcd/Godeps/_workspace/src/google.golang.org/grpc/grpclog/logger.go
只有该文件 import 了 Godeps 中的 glog;修改 import glog 为 github.com/golang/glog(当然,前提是 vendor 目录下有该目录,不然也不会出现冲突呃,这么修改,就是让大家 global 使用一个 glog,不然就会导致 log_dir redefined 错误)
修改 etcd v2 的 build 文件,将 phoenix 下的 vendor 目录 ln 到 $GOPATH 下,详细代码参考
git clone git@github.com:zrss/etcd.git
git checkout -b phoenix origin/etcd-backup
参考
Getting git to work with a proxy server
Mac 上将 shadowsocks 的 socks5 代理转为 http 代理
Github Etcd Repository
Godep
Glide
K8s-client-go
K8s-client-go Godep
K8s-client-go Glide
How-do-i-configure-go-to-use-a-proxy
How to remove local (untracked) files from the current Git working tree?
How to checkout remote git tag
Git: Refspec matches more than one
How to list all Git tags?
网友评论