Deployment.spec.selector.matchLables实验解释
作者: 张首富
时间: 2019-02-23
个人博客: www.zhangshoufu.com
QQ群: 895291458
正确的Deployment,让matchLabels 和template.Metadata.lables完全比配不报错
apiVersion: apps/v1
kind: Deployment
Metadata:
name: my-Nginx
spec:
selector:
matchLabels:
app: my-Nginx
replicas: 2
template:
Metadata:
labels:
app: my-Nginx
spec:
containers:
- name: my-Nginx
image: Nginx
ports:
- containerPort: 80
pod创建成功
[root@rke test_yaml]# kubectl get pods
NAME READY STATUS RESTARTS AGE
my-Nginx-9b44d8f5-d6n8z 1/1 Running 0 3s
my-Nginx-9b44d8f5-zzv52 1/1 Running 0 3s
直接不写spec.mathlabels创建直接报错缺少缺少必要字段selector
apiVersion: apps/v1
kind: Deployment
Metadata:
name: my-Nginx
spec:
replicas: 2
template:
Metadata:
labels:
run: my-Nginx
spec:
containers:
- name: my-Nginx
image: Nginx
ports:
- containerPort: 80
运行报错结果如下:
[root@rke test_yaml]# kubectl create -f test_pod_svc.yaml
error: error validating "test_pod_svc.yaml": error validating data: ValidationError(Deployment.spec): missing required field "selector" in io.k8s.api.apps.v1.DeploymentSpec; if you choose to ignore these errors, turn validation off with --validate=false
#当把matchLables匹配的和下面pod模板不相对应,也会直接报错,选择的和模板标签不匹配
apiVersion: apps/v1
kind: Deployment
Metadata:
name: my-Nginx
spec:
selector:
matchLabels:
app: my-Nginx-add
replicas: 2
template:
Metadata:
labels:
app: my-Nginx
spec:
containers:
- name: my-Nginx
image: Nginx:1.14
ports:
- containerPort: 80
运行报错结果如下:
The Deployment "my-Nginx" is invalid: spec.template.Metadata.labels: Invalid value: map[string]string{"app":"my-Nginx"}: `selector` does not match template `labels`
查看帮助手册
kubectl explain Deployment.spec
selector <Object>
Label selector for pods. Existing replicasets whose pods are selected by
this will be the ones affected by this deployment.
pod的标签选择器。 由此选择其pod的现有replicaset(副本集)将受此部署影响的副本。
#总结:
1,在Deployment中必须写matchLables,
2,在定义模板的时候必须定义labels,因为Deployment.spec.selector是必须字段,而他又必须和template.labels对应,
3,template里面定义的内容会应用到下面所有的副本集里面,在template.spec.containers里面不能定义labels标签.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。