see detail : https://github.com/kubernetes/kubernetes/blob/master/docs/design/architecture.md
k8s 架构图:
一:节点:
The Kubernetes node has the services necessary to run application containers and be managed from the master systems.Each node runs Docker
什么是pod(豆荚):
一个活多个容器,彼此之间共享存储,互相协调,运行在共同的程序环境当中,并且可选择性的来运行这些容器。一个pod可以看做一个特定程序的逻辑主机。它内部包含的容器高度聚合。
kubelet
管理pods 和他们的容器,镜像,卷
kube-proxy
每个节点也运行一个简单的
网络代理和负载均衡器,可以做简单的tcp ,Udp流转发。服务的endpoints 当前通过DNS,或者通过环境变量,服务代理来处理这些环境变量的解析工作
二. k8s 控制单元
控制单元被分成几个组件,当前这几个组件都运行在一个单节点master 上
etcd
所有持久的master状态都存储在etcd内部,提供可靠的数据存储,变化会被实时监控,有watch监控
Kubernetes API Server
所有的业务逻辑都被不同的组件实现,或者插件实现,apiserver 主要处理restful 操作,并且根据etcd里面的对象状态验证更新
Scheduler
将未经调度的pods和节点,通过bingding API 进行绑定,调度器是plugable ,也就是用户可以对scheduler 进行自定义
K8s Controller Manager Server
所以其他的集群-level 的功能都有controller manager 执行,endpoints 对象就是由endpoints controller 创建和更新的,节点controller 可以发现,管理,监控nodes 。
* replcationcontroller 是在简单pod API 之上的一个机制。