k8s——1.k8s介绍

 

 

一、发展经历(为什么要有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集群日志统一分析介入平台

 

 

 

总结:

 

 

 

 

posted @ 2021-11-19 22:40  小boboa  阅读(434)  评论(0编辑  收藏  举报