我用 kubernetes/go-client 做了一个演示,我尝试列出集群中的 pod。
config, err := rest.InClusterConfig()
if err != nil {
panic(err.Error())
}
clientset, err := kubernetes.NewForConfig(config)
if err != nil {
panic(err.Error())
}
pods, err := clientset.CoreV1().Pods("").List(context.TODO(), metav1.ListOptions{})
fmt.Fprint(w, "There are d pods in the cluster\n", len(pods.Items))
我创建了 serviceaccount 令牌以分配给运行此代码的 pod。
但是当代码执行时 pods.Items 没有 pod。
我在 minikube 中部署了这个 pod。当我启动一些 kubectl 命令来列出 pod 时,我可以通过这种方式获取资源,因此不会出现权限问题。
我想知道发生了什么以及如何解决它。
存储库https://github.com/srpepperoni/inframanager.git
图像被推入:https ://hub.docker.com/r/jaimeyh/inframanager
我遇到问题的端点是这个:
mux.HandleFunc("/getPods", GetPodsFromNamespace)