首页
学习
活动
专区
圈层
工具
发布

细说kubernetes - 为什么是pod

当我们初识k8s的时候一个新的概念就到了我们眼前,那就是pod。我们在使用了之后也就渐渐的接受了pod这个东西,但是你有没有想过,为什么是pod?k8s为什么会有这样的设计?...当然其他组件都非常重要,这个我们以后再说,我们今天就来看看主角“pod” 为什么是pod?...一开始用的时候我就好奇为什么k8s要弄出一个pod,因为我们一开始使用的是docker,操作的是docker容器,构建的也是docker镜像,为什么不直接调度docker容器就好了,这样粒度不是更加细致...限制网络带宽 我们可以通过给Pod增加kubernetes.io/ingress-bandwidth和kubernetes.io/egress-bandwidth这两个annotation来限制Pod的网络带宽...为什么我提到了这个功能呢?

82310

Kubernetes(k8s)-Pod亲和性(Affinity)和反亲和性(Anti-affinity)

我们上一章介绍了Docker基本情况,目前在规模较大的容器集群基本都是Kubernetes,但是Kubernetes涉及的东西和概念确实是太多了,而且随着版本迭代功能在还增加,笔者有些功能也确实没用过,...我们上小节介绍了Node亲和性(Affinity)和反亲和性(Anti-affinity)本质上还是属于Node和Pod的之间的调度规则。...避免出现服务器宕机导致某一应用高可用失效的情况(虽然Kubernetes会在把Pod调度到其他节点,但是这个中间是有时间差的)。我在生产环境也是遇到过类似的故障。...或者相反的要求一个控制器下的Pod必须和某个Pod在一起,则可以通过Pod亲和性(Affinity)和反亲和性(Anti-affinity)来解决。...后续调度:当你尝试创建第二个app=myapp Pod时,Kubernetes调度器会根据podAntiAffinity规则检查各个节点。

1.1K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    kubernetes pod为什么需要pause容器?

    为什么会有这么多 pause 容器? 这是怎么回事呢? 为了回答这些问题,我们需要去回顾一下这些pods是如何在kubernetes下被创建的,特别是在docker/containerd运行环境。...Kubernetes为应对这种case,提出了pod的抽象概念。Pod的概念,隐藏了docker中复杂的标志位以及管理docker容器、共享卷及其他docker资源的复杂性。...为了实现这个父容器的构想,kubernetes中,用pause容器来作为一个pod中所有容器的父容器。这个pause容器有两个核心的功能,第一,它提供整个pod的Linux命名空间的基础。...针对这一现象,在Kubernetes pods中,容器的运行方式与上面基本相同,但是为每个pod创建了一个特殊的暂停容器。...https://github.com/kubernetes/kubernetes/issues/1615 如果没有启用PID命名空间共享,那么Kubernetes pod中的每个容器都有自己的PID 1

    3.3K20

    Kubernetes Pod基础

    Pod对象功能的,比如控制器对象是用来管控Pod对象的,Service或者Ingress资源对象是用来暴露Pod引用对象的,PersistentVolume资源对象是用来为Pod提供存储等等,k8s不会直接处理容器...,而是Pod,Pod是由一个或者多个container组成的。...节点,Pod,容器之前的关系 二:Pod 特性: 2.1 资源共享 一个Pod里的多个容器可以共享存储和网络,可以看作一个逻辑的主机。...一个Pod里的多个容器可以共享存储卷,这个存储卷会被定义为Pod的一部分,并且可以挂载到该Pod里的所有容器的文件系统上。...2.2 生命周期短暂 Pod属于生命周期比较短暂的组件,比如,当Pod所在节点发生故障,那么该节点上的Pod会被调度到其他节点,但需要注意的是,被重新调度的Pod是一个全新的Pod,跟之前的Pod没有半毛钱关系

    94830

    Kubernetes Pod Evicted

    一、背景以及措施 近日 Kubernetes 测试集群 Pod 状态出现 Evicted 现象 , 但是项目还是能正常提供服务 , 最先的解决办法是手动将 Evicted 状态的 Pod 删除。...pod "search-engine-79c875cbc8-q4hfx" deleted 二、为什么 Pod 会被驱逐 Kubernetes 节点上的资源会被 Pod 以及系统进程所使用 , 如果没有做任何限制的话...因此 , Kubernetes 要做资源的预留和 Pod 的驱逐 , 以保证节点的正常运行。...四、Kubernetes以什么标准去驱逐Pod 答案是QoS(服务质量等级) , 是作用在 Pod 上的一个配置 , Qos等级包括: Guaranteed: limits 和 request 相等 Burstable..., Kubernetes会尝试重启或调度到其它Node节点 当集群监控到 Node 节点的内存或者CPU资源到达阈值时 , 就会触发资源回收策略 , 通过驱逐节点上的Pod来减少资源占用。

    1.4K30

    Kubernetes 系列(3) —— Pod

    Pod Pod 是 Kubernetes 的基本操作单元,也是应用运行的载体,包含一个或多个密切相关的容器。...整个 Kubernetes 系统都是围绕着 Pod 展开的,比如如何运行 Pod、如何保证 Pod 的数量,如何访问 Pod 等。...Pod 资源对象 Pod 通常由一个到多个共享网络和存储资源的容器组合而成 Kubernetes 的网络模型要求其各个 Pod 对象的 IP 地址处于同一网络平面内(同一 IP 网段),各 Pod 之间可以使用...容器的状态 Kubernetes 会跟踪 Pod 中每个容器的状态,就像它跟踪 Pod 总体上的阶段一样。 你可以使用容器生命周期回调 来在容器生命周期中的特定时间点触发事件。...取值 描述 Pending(悬决) Pod 已被 Kubernetes 系统接受,但有一个或者多个容器尚未创建亦未运行。

    1.3K20

    Kubernetes的pod解析

    这是他们在应用架构上的对比 pod——资源调度的基本单位 为什么我要讲pod和容器、镜像拿出来共同对比呢。 随着容器数量的增加, 手动管理容器变的越来越困难。...CRI/OCI/RunTime(容器运行时)/Pod 之间的关系 为什么要说CRI ? 他又是什么 ?...为什么从 CRI讲起,因为 k8s 集群使用 kubelet 服务通过CRI 接口和对应的 runtime(运行时)交互,从而控制管理容器。...Pod QoS 类 Kubernetes 中的 Pod Quality of Service (QoS) 类是一种用于描述 Pod 的资源分配优先级的机制 Kubernetes 提供了三种 QoS 类:...当集群资源紧张时,Kubernetes 会优先驱逐低 QoS 类的 Pod,以确保 Guaranteed 类的 Pod 能够正常运行 可以通过kubernetes的describe来查看pod的Qos类

    1.2K10

    Kubernetes 1.19.0——Pod(2)

    静态pod用到的机会不多,这里不作主要演示 调度的三个对象 当我们创建一个pod的时候,scheduler会根据自己的算法来决定此pod到底在哪个节点上运行。...aa- image.png kubectl label nodes vms62 node-role.kubernetes.io...Node亲和性 软策略:尽可能的在满足条件的节点上运行,如果没有满足条件的节点则在其它节点上也能运行 硬策略:必须满足条件才能运行 affinity: nodeAffinity: # requiredDuringSchedulingIgnoredDuringExecution...: # 硬策略 # nodeSelectorTerms: # - matchExpressions: # - key: kubernetes.io/hostname # operator: In...vms63 此操作不在这里单独演示 调度:节点taint及pod的tolerations 之前的pod都在worker上创建,为什么没有在master上创建呢?

    860121

    Kubernetes 1.19.0——Pod(1)

    K8s中最小的调度单位,pod里包含的是容器,也就是说pod是最终对外提供服务的 所有的资源都是以命名空间进行隔离 创建pod的方法 1....pod1 -o json 把pod的配置以json文件方式输出(这里不作演示) image.png 模拟创建...里包含一个容器 kubectl delete pod pod1正常情况下是直接把pod给你删除了 image.png 在k8s里,有一个优雅启停的概念,给我们设置了一个30s的间隔,如果30s内还没有关闭掉容器里的进程...image.png image.png 注:但是如果这里设置为1000,delete这个nginx的pod还是会马上kill掉,因为nginx本身关闭进程的机制和k8s是不一样的 Pod...因为其他的原因导致pod准备开始创建 还没有创建(卡住了) Running pod已经被调度到节点上,且容器工作正常 Completed pod里所有容器正常退出 error CrashLoopBackOff

    826111

    Kubernetes Pod 全面知识

    学习 Kubernetes,Pod 是最重要最基本的知识,本章将介绍什么是 Pod、Pod 的结构等,并练习创建 Pod。...故障恢复 在 Kubernetes 中,容器应当是无状态的,也就是说容器或容器中的进程挂了,Kubernetes 可以快速在其它地方再创建一个 Pod ,启动容器,维持一定数量的 Pod 实例。...在删除 Pod 时,Kubernetes 会终止 Pod 中的所有容器,会向容器中的进程发生 SIGTERM 信号,等待进程的正常关闭,所以 Pod 可能不会被马上删除,当然如果进程不能正常关闭,Kubernetes...节点上的 Pod 停止工作时,可以创建替代性的 Pod, Pod 被调度到一个健康的节点执行。 [Info] 提示 为什么要使用控制器管理 Pod 呢?...在 Kubernetes 中,也可以通过命令快速查看 Pod 中的容器的日志。

    1.1K10

    Kubernetes中Pod详解

    在 Kubernetes(K8s)中,一个应用实例与容器的关系是一对一的。在 K8s 中,应用程序被打包为一个或多个容器,并以 Pod 的形式进行部署和运行。...在 Kubernetes 中,Pod 是最小的、可部署的计算单元,也是整个系统的核心抽象。理解 Pod 是掌握 Kubernetes 的关键第一步。 详解 一、Pod 是什么?...✅ 核心特点: 表格 特性 说明 原子调度单位 Kubernetes 调度器以 Pod 为单位分配到节点(Node),不是单个容器 共享网络 Pod 内所有容器共享同一个 IP 地址和端口空间,可通过...使用 kubectl describe pod 查看事件,定位卡在 Pending 或 Crash 的原因。 四、Pod vs 容器:为什么需要 Pod? 直接运行容器不行吗?不行!...: "500m" 六、调试 Pod 的常用命令 # 查看 Pod 列表及状态 kubectl get pods # 查看 Pod 详细信息(事件、挂载、IP 等) kubectl describe pod

    20910

    Kubernetes Pod入门指南

    Pod是Kubernetes项目里定义的最小可调度单元,是Kubernetes对应用程序的抽象。...在这篇文章里我将会介绍Kubernetes里Pod的基本概念,使用方式,生命周期以及如何使用Pod部署应用。...你一定要了解的Kubernetes 运行在笔记本上的Kubernetes集群 什么是Pod 在Kubernetes的API对象模型中,Pod是最小的API对象,换一个专业点的的说法可以这样描述:Pod,...由于Pod是Kubernetes可识别的最小对象,Kubernetes管理调度Pod而不是直接管理容器,所以即使只有一个容器也需要封装到Pod里。 多容器模型。...Pod的YAML文件 Kubernetes里所有的API对象都由四部分组成: apiVersion -- 当前使用的Kubernetes的API版本。 kind -- 你想创建的对象的种类。

    63320

    2.1 Kubernetes--Pod

    控制器管理的Pod 说控制器管理的Pod, 先来看看控制器有哪些: ReplicationController & ReplicaSet & Deployment : 这三种控制器为什么放在一块呢?...为什么RS能够恢复呢? 因为, 下掉的RS没有被删掉. 只是停用了. 当回滚的时候, 老旧的RS就会被启动....Kubernetes的一个难点就是必须要攻克有状态服务. 那么, 有状态服务, 有些数据需要持久化, 需要保存起来, 这时,我们就会引入存储的概念....只有当前一个Pod处于running和ready的状态, 第二个才可以被创建. 为什么需要这样部署呢? 原因是, 我们构建一个集群化, 比如及群里有nginx, apache, mysql....Kubernetes内部是一个扁平化的网络, 相互之间可以通过localhost请求访问, 所以, 关联关系如下: ?

    93420

    图文并茂带你解读 Kube-scheduler

    在 Kubernetes 中,Pod 是最小的可部署工作负载单元。所以显而易见的问题: “Pod 应该部署在哪里?” 当然,答案是:Pod 始终在 Node 内执行。...大家好,我是 “Kubernetes Scheduler” ~ 让我们用简单的场景打个比方来剖析一下 Kubernetes Scheduler 的工作原理以及选择 Node 的方式。...3、 Node affinity and anti-affinity -节点亲和与反亲和 节点亲和性和反亲和性很像节点选择器,但它通过支持表达语言和软/硬偏好而不只是硬性要求为您提供更大的灵活性...换句话说,affinity 选择仅在调度 Pod 时起作用,而在执行时不起作用 requiredDuringSchedulingIgnoredDuringExecution: 表示选择节点时需要符合条件的节点...4、 Pod affinity and anti-affinity -Pod 亲和与反亲和 另一个素食主义者女孩团伙*顾客团体来到餐厅。

    1K130
    领券