我有一个配置映射,需要通过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
code的用法类似于
clientSet.CoreV1()。ConfigMaps(uNamespcae)
当我在本地运行代码(并向GO api提供kubeconfig)时,我能够获取配置映射数据,
但是,当我在集群中运行代码时,出现错误:invalid token
,知道在这里缺少什么吗?
答案 0 :(得分:2)
在广告连播规范中选中automountServiceAccountToken
。默认情况下,它设置为true
,但也许您已禁用它。
使用官方的GO客户端。默认情况下,它将读取正确的配置和令牌。 https://github.com/kubernetes/client-go/blob/master/examples/in-cluster-client-configuration/main.go
如果不使用它,请使用正确的配置: https://kubernetes.io/docs/tasks/administer-cluster/access-cluster-api/#directly-accessing-the-rest-api-1
检查pod中的令牌:/var/run/secrets/kubernetes.io/serviceaccount/token
,并使用kubernetes
服务。