我用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 關注
- 195 瀏覽
添加回答
舉報
0/150
提交
取消