所属技术领域:
云原生
| 名词定义 |
Pod实际上是容器的集合,在k8s中对运行容器的要求为:容器的主程序需要一直在前台运行,而不是后台运行。应用可以改造成前台运行的方式,例如Go语言的程序,直接运行二进制文件;java语言则运行主类;tomcat程序可以写个运行脚本。或者通过supervisor的进程管理工具,即supervisor在前台运行,应用程序由supervisor管理在后台运行。具体可参考supervisord。
当多个应用之间是紧耦合的关系时,可以将多个应用一起放在一个Pod中,同个Pod中的多个容器之间互相访问可以通过localhost来通信(可以把Pod理解成一个虚拟机,共享网络和存储卷)。
| 技术特点 |
亲和性(Affinity)与非亲和性(anti-affinity)
三大优势
表述语法更加多样化,不再仅受限于强制约束与匹配。
调度规则不再是强制约束(hard),取而代之的是软限(soft)或偏好(preference)。
指定pod可以和哪些pod部署在同一个/不同拓扑结构下。
节点亲和性(Node affinity)
1.requiredDuringSchedulingIgnoredDuringExecution:
可认为一种强制限制,如果 Node 的标签发生了变化导致其没有符合 Pod 的调度要求节点,那么pod调度就会失败。
2.preferredDuringSchedulingIgnoredDuringExecution:
软限或偏好,同样如果 Node 的标签发生了变化导致其不再符合 pod 的调度要求,pod 依然会调度运行。
pod亲和性(Inter-pod affinity)与反亲和性(anti-affinity)
podAffinity用于调度pod可以和哪些pod部署在同一拓扑结构之下。而podAntiAffinity相反,其用于规定pod不可以和哪些pod部署在同一拓扑结构下。通过pod affinity与anti-affinity来解决pod和pod之间的关系。
污点(Taints)与容忍(tolerations)
对于Node affinity,无论是强制约束(hard)或偏好(preference)方式,都是调度pod到预期节点上,而Taints恰好与之相反,如果一个节点标记为 Taints ,除非 Pod也被标识为可以耐受污点节点,否则该Taints节点不会被调度pod。Taints)与tolerations当前处于beta阶段,
Taints节点应用场景比如用户希望把Kubernetes Master节点保留给 Kubernetes 系统组件使用,或者把一组具有特殊资源预留给某些 pod。pod不会再被调度到taint标记过的节点。
资料来源:
- 名词定义:作者:阿里云官网
链接:https://www.zhihu.com/question/63927805/answer/781483561
来源:知乎
- 技术特点:https://zhuanlan.zhihu.com/p/60905652
- 近义词:CSDN社区