Kubernetes 不接受新的作业定义
Kubernetes not accepting new job definition
我正在 运行EKS 上工作。在尝试使用无效的 yaml 开始工作后,它似乎并没有放弃错误的 yaml,并且即使在更正文件后也一直给我同样的错误信息。
- 我成功运行了一份工作。
- 我在
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|...
- 我将值更改为字符串
yes
,但错误消息继续显示原始的错误 yaml。
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
"yes" 必须在 yaml 中引用,否则它会被视为表示布尔值 true
的关键字
试试这个:
value: "yes"
单引号对我不起作用,但下面的引号对我有用:
value: "'true'"
我正在 运行EKS 上工作。在尝试使用无效的 yaml 开始工作后,它似乎并没有放弃错误的 yaml,并且即使在更正文件后也一直给我同样的错误信息。
- 我成功运行了一份工作。
- 我在
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|...
- 我将值更改为字符串
yes
,但错误消息继续显示原始的错误 yaml。 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
"yes" 必须在 yaml 中引用,否则它会被视为表示布尔值 true
的关键字试试这个:
value: "yes"
单引号对我不起作用,但下面的引号对我有用:
value: "'true'"