为什么掌舵不接受kubernetes机密进行部署?

时间:2020-04-30 00:09:05

标签: kubernetes kubernetes-helm

我已经在Kubernetes集群内部创建了秘密,用于从私有存储库中提取图像,并将其添加到helm values.yml中。

部署开始后(helm install chart /chart),我看到头盔部署一直在因超时而崩溃。

“ kubectl describe pod”向我显示了一个错误:“ imagePullBackoff”和“凭证错误”。

如果同时使用kubectl apply -f deployment.yml文件部署同一应用程序,则此机密将按预期工作,并且下载映像时不会出现任何问题,并且部署成功。

问题是如何迫使这个秘密与头盔图一起使用?

2 个答案:

答案 0 :(得分:0)

尝试使用此命令创建密钥:

kubectl  create secret docker-registry mysecret --docker-server=<docker-repo> --docker-username=<docker-username> --docker-password=<docker-password> --docker-email=<email>

(在上述命令中提供您各自的输入)

答案 1 :(得分:-1)

来自掌舵文件

首先,假定凭据是在values.yaml文件中定义的,如下所示:

imageCredentials:
  registry: quay.io
  username: someone
  password: sillyness

然后我们按如下方式定义我们的帮助模板:

{{- define "imagePullSecret" }}
{{- printf "{\"auths\": {\"%s\": {\"auth\": \"%s\"}}}" .Values.imageCredentials.registry (printf "%s:%s" .Values.imageCredentials.username .Values.imageCredentials.password | b64enc) | b64enc }}
{{- end }}

最后,我们在较大的模板中使用帮助器模板来创建Secret清单:

apiVersion: v1
kind: Secret
metadata:
  name: myregistrykey
type: kubernetes.io/dockerconfigjson
data:
  .dockerconfigjson: {{ template "imagePullSecret" . }}

部署中

  containers:
  - name: private-reg-container
    image: <your-private-image>
  imagePullSecrets:
  - name: myregistrykey