Deployment.spec.selector.matchLables实验解释
原文:https://cloud.tencent.com/developer/article/1394657
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标签.
Deployment.spec.selector.matchLables实验解释的更多相关文章
- kubernetes资源清单之Deployment
Deployment为Pod和ReplicaSets提供声明性更新 示例 --- apiVersion: apps/v1 kind: Deployment metadata: name: de ...
- k8s 学习笔记
常用的kubectl命令 kubectl run kubia --image=luksa/kubia --port=8080 --generator=run/v1 --image 指定镜像 - ...
- k8s几种pod的控制器
replicationcontroller 选择器 模版 副本数 如果更改选择器,则会创建新的pod 如果更改pod的标签,那么也会创建新的pod进行替换,但是老的pod不会被删除 如果更改模版, ...
- 史上最全的Kuberenetes 常用命令手册
1.0 k8s 集群状态检查 # 查看集群信息 kubectl cluster-info systemctl status kube-apiserver systemctl status kubele ...
- 云原生系列2 部署你的第一个k8s应用
云原生的概念和理论体系非常的完备,but talk is cheap , show me the code ! 但是作为一名程序员,能动手的咱绝对不多BB,虽然talk并不cheap , 能跟不同层次 ...
- kubectl基础支持
kubectl get deployment -n alpha kubectl get deployment *****-deployment -n alpha -o json kubectl rol ...
- Kubernetes之Controllers二
Deployments A Deployment controller provides declarative updates for Pods and ReplicaSets. You des ...
- kubectl 日常命令 备忘
目录 kubectl 常用命令 自动补全 Kubectl命令概览 常用命令分类 常用命令 声明式资源对象管理 查看资源状态 容器管理 集群管理 常用命令英文缩写 kubectl 常用命令 自动补全 使 ...
- Kubernetes 对象管理的三种方式
Kubernetes 中文文档 1. Kubernetes 对象管理的三种方式对比 Kubernetes 中的对象管理方式,根据对象配置信息的位置不同可以分为两大类: 命令式:对象的参数通过命令指定 ...
随机推荐
- vi 调到第一行和最后一行
gg 跳到文件第一行Shift + g 跳到文件最后一行 chmod 777 abc.txt
- js使浏览器窗口最大化(适用于IE的方法)
这里使用的方法是IE的私有特性,只能在IE中有效.主要是window.moveTo和 window.resizeTo方法. 效果和点击最大化按钮差不多,有一点区别.点击最大化按钮后,浏览器 ...
- centos7安装python3.7.4和pip3
亲测有效,针对 阿里云 centos 7 轻量服务器 python ==> 3.7.4 pip ==> 3 一,打开python官网,找到下载Python的tgz文件,有两种方式下载 ( ...
- PHPUnit 单元测试教程
一.官网下载对应 PHP 版本的代码库 https://phpunit.de/getting-started-with-phpunit.html 二.安装 PHPUnit 官网提供了两种方法安装 1. ...
- 解决bootstrap-table表头filter-control select控件被遮挡显示不全的问题
[本文出自天外归云的博客园] 在使用bootstrap-table的extension——filter-control时(对应表格的data-filter-control="true&quo ...
- WebGL学习笔记(十一):混合和透明
到目前为止我们绘制了不少模型,用到了不少颜色,颜色中有四个分量(RGBA),其中的A分量表示透明度,这个分量目前为止我们还没有真正的用到: A分量,表示的是当前的透明度,如果设定为 0.5 就会半透明 ...
- 配置Pods和containers--为Containers和Pods分配内存资源
指定内存请求和内存限制 要为容器指定内存请求,在容器的资源清单中使用resources:requests字段.要指定内存限制,使用resources:limits. memory-request-li ...
- elk使用记录
1.使用elk查询接口的时候 几个常用参数 http_host.raw 2.具体的接口名称:request_uri 3.想要把左边要查询的显示出来
- Is the docker daemon running?
原文 刚在新的Centos上安装Docker-CE,后运行docker run hello-world报错Cannot connect to the Docker daemon at unix:/// ...
- C++中的结构体所占内存空间总结
因为结构体有时候需要字节对齐.一般而言,struct 的 sizeof 是所有成员字节对齐后长度相加,而 union 的 sizeof 是取最大的成员长度. 在默认情况下,编译器为每一个变量或数据单元 ...