用client-go二开kubernetes glide的golang 的包管理
1.下载client-go官网地址自行查找,通过go get 或者 git clone 都可以
2.安装minikube
3.执行
kubectl config view
apiVersion: v1
clusters:
- cluster:
certificate-authority: /Users/xinzhiyun/.minikube/ca.crt
server: https://192.168.99.104:8443
name: minikube
contexts:
- context:
cluster: minikube
user: minikube
name: minikube
current-context: minikube
kind: Config
preferences: {}
users:
- name: minikube
user:
client-certificate: /Users/xinzhiyun/.minikube/apiserver.crt
client-key: /Users/xinzhiyun/.minikube/apiserver.key
4.连接kubernetes
package k8sclinet
import (
//metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/tools/clientcmd"
"github.com/golang/glog"
"flag"
)
/** GetKubetnetesClient is get kubernetes client */
func GetKubetnetesClient() (kubeClient *kubernetes.Clientset, err error) {
kubeconfig := flag.String("kubeconfig", "config", "absolute path to the kubeconfig file")
config, errConfig := clientcmd.BuildConfigFromFlags("", *kubeconfig)
if errConfig != nil {
glog.Errorf("get kubetnetes config failed %#v\n",errConfig)
return kubeClient, errConfig
}
kubeClient, err = kubernetes.NewForConfig(config)
if err != nil {
glog.Errorf("get kubernetes client failed %#v\n",err)
return kubeClient, err
}
return kubeClient, nil
}
config 文件的内容是通过执行kubectl config view得到的
完毕
**
以下跟kubetnetes 无关
**
安装glide
go get github.com/Masterminds/glide
运行
make build
将执行文件放到环境变量的路径($GOROOT/bin)当中
项目目录结构
- $GOPATH/src/myProject (Your project)
|
|-- glide.yaml
|
|-- glide.lock
|
|-- main.go (Your main go code can live here)
|
|-- mySubpackage (You can create your own subpackages, too)
| |
| |-- foo.go
|
|-- vendor
|-- github.com
|
|-- Masterminds
|
|-- ... etc.
使用例子
$ glide init # 初始化项目
$ vim glide.yaml # 编辑配置
$ glide install # 下载依赖包和依赖包所需的依赖
示例:
package: query_usable_account/query_usable_account
import:
- package: github.com/go-sql-driver/mysql
version: v1.3
ignore:
- appengine
- 添加新的依赖包
可以手动修改glide.yaml文件或者使用glide get,如
glide get github.com/satori/go.uuid#v1.0.0
- 代码仓库中加入glide.yaml和glide.lock文件,被所有成员共享,vendor目录可以忽略
还没有评论,来说两句吧...