K8s 技术简介

参考https://www.imooc.com/learn/978
K8s 以Google Borg为原型
战胜了Docker Swarm 和 Apache Mesos 成为行业标准

发展趋势
物理单机 2000
Iaas:AWS 2006 GCE 2008 2001- 2009
openStack 2010
私有云 公有云 混合云

k8s会
1 自动负载均衡到pod节点
2 自动伸缩指的是 会动态的增加pod
3 方便的版本升级和回退

K8S架构与组件
-Master 集群大脑
1 所有集群的控制命令都传递给Master组件并在其上执行
2 每个k8s 集群至少有一套Master组件(当前默认:一个 生产环境中需要多个 为了高可用 防止有一个挂了)
3 每套master组件包括三个核心组件(apiserver,scheduler.controller-manager)以及集群数据配置中心etcd

-API Server
1 集群控制的唯一入口,是提供Kubernetes集群控制的 RESTful API的核心组件
2 集群内各个组件之间数据交互和通信的中枢
3 提供集群控制的安全机制(身份认证\授权以及admission control)

-Scheduler
1 通过API Server的Watch接口监听新建Pod副本信息,并通过调度算法为该Pod选择一个最合适的Node
2 支持自定义调度算法provider
3 默认调度算法内置预选策略和优选策略,决策考量资源需求\服务质量\软硬件约束\亲缘性\数据局部性等指标参数

-Etcd
1 集群的主数据库,存储着所有资源对象以及状态
2 默认与Master组件部署在一个Node上
3 Etcd的数据变更都是通过API Server进行

-ControllerManager:
1 集群内各种资源controller的核心管理者
2 针对每一种具体的资源,都有相应的Controller
3 保证其下管理的每个Controller所对应的资源始终处于“期望状态“

-Node 真正的工作负载节点
1 Kubernetes集群由多个Node共同承担工作负载,Pod被分配到某个具体的Node上执行
2 Kubernetes通过node controller对node资源进行管理.支持动态在集群中添加或者删除Node
3 每个集群Node上都会部署Kubelet和Kube-proxy两个组件

-Kubelet (管理node中的pod)
1 位于集群中每个Node上的非容器形式的服务进程组件,Master和node之间的桥梁
2 处理Master下发到本Node上的Pod创建\启停等管理任务;向API Server注册Node信息
3 监控本Node上容器和节点资源情况,并定期向Master汇报节点资源占用情况

-Kube-proxy
1 Service抽象概念的实现,将到Service的请求按策略(负载均衡)算法分发到后端Pod(Endpoint)上
2 默认使用iptables mode实现
3 支持nodeport模式,实现从外部访问集群内的service(端口映射?)

基础概念
k8s对象 是一种持久化的\用于表示集群状态的实体
1 一种声明式的意图的记录,一般使用yaml文件描述对象
2 集群使用k8s对象来表示集群的状态
3 通过 API/kubectl管理k8s对象

发布了250 篇原创文章 · 获赞 17 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/qq_35899407/article/details/103779965
今日推荐