K8S+Docker容器化云高可用集群实战1.1-云计算平台解读
1. 云计算常识
- 云计算不是新技术,是一种新的互联网模式,通过使用公有云或石油人资源、便携、快速的为我们提供服务(有人更形象的说就是:各大厂商为了销售更多的服务器)
- 在虚拟化、分布化、自动化平台上的更深层解决方案
- 私有云、公有云、混合云
- “云”中资源对于使用者来说可以无限扩展,又可以随时获取,按需使用,随时扩展,按使用付费。
2. 云计算平台的分类理解
云计算历程:
2001 WMware虚拟化技术
2006 AWS推出EC2服务
2010 Openstack社区成立 (负责基础设施,管理硬件、管理操作系统的基础设施编排)
2011.4 第一个开源PaaS平台CloudRoundry
-----------------------------------------------------------------以上是传统云计算Iaas , 以下新兴云计算Paas/Caas
2013.3 开源Docker发布 (催生了容器化技术,操作系统上的应用容器化)
2014.6 Google发布Kubernets开源服务 (其实早期google已有技术) 应用编排
2015.7 Google宣布成立CNCF基金会 ,通过倡导更加安全、省心上云,免费成品软件
- IaaS: Infrastructure-as-a-Service(基础设施即服务)
- PaaS: Platform-as-a-Service(平台即服务)
- SaaS: Software-as-a-Service(软件即服务)
- CaaS是Container-as-a-Service(容器即服务)
IaaS: (主要提供一些基础资源,其中用户需要自己控制底层,实现基础设施的使用逻辑。)
几年前如果你想在办公室或者公司的网站上运行一些企业应用,你需要去买服务器,或者别的高昂的硬件来控制本地应用,让你的业务运行起来。
但是现在有了IaaS,你可以将硬件外包到别的地方去。IaaS公司会提供场外服务器,存储和网络硬件,你可以租用。节省了维护成本和办公场地,公司可以在任何时候利用这些硬件来运行其应用。
一些大的IaaS公司包括Amazon, Microsoft, VMWare, Rackspace和Red Hat.不过这些公司又都有自己的专长,比如Amazon和微软给你提供的不只是IaaS,他们还会将其计算能力出租给你来host你的网站。
PaaS: (提供软件部署平台runtime,抽象掉了硬件和操作系统细节,可以无缝地扩展scaling。开发者只需要关注自己的业务逻辑,不需要关注底层。)
PaaS在网上提供各种开发和分发应用的解决方案,比如虚拟服务器和操作系统。这节省了你在硬件上的费用,也让分散的工作室之间的合作变得更加容易。网页应用管理,应用设计,应用虚拟主机,存储,安全以及应用开发协作工具等。
一些大的PaaS提供者有Google App Engine,Microsoft Azure,Force.com,Heroku,Engine Yard。最近兴起的公司有AppFog, Mendix 和 Standing Cloud
SaaS: (是软件的开发、管理、部署都交给第三方,不需要关心技术问题,可以拿来即用。)
这一层是和你的生活每天接触的一层,大多是通过网页浏览器来接入。任何一个远程服务器上的应用都可以通过网络来运行,就是SaaS了。
你消费的服务完全是从网页如Netflix, MOG, Google Apps, Box.net, Dropbox或者苹果的iCloud那里进入这些分类。尽管这些网页服务是用作商务和娱乐或者两者都有,但这也算是云技术的一部分。
一些用作商务的SaaS应用包括Citrix的GoToMeeting,Cisco的WebEx,Salesforce的CRM,ADP,Workday和SuccessFactors。
CaaS:(理解为容器化的微服务的概念,容器内可以提供各类服务内容,很多企业服务商将自己的服务能力封装成为容器提供外部的商业使用。)
这是一种可以理解为通过构建磁盘镜像来加快基础设施平台配置的IaaS用户模式。但与VM相比,同时运行的几台驱动器足以让您的工作站超负荷运行,容器则允许您在本地部署完整的微服务堆栈,大大加快了开发周期。另外,由于降低了开销,每个微服务器都可以拥有自己的容器映像,自己的发布周期和自己的滚动升级,允许更小的团队并行开发它们。
3. 云平台的优缺点
- 稳定性:云平台大量资源,分布式集群部署,保障服务永不宕机
- 弹性扩展:按需索取,一键秒级开通需要的资源
- 安全性:云上平台生产级可用的完善权限系统
- 成本:初期计算资源成本极低,后期更是大量降低运维成本
- 易用性:各大云商都有Web管理控制台,可视化,智能化便携操作
- 公有云,服务资源被第三方管理,不符合特殊级别的安全场景
- 私有云,搭建、维护、升级成本大
4. 云计算体系变革
- 单体架构阶段
- 集群架构阶段
- 分布式架构阶段(将大型应用拆分很多功能模块,各个模块部署在不同服务器,所有服务器同时提供服务,采用负载均衡)
- 微服务架构阶段(业务天然分库;RPC远程调用;API Gateway网关,门面模式、外观模式,对外暴露统一接口、负载均衡、协议转换、用户鉴权、牵扯到业务代码的相关东西、nginx....)
- 网络化架构Service Mesh
5. 云上挑战:
- 云机器资源编排
- 云存储方案
- 云负载均衡方案
- 云缓存方案
- 云持久化
- 云运维
- 云监控
- 云容器技术
- 云DevOps
- 云安全防火....
应用上云无关语言,k8s解决这一问题,CNCF倡导这个事情。
Docker -----适配层(Docker shim) ------ K8S(每次调用容器的时候需要通过适配层调用、、K8S容器运行时接口CRI)
K8S要调用容器时采用CRI接口Container Runtime Interface,但是Docker出现较早没有实现CRI,于2021年底更新才实现。
Docker其实就是容器的封装层,containerd(runc)
现在很多人说,应用上云的新型架构就是:Kubernetes+ServiceMesh
...............