使用环境变量时,Kubernetes无法将其视为Secret非法base64数据

jus*_*dev 1 kubernetes

我正在尝试应用为我提供的 kubernetes 代码。我收到错误:

Error from server (BadRequest): error when creating "infra/ecr-creds/rendered.yml": Secret in version "v1" cannot be handled as a Secret: illegal base64 data at input byte 0
Run Code Online (Sandbox Code Playgroud)

据我了解,错误来自于此:

apiVersion: v1
kind: Secret
metadata:
  name: aws-ecr-creds-secret
  namespace: whatever
  labels:
    app.kubernetes.io/name: aws-multi-ecr-credentials
    helm.sh/chart: aws-multi-ecr-credentials-1.4.3
    app.kubernetes.io/instance: aws-ecr-creds-novisign
    app.kubernetes.io/version: "1.4.3"
    app.kubernetes.io/managed-by: Helm
type: Opaque
data:
  AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}
  AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下方法设置AWS_ACCESS_KEY_ID变量:

export AWS_ACCESS_KEY_ID=$(echo "...code..." | base64)
Run Code Online (Sandbox Code Playgroud)

但它不起作用。正确的做法是什么?

quo*_*c9x 5

你应该使用stringData

apiVersion: v1
kind: Secret
metadata:
  name: aws-ecr-creds-secret
  namespace: whatever
  labels:
    app.kubernetes.io/name: aws-multi-ecr-credentials
    helm.sh/chart: aws-multi-ecr-credentials-1.4.3
    app.kubernetes.io/instance: aws-ecr-creds-novisign
    app.kubernetes.io/version: "1.4.3"
    app.kubernetes.io/managed-by: Helm
type: Opaque
stringData:
  AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}
  AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
Run Code Online (Sandbox Code Playgroud)

链接参考:
https://hub.docker.com/repository/docker/cuongquocvn/aws-cli-kubectl