如何在api.ListOptions中使用客户端的手表 - 去kubernetes的客户端SDK

时间:2017-01-09 08:27:02

标签: kubernetes

我想观察kubernetes集群中命名空间的更改,代码如下:

... log.Infoln("====== 1 ======= ") namespaces, err := clientset.Namespaces().List(api.ListOptions{Watch: true}) if err != nil { log.Errorln("Get namespaces from kubernetes cluster error:%v", err) } log.Infoln("====== 2 ======= ") for _, namespace := range namespaces.Items { log.Println("=======>> namespaces: ", namespace) } ...

此代码将在namespaces, err := clientset.Namespaces().List(api.ListOptions{Watch: true})处阻止。但是当我创建新的命名空间时,没有响应删除命名空间。

client-gok8s.io/client-go/1.5/

任何人都可以为我提供示例代码,谢谢。

1 个答案:

答案 0 :(得分:0)

我得到了答案:

var watch watch.Interface
if watch, err = clientset.Namespaces().Watch(api.ListOptions{Watch: true}); err != nil {
    log.Errorln("Watch namespaces from kubernetes cluster error:%v", err)
    return
}

eventChan := watch.ResultChan()
for event := range eventChan {
    log.Infoln(event)
}