azure - K8S - 获取配置地图数据问题
问题描述
我们需要每个使用我们的二进制文件的 pod 都能够读取特定的config map
我们使用 Go API 来读取配置映射。
https://github.com/kubernetes/client-go
这里棘手的部分是一些 pod 具有以下配置 automountServiceAccountToken: false
(不幸的是,我们无法更改它:()
因此我收到以下错误:
open /var/run/secrets/kubernetes.io/serviceaccount/token:no such file or directory
知道如何避免这种情况吗?
是否有其他解决方案如何提供特定的环境变量以在所有 pod 和所有命名空间上可用?
解决方案
您需要手动创建令牌:
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
推荐阅读
- plot - Veusz 平滑曲线
- c# - 使用 Microsoft.Web.Administration 应用程序更改身份验证模式
- anylogic - 启动时在 Anylogic 中更改 GIS 路由
- python - 从烧瓶服务器提供大量图像
- visual-studio-code - VScodevim 如何跳转到一个非常大的列位置
- python - sqlite3.OperationalError:靠近“)”:tkinter Python中的语法错误
- php - 当我已经使用工作正常的文章时,如何在 htaccess 中为配置文件用户创建干净的 url
- cassandra - [Ubuntu 20.04]DevCenter 启动时出现错误 java.lang.NoClassDefFoundError: org/w3c/dom/stylesheets/StyleSheet
- git - git push -u origin main 错误(除 master 以外的其他名称)
- rust - 在 Rust 中,将文件读取的数据保持在范围内的正确方法是什么?