猿问

在非默认命名空间中部署时,Cluster Config 无法获取 Pod

当我将 golang 服务部署到命名空间以外的任何default命名空间时,该服务无法检索任何命名空间上的 pod。default使用 golang client-go api,部署在命名空间上的相同服务可以完美运行。

这是一个安全问题吗?

谢谢。



小怪兽爱吃肉
浏览 110回答 3
3回答

汪汪一只猫

这个问题是权限问题。由于您正在使用rest.InClusterConfig(config)创建客户端。这意味着它使用 pod 的服务帐户作为凭证。因此,请检查该服务帐户是否具有在任何命名空间中获取 pod 的权限。如果 pod 中的服务帐户未定义,则它将使用default服务帐户。如果您的集群中启用了 RBAC,则检查该命名空间中的角色绑定,以确定您的服务帐户是否具有权限。# to see the list of role bindings in 'default' namespacekubectl get rolebindings --namespace default查看具体rolebindingkubectl get rolebindings ROLE-BINDING-NAME --namespace default -o yaml您还可以创建角色和角色绑定以授予权限。

翻阅古今

以下是我在 minikube 集群上使用的方法,使默认服务帐户能够访问公共资源上的 crud 操作。明显的警告是您需要在真实集群上小心。apiVersion: rbac.authorization.k8s.io/v1kind: Rolemetadata:  name: crud-role  namespace: defaultrules:- apiGroups: ["", "apps", "batch"]  resources: [ "deployments", "jobs", "pods", "replicasets", "services" ]  verbs: [ "create", "get", "list", "delete"]---apiVersion: rbac.authorization.k8s.io/v1kind: RoleBindingmetadata:  name: crud-role-binding  namespace: defaultroleRef:  apiGroup: rbac.authorization.k8s.io  kind: Role  name: crud-rolesubjects:  - kind: ServiceAccount    name: default    namespace: default

POPMUISE

我收到了类似的错误,但是来自在默认命名空间中使用 golang 客户端的 pod:pods 被禁止:用户“system:serviceaccount:default:default”无法在集群范围内列出 API 组“”中的资源“pods”戈兰代码片段:if configMode == "IN_CLUSTER" {    // creates the in-cluster config    config, err := rest.InClusterConfig()    if err != nil {        panic(err.Error())    }    return config, err}它仅针对获取和列表进行了修改:apiVersion: rbac.authorization.k8s.io/v1kind: ClusterRolemetadata:  name: query-role  namespace: defaultrules:- apiGroups: ["", "apps", "batch"]  resources: [ "deployments", "jobs", "pods", "replicasets", "services" ]  verbs: [ "get", "list" ]---apiVersion: rbac.authorization.k8s.io/v1kind: ClusterRoleBindingmetadata:  name: query-role-binding  namespace: defaultroleRef:  apiGroup: rbac.authorization.k8s.io  kind: ClusterRole  name: query-rolesubjects:  - kind: ServiceAccount    name: default    namespace: default
随时随地看视频慕课网APP

相关分类

Go
我要回答