首页 > 其他 > 详细

Pods

时间:2019-10-31 23:59:23      阅读:152      评论:0      收藏:0      [点我收藏+]

Pods

Pod概念

Pod是kubernetes集群应用中的创建和部署的最小、最简单的kubernetes对象模型单元的基本执行单元。Pod表示在集群中运行的进程。

Pod 封装了应用程序的容器(一个或多个),存储资源,唯一的网络IP和控制容器运行方式的选项。Pod表示部署的单位:可以是kubernetes集群的单个容器应用实例,也可以是少量紧耦合共享资源的容器应用。

Docker是Pod 常见的容器运行工具,Pods 也支持其他容器运行工具。

kubernetes集群中的Pod可以通过两种方式运行:

  • 运行单个容器。 每个Pod运行一个容器,是kubernetes最常用的用例。在这种情况下,可以将Pod视为容器的包装。
  • 运行多个需要协调工作的容器。 Pod运行一个容器应用,应用程序由紧密耦合且需要共享资源的多个位于同一地点的容器组成。Pod将这些容器和存储资源包装在一起,成为一个可管理的实体。

每个Pod旨在运行指定应用程序的单个实例,如果需要水平扩展,则应使用多个Pod,每个实例一个。在kubernetes中这被称为复制。

Pods如何管理多容器

Pod旨在支持形成协作服务单元的多个协作过程(作为容器)。Pod中的容器会自动位于同一群集中的同一物理或虚拟机上,并在同一位置进行调度。容器可以共享资源和依赖项,彼此通信,并协调何时以及如何终止它们。

请注意,在单个Pod中对多个位于同一地点和受共同管理的容器进行分组是一个相对高级的用例。您仅应在容器紧密耦合的特定实例中使用此模式。例如,您可能有一个充当共享卷中文件的Web服务器的容器,以及一个单独的“ sidecar”容器,该容器从远程源更新这些文件,如下图所示:

技术分享图片

某些Pod具有InitContainer应用程序容器,初始化容器会在应用程序启动之前启动完毕。

Pod为容器提供两种共享资源:网络和存储

网络

每个Pod都分配有一个唯一的IP地址,Pod中每个容器都共享网络名和空间,包括IP地址和网络端口。Pod中容器可以互相使用localhost通信。当Pod中的容器与外部的实体进行通信时,它们必须协调好如何使用共享的网络资源(比如端口)。

存储

Pod中可以指定一组共享存储,Pod中的Volume,所有容器都可访问共享卷,从而使这些容器可以共享数据(需要volumeMount 声明)。同时可以保存容器的数据,以外其中的某个容器需要重新启动丢失数据。

Pod模板

apiVersion: v1
kind: Pod
metadata:
  name: myapp-pod
  namespace: default
  labels:
    app: myapp-pod
spec:
  containers:
  - name: myapp-container
    image: busybox
    command: ["sh","-c","echo Hello Kubernetes !! && sleep 100"]
    

Pods

原文:https://www.cnblogs.com/h-gallop/p/11774542.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!