我用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))我创建了服务帐户令牌以分配给运行此代码的 Pod。但是当代码被执行时,Pod。项目没有 Pod。我在minikube中部署了这个pod。当我启动一些用于列出 pod 的 kubectl 命令时,通过这种方式,我可以获得资源,因此没有 t 权限问题。我想知道发生了什么,我该如何解决它。存储库 https://github.com/srpepperoni/inframanager.git图像被推入:https://hub.docker.com/r/jaimeyh/inframanager我有问题的端点是这个:mux.HandleFunc("/getPods", GetPodsFromNamespace)
1 回答

RISEBY
TA贡献1856条经验 获得超5个赞
您需要检查最后一行是否为非 nil。err
pods, err := clientset.CoreV1().Pods("").List(context.TODO(), metav1.ListOptions{})
好的,有问题了。pods 被禁止:用户 “system:serviceaccount:mis-pruebas:sa-prueba-go” 无法在集群范围内列出 API 组 “” 中的资源“pods”
如错误消息所示,服务帐户无权在群集范围内列出 Pod。您需要创建角色并将其绑定到服务帐户。
使用 RBAC 授权一文甚至提供了有关如何创建此类角色的角色示例。
- 1 回答
- 0 关注
- 170 浏览
添加回答
举报
0/150
提交
取消