kubernetes入门学习笔记

基本完全参考:http://blog.csdn.net/zhangjun2915/article/details/40598151

kubernetes简介

Alt text

基本概念

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 
    Alt text

集群架构

Alt text

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

Alt text

变更pod副本数信息

Alt text

变更service信息

Alt text

posted @ 2015-04-24 03:48  SailorXiao  阅读(879)  评论(0编辑  收藏  举报