K8S-获取配置图数据问题

时间:2019-12-09 11:53:38

标签: azure go kubernetes

我们需要每个使用我们的二进制文件的pod都具有读取特定config map

的能力

我们为此使用Go API来读取配置映射。

https://github.com/kubernetes/client-go

这里有些吊舱的棘手部分是具有以下配置automountServiceAccountToken: false(不幸的是,我们无法更改它:()

因此我收到以下错误:

 open /var/run/secrets/kubernetes.io/serviceaccount/token:no such file or directory

任何想法如何避免这种情况?

还有其他解决方案如何提供特定的env变量以在所有Pod和所有命名空间上可用?

https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#use-the-default-service-account-to-access-the-api-server

1 个答案:

答案 0 :(得分:2)

您需要手动创建令牌:

apiVersion: v1
kind: Secret
metadata:
  name: build-robot-secret
  annotations:
    kubernetes.io/service-account.name: default # I assume you use the default service account
type: kubernetes.io/service-account-token

然后将此秘密作为文件安装到pod中

apiVersion: v1
kind: Pod
metadata:
  name: mypod
spec:
  containers:
  - name: mypod
    image: redis
    volumeMounts:
    - name: foo
      mountPath: "/var/run/secrets/kubernetes.io/serviceaccount"
  volumes:
  - name: foo
    secret:
      secretName: build-robot-secret