当我尝试使用YAML文件创建部署时,我收到了无效的字段选择器错误。错误是error validating data: found invalid field selector for v1.PodSpec
,我的文件可以在下面看到。
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: zalenium-deployment
spec:
replicas: 1
template:
metadata:
labels:
app: zalenium
spec:
serviceAccountName: zalenium
serviceAccount: zalenium
selector:
app: zalenium
role: grid
containers:
- name: zalenium-pod
image: dosel/zalenium
ports:
- containerPort: 4444
protocol: TCP
volumeMounts:
- name: zalenium-shared
mountPath: /tmp/mounted
- name: zalenium-videos
mountPath: /home/seluser/videos
resources:
requests:
memory: "250m"
cpu: "500m"
limits:
memory: "1Gi"
volumes:
- name: zalenium-shared
persistentVolumeClaim:
claimName: zalenium-shared-claim
- name: zalenium-videos
persistentVolumeClaim:
claimName: zalenium-videos-claim
我尝试过使用在线YAML文件验证程序,但他们似乎没有显示格式有任何问题。当我尝试使用validate = false标志创建上面的部署时,部署会运行,但随后pod会不断崩溃并重新启动(crashLoopBackOff)。我该怎么办?我仍然熟悉k8s,但从错误中我认为它与我的部署中的容器规格有关。接近这个的任何提示?谢谢!
答案 0 :(得分:2)
由于错误消息状态选择器是invalid field
的{{1}},因此该字段在v1.PodSpec
无效。我认为你要找的是.spec.selector。
话虽如此,该文件指出:
如果指定,则.spec.selector必须匹配 .spec.template.metadata.labels,或它将被API拒绝。
因此,您还必须将.spec.template.spec.selector
添加到元数据标签(role: grid
)。您的.yaml文件看起来就像那样:
.spec.template.metadata.labels