哈喽!今天心血来潮给大家带来了《Kubernetes Using Go API》,想必大家应该对Golang都不陌生吧,那么阅读本文就都不会很困难,以下内容主要涉及到,若是你正在学习Golang,千万别错过这篇文章~希望能帮助到你!
问题内容我对 kubernetes 的 golang API 有一些疑问。
我应该使用哪一个? k8s.io/client-go 还是 k8s.io/kubernetes/pkg/client?有什么区别?
我想获取所有 pod 的列表,然后监听添加/更新/删除事件,使用 api.Pods("").Watch 方法和使用 informer 有什么区别?
我正在集群内部使用 API,如何获取当前所在节点的名称?它只是机器的主机名吗?
解决方案
我应该使用哪一个? k8s.io/client-go 还是 k8s.io/kubernetes/pkg/client?
使用 k8s.io/client-go
。
使用 api.Pods("").Watch 方法和使用 informer 有什么区别?
Informer本质上是一个共享缓存,减少了API服务器的负载。除非您正在做一些琐碎的事情,否则这是首选方式。
如何获取我当前所在节点的名称?
使用 k8s.io/api/core/v1.Node,例如 this code。
顺便说一句,我和我的一位同事上周在英国 GopherCon 举办了一个关于这个主题的研讨会(在 Go 中使用 Kube API)——也许 slide deck 和 repo 对你有用;另外,还有一个附带的在线 Katacoda scenario 您可以使用它来玩。
文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《Kubernetes Using Go API》文章吧,也可关注编程网公众号了解相关技术文章。