英文:
List all namespaces in k8s in Go
问题
有人可以告诉我如何使用Go列出k8s中的所有命名空间吗?我一直在参考这个链接,但找不到可以列出所有命名空间的内容。
链接:https://pkg.go.dev/github.com/gruntwork-io/terratest/modules/k8s
我在Go的k8s包中没有看到任何ListNamespaces
函数。
英文:
Can anyone tell me how to list all namespaces in k8s using Go? I have been referencing this link but couldn't find anything that can list all namespaces.
Link: https://pkg.go.dev/github.com/gruntwork-io/terratest/modules/k8s
I don't see any ListNamespaces
functions for the k8s package in Go.
答案1
得分: 5
你可以尝试使用kubernetes/client-go库,你可以像这样使用:clientset.CoreV1().Namespaces("").List(context.TODO(), metav1.ListOptions{})
。你的clientset
可以在集群内部或外部实例化。
英文:
Try kubernetes/client-go, you can do like clientset.CoreV1().Namespaces("").List(context.TODO(), metav1.ListOptions{})
. Your clientset
maybe instantiate within the cluster or outside.
答案2
得分: 4
要列出命名空间,您可以使用类似以下的代码:
func ListNameSpaces(coreClient kubernetes.Interface) {
nsList, err := coreClient.CoreV1().
Namespaces().
List(context.Background(), metav1.ListOptions{})
//checkErr(err)
fmt.Println(err)
for _, n := range nsList.Items {
fmt.Println(n.Name)
}
}
这段代码可以通过传入coreClient
参数来获取Kubernetes核心客户端,并使用List
方法来获取命名空间列表。然后,通过遍历nsList.Items
来打印每个命名空间的名称。
英文:
To list namespaces you can use something like this:
func ListNameSpaces(coreClient kubernetes.Interface) {
nsList, err := coreClient.CoreV1().
Namespaces().
List(context.Background(), metav1.ListOptions{})
//checkErr(err)
fmt.Println(err)
for _, n := range nsList.Items {
fmt.Println(n.Name)
}
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论