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