K8S——daemonset 控制器 、service 服务、ingress

、daemonset 在每一个硬件node 节点运行一个 pod,当节点从集群移除时,pod 也会被回收。

副本数量由硬件节点决定,由几个节点就有几个 pod,删除pod后还是会重建。

直接管理 pod,只有两级

 

kubectl  apply  -f  mynginx.yaml

kubectl  get  pods -o wide

通常情况下,Pod分配到哪些Node是不需要管理员操心的,这个过程会由scheduler自动实现,因为调度程序会自动进行合理的调度(如通过一系列的评分机制将 pods 合理分配到最优节点上,而不会将 pod 分配在没有足够资源的节点上等)。

但有时,我们需要指定一些调度的限制,例如将两个通信比较频繁的不同服务 pod 调度到同一个可用域等等。

labels 在 K8s 中是一个很重要的概念,作为一个标识,Service、Deployments 和 Pods 之间的关联都是通过 label 来实现的。而每个节点也都拥有 label ,通过设置 label 相关的策略可以使得 pods 关联到对应 label 的节点上。

影响pod调度策略:

(1)nodename:调度到指定pod,无视污点。

(2)nodeselector:节点选择器,调度到匹配标签的node节点,但会受到污点的影响。

(3)resources:资源限制

(4)污点容忍度

(5)污点策略(只对pod生效)—黑名单

NoSchedule——不调度——不吃鸡蛋,宁愿饿着

preferNoSchedule——尽量不调度——尽量不吃鸡蛋

Noexecute——驱逐——这鸡蛋不能吃,吃了就得死

设置策略的时候,必须是键值对+策略的形式

污点标签可以理解为黑名单(标签调度为白名单,注意黑白名单的相互影响),对已经做好在运行的容器不生效。

要使其生效,需要删除旧的容器重新运行,也就是部署前生效。(驱逐策略除外,任何时候有效)

设置策略
kubctl  taint  node node-0001  key=value:NoSchedule  (比如 k1=v1,键值)

kuebctl delete -f  nginx.yaml

kubectl apply -f nginx.yaml

kubectl get pods -o wide

删除策略
kubctl  taint  node node-0001  key-

查看策略
kubectl  describe  nodes | grep -P  "^Taints"

亲和性

亲和性调度可以分成软策略和硬策略两种方式:

软策略:如果没有满足调度要求的节点的话,pod 就会忽略这条规则,继续调度,满足条件最好,没有的话也无所谓了的策略

硬策略:如果没有满足条件的节点的话,就不断重试直到满足条件为止,就是你必须满足我的要求,不然我就不干的策略。

nodeAffinity(节点亲和性):用来控制 pod 要部署在哪些主机上,以及不能部署在哪些主机上的

podAffinity(pod 亲和性):解决 pod 可以和哪些 pod 部署在同一个拓扑域中的问题,处理的 pod 与 pod 之间的关系,

比如一个 pod 在一个节点上了,那么另一个也得在这个节点,或者你这个 pod 在节点上了,那么我就不想和你待在同一个节点上。

​​​​​​​

job 控制器—管理有限生命周期的 pod,单任务控制器,不需要标签


Cronjob —计划任务控制器,三级控制


Service—用户访问这个服务,当pod坏了的时候,自动跟踪新建的pod,跟踪容器的标签;负载均衡

 

ingress:提供暴露应用的入口的方法,可以实现七层服务(service是四层服务)

ingress controller:根据 ingress 生成具体的路由规划,对 pod 实现负载均衡

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值