【问题标题】:Unable to load in-cluster configuration无法加载集群内配置
【发布时间】:2021-10-05 15:44:07
【问题描述】:

我编写了一个 go 应用程序,它将列出集群中的所有约束违规。当尝试将其构建为 docker 映像并在我的 pod 中运行它并收到此错误时。

pod.yaml

apiVersion: v1
kind: Pod
metadata:
  name: opa
  labels:

    name: opa
spec:
  containers:
  - name: opa
    image: sathya0803/opa-task:latest
    resources:
      limits:
        memory: "128Mi"
        cpu: "500m"
    ports:
      - containerPort: 8000

错误:

revaa@revaa-Lenovo-E41-25:~/opa$ kubectl logs opa
2021/07/30 05:50:12 Using incluster K8S client
2021/07/30 05:50:12 Using incluster K8S client
2021/07/30 05:50:12 err:k8srequiredlabels.constraints.gatekeeper.sh is forbidden: User"system:serviceaccount:default:opa" cannot list resource "k8srequiredlabels" in API group "constraints.gatekeeper.sh" at 
 the cluster scope
 2021/07/30 05:50:12 listing constraints violations...
 2021/07/30 05:50:12 data: null

【问题讨论】:

  • 您的应用程序似乎无法解析环境变量。请重新表述您的问题,以包含最低限度的可重现代码。
  • 您使用的服务帐户没有使用 kubernetes API 执行此任务所需的权限。查看 RBAC 以使用适当的权限配置您自己的服务帐户。这不是 Go 问题。

标签: docker go google-kubernetes-engine kubernetes-helm kubectl


【解决方案1】:

正如@Ferdy Pruis 所述,您使用的服务帐户没有使用 kubernetes API 执行任务所需的权限。检查下面的 RBAC,为您自己的服务帐户配置适当的权限。

这将授予默认服务帐户查看权限。更安全的方法可能是创建一个新的服务帐户,授予其查看权限,然后将该服务帐户分配给部署配置。

apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
  name: default-view
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: view
subjects:
  - kind: ServiceAccount
    name: default
    namespace: default

请参阅这些链接以获取 creating and managing SAIAM

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-25
    • 1970-01-01
    • 2014-10-24
    • 2013-08-10
    • 2016-10-26
    相关资源
    最近更新 更多