pod 的亲和性,反亲和性 实验
文章目录
- 1 ,环境准备
- 2 亲和性+ In 测试
- 3 亲和性+NotIn 测试
- 4 非亲和性+In 测试
- 5 非亲和性 + NotIn 测试
1 ,环境准备
node01、 node02 都有标签 test=a,有个pod1 运行在node01上, 标签为app=myapp01
#设置node01和node02节点,拥有标签 test=a
[root@master demo]# kubectl label nodes node{01,02} test=a --overwrite
node/node01 labeled
node/node02 labeled#查看拥有标签test=a的节点
[root@master demo]# kubectl get nodes -l test=a
NAME STATUS ROLES AGE VERSION
node01 Ready <none> 7d6h v1.15.1
node02 Ready <none> 7d6h v1.15.1
[root@master demo]# vim test.yaml
apiVersion: v1
kind: Pod
metadata:name: myapp01labels:app: myapp01
spec:containers:- name: with-node-affinityimage: soscscs/myapp:v1
#声明式创建pod
[root@master demo]# kubectl apply -f test.yaml
pod/myapp01 created#查看pod myapp01的详细信息的标签
[root@master demo]# kubectl get pods myapp01 -o wide --show-labels
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES LABELS
myapp01 1/1 Running 0 26s 10.244.1.112 node01 <none> <none> app=myapp01
2 亲和性+ In 测试
[root@master demo]# vim a.yaml
apiVersion: v1
kind: Pod
metadata:name: myapp10labels:app: myapp03
spec:containers:- name: myapp03image: soscscs/myapp:v1affinity:podAffinity:requiredDuringSchedulingIgnoredDuringExecution:- labelSelector:matchExpressions:- key: appoperator: Invalues:- myapp01topologyKey: test
pod拥有app=myapp01 标签(设这个pod为x),则把新pod调度到和 pod x 拥有同一个拓扑域test=a 的 节点上。
[root@master demo]# for i in myapp{11..15}; do kubectl apply -f a.yaml; sed -ri "4s#myapp1[0-9]#$i#" a.yaml; done
pod/myapp10 created
pod/myapp11 created
pod/myapp12 created
pod/myapp13 created
pod/myapp14 created
[root@master demo]# kubectl get pods -o wide --show-labels
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES LABELS
myapp01 1/1 Running 0 88m 10.244.1.112 node01 <none> <none> app=myapp01
myapp10 1/1 Running 0 6s 10.244.2.104 node02 <none> <none> app=myapp03
myapp11 1/1 Running 0 6s 10.244.1.138 node01 <none> <none> app=myapp03
myapp12 1/1 Running 0 5s 10.244.2.105 node02 <none> <none> app=myapp03
myapp13 1/1 Running 0 5s 10.244.1.139 node01 <none> <none> app=myapp03
myapp14 1/1 Running 0 5s 10.244.2.106 node02 <none> <none> app=myapp03
因为拓扑域test=a内,已经有了pod存在于node01节点上,所以
3 亲和性+NotIn 测试
[root@master demo]# vim a.yaml
apiVersion: v1
kind: Pod
metadata:name: myapp10labels:app: myapp03
spec:containers:- name: myapp03image: soscscs/myapp:v1affinity:podAffinity:requiredDuringSchedulingIgnoredDuringExecution:- labelSelector:matchExpressions:- key: appoperator: NotInvalues:- myapp01topologyKey: test
[root@master demo]# kubectl delete pod myapp{10..14};for i in myapp{11..15}; do kubectl apply -f a.yaml; sed -ri "4s#myapp1[0-9]#$i#" a.yaml; done
pod "myapp10" deleted
pod "myapp11" deleted
pod "myapp12" deleted
pod "myapp13" deleted
pod "myapp14" deleted
pod/myapp10 created
pod/myapp11 created
pod/myapp12 created
pod/myapp13 created
pod/myapp14 created
[root@master demo]# kubectl get pods -o wide --show-labels
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES LABELS
myapp01 1/1 Running 0 91m 10.244.1.112 node01 <none> <none> app=myapp01
myapp10 1/1 Running 0 5s 10.244.1.140 node01 <none> <none> app=myapp03
myapp11 1/1 Running 0 5s 10.244.2.107 node02 <none> <none> app=myapp03
myapp12 1/1 Running 0 4s 10.244.1.141 node01 <none> <none> app=myapp03
myapp13 1/1 Running 0 4s 10.244.2.108 node02 <none> <none> app=myapp03
myapp14 1/1 Running 0 4s 10.244.1.142 node01 <none> <none> app=myapp03
4 非亲和性+In 测试
[root@master demo]# vim a.yaml
apiVersion: v1
kind: Pod
metadata:name: myapp10labels:app: myapp03
spec:containers:- name: myapp03image: soscscs/myapp:v1affinity:podAntiAffinity:requiredDuringSchedulingIgnoredDuringExecution:- labelSelector:matchExpressions:- key: appoperator: Invalues:- myapp01topologyKey: test
[root@master demo]# kubectl delete pod myapp{10..14};for i in myapp{11..15}; do kubectl apply -f a.yaml; sed -ri "4s#myapp1[0-9]#$i#" a.yaml; done
pod "myapp10" deleted
pod "myapp11" deleted
pod "myapp12" deleted
pod "myapp13" deleted
pod "myapp14" deleted
pod/myapp10 created
pod/myapp11 created
pod/myapp12 created
pod/myapp13 created
pod/myapp14 created
[root@master demo]# kubectl get pods -o wide --show-labels
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES LABELS
myapp01 1/1 Running 0 96m 10.244.1.112 node01 <none> <none> app=myapp01
myapp10 0/1 Pending 0 4s <none> <none> <none> <none> app=myapp03
myapp11 0/1 Pending 0 3s <none> <none> <none> <none> app=myapp03
myapp12 0/1 Pending 0 3s <none> <none> <none> <none> app=myapp03
myapp13 0/1 Pending 0 3s <none> <none> <none> <none> app=myapp03
myapp14 0/1 Pending 0 3s <none> <none> <none> <none> app=myapp03[root@master demo]# kubectl describe pod myapp10
5 非亲和性 + NotIn 测试
[root@master demo]# vim a.yaml
apiVersion: v1
kind: Pod
metadata:name: myapp10labels:app: myapp03
spec:containers:- name: myapp03image: soscscs/myapp:v1affinity:podAntiAffinity:requiredDuringSchedulingIgnoredDuringExecution:- labelSelector:matchExpressions:- key: appoperator: NotInvalues:- myapp01topologyKey: test
[root@master demo]# kubectl delete pod myapp{10..14};for i in myapp{11..15}; do kubectl apply -f a.yaml; sed -ri "4s#myapp1[0-9]#$i#" a.yaml; done
pod "myapp10" deleted
pod "myapp11" deleted
pod "myapp12" deleted
pod "myapp13" deleted
pod "myapp14" deleted
pod/myapp10 created
pod/myapp11 created
pod/myapp12 created
pod/myapp13 created
pod/myapp14 created
[root@master demo]# kubectl get pods -o wide --show-labels
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES LABELS
myapp01 1/1 Running 0 102m 10.244.1.112 node01 <none> <none> app=myapp01
myapp10 1/1 Running 0 8s 10.244.2.109 node02 <none> <none> app=myapp03
myapp11 0/1 Pending 0 8s <none> <none> <none> <none> app=myapp03
myapp12 0/1 Pending 0 7s <none> <none> <none> <none> app=myapp03
myapp13 0/1 Pending 0 7s <none> <none> <none> <none> app=myapp03
myapp14 0/1 Pending 0 7s <none> <none> <none> <none> app=myapp03[root@master demo]# kubectl describe pod myapp11
pod 的亲和性,反亲和性 实验相关推荐
- k8s调度之node的亲和性以及pod的亲和性/反亲和性
k8s调度之node的亲和性以及pod的亲和性/反亲和性 通常情况下,使用的都是k8s默认的调度调度方式,但是在有些情况下,我们需要将pod运行在具有特定的标签的node上才能都运行,这个时候,pod ...
- OpenShift 4 - Pod的亲和性/反亲和性
<OpenShift 4.x HOL教程汇总> 文章目录 Pod的亲和性/反亲和性 方法1:直接指定Pod运行Node 方法2:通过设置Pod的nodeselector实现 方法3:通过设 ...
- Kubernetes 亲和性与反亲和性
文章目录 一.前言 1. 概述 2. 亲和性和反亲和性的类型 3.硬亲和与软亲和 4.亲和性支持的运算符 二.nodeAffinity(节点亲和) 1. 测试环境准备 2. 节点硬亲和 3. 节点软亲 ...
- k8s中亲和性与反亲和性
k8s中亲和性与反亲和性 Kubernetes的默认调度器以预选.优选.选定机制完成将每个新的Pod资源绑定至为其选出的目标节点上,不过,它只是Pod对象的默认调度器,默认情况下调度器考虑的是资源足够 ...
- k8s之亲和性、反亲和性
k8s中亲和性与反亲和性 Kubernetes的默认调度器以预选.优选.选定机制完成将每个新的Pod资源绑定至为其选出的目标节点上,不过,它只是Pod对象的默认调度器,默认情况下调度器考虑的是资源足够 ...
- Kubernetes调度之亲和性和反亲和性
背景 Kubernetes中的调度策略可以大致分为两种,一种是全局的调度策略,要在启动调度器时配置,包括kubernetes调度器自带的各种predicates和priorities算法:另一种是运行 ...
- 【云原生 | 从零开始学Kubernetes】十、k8sPod节点亲和性和反亲和性
该篇文章已经被专栏<从零开始学k8s>收录 Pod节点亲和性和常见的状态 Pod 节点亲和性 pod 节点反亲和性 写在最后 Pod 节点亲和性 pod 自身的亲和性调度有两种表示形式 p ...
- k8s节点亲和性:pod和node的亲和性、硬策略、软策略
- java设置cpu亲和性_cpu亲和性绑定
将进程与cpu绑定,最直观的好处就是减少cpu之间的cache同步和切换,提高了cpu cache的命中率,提高代码的效率. 从cpu架构上,NUMA拥有独立的本地内存,节点之间可以通过互换模块做连接 ...
最新文章
- ACL最佳论文提出最新NLP模型测试方法,最佳论文提名也不可小觑
- python提取数据库数据_Python读取xlsx并写入数据库
- 深入jvm虚拟机第4版_深入理解JVM虚拟机
- php in_array 判断数组中是否存在此元素
- MySQL innodb_table_stats表不存在的解决方法
- jQuery1.9.1源码分析--Events模块
- element显示服务器的图片,使用element文件上传图片转base64字节传到服务器
- org.eclipse.e4.core.di.InjectionException:org.eclipse.swt.SWTException: Widget is disposed
- opengl 坐标的基本变换
- Python错误和异常小结
- 安卓开发大全、系列文章、精品教程
- python绘图-新增子区域
- 虚拟税务ukey托管服务器,税务Ukey托管来啦,给它一个家!企业开票更方便
- OC中浮点数转整数的进一法和去尾法
- 竞业限制没有明确说明哪家公司,是否会违反?
- 有关结合律和优先规律
- 伦敦时间现在几点_伦敦现在几点
- royal tsx连接闪退_Royal TSX for Mac(最强远程管理软件)
- 软件工程-软件开发的工程思维
- python:打印三角形图案。
热门文章
- jqgrid本地加载分页_jqgrid无需分页即可加载大数据集
- java中for循环的简化_Java中for语句的简化写法
- dev 居中_div居中 div水平居中代码 | 帮助信息-动天数据
- mysql 同步更新_MySQL slave 不能同步更新
- elasticsearch 根据条件更新数据
- centos7磁盘挂载
- [别被脱库]—数据库的初恋~
- 国产数据库建模工具,看到界面第一眼,良心了! ​
- matlab to r,matlab to R import structure
- android addview指定位置,Android开发中,请问当在一个视图中addView另一个布局视图时为什么报错?...