物理架构图

master/node
都表示一台物理主机,或者一台虚拟机。master用于管理node,node用于运行pod。
kubectl
kubectl是kubenetes命令行工具,通过kubectl可以控制apiserver,部署和管理应用,查看各种资源,创建,删除和更新组件。
API server
集群的控制中枢。Kubernetes API Server 的核心功能是提供 Kubernetes 各类资源对象(Pod,Service 等)的增、删、改、查等接口,成为集群内各个功能模块之间数据交互和通信的中心枢纽。
Controller-Manager
kube-controller-manager用于监听不同的类型资源的数量,保证集群内的资源保持预期状态。由一系列的控制器组成:
Replication Controller
Node Controller
CronJob Controller
Daemon Controller
Deployment Controller
endpoint controller
…
Scheduler
集群的调度中心,它会根据指定的一系列条件,选择一个或一批最佳的node,部署Pod。
kube-proxy
不同pod之间通信,pod和apiserver通信,都要经过kube-proxy。还具有负载均衡和防火墙的作用。
kubelet
kubelet负责在node上创建和删除pod。当Scheduler确定在某个Node上运行Pod后,会将Pod的具体配置信息发送给该节点的kubelet,kubelet会根据这些信息创建和运行容器,并向apiserver报告运行状态。
kubelet会监控当前node下的pod运行状态,并定时汇报给apiserver。
etcd
Etcd 是一个分布式键值存储系统,Kubernetes使用Etcd进行数据存储。
它会存储k8s结构信息、不同组件的配置信息,用户操作信息,日志等。
container
运行程序的基本单位
pod
一个pod内可以有多个container,pod是对container的封装。K8S认为它自己不方便直接管容器而在容器之外又加了一层壳叫pod。










