k8s集群外go客户端示例

(金庆的专栏 2018.7)

集群内客户端需要打包成docker镜像,上传镜像,然后用 kubectl run 运行,
还要设置用户角色,太麻烦,还是用集群外客户端测试比较方便。

客户端库使用 ericchiang/k8s, 比官方的 client-go 要简单许多。

集群内客户端使用k8s.NewInClusterClient()创建,
集群外客户端使用 NewClient(config *Config), 需要输入配置,
配置就是从 ~/.kube/config 读取的。
参考 https://github.com/ericchiang/k8s/issues/79

代码如下:

package mainimport ("context""fmt""log""io/ioutil""github.com/ghodss/yaml""github.com/ericchiang/k8s"corev1 "github.com/ericchiang/k8s/apis/core/v1"
)func main() {data, err := ioutil.ReadFile("config")if err != nil {panic(err)}// Unmarshal YAML into a Kubernetes config object.var config k8s.Configif err := yaml.Unmarshal(data, &config); err != nil {panic(err)}client, err := k8s.NewClient(&config)// client, err := k8s.NewInClusterClient()if err != nil {log.Fatal(err)}var nodes corev1.NodeListif err := client.List(context.Background(), "", &nodes); err != nil {log.Fatal(err)}for _, node := range nodes.Items {fmt.Printf("name=%q schedulable=%t\n", *node.Metadata.Name, !*node.Spec.Unschedulable)}
}

yaml 库用了 ghodss/yaml,不能用 go-yaml, 不然报错
yaml: unmarshal errors
见:https://github.com/ericchiang/k8s/issues/81

复制 .kube/config 到运行目录,运行列出所有节点:

[jinqing@host-10-1-2-19 out-cluster]$ cp ~/.kube/config .
[jinqing@host-10-1-2-19 out-cluster]$ ./out-cluster
name="host-10-1-2-20" schedulable=true
name="host-10-1-2-21" schedulable=true
name="host-10-1-2-22" schedulable=true
name="host-10-1-2-19" schedulable=true
name="host-10-1-2-18" schedulable=true

k8s集群外go客户端示例相关推荐

  1. 集群外独立部署Prometheus+Grafana监控K8S全面解析

    简介 Prometheus+Grafana作为监控K8S的解决方案,大都是在K8S集群内部部署,这样可以直接调用集群内的cert及各种监控url,但是增加了集群的资源开销.因此在资源有限的情况下,我更 ...

  2. 在k8s上部署cerebro访问集群外部署的es

    需求:公司购买的是阿里云 Elasticsearch 服务,阿里云提供 kibana 用于可视化控制,而没有 corebro,所以需要在 k8s 集群中安装一个 cerebro,用于查看 k8s 集群 ...

  3. 一个有趣的Go项目,3D界面管理k8s集群,真好玩!

    大家好,我是小碗汤,今天分享一个用Golang开发,很好玩的工具`KubeCraftAdmin`[1]:用Minecraft方式管理k8s的工具,感兴趣的兄弟不妨玩一玩.文末有视频,供您鉴赏~ Min ...

  4. 备份k8s_树莓派k8s集群安装kafka集群及监控

    安装准备 树莓派k8s集群 root@pi4-master01:~# kubectl get nodes -o wideNAME STATUS ROLES AGE VERSION INTERNAL-I ...

  5. k8s集群管理(一)

    cfssl 工具 cfssl-certinfo 验证证书信息 用法: cfssl-certinfo -cert xxx.pem cfssl-certinfo -domain www.baidu.com ...

  6. 使用跳板机实现外网访问局域网内虚拟机的大数据及K8S集群【借助向日葵】

    使用跳板机实现外网访问局域网内虚拟机的大数据及K8S集群[借助向日葵] 前言 笔者作为一杆大数据学徒工,工作和学习中都需要有几套属于自己的集群. 双路e5主机:https://lizhiyong.bl ...

  7. 通过java 客户端 操作k8s集群

    1.在diea中新建一个maven工程然后倒入一下依赖 <dependency><groupId>io.kubernetes</groupId><artifa ...

  8. 使用KubeKey安装K8S集群

    KubeKey [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9a5Ji2nE-1625797190511)(https://github.com/kubesphere ...

  9. 自建k8s平台-高可用k8s集群

    自建k8s平台-高可用k8s集群 一.前置概念与操作 1.内核升级 3.10内核在大规模集群具有不稳定性 内核升级到4.19+ # 查看内核版本 uname -sr # 0.升级软件包,不升级内核 y ...

最新文章

  1. websockets_如何将WebSockets与AWS API Gateway和Lambda一起使用来构建实时应用程序
  2. Java架构师必知必会,带走不谢
  3. 独家 | 简单三步实现Python脚本超参数调优(附代码)
  4. 机器视觉中彩色成像必须考虑的十个问题
  5. ai的弹窗点了都不响应_【评价集合】拼多多评价,你所不知道的点都在这里!...
  6. 清华伯克利造出机械小强:承重200万倍踩不死,跑得和真蟑螂一样快
  7. C#完美任意设置webBrowser框架默认的IE内核版本
  8. 利用js对table动态增加和删除行(附带table样式,鼠标滑过和点击样式)
  9. 这家武汉工厂如果停工,全球都不答应
  10. 自定义springSecurity3.0 登录后自定义返回页面
  11. 2018-2019-20175203 实验二 《Java面向对象程序设计》
  12. unix到底有啥用_微信新上线的「拍拍」到底有啥用?
  13. 二维数组求最大子数组和
  14. 对外合作,你的作风就是公司的作风
  15. java生成多页pdf_java 多页pdf转化为多张图片
  16. ucml 连接虚字段
  17. linux 内存容量换算,Hi3516A开发--内存换算
  18. 大规模视觉定位地图关键技术:使用视觉匹配提升GPS的绝对定位精度
  19. 《程序员修炼之道》读书笔记(二)--第三周
  20. Sharding-JDBC概述

热门文章

  1. 2015 SCI期刊影响因子出炉
  2. 《给你的演讲加点儿“怪”味 》--演讲与口才
  3. Rocket Launching: A Universal and Efficient Framework for Training Well-performing Light Net论文阅读
  4. 图像的点云拼接-原理讲解与代码实现
  5. 【2018/10/27测试T1】洛阳怀
  6. idea中使用log4j(打开、关闭日志方法)
  7. 如何在Github上配置ssh key的密钥
  8. 【博文】:甲骨文收购AMD的缘由
  9. 【渝粤教育】电大中专跨境电子商务理论与实务 (2)作业 题库
  10. 票据OCR扫描仪-助力财务智能化