美文网首页
Set up k8s-client-go for etcd v2

Set up k8s-client-go for etcd v2

作者: 哲人善思 | 来源:发表于2017-07-02 15:53 被阅读90次

网络

首先解决网络连接问题,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?

相关文章

  • Set up k8s-client-go for etcd v2

    网络 首先解决网络连接问题,mac shadowsocks 默认监听本地 代理 git 设置 git 代理 go ...

  • etcd 官方示例

    原文地址:https://etcd.io/docs/v3.3.12/demo/ 启动集群(Set up a clu...

  • etcd API-V2

    etcd API V2 获取etcd版本 设置etcd的key的value V2版本的key在etcd是按照目录格...

  • etcd线上推荐配置

    关注点: 加密配置 压缩配置 日志配置 监控指标 v2状态 /etc/etcd/etcd.conf 相关参数含义 ...

  • APNs 原理

    Setting Up a Remote Notification Server Set up a server t...

  • 2022-03-19

    grow up 成长,长大 give up放弃,献出 build up 建立 set up 架起,建立 put u...

  • install k8s

    step 1 Set up virtual machine. Set at least 4 processors ...

  • Authentication Project: Secret P

    Sign Up Page After a complex set up process, finally we c...

  • 4.3 LINEAR INDEPENDENCE

    For a given set of vectors S = {v1, v2,..., vn}express on...

  • 2018-09-29

    This is a tool to set up a sports countdown reminder and ...

网友评论

      本文标题:Set up k8s-client-go for etcd v2

      本文链接:https://www.haomeiwen.com/subject/awvncxtx.html