基本完全参考:http://blog.csdn.net/zhangjun2915/article/details/40598151
kubernetes简介
- 相关资料
- 概述:
- google开源的基于docker的mini paas系统
- 功能覆盖资源调度、部署运行、服务发现、扩容缩容
- 总体概览图
- 操作对象
- 模块组件
- 功能特性
基本概念
pod
- 基本部署单元,可以进行创建,调度,管理,删除等
- 包含一个或者多个docker container,基于数据卷进行数据共享
- 用于推动相同功能集合的程序集中部署
- 示例:web站点三个组件(前端、后端、数据库)运行在各自的容器中,可以创建包含三个container的pod
service
- pod的集合体(和pod类似于instance和service的概念)
- 由于pod可能发生变化,或者扩容缩容,所以一般交互时基于service访问
Replication controllers
- pod生命周期控制器
- 负责pod的动态扩容,缩容,保证pod的数量符合预期
label
- key/value 键值对(基于etcd)
- 用于存储pod的tag标签,用于关联service和pod,replication controller和pod的关系
- 提供laber selector供外部调用,获取索引对应的value
集群架构
master
apiserver
- 作为kubernetes系统的入口,封装了核心对象的增删改查操作
- 以RESTFul接口方式提供给外部客户和内部组件调用
- 它维护的REST对象将持久化到etcd
scheduler
- 负责集群的资源调度,为新建的pod分配机器
- 作为组件形式,可以很方便地替换成其他的调度器
controller-manager
- endpoint-controller
- 定期关联service和pod(关联信息由endpoint对象维护)
- 保证service到pod的映射总是最新的。
- replication-controller
- 定期关联replicationController和pod
- 保证replicationController定义的复制数量与实际运行pod的数量总是一致的
slave(minion/host)
kubelet
- 负责管控docker容器,如启动/停止、监控运行状态等
- 它会定期从etcd获取分配到本机的pod,并根据pod信息启动或停止相应的容器
- 接收apiserver的HTTP请求,汇报pod的运行状态。
proxy
- 负责为pod提供代理
- 定期从etcd获取所有的service,并根据service信息创建代理
- 当某个客户pod要访问其他pod时,访问请求会经过本机proxy做转发
详细流程
创建pod
变更pod副本数信息
变更service信息
时间: 2024-10-26 12:35:40