云原生必备知识: POD

简介: Pod实际上是容器的集合,在k8s中对运行容器的要求为:容器的主程序需要一直在前台运行,而不是后台运行。应用可以改造成前台运行的方式,例如Go语言的程序,直接运行二进制文件;java语言则运行主类;tomcat程序可以写个运行脚本。或者通过supervisor的进程管理工具,即supervisor在前台运行,应用程序由supervisor管理在后台运行。具体可参考supervisord。

所属技术领域:

云原生

| 名词定义 |

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标记过的节点。

资料来源:

  1. 名词定义:作者:阿里云官网
    链接:https://www.zhihu.com/question/63927805/answer/781483561

来源:知乎

  1. 技术特点:https://zhuanlan.zhihu.com/p/60905652
  2. 近义词:CSDN社区
相关文章
|
7月前
|
Kubernetes 安全 Cloud Native
云原生|kubernetes|pod或容器的安全上下文配置解析
云原生|kubernetes|pod或容器的安全上下文配置解析
565 0
|
Kubernetes Cloud Native 调度
【云原生】深入掌握k8s中Pod和生命周期
【云原生】深入掌握k8s中Pod和生命周期
173 0
|
存储 Kubernetes Cloud Native
云原生|kubernetes |一文带你搞懂pod调度策略,驱逐策略,污点、容忍调度(一)
云原生|kubernetes |一文带你搞懂pod调度策略,驱逐策略,污点、容忍调度
671 0
|
4月前
|
Kubernetes 安全 Serverless
Kubernetes云原生问题之在Serverless Container中,Pod运行如何解决
Kubernetes云原生问题之在Serverless Container中,Pod运行如何解决
78 5
|
7月前
|
Kubernetes 关系型数据库 MySQL
云原生|kubernetes|静态pod和静态pod的应用
云原生|kubernetes|静态pod和静态pod的应用
74 0
|
7月前
|
Kubernetes Cloud Native 调度
云原生|kubernetes |一文带你搞懂pod调度策略,驱逐策略,污点、容忍调度
云原生|kubernetes |一文带你搞懂pod调度策略,驱逐策略,污点、容忍调度
775 0
|
存储 Kubernetes 调度
【云原生】k8s核心概念—Pod & Controller & Service & Serect & ConfigMap介绍——20230213
【云原生】k8s核心概念—Pod & Controller & Service & Serect & ConfigMap介绍——20230213
280 0
|
JSON Kubernetes Cloud Native
云原生之容器编排实践-SpringBoot应用以YAML描述文件部署pod到minikube
云原生之容器编排实践-SpringBoot应用以YAML描述文件部署pod到minikube
266 0
|
运维 Kubernetes Cloud Native
|
运维 Kubernetes Cloud Native