kubernetes组成
k8s主要包括:
kubectl 客户端命令行工具:
将接收的命令,发送给kube-apiserver,作为对整个平台操作的入口。
kube-apiserver REST API服务:
作为整个系统的控制入口,以REST API的形式公开,可以横向扩展在高可用的架构中。
kube-controller-manager 多个控制器的合体,用来执行整个系统中的后台任务,多个控制进程的合体:
Node Controller 负责整个系统中node up 或down的状态的响应和通知
Replication Controller 负责维持Pods中的正常运行的Pod的个数
Endpoints Controller 负责维持Pods和Service的关联关系
Service Account & Token Controllers负责为新的命名空间创建默认的账号和API访问的Token
kube-scheduler 任务调度、命令下发
负责监视新创建的Pods任务,下发至未分配的节点运行该任务
kube-proxy 网络代理转发:
kube-proxy运行在每个节点上,负责整个网络规则的连接与转发,使k8s中的service更加抽象化
kubelet 容器的管理
kubelet运行在每个节点上,作为整个系统的agent,监视着分配到该节点的Pods任务,负责挂载Pods所依赖的卷组,下载Pods的秘钥,运行Pods中的容器(通常是docker),周期获取所有容器的状态,通过导出Pod和节点的状态反馈给REST系统;
etcd 信息存储
flannel IP地址的分配
四、k8s架构图