千家信息网

kubernetes yaml 文件 调动 污点容忍

发表于:2024-10-09 作者:千家信息网编辑
千家信息网最后更新 2024年10月09日,1.基本用法apiVersion: v1kind: Pod#创建的资源类型可以是,Deployment、Job、Ingress、Service等metadata:#包含Pod的一些meta信息,比如名
千家信息网最后更新 2024年10月09日kubernetes yaml 文件 调动 污点容忍

1.基本用法

apiVersion: v1kind: Pod#创建的资源类型可以是,Deployment、Job、Ingress、Service等metadata:#包含Pod的一些meta信息,比如名称、namespace、标签等信息  name: ng1  #Podname  labels:  #标签    app: webspec:  containers:    - name: ng1      #容器name      image:  hub.c.163.com/library/nginx      #镜像拉取地址      imagePullPolicy: IfNotPresent      #镜像拉取策略,Always,(无论本地是否有每次都拉取) Never,(每次都不拉取,即使本地没有也不拉取) IfNotPresent(本地有就用,没有就去拉)       ports:      #对外开放端口        - containerPort: 80

2.调度策略

节点选择器: nodeSelector、nodeName
基于node_name调度

apiVersion: v1kind: Podmetadata:  name: ng2spec:  nodeName: cs25  #指定调度到"cs25" node节点上  containers:    - name: ng2      image:  hub.c.163.com/library/nginx

基于node标签来调度
kubectl label nodes cs25 disk=ssd
#给节点cs25 添加标签

apiVersion: v1kind: Podmetadata:  name: ng2spec:  nodeSelector:    disk: ssd    #表示要只有node节点上有"disk=ssd",才能被调度上去  containers:    - name: ng2      image:  hub.c.163.com/library/nginx

节点亲和性调度: nodeAffinity

apiVersion: v1kind: Podmetadata:  name: ng2spec:  affinity:    nodeAffinity:      requiredDuringSchedulingIgnoredDuringExecution:      #requiredDuringSchedulingIgnoredDuringExecution 硬亲和性 必须满足亲和性,满足不调用      #preferredDuringSchedulingIgnoredDuringExecution 软亲和性 能满足最好,不满足也没关系。        nodeSelectorTerms:        - matchExpressions:          - key: disk            operator: In            #表示上面那个字段必须包含下面两个值, 还可以换成"NotIn"取反            values:            - jx            - ssd      #表示 只能调度到node有"disk=jx" 或"node=ssd"  containers:    - name: ng2

POD调度 podAffinity 和 podAntiAffinity

apiVersion: v1kind: Podmetadata:  name: ng2  labels:    app: nginxspec:  containers:    - name: ng2      image:  hub.c.163.com/library/nginx---apiVersion: v1kind: Podmetadata:  name: ng3spec:  containers:    - name: ng3      image:  hub.c.163.com/library/nginx  affinity:    podAntiAffinity:    #反亲和,表示满足条件的,让两个主机不在同一台node主机上运行,换成"podAffinity:"功能相反      requiredDuringSchedulingIgnoredDuringExecution:      - labelSelector:          matchExpressions:          - {key: app, operator: In, values: ["nginx"]}        topologyKey: kubernetes.io/hostname                #亲和标准,表示node 都有hostname这个键名,及value 一样我们就认为他们在同一台节点

labelSelector : 选择跟那组Pod亲和
namespaces : 选择哪个命名空间
topologyKey : 指定节点上的哪个键
假如在反亲和场景"topologyKey: type" 这个node标签所有主机都有,则第二台容器无法被调度到任何主机

3.污点容忍调度

kubectl taint nodes cs25 key=value:NoSchedule
NoSchedule:仅影响调度过程,对现存的Pod对象不产生影响;
NoExecute:既影响调度过程,也影响显著的Pod对象;不容忍的Pod对象将被驱逐
PreferNoSchedule: 表示尽量不调度

创建污点
kubectl taint node cs25 rongren=true:NoSchedule
#表示在cs25节点上创建一个 rongren的键 键值为"true",调度策略为NoSchedule
kubectl taint node cs25 rongren-
#删除污点,指定键名加"-"即可

apiVersion: v1kind: Podmetadata:  name: ng6spec:  containers:    - name: ng6      image:  nginx  tolerations:  #设置容忍性  - key: "rongren"    operator: "Equal"    #如果操作符为Exists,那么value属性可省略,表示key这个存在即通过,如果不指定operator,则默认为Equal,value一定要和设置的值相等,否则无法通过    value: "true"    effect: "NoSchedule"  #意思是这个Pod要容忍的有污点的Node的key是"rongren" Equal true,效果是NoSchedule,  #tolerations属性下各值必须使用引号,容忍的值都是设置Node的taints时给的值。

如果在设置node的Taints(污点)之前,就已经运行了一些Pod,那么这些Pod是否还能继续在此Node上运行? 这就要看设置Taints污点时的effect(效果)了。

    如果effect的值是NoSchedule或PreferNoSchedule,那么已运行的Pod仍然可以运行,只是新Pod(如果没有容忍)不会再往上调度。   而如果effect的值是NoExecute,那么此Node上正在运行的Pod,只要没有容忍的,立刻被驱逐。   虽然是立刻被驱逐,但是K8S为了彰显人性化,又给具有NoExecute效果的污点, 在容忍属性中有一个可选的      tolerationSeconds字段,用来设置这些Pod还可以在这个Node之上运行多久,给它们一点宽限的时间,到时间才驱逐。   如果是以Pod来启动的,那么Pod被驱逐后, 将不会再被运行,就等于把它删除了。   如果是deployment/rc,那么删除的pod会再其它节点运行。   如果是DaemonSet在此Node上启动的Pod,那么也不会再被运行,直到Node上的NoExecute污被去除或者Pod容忍。
调度 运行 节点 亲和 污点 标签 主机 亲和性 影响 对象 属性 效果 选择 两个 信息 字段 容器 策略 过程 镜像 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 360显示dns服务器异常 佛山南方电网数据库管理待遇 数据库 内连接 外链接 建设运营网络安全 网络安全法要实名吗 信亦宏达网络技术有限公司 师范教育专题数据库包括哪种类别 深圳市尚品软件开发有限公司 服务器内部数据管理 数据库多久更新一次信息 双路刀片服务器cpci 深圳福米特互联网科技有限公司 北京大学网络安全专业 网络安全专题学习心得体会 远程连接服务器的编辑器 数据库农业管理系统论文 优惠券卡包数据库表设计 软件开发上限 数据库测试技术的发展 上海宇治软件开发中心 微擎密码忘记修改数据库 网络技术的实验步骤 美股 估值最高的网络安全公司 西北核技术所 网络安全 南沙区无源网络技术开发价格多少 飙酷车神2怎么登录不了服务器 软件开发项目规模划分 计算机网络技术学的女生多吗 Zinc数据库怎么看cas号 数据库远程连接字符串的安全
0