Kubernetes组件之Pod

title: Kubernetes组件之Pod
date: 2015-12-29 15:37:50
tags: [Kubernetes,docker,pod]

categories: Kubernetes

Kubernetes中,pod是创建,管理,调度,部署的最小单元。

一个pod对应于一组共享上下文的应用程序,上下文中可以有独立的cgroup隔离。一个pod对应一个容器环境中的逻辑主机,它包含一个或多个互相联系紧密的应用,它们被分配在同一个物理主机/虚拟主机上执行。

pod的上下文可以被如下的Linux命名空间定义:
- PID namespace: 同一个Pod中的应用程序可以访问对方的进程;
- Network namespace: 同一个pod中的程序共享一个IP地址和端口空间;
- IPC namespace: 同一个pod中的应用程序可以使用SystemV IPCPOSIX消息队列进行通信;
- UTS namespace: 同一个pod中的应用程序共享一个主机名;

除此之外,同一个pod中的应用程序还可以共享数据卷,数据卷定义在pod层,每个应用程序都可以将数据卷添加到自己的文件系统中。

在使用Docker时,一个pod由一个或多个Docker容器及可共享的数据卷组成。

pod的生命周期是短暂的,一旦pod被调度到一个节点(node)上,它就会一直在那个节点上直到终止或被删除。如果节点挂掉了,节点上的所有pod都被删除。一个pod不能被重新调度到其他节点上,只能被替换。

资源共享和通信

pod中的程序共享网络IP地址和端口号空间,且可以和一个pod中的其他程序通过localhost进行通信。每一个pod都有一个IP地址,通过这个IP地址可以和在同一个网络中的物理主机和容器进行通信。主机名(hostname)被设定为pod的名称。

你可能感兴趣的:(kubernetes)