K8s是一个编排容器的工具,管理应用全生命周期的工具,从创建应用、应用部署、应用提供服务、扩缩容应用、应用更新都非常方便,而且可以做到故障自愈。


 

 

1.1 发展经历


 基础设施级服务 iaas:阿里云

平台设施级服务 paas:新浪云

软件设施级服务 saas:Office365

 

资源管理器:

前生:

Apache:MESOS - 分布式系统内核、分布式资源管理框架 2019-05 Twitter>k8s

docker:SWARM集群,轻量级框架,2019-07阿里云宣布Docker Swarm集群框架从阿里云选择框架剔除

 

今世:

Google:kuberbets,10年google容器基础框架borg,容器火了之后,Google使用Go语言参考borg设计思路开发出了k8s。

 

特点:轻量级,基于go语言,消耗资源少,弹性伸缩,负载均衡

 

1.2 知识图谱


 

 

k8s云平台 k8s saas_Pod

k8s框架

k8s关键字含义

基础概念:什么是pod、控制器类型。。。

Pod概念:最小的封装集合,一个pod辉封装多个容器,打到一个字阶段的运行环境,K8s管理的最小单位

网络通讯模式

K8s安装:构建k8s集群

资源清单:资源是什么?掌握资源清单的语法,编写Pod,掌握Pod的生命周期。。。

Pod控制器:掌握各种控制器的特点以及使用定义方式

服务发现:SVC远离及其构建方式

存储:掌握多种存储类型的特点,并且能够在不同环境中选择合适的存储方案

服务分类:有状态服务(DBMS)、无状态服务(LVS、APACHE)

调度器:掌握调度器原理,能够根据要求将Pod定义到想要的节点运行

安全:集群的认证和鉴权,访问控制原理及其流程,集群的安全机制

KELM:类似linux中的yum工具,掌握HELM原理,自定义HEML模版,HELM部署常用的一些插件

运维:CICD构建,Pod特殊的创建管理方式,修改Kubeadm达到证书可用期限10年,构建高可用K8S集群。

 

1.3 组件说明


 

Borg架构:

k8s云平台 k8s saas_k8s云平台_02

 

 K8S架构:

k8s云平台 k8s saas_Pod_03

 

 APISERVER:所有服务的统一入口

CrontrollerManager:维持副本期望数量

Scheduler:负责介绍任务,选择合适的节点进行分配任务

ETCD:键值对数据库,存储K8S集群所有的重要信息(持久化),协助分布式集群的征程运转。

Kubelet:在每个节点上直接跟容器引擎交互,实现对容易生命周期进行管理

Kube-proxy:负责写入规则至IPTABLES、IPVS,实现服务映射访问

COREDNS:可以为集群中的SVC创建一个域名IP的对应关系解析

DASHBOARD:给K8S集群提供一个B/S结构的访问体系

INGRESS CONTROLLER:官方只能实现四层代理

INGRESS:可以实现七层代理

FEDERATION:提供一个可以跨集群中心多K8S统一管理功能

PROMETHEUS:提供K8S集群的监控能力

ELK:提供K8S集群日志统一分析介入平台

 

推荐在K8S集群中使用Etcd v3,v2版本在K8S v1.11版本中已经弃用。

k8s云平台 k8s saas_Pod_04

 

 Etcd在官方文档中将它定位成一个可信赖的分布式键值存储服务,它能够为整个分布式集群存储一些关键数据,协助分布式集群的正常运转。

k8s云平台 k8s saas_Pod_05