• k8s中pod组件简介


    背景

    k8s中pod是很重要的概念,他是k8s调度的最小单位,和我们以往的以docker容器为调度单位是不一样的,那么为什么k8s会以pod为调度单位而不是以更小的docker容器为调度单位呢?

    pod组件

    pod是一个逻辑的概念,其中可以包含多个docker容器组成一个小的服务单元,先来看一下pod的文件配置:

    kind: Pod                                   --类型固定写pod
    metadata :
      labels:
        - name: string                          --这个pod的label标识符,供外部其他组件选择pod时使用的
    spec:
      containers :                              --这个pod中运行的docker容器数组,比如redis和http服务
        name : string                           --pod中比如运行的redis容器
        image : string                          --pod中比如运行的redis容器的镜像
       ports:
        containerPort: int                      --pod中比如运行的redis容器的端口号
        hostPort : int                          --pod中运行的redis容器对应的宿主机端口号
    env:                                        --pod中的环境变量列表
       name: string
        value : string
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    k8s中pod是包含多个docker容器的一套套件,比如他会包含一个redis容器+日志采集容器的两个docker容器,这两个容器可以组成一个小的服务单元,而且本质上他们就是需要绑定在一起的服务单元,不需要把他们两个分开调度,所以在k8s看来,他调度的单位变成了调度一个小的功能服务单元,并且每个pod中都有一个特殊的Pause根容器,这个pause根容器的作用是为了让这个pod中的所有docker容器都可以共享统一网络,也就是pod中的所有容器拥有相同的ip地址,相同的主机名,对于外界来说,和这个pod内的任何一个docker容器通信都是一样的ip地址。

    pod这种设计就能让k8s在调度的时候是以服务单元为单位调度的,这些pod里面的容器本来就是超亲密的关系,本来就不适合分开调度到不同的宿主机上面,所以k8s把他们捆绑起来一起调度很好的解决了这个问题

  • 相关阅读:
    ROS2——ROS2对比ROS1(二)
    什么是 BIO、NIO、AIO?
    【Verilog 教程】3.1 Verilog 连续赋值
    一文帮你掌握vue3这些核心知识点
    213. 打家劫舍 II
    【PowerDesigner16】显示工具面板
    计算机视觉学习记录(六):深度学习基础
    3d代理模型怎么转换成标准模型---模大狮模型网
    LeetCode 1413. 逐步求和得到正数的最小值
    实例讲解Mysql最左匹配原则。
  • 原文地址:https://blog.csdn.net/lixia0417mul2/article/details/136588394