1、K8s调度原理

K8s调度原理和Pod生命周期

 

 Pod只存在某一个物理节点上,可以运行多个Container

 

2、Pod的生命周期

K8s调度原理和Pod生命周期

暂停Pod,可以暂停deployment

kubectl get depolyment

kubectl scale  --replicas=0  deployment/xxx

 

删除Pod。删除之后,状态变成Succeed

kubectl delete pod  podname

 

3、资源限制

资源标签  kubectl  label

资源限制: nodeSelector

 

查看有哪些label

kubectl  get node   --show-labels

 

打标签: 给node2打上标签

kubectl labels  node node2  disktype=ssd

修改xxx.yaml文件

K8s调度原理和Pod生命周期

 

 kubectl   apply  -f   xxx.yaml

这样pod就会在node2节点上。

 

4、调度约束

Pod标签: metadata:labels:XXX:YYYY

调度约束:spec:selector:XXX:YYYY

//给Pod打标签,然去找这个Pod

调度约束: spec:podSelector:matchLabels:XXX:YYYY

 

5、健康检查

LivenessProbe(容器级别)  //查询容器出问题,尝试进行重启。在高可用场景下使用。

ReadinessProbe(容器级别) //查询容器出问题,停止容器对外的服务。适用于滚动升级、新应用上线,这时候可能代码有问题。

restartPolicy(pod级别) ,当这个Pod出现问题时,是restart,还是非restart。

实例1:

如下图所示,对容器readiness-httpget, 设置健康检查ReadinessProbe, 使用http的方式对index.html 进行查询。

如果正常拿到,则认为容器是正常启动的。inititalDelaySeconds表示停止多少秒再进行检查检查。

peripdSeconds: 表示查询成功后,每隔多少秒进行反复查询

如果index.html 获取不到,则认为容器异常,立刻停止容器对外的访问,由其它Pod提供服务。

K8s调度原理和Pod生命周期

 实例2

K8s调度原理和Pod生命周期

 

 启动过程中,传递一个命令。该命令创建一个文件。每隔3秒检查这个文件是否存在。检查到没有这个文件,则进行容器重启。

相关文章:

  • 2021-10-24
  • 2021-06-20
  • 2021-08-15
  • 2022-01-11
  • 2021-11-26
猜你喜欢
  • 2021-06-03
  • 2021-06-23
  • 2021-10-25
  • 2022-01-19
  • 2021-07-24
  • 2022-12-23
  • 2021-08-20
相关资源
相似解决方案