當我嘗試使用YAML文件創建我的部署時,出現無效的字段選擇器錯誤。錯誤是error validating data: found invalid field selector for v1.PodSpec
,我的文件可以在下面看到。Kubernetes部署文件錯誤:發現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,但從錯誤我會認爲它與我的部署中的容器規格有關。任何提示接近這個?謝謝!
謝謝!我不知道這個要求,但是即使在添加標籤字段之後,也輸出相同的錯誤 – appdap1
您是否也切換到'.spec.selector.matchLabels'字段?這與您的選擇器字段不同。 (對於我在k8s 1.7.3中答案中的.yaml文件) – fishi
謝謝!它現在起作用了,我最初沒有添加matchLabels字段。對於我想要使用選擇器來進行實際部署/集線器而不是其創建的pod,你是對的。 matchLabel是我們爲所有Deployment對象而不是選擇器所做的事情,還是僅在此特定情況下才使用它?當我試圖將選擇器添加到由部署創建的每個Pod時,我該怎麼辦?再次感謝您的幫助! – appdap1