我为Kubernetes创建了一个非常基本的部署,但是当我尝试部署它时
$> kubectl apply -f ./hello-world.yaml
The Deployment "my-deployment" is invalid: spec.template.metadata.labels: Invalid value: map[string]string{"app":"bbbb"}: `selector` does not match template `labels`
使用以下yaml文件:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-deployment
labels:
app: aaaa
spec:
replicas: 3
selector:
matchLabels:
app: my-deployment
template:
metadata:
labels:
app: bbbb
spec:
containers:
- name: my-deploy
image: hello-world
ports:
- containerPort: 80
我在标签和matchLabels上玩了一点,但无法解决。有什么建议可能是什么问题?
答案 0 :(得分:3)
基本上,部署规范中的选择器匹配标签需要与模板中的标签匹配。就您而言,您有app: my-deployment
作为选择器的匹配标签,并且模板中有app: bbbb
,因此没有匹配项。
您必须在两者上都放一个app: my-deployment
或app: bbbb
,这样才能匹配。