一、集群架构与组件

1,相关组件

【1】 master node三个组件
  • k8s的控制节点,对集群进行调度管理,接受集群外用户去集群操作请求
  • master node 组成(四个组件):控制面
  1. API Server:通信
  2. kube-Scheduler:调度 通过调度算法将pod分布到节点(服务器)上
  3. Cluster State Store(ETCD数据库)/分布式键值存储
  4. Controller Manger Server :资源
【2】 worker node三个组件:用户面
  • 集群工作节点,运行用户业务应用容器1
  • worker node组成(三个组件)
    1. kubelet:worker端的管理工具,负责pod的生命周期、存储、网络管理
    2. kube proxy :网络代理,设置转发路径 ,负责service的服务发现(此处为内部服务的发现,外部服务的发现为ingress),负载均衡(4层负载)
    3. Container Runtime(运行时):创建容器的软件
【3】附加组件
  • kube - dns
  • ingress Controller:为服务提供外网入口(外部服务的发现)

1,分层架构

【1】生态管理层
【2】接口层
【3】管理层
【4】应用层
【5】核心层

对外提供API构建高层的应用,对内提供插件式应用执行环境

二、核心概念与专业术语

1.服务的分类

【1】无状态
  • 代表应用:nginx、aoache
  • 优点:对客户头民,无依赖关系,可以高效实现扩容、迁移
  • 缺点:不能存储数据,需要额外的数据服务支持
【2】有状态
  • 代表应用:MySQL、redis
  • 优点:可以独立存储数据,实现数据管理
  • 缺点:集群环境下需要实现主从、数据同步、备份、水平扩容复杂

2.资源的分类

在这里插入图片描述

【1】元数据型:对于资源的元数据描述,每一个资源都可以使用元空间的数据
  • Horizontal Pod Autoscater(HPA):pod自动扩容,可以根据CPU使用率或自定义指标(metrics )对Pod进行扩容或者缩容
  • PodTeplate:pod模板,是关于pod的定义
  • LimitRange:对集群内的资源进行限制,相当于批量设置了某一范围内(命名空间)的pod的资源使用限制
【2】集群级资源:作用于集群之上,集群下的所有资源都可以共享使用
  • namespace
  • node:节点,相当于一个服务器
  • ClusterRole:用于对集群的权限进行管理
  • ClusterRoleBinding:用于将上述的角色跟某一资源进行绑定(只能绑定集群级别的资源对象上绑定)
【3】命名空间级资源:作用在命名空间之上,通常只能在该命名空间范围内使用
  1. 工作负载型 pod:可以当做容器组,pod内可以有多个容器,可以管理pod中的容器,为最小的可部署单元。

一个pod包含一个应用程序容器(也可以是多个),存储资源,一个唯一的网络IP地址,以及一些确定容器该如何运行的选项。pod容器组代表了k8s中一个独立的应用程序运行实例,该实例可能由单个容器,或者几个紧耦合在一起的容器组成。
【1】副本(replicas):一个pod可以被复制成多个。没复制的一个都是副本。
【2】控制器

  • 适用无状态服务:RC、RS、Deployment
  • 适用有状态服务:StatefuiSet
  • 守护进程:DaeminSet 保证在每个node上都运行一个容器副本,常用来部署一些集群的日志、监控或者其他系统管理应用
  • 任务/定时任务:Job(一次性任务,做完不再重启容器)、CroJob(周期性执行的任务,在job的基础上加了定时功能)
  1. 服务发现
  • Service:实现k8s集群内部的网络调用,负载均衡(四层负载),横向流量
  • ingress:将k8s集群内部服务暴露给外网访问的服务(ingress-nginx 反向代理,七层负载),纵向流量
    在这里插入图片描述
    在这里插入图片描述
  1. 存储
  • volume: 存储卷,共享Pod中容器使用的数据,用来放持久化的诗句,比如数据库数据
  • CSI
  1. 特殊类型配置
  • configmap:集群的配置文件,数据说明,数据卷,可以挂载不同的pod上,不加密,也可以做环境变量
  • secret:加密的,sha256加密。用于保存证书,拉取镜像凭证密码
  • DownwardAPI:
  1. 其他
  • Role:定义一组命名空间的权限
  • RoleBinding

3. 资源清单

4. 对象规约和状态

【1】规约Spec

Spec为必须的,描述了对象的期望状态(Desired Status),以及关于对象的一些基本信息。

【2】状态Status

对象的实际状态,该属性有K8S自己维护,k8s会通过一些列的控制器对对象进行管理,让对象的实际状态尽可能的与期望状态符合。

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐