Pod是最小的部署单元,也是后面经常配置的地方,本章节带你熟悉Pod中常见资源配置及参数。

也就是YAML这部分:

  ...
  template:
    metadata:
      labels:
        app: web
    spec:
      containers:
      - image: lizhenliang/java-demo:latest
        imagePullPolicy: Always
        name: java

1 Pod介绍

  • 最小部署单元

  • 一组容器的集合

  • 一个Pod中的容器共享网络命名空间

  • Pod是短暂的

2 Pod存在的意义

Pod为亲密性应用而存在。

亲密性应用场景:

  • 两个应用之间发生文件交互

  • 两个应用需要通过127.0.0.1或者socket通信

  • 两个应用需要发生频繁的调用

3 Pod实现机制与设计模式

Pod本身是一个逻辑概念,没有具体存在,那究竟是怎么实现的呢?

众所周知,容器之间是通过Namespace隔离的,Pod要想解决上述应用场景,那么就要让Pod里的容器之间高效共享。

具体分为两个部分:网络和存储

  • 共享网络

kubernetes的解法是这样的:会在每个Pod里先启动一个infra container