原文地址:https://github.com/kubernetes/kubernetes/blob/release-1.3/docs/design/architecture.md

Kubernetes architecture

一个运行的 kubernetes 集群,包涵 agents 节点(kubelet)和主节点组件(APIs,调度器等等),这些构建于分布式存储之上。下图展示了一个我们期望的架构,尽管我们还在完善,比如让kebelet(所有的组件)运行在容器当中,并使所有的调度程序100%可插拔。

The Kubernetes Node

当我们审视整个系统架构时,我们将其分解为两部分,在工作节点上运行的服务和群级控制层面的服务。

Kubernetes node 节点具有运行应用程序容器所需的服务,并可从 master 系统进行管理。

当然,每个节点都要运行Docker。Docker负责下载镜像,管理容器运行的细节。

kubelet

kubelet 管理 pods 和他们的容器, 镜像, 磁盘卷等资源。

kube-proxy

每个节点还运行一个简单的网络代理和负载均衡器(有关详细信息,请参阅服务常见问题解答)。这反映了services(在每个节点上的Kubernetes API中定义的服务文档以获取更多详细信息),并且可以跨一组后端执行简单的TCP和UDP流转发(循环)。

Service endpoints 目前通过DNS或环境变量找到。这些变量解析为 service proxy 管理的端口。

The Kubernetes Control Plane

Kubernetes控制层分为几部分组件。目前它们都在一个主节点上运行(single master node),但预计很快就会改变,以支持集群的高可用。这些组件协同工作以提供群集的统一视图。

etcd

集群中 master 节点的所有持久状态都存储在etcd中。它提供了一种可靠的方法,存储配置的数据。通过对watch的支持,可以非常快速地将变更通知到各个组件。

Kubernetes API Server

apiserver提供Kubernetes API。它旨在成为一个 CRUD-y 服务器,大多数/所有业务逻辑在单独的组件或插件中实现。apiserver主要处理 REST 操作,验证它们,并更新etcd(或者其他存储)中的相应对象。

Scheduler

Scheduler 程序通过 /binding API 将未调度的 pod 绑定到节点。调度程序是可拔插的,我们希望将来支持多个集群调度程序甚至用户提供的调度程序。

Kubernetes Controller Manager Server

所有其他集群级功能当前由 Controller Manager 执行。例如,Endpoints 对象由 endpoints controller 创建和更新,节点由 node controller 发现,管理和监视。这些最终可以分成单独的组件,使它们可以独立插入。

replication controller是一种机制,它在simple pod API 之上的层级。一旦实现,我们最终计划将其移植成为通用插件机制。

最新文章

  1. java合集框架第一天
  2. 基于PHP实现阿里云开放存储服务
  3. UVa 11922 & splay的合并与分裂
  4. 浏览器对象模型(BOM,Browser Object Model)
  5. TFS错误 TF31004:在连接带xxx.xxx.xxx.xxx上的Team Foundation Server时遇到错误。请等待几分钟,然后重试。如果问题仍然存在,请与服务器管理员联系
  6. lower_bound 和 upper_bound
  7. 指定URL,计算文件大小
  8. 【剑指offer 面试题15】链表中倒数第K个结点
  9. Fedora 19+ 启动顺序调整
  10. Linux的/etc/issue、/etc/issue.net和/etc/motd的区别
  11. 几种流行Webservice控制框架
  12. 201521123030 《Java程序设计》第7周学习总结
  13. 学号:201521123116 《java程序设计》第一周学习总结
  14. Nginx详解二十二:Nginx深度学习篇之Lua解释器安装及基础语法
  15. 5.html基础标签:块级+行级元素+特殊字符+嵌套规则
  16. cc、gcc、g++、CC的区别和联系
  17. 目录文件管理及vim
  18. rails 数据迁移出问题
  19. zabbix 配置SNMP监控
  20. EsayUI + MVC + ADO.NET(仓储基类)

热门文章

  1. 警惕SAP项目被“中间商赚差价”
  2. Laravel --- Laravel 5.3 队列使用方法
  3. 02 我的第一个Javascript代码
  4. oh-my-zsh自定义配置
  5. 基础数据类型,格式化输出,以及for循环的使用
  6. C++中 / 和 % 在分离各位时的妙用
  7. 【POJ - 3669】Meteor Shower(bfs)
  8. HTML认识二
  9. cogs426血帆海盗(网络流打法)
  10. 数据结构-树以及深度、广度优先遍历(递归和非递归,python实现)