K8S通过go API读取配置图

K8S通过go API读取配置图,go,kubernetes,Go,Kubernetes,我有一个配置图,我需要通过api从K8S读取它 我创建了一个集群角色 kind: ClusterRole apiVersion: rbac.authorization.k8s.io/v1 metadata: name: zrole rules: - apiGroups: [""] resources: ["configmaps"] verbs: ["get", "list"] 和集群角色绑定 kind: ClusterRoleBinding apiVersion: rbac.aut

我有一个配置图,我需要通过api从K8S读取它

我创建了一个集群角色

kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: zrole
rules:
- apiGroups: [""]
  resources: ["configmaps"]
  verbs: ["get", "list"]
和集群角色绑定

kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: z-role-binding
subjects:
- kind: Group
  name: system:serviceaccounts
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: ClusterRole
  name: zrole

配置图

apiVersion: v1
kind: ConfigMap
metadata:
  name: z-config
  namespace: fdrs
data:
  avr: client1
  fuss: xurbz

这个词的用法是

clientSet.CoreV1().ConfigMaps(uNamespcae)

当我在本地运行代码(并向GoAPI提供kubeconfig)时,我能够获得配置映射数据, 然而,当我在集群内运行代码时,我得到了错误:
无效令牌
,你知道我在这里遗漏了什么吗

检查pod规范。默认情况下,它设置为
true
,但您可能已禁用它

使用官方的GO客户端。默认情况下,它读取正确的配置和令牌

如果不使用,请使用正确的配置:


检查pod中的令牌:
/var/run/secrets/kubernetes.io/servicecomport/token
并使用
kubernetes
服务。

您是否已将服务帐户附加到pod?@zerkms-它从本地运行,但没有服务帐户,在这种情况下必须使用机器Permission吗?如果是,请提供答案,我将结束问题。谢谢,我认为这与kubeconfig设置不正确有关。您是否设置了KUBECONFIG环境变量?@Jonlib“它从本地运行,没有服务帐户”——这是一个弱参数。要与API交互,您需要一个有效的令牌。如果您已创建
zrole
角色,则必须创建服务帐户并将其附加到容器。谢谢!您写信是为了检查
automountServiceAccountToken
和令牌的路径,是否可以从cli写下如何执行此操作?通过检查
automountServiceAccountToken
我的意思是检查您的yaml文件。就找吧。如果找不到它,很可能它已启用。代币很容易检查。只需将“exec”放入pod中,查看文件是否存在:
kubectl exec-it sh
。然后
ls/var/run/secrets/kubernetes.io/servicecomport/token