zoukankan      html  css  js  c++  java
  • 如何理解pod

    在k8s的世界里,经常遇见pod这一概念,你可能知道个大概,它是存在于k8s里最小的api对象,是最小的调度单位,它由多个容器组成,但它存在的具体意思,你说的清吗。

    镜像类似于“.exe“的可执行文件,容器相当于可执行文件运行起来后的进程,而k8s可以理解为:操作系统。

    有许多应用在运行的时候都会有多个进程在跑,同时由于socket通信和文件交换等,linux本身也有进程组的概念,假如现在我们没有pod一说,但还想运行这个应用应该怎么做呢。

    方法一、我们可以将这些进程运行在同一个容器中,有一个PID=1的主进程就行了,但子进程挂掉的时候,你怎么知道呢

    方法二、将这些进程单独做成容器,跑在同一台上,假如你跑了其中的5个进程,此时节点机上已经没有内存资源了,剩下的内存又必须跑着这台服务器上,那程序该怎样运行呢。

    但有了pod后,这种问题就很好解决了,可以统一按照pod而非容器的资源进行计算的。

    pod的本质:一组共享了某些资源的容器,pod里面所有的容器共享的是同一个network namespace,同时可以声明共享同一个volume。pod的实现需要使用一个中间容器,这个容器

    叫做infra容器,它永远是pod中第一个被创建的容器,其它定义的容器都是通过join network namespace的方式,与infra容器关联在一起的,关联图见下:

     

    在k8s里,这个infra使用的是一个特殊的镜像,叫pause镜像,用于处于”暂停“状态的容器,解压后的大小也只有100~200KB.

    他们可以直接使用localhost进行通信

    他们的网络设备和infra容器一样

    pod的生命周期只和infra容器有关,和该pod中别的容器无关

    流量进出都是通过infra容器

  • 相关阅读:
    sql中添加唯一索引(非主键)
    Ubuntu 安装 LAMP 主机之后运行出现乱码
    编写安全 PHP 应用程序的七个习惯
    首先在服务器上安装ssh的服务器端
    php安全简析
    正确的Linux菱形乱码修改方法
    php安全
    变量作用域
    bind9 详细解析
    DNS和DHCP服务器
  • 原文地址:https://www.cnblogs.com/fengzhihai/p/10158490.html
Copyright © 2011-2022 走看看