我正在Kubernetes集群中运行minio部署。我过去在yaml文件中拥有明文的访问和秘密密钥,如下所示:
apiVersion: apps/v1
kind: Deployment
metadata:
name: minio
spec:
...
containers:
- name: minio
volumeMounts:
- name: data
mountPath: "/data"
image: minio/minio:RELEASE.2021-04-06T23-11-00Z
args:
- gateway
- nas
- /data
env:
- name: MINIO_ACCESS_KEY
value: "minio"
- name: MINIO_SECRET_KEY
value: "mysupersecretkey"
...这个很好用。但是,当我将credetials移动到kubernetes秘密中时,minio不再识别这些credetials,尽管它们被加载到相同的环境变量中:
apiVersion: apps/v1
kind: Deployment
...
containers:
- name: minio
...
env:
- name: MINIO_ACCESS_KEY
valueFrom:
secretKeyRef:
name: minio-secret
key: minioAccessKey
- name: MINIO_SECRET_KEY
valueFrom:
secretKeyRef:
name: minio-secret
key: minioSecretKey
...我可以确认,这些凭据作为环境变量正确地装入容器中:
$ echo $MINIO_ACCESS_KEY
minio
$ echo $MINIO_SECRET_KEY
mysupersecretkey但minio不承认这些凭据:

当这些变量起源于kubernetes的秘密时,这些变量的使用方式有什么区别吗?
编辑
我也尝试过MINIO_ROOT_USER和MINIO_ROOT_PASSWORD变量,就像docs建议的那样。但是,使用kubernetes秘密会导致相同的错误,而使用明文则不会出现错误。
发布于 2022-01-18 13:46:22
我已经解决了这个问题,这个问题是由全权证书写入库伯奈特秘密的方式引起的。结果是,我使用的工具在\n (0x0a)编码的秘密中附加了一个base64换行符。
这就是为什么凭据与我在登录UI中输入的内容不匹配的原因。
https://stackoverflow.com/questions/70753424
复制相似问题