Kubernetes Go API

are*_*ler 2 go kubernetes

我对kubernetes的golang API有一些疑问.

  1. 我应该使用哪一个?k8s.io/client-go或k8s.io/kubernetes/pkg/client?有什么不同?

  2. 我想得到所有pod的列表,然后听取添加/更新/删除事件,使用api.Pods("")之间的区别是什么.观察方法和使用线人?

  3. 我正在使用集群内部的API,如何获取我当前所在节点的名称?它只是机器的主机名吗?

Mic*_*las 6

我应该使用哪一个?k8s.io/client-go或k8s.io/kubernetes/pkg/client?

使用k8s.io/client-go.

使用api.Pods("")之间有什么区别.监视方法和使用线人?

informer本质上是一个共享缓存,减少了API服务器上的负载.除非你做的事情微不足道,否则这是首选方式.

如何获取我当前所在节点的名称?

使用k8s.io/api/core/v1.Node,请参阅此代码.

BTW,我和我的一位同事上周在GopherCon UK举办了一个关于这个主题的研讨会(使用Kube API和Go) - 也许幻灯片回购对你有用; 此外,还有一个随附的在线Katacoda场景,您可以使用它来玩.