用client-go二开kubernetes glide的golang 的包管理

你的名字 2022-06-13 01:49 301阅读 0赞

1.下载client-go官网地址自行查找,通过go get 或者 git clone 都可以
2.安装minikube
3.执行

kubectl config view

kubectl config view

  1. apiVersion: v1
  2. clusters:
  3. - cluster:
  4. certificate-authority: /Users/xinzhiyun/.minikube/ca.crt
  5. server: https://192.168.99.104:8443
  6. name: minikube
  7. contexts:
  8. - context:
  9. cluster: minikube
  10. user: minikube
  11. name: minikube
  12. current-context: minikube
  13. kind: Config
  14. preferences: {}
  15. users:
  16. - name: minikube
  17. user:
  18. client-certificate: /Users/xinzhiyun/.minikube/apiserver.crt
  19. client-key: /Users/xinzhiyun/.minikube/apiserver.key

4.连接kubernetes

  1. package k8sclinet
  2. import (
  3. //metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
  4. "k8s.io/client-go/kubernetes"
  5. "k8s.io/client-go/tools/clientcmd"
  6. "github.com/golang/glog"
  7. "flag"
  8. )
  9. /** GetKubetnetesClient is get kubernetes client */
  10. func GetKubetnetesClient() (kubeClient *kubernetes.Clientset, err error) {
  11. kubeconfig := flag.String("kubeconfig", "config", "absolute path to the kubeconfig file")
  12. config, errConfig := clientcmd.BuildConfigFromFlags("", *kubeconfig)
  13. if errConfig != nil {
  14. glog.Errorf("get kubetnetes config failed %#v\n",errConfig)
  15. return kubeClient, errConfig
  16. }
  17. kubeClient, err = kubernetes.NewForConfig(config)
  18. if err != nil {
  19. glog.Errorf("get kubernetes client failed %#v\n",err)
  20. return kubeClient, err
  21. }
  22. return kubeClient, nil
  23. }

config 文件的内容是通过执行kubectl config view得到的
完毕


**

以下跟kubetnetes 无关

**

安装glide

go get github.com/Masterminds/glide

运行

make build

将执行文件放到环境变量的路径($GOROOT/bin)当中

项目目录结构

  1. - $GOPATH/src/myProject (Your project)
  2. |
  3. |-- glide.yaml
  4. |
  5. |-- glide.lock
  6. |
  7. |-- main.go (Your main go code can live here)
  8. |
  9. |-- mySubpackage (You can create your own subpackages, too)
  10. | |
  11. | |-- foo.go
  12. |
  13. |-- vendor
  14. |-- github.com
  15. |
  16. |-- Masterminds
  17. |
  18. |-- ... etc.

使用例子

  1. $ glide init # 初始化项目
  2. $ vim glide.yaml # 编辑配置
  3. $ glide install # 下载依赖包和依赖包所需的依赖

示例:

  1. package: query_usable_account/query_usable_account
  2. import:
  3. - package: github.com/go-sql-driver/mysql
  4. version: v1.3
  5. ignore:
  6. - appengine
  • 添加新的依赖包
    可以手动修改glide.yaml文件或者使用glide get,如

glide get github.com/satori/go.uuid#v1.0.0

  • 代码仓库中加入glide.yaml和glide.lock文件,被所有成员共享,vendor目录可以忽略

发表评论

表情:
评论列表 (有 0 条评论,301人围观)

还没有评论,来说两句吧...

相关阅读