gpt4 book ai didi

kubernetes - 带 Helm 的Kubernetes:MountVolume.SetUp的卷 “secret”失败:字符串文字中的字符 '\r'无效

转载 作者:行者123 更新时间:2023-12-02 11:47:05 25 4
gpt4 key购买 nike

我正在使用脚本来运行helm命令,该命令会升级我的k8s部署。
在我使用kubectl直接部署之前,由于我已经移至helm并开始使用图表,因此在k8s pods 上部署后,我看到一个错误:

MountVolume.SetUp failed for volume "secret" : invalid character '\r' in string literal



我的脚本看起来类似于:
value1="foo"
value2="bar"
helm upgrade deploymentName --debug --install --atomic --recreate-pods --reset-values --force --timeout 900 pathToChartDir --set value1 --set value2
deployment.yaml如下:
apiVersion: apps/v1
kind: Deployment
metadata:
name: deploymentName
spec:
selector:
matchLabels:
run: deploymentName
replicas: 2
template:
metadata:
labels:
run: deploymentName
app: appName
spec:
containers:
- name: deploymentName
image: {{ .Values.image.acr.registry }}/{{ .Values.image.name }}:{{ .Values.image.tag }}
volumeMounts:
- name: secret
mountPath: /secrets
readOnly: true
ports:
- containerPort: 1234
env:
- name: DOTENV_CONFIG_PATH
value: "/secrets/env"
volumes:
- name: secret
flexVolume:
driver: "azure/kv"
secretRef:
name: "kvcreds"
options:
usepodidentity: "false"
tenantid: {{ .Values.tenantid }}
subscriptionid: {{ .Values.subsid }}
resourcegroup: {{ .Values.rg }}
keyvaultname: {{ .Values.kvname }}
keyvaultobjecttype: secret
keyvaultobjectname: {{ .Values.objectname }}

可以看出,该错误与 secret音量及其值有关。
我已经三重检查了值中是否没有换行符或类似内容。

我已经运行 helm lint-没有发现错误。

我已经运行了 helm template-输出中没有任何奇怪或缺失的内容。

更新:
我已经复制了 helm template的输出,并放入了 deploy.yaml文件中。
然后使用 kubectl apply -f deploy.yaml手动部署该服务,并且...有效。
那使我认为这实际上是 helm中的某种错误?有道理?

更新2:
我还尝试用 azure/kv卷替换 emptyDir卷,并且能够使用 Helm 进行部署。似乎是 azure/kv量的 Helm 的特定问题?

有任何解决方法的想法吗?

最佳答案

一个完全正确的答案要求我说您的\ r问题的实际细节可能与我的不同。

通过查看AKS节点的kv日志(/var/log/kv-driver.log),发现了这个问题。就我而言,错误是:

原始错误:autorest / azure:服务返回了错误。 Status = 403 Code =“Forbidden” Message =“访问被拒绝。未在任何访问策略上找到 call 者。\ r \ n

您可以在此页面上学习SSH到该节点:

https://docs.microsoft.com/en-us/azure/aks/ssh

如果您想采用该解决方案,则我提出了一个问题:

https://github.com/Azure/kubernetes-keyvault-flexvol/issues/121

关于kubernetes - 带 Helm 的Kubernetes:MountVolume.SetUp的卷 “secret”失败:字符串文字中的字符 '\r'无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57526978/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com