一、发展经历(为什么要有k8s,k8s又怎样的特点)
IAAS :基础设施服务 ——代表厂商:阿里云
PAAS:平台级服务——代表厂商:新浪云 ,docker是PAAS运行的下一代标准,但是也带来了更大的问题,这就诞生了资源管理器,例如k8s
SAAS:软件设施服务——代表厂商:office365
k8s是用来进行容器化应用部署,是谷歌开源的容器化集群管理系统,利于应用扩展,k8s目标是让部署容器化应用更加简洁和高效
kubernetes ,go语言编写出来的,特点:
1.轻量级:意思消耗的资源少
2.开源
3.弹性伸缩
4.负载均衡:kubernetes 结构内部已经实现了模块之间的负载均衡,且采用可IPVS框架,也叫服务发现
5.自动装箱
6.自我修复
7.水平扩展
8.滚动更新
9.版本回退
10.密钥与配置管理
11.存储编排
12.批处理
二、知识图谱
1.①K8S组件说明(也就是kubernetes 框架):
Borg组件说明 K8S结构说明:网络结构,组件结构
②K8S中一些关键字解释
2.基础概念(什么是pod,以及控制器类型,网络通讯模式)
①pod概念,在kubernetes 里它是最小的封装集合,一个pod里会封装多个容器,达到一个子节点的运行环境,是kubernetes 里管理的最小单位
自主式pod
管理器管理的pod
服务发现
pod协同
②网络通讯模式
网络通讯模式说明
组件通讯模式说明
3.kubernetes 安装(构建一个kubernetes 集群)
4.资源清单:什么是资源,名称空间级别的资源,集群级别的资源
yam语法格式
通过资源清单编写pod
pod的生命周期(重点+难点)
5.pod控制器
需要掌握各种控制器的特点以及使用定义方式(很重要)
6.服务发现
service原理
需要掌握SVC原理,及其构建方式
7.存储
需要掌握多种存储类型的特点,并且能够在不同环境中选择合适的存储方案(需要有自己的见解)
8.调度器
需要掌握调度器原理,能够根据要求把pod定义到想要的节点运行
9.集群安全机制
需要掌握集群的认证,鉴权,访问控制 原理及其流程
10.HELM :linux yum
需要掌握HELM原理,HELM模板自定义,通过HELM去部署一些常用插件
11.运维
需要能够修改kubeadm,能够构建高可用的kubernetes 集群
三、组件说明
Borg架构
几种访问方式:
①web browsers:访问方式:浏览器
②command-line tools :命令行
③borgcfg:文件的读取
BorgMaster:专门负责请求分发的,理解为集群的大脑,为了防止BorgMaster由于单节点故障,所以这有很多副本,并且最好保持在3个以上或者3个以上的奇数
Borglet:真正工作的节点
scheduler:调度器,通过调度器去分发到各个节点,scheduler不是直接和Borglet进行交互,而是scheduler把数据写入至Paxos(键值对类型数据库),Borglet会实时的在Paxos数据库进行监听,如果发现有某个节点的请求了,
那么会把这个请求取出来,然后去处理这次任务
k8s集群架构组件
Master(主控节点:主要做管理操作的)和node(工作节点)
K8S架构图:
etcd:键值对数据库,存储k8s所有重要信息(持久化的),官方将它定位成一个可信赖的分布式键值存储服务,它能够为整个分布式集群存储一些关键数据,协助分布式集群的正常运转,保存分布式集群需要持久化的配置文件,一旦集群死亡,可以借助etcd里面的信息,进行数据恢复
但是etcd有两个版本:V2和V3
etcd内部架构图:
replication controller (简称rc) :控制器,维护副本的数目,想要容器运行几个副本,就是由它控制的
api server:所有服务的访问的入口(每个组件可以在本地申请一定的缓存, 为了减轻api server压力)
kubectl:是命令行管理工具
scheduler:负责介绍任务,选择合适的节点进行分配任务,是把任务交给api server,api server再把请求写入etcd(相当于Paxos,也是键值对数据库),意味着scheduler不会和etcd进行直接的交互
上面是master节点的一些信息,下面是node节点
node:node节点中需要安装三个软件,kubelet,kube proxy ,docker
kubelet:直接跟容器引擎交互实现容器的生命周期管理,会和docker产生交互,操作docker去创建对应的容器,也就是kubelet会去维持pod生命周期
kube proxy:负责写入规则至IPTABLES,IPVS,实现服务映射访问,可以维持pod与pod之间的访问,包括负载均衡,kube proxy默认操作对象是操作防火墙,去实现pod的映射
COREDNS:可以为集群中的SVC创建一个域名IP对应关系解析
DASHBOARD:给k8s集群提供一个B/S结构访问体系
INGRESS CONTROLLER:k8s集群官方只能实现4层代理,它可以实现7层代理
FEDETATION:提供一个跨集群中心多k8s统一管理的功能
Prometheus:提供一个k8s集群的监控能力
ELK:提供k8s集群日志统一分析介入平台
总结: