-
云原生:初期(2015-至今)
云原生模式
随着容器技术的出现以及应用所面临的外部环境的变化,云原生逐渐成为一种应用云化开发、部署和运行的主流方式
基础前提:应用的容器化和微服务化。容器,作为应用部署、运行和管理的基本单元;
核心:借助容器管理自动化平台进行动态编排和资源优化利用。
查看全部 -
容器化:(2013-至今)
Docker:2013年
以 Docker 为代表的内核容器技术不是新技术,而是将已有技术(LXC、cgroups、Union FS)进行了更好的整合和包装,并形成了一种标准镜像格式。
与 VM 相比,容器具有开发交付流程操作对象同步、执行更为高效、资源占用更为集约等优势。
计算基本单元由虚拟机变为了容器,越来越多应用的构建、部署与运行选择在容器中进行。
查看全部 -
虚拟化:成熟期(2010~至今)
AWS、Azure、Aliyun、GCE:2015-2017
基于虚拟化技术的公有云爆发式增长,形成公有云 laaS 四巨头
2017 年底,全球企业的一半以上的计算资源放在了公有云上,半数企业在内部完成了私有云部署
查看全部 -
虚拟化:成熟期(2010~至今)
OpenStack:2010年
OpenStack 诞生,推动开源 IaaS 平台的快速发展。推动商家将自有数据中心改造为虚拟化平台,部署数据敏感、业务敏感的核心应用
部署形式:公有云、私有云、混合云
服务模式:IaaS、PaaS(Heroku 2009)、SaaS 等
查看全部 -
虚拟化:初期(2001~2009)
IaaS:AWS 2006 年,GCE 2008 年
基于虚拟机技术的 Amazon Web Services(AWS)开启了 Infrastructure-as-a-Service(基础设施即服务)的市场
实现了自助的、按需租用以 VM 为基本计算单元的计算资源。
应用的部署运行依然以 vm 为单元并通过 IaaS 厂商提供的控制台实现高效的计算资源管理。
查看全部 -
虚拟化:初期(2001~2009)
VMware:2001 年,Xen:2003 年,KVM:2007 年
VMare 发布了针对服务器市场的虚拟化技术方案:提升计算资源的利用率和降低使用成本
Vmware、Xen 和 KVM 三足鼎立,促进了 VM 概念的普及,拉开了虚拟化云计算时代的大幕
基础计算单元变为VM,服务端应用的构建、部署和运行逐步迁移
到虚拟机VM上了。
查看全部 -
物理单机(~2000)
2000 年:IBM、Sun 公司
在商用服务计算领域几乎都是以单机为基础计算单元对计算资源进行管理和协调控制的
部署新程序的前提往往是购买一台新的物理机器或一组机器
程序直接在物理机上构建、部署和运行
查看全部 -
一、应用部署运行模式变迁
从物理单机、虚拟化(容器化)到云原生
查看全部 -
小结
Kubernetes 概念:
Kubernetes Object 模型
重点:Pod 与各种 Controller
查看全部 -
ConfigMap
查看全部 -
ConfigMap
ConfigMap:常用来向 Pod 提供非敏感的配置信息
ConfigMap 用于保存配置数据的键值对,可以用来保存单个属性,也可以用来保存配置文件
ConfigMap 可以使用命令行基于字面值、文件或目录来创建或通过 configmap 对象定义文件创建
ConfigMap 可以通过三种方式在 Pod 中使用:环境变量、容器命令行参数或以文件形式通过数据卷插件挂载到 Pod 中
查看全部 -
DaemonSet
DaemonSet:保证在每个 Node 上都运行一个 Pod 副本
适用场景:系统 Daemon 程序、监控跟踪、日志收集等
Kubernetes 1.6 之后,可设置更新策略:支持滚动更新
可指定 Node:nodeSelector、nodeAffinity、podAffinity
查看全部 -
StatefulSet
StatefulSet:提供对有状态的应用的部署和控制的支持,1.9 版本 GA
适用场景:稳定的持久化存储、稳定的网络标志、有序部署、有序扩展、有序收缩有序删除、有序自动滚动升级等
Pod 的存储必须由 PersistentVolume Provisioner 根据请求的 Storage Class 进行配置,或由管理员预先配置好。
考虑数据安全性,伸缩或删除 StatefulSet 不会删除关联的存储;另外 StatefulSet 目前要求 Headless Service 负责 Pod 的网络身份,用户有责任创建此服务
查看全部 -
Deployment
Deployment:为 Pod 和 ReplicaSet 提供了声明式的定义(declarative)
用户在 deployment 文件中描述期望状态,Deployment controller 就会自动将 Pod 和 Replica Set 的实际状态改变到期望状态
Deployment 支持 Pod 的 RollingUpdate,并自动管理背后的 ReplicaSet
Deployment 支持将 pod Rollback 到之前的任意 revision (仅限于 pod-template 模板改动)
查看全部 -
ReplicaSet
ReplicaSet:确保健康 Pod 的副本数始终满足用户定义的数量
前身是 ReplicationController(rc)
相比 rc,增加集合式 label selector 的支持
支持单独使用,但更多隐藏在 Deployment 控制器后面,由 deployment 自动管理
查看全部
举报