- 架构:Master/Node
Master组件–主控节点{负责集群管理(接收用户事件转化成任务分散到node节点上)}
- Apiserver:资源操作的唯一入口,提供认证、授权、API注册和发现等机制
- Scheduler :负责集群资源调度,按照预定的调度策略将Pod调度到相应的node节点上
- 注:容器负载均衡部署Deployment控制器是之一
- Controller-manager:负责维护集群的状态,比如程序部署安排、故障检测、自动扩展、滚动更新等
- Etcd:负责存储集群中各种资源对象的信息
Node组件–工作节点{负责计算节点,管理任务(按master指令去运行任务)}
- Kubelet:负责维护容器的生命周期,即通过控制docker,来创建、更新、销毁容器
- Kube-proxy:为pod维护网络代理,提供负载均衡和服务发现
- Docker:负责节点上容器的各种操作
Kubernetes六大核心组件:
- apiserver集群统一入口,以restful方式,提供认证、授权、访问控制、API注册等
- scheduler 调度器,决定容器pod部署到哪个的node节点上
- controller-manager 负责维护集群状态,如:故障检测、自动扩展、滚动更新等;(具体部署容器到目标节点使用的控制器)注:容器负载均衡部署Deployment控制器是之一
- etcd存储系统:用于保存集群所有信息 ,是一个分布式的高性能的数据库(key-value/redis)
- kubelet负责维护容器的生命周期(1.拉取镜像2.运行容器)
- docker
- 核心概念:
Master:集群控制节点,每个集群需要至少一个master节点负责集群的管控
Node:工作负载节点,由master分配容器到这些node工作节点上,然后node节点上的docker负责容器的运行
Pod:kubernetes的最小控制单元,容器都是运行在pod中的,一个pod中可以有1个或者多个容器
Controller:控制器,通过它来实现对pod的管理,比如启动、停止、伸缩的数量等等
Service:pod对外服务的统一入口,下面可以维护者同一类的多个pod
Label:标签,用于对pod进行分类,同一类pod会拥有相同的标签
NameSpace:命名空间,用来隔离pod的运行环境
- 如何设计一个容器管理平台:
1.集群架构,至少 2台机器,master主节点,node工作节点master根据维护者,写的yaml,对容器的运行描述,创建具体的容器,到node工作节点
2,.该容器管理平台,应该自动识别,目标节点的,状态,选择最合适的节点部署 新容器
3.容器管理平台,能实现确保,应用的副本数是健康,正确的,后端的容器数量
4.容器内的负戟均衡,反向代理,如何配置 (k8s的组件就可以实现)
架构图是在叩丁狼老师那听课截图的,如果涉及版权通知我删除呀~