K8S通过Go API读取配置图

时间:2019-12-08 09:47:08

标签: 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.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,知道在这里缺少什么吗?

1 个答案:

答案 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服务。