您的位置:首页 > 运维架构 > 网站架构

kubernets 架构设计 第1章 pod

2016-06-13 17:50 471 查看
kubernets 是google 开源的容器集群管理系统,它构建于Docker 技术之上,是为容器化应用提供资源调度、部署运行、服务发现、扩容/缩容等一些列功能,本质上可以看作容器的mini-PaaS 平台。

1.1 什么是pod

pod 对应于由若干容器组成的容器组,同一容器组内的容器共享一个”存储卷“ 。pod 主要是在容器化的环境中建立了一个面向应用的”逻辑主机“模型,它包括一个或者多个逻辑关系紧密的容器。【理解:在没有容器化的环境中,同一pod里面的”容器“都运行在同一台物理机器或者虚拟机上】

在kubernets 环境中,创建、部署、调度的最小单位是是pod,而不是单个容器!!

pod 跟容器一样不是一直存在的,在pod 的生命周期中,一个pod会被分配到一个节点上运行知道运行结束或者被stop(正常或者异常退出);当集群的一个节点(处理机,实际上就是一台物理服务器)消失时,这个pod 也会消失;kubernet的replication-controller 会重新分配节点运行这个pod 

容器怎么算是紧密联系:搜索引擎的index:分行、分列;一个应用application ?

1.2 发明pod 的原因(pod 的优势)

资源通信和共享 【根据网络的隔离和共享进一步理解】
统一pod 下所有的容器使用相同的网络命名空间、IP地址和端口地址,相互之间可以用localhost 来发现和通信; 每一个pod 都有一个唯一的ip地址跟其他的物理机器、或者容器、其他的pod 进行网络通信,pod 的名字就作为容器通信时的主机名!!kubernets 未来的开发计划是使Pod共享IPC命名空间,CPU和内存

数据共享
在同一个pod 下的容器还共享一个存储卷空间,数据不会因为容器的重启而丢失,同一pod下面所有的容器都可以共享这个pod的数据;当pod 整体stop或者删除时数据会丢失

管理
相比原生态的容器API,pod通过提供更高层次的抽象,简化了应用的部署和管理。pod 就像是一个管理横向部署的单元,主机管理、资源共享、协调复制和依赖管理都可以自动控制(怎么理解? 简单的容器不可以实现?是代码层使用简单吗?)


1.3 为什么不直接在一个容器下启动多个程序

透明性:让pod里面的容器向基础设施可见,底层操作系统就可以向容器提供比如进程管理、资源监控等基础服务,这样可以给用户带来极大的方便 【用户不用自己写这些服务】
解绑软件的依赖:如果多个程序跑在一个容器中,那这个容器只要升级所有的程序都需要stop
高效性:因为底层的系统提供了更多的管理和服务,让pod 更加的高效(怎么理解???)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: