1. 应用架构演变:
传统单体架构: 一个大而全的超级项目,开发,扩展受到的很大的限制SOA架构:面向服务的架构;SOA服务思想:重复代码抽取,以服务为中心管理;系统之间通过ESB调用;ESB作为系统之间的桥梁 ;
微服务架构: 核心思路是拆分。真正实现服务自治;面临一个服务部署落地的问题
2. Docker与容器:
Docker是国外公司dotCloud公司开源的一个容器引擎,基于go开发,并托管到github上;
Docker是容器的管理工具(平台);容器中部署微服务,通过docker进行管理;
2.1 虚拟化和容器:
虚拟化结构:
> HW 硬件
>
> OS 基于硬件的操作系统
>
> Hypervisor: 虚机层VVM(运行在硬件层和操作系统之间,共用一套物理设备)
>
> 虚拟机:独立的操作系统
容器架构: 相对于虚拟机,隔离性较弱;但是更轻,更灵活;
HW 硬件OS 硬件操作系统
Docker Engine: Docker引擎
容器: 运行服务,无操作系统
2.2 Docker容器核心技术(基于linux内核)
Namespace:对容器进行网络,通信,文件,权限等进行隔离
Cgroups:为容器设置系统资源配额,包括CPU,内存,IO等
其他:linux kernel内核中技术;
2.3 Docker技术架构:
Daemon: docker进程
Api: DockerApi 调用Daemon
client: 客户端,doker命令
2.4 Docker核心概念:
容器、镜像Docker Image、镜像仓库
3. k8s容器集群:
3.1 k8s概述:
k8s是Kubernetes简称,是用于自动部署、扩展和管理容器化应用程序的的开源系统;是google的大规模容器管理系统的开源版本;
K8s提供的服务功能有:
基于容器的应用部署,维护和滚动升级
负载均衡和服务发现
跨机器和地区的集群调度
自动伸缩
无状态和有状态服务
插件机制保证的扩展性
3.2 k8s技术架构:
k8s是master-slave架构;
- master:集群的管理控制中心
- minion: node组件,提供容器集群的运行环境
- 各节点核心组件如下:
- k8s整体技术架构:
核心概念
- Pod: k8s可以创建的最小管理单元,代表集群上正在运行的一个进程;一个进程可以包含多个或一个容器;pod生命周期短暂,IP地址随时变化
- Deployment:创建和更新容器化应用,保证pods副本的数量;
- Service: 抽象的概念,定义了pod的逻辑分组和访问策略;方便实现服务发现和负载均衡
- Lable: 标签,用于实现service和pod映射的键值对