2

我在 EKS 上运行作业。在尝试使用无效的 yaml 开始工作后,它似乎并没有放弃错误的 yaml,并且即使在更正文件后仍然给我相同的错误消息。

  1. 我成功地跑了一份工作。
  2. 我在该部分中添加了一个带有布尔值的环境变量env,这引发了这个错误:
    • Error from server (BadRequest): error when creating "k8s/jobs/create_csv.yaml": Job in version "v1" cannot be handled as a Job: v1.Job: Spec: v1.JobSpec: Template: v1.PodTemplateSpec: Spec: v1.PodSpec: Containers: []v1.Container: v1.Container: Env: []v1.EnvVar: v1.EnvVar: Value: ReadString: expects " or n, but found t, error found in #10 byte of ...|,"value":true},{"nam|..., bigger context ...|oduction"},{"name":"RAILS_LOG_TO_STDOUT","value":true},{"name":"AWS_REGION","value":"us-east-1"},{"n|...
  3. 我将值更改为 string yes,但错误消息继续显示原始的错误 yaml。
  4. 没有职位出现kubectl get jobs --all-namespaces
    • 所以我不知道这个旧的 yaml 会藏在哪里。

我认为这可能是因为我没有imagePullPolicy设置为Always,但即使我在kubectl本地运行命令也会发生这种情况。

以下是我的工作定义文件:

apiVersion: batch/v1
kind: Job
metadata:
  generateName: create-csv-
  labels:
    transformer: AR
spec:
  template:
    spec:
      containers:
      - name: create-csv
        image: my-image:latest
        imagePullPolicy: Always
        command: ["bin/rails",  "create_csv"]
        env:
          - name: RAILS_ENV
            value: production
          - name: RAILS_LOG_TO_STDOUT
            value: yes
          - name: AWS_REGION
            value: us-east-1
          - name: AWS_ACCESS_KEY_ID
            valueFrom:
              secretKeyRef:
                name: aws
                key: aws_access_key_id
          - name: AWS_SECRET_ACCESS_KEY
            valueFrom:
              secretKeyRef:
                name: aws
                key: aws_secret_access_key
      restartPolicy: OnFailure
  backoffLimit: 6
4

2 回答 2

7

"yes" 必须在 yaml 中引用,否则它会被视为表示布尔值 true 的关键字

尝试这个:

value: "yes"
于 2018-09-20T23:37:24.350 回答
1

单引号对我不起作用,但以下是:

value: "'true'"
于 2020-01-20T19:32:15.687 回答