Kubernetes( K8s ) Pods
K8s会创建一个Pod来承载你部署的程序。Pod是K8s中的一种抽象概念,代表着一组或者更多的containers (docker 或rkt ),及其这些容器公用的资源。包括:
· 共享存储,称作 Volumes(卷)
· 网络,主要是一个cluster中的所有组件共用一个IP地址
· 容器参数信息,比如容器中镜像版本或指定端口映射等
Pod会将指定的程序及其高耦合的依赖模块化为一个“逻辑主机”。比如一个Pod包含了Node.js app以及另一个用来给app提供数据支持的程序的容器。一个Pod中的所有容器共享一个IP地址和port接口(这里指计算机的所有接口),被K8s统一定位和调度,并且共享同一个Node的环境。
Pods是K8s平台中的原子单位。当你在K8s中创建了一个部署器时,这个部署器会创建Pods。并且每个Pod都会和所在的Node绑定,直到程序终止(正常终止)或被删除。如果出现Node错误,K8s会马上将本次启动的Pods在其他可用节点上启动。
Nodes
Pod在Node上执行。Node指的具体的物理机或虚拟机,所有Node都受到Master的管理。一个Node上可以启动多个Pod,K8s通过Nodes管理一个cluster的所有的Pods。 The Master's automatic scheduling takes into account the available resources on each Node.
每个Node至少需要
· Kubelet,负责Node与Master交互,具体管理Pods和容器的模块。
· docker或rkt容器。负责拉取镜像,unpacking the container,启动程序。
Node结构图: