云计算的三种服务模式:IaaS、PaaS和SaaS

一、IaaS、PaaS、SaaS简介

1 基础设施即服务 (IaaS): Infrastructure as a Service

基础设施即服务有时缩写为 IaaS,包含云 IT 的基本构建块,通常提供对联网功能、计算机(虚拟或专用硬件)以及数据存储空间的访问。基础设施即服务提供最高等级的灵活性和对 IT 资源的管理控制,其机制与现今众多 IT 部门和开发人员所熟悉的现有 IT 资源最为接近。

2 平台即服务 (PaaS):platform as a service

平台即服务消除了组织对底层基础设施(一般是硬件和操作系统)的管理需要,让您可以将更多精力放在应用程序的部署和管理上面。这有助于提高效率,因为bash 您不用操心资源购置、容量规划、软件维护、补丁安装或与应用程序运行有关的任何无差别的繁重工作。

3 软件即服务 (SaaS):Software as a Service

软件即服务提供了一种完善的产品,其运行和管理皆由服务提供商负责。人们通常所说的软件即服务指的是终端用户应用程序。使用 SaaS 产品时,服务的维护和底层基础设施的管理都不用您操心,您只需要考虑怎样使用 SaaS 软件就可以了。SaaS 的常见应用是基于 Web 的电子邮件,在这种应用场景中,您可以收发电子邮件而不用管理电子邮件产品的功能添加,也不需要维护电子邮件程序运行所在的服务器和操作系统。

二 K8s重要插件

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

Dashboard:提供一种B/S GUI的方式对集群资源进行管理,可以获取运行在集群中的应用的信息,也可以创建或者修改 Kubernetes 资源 (如 Deployment,Job,DaemonSet 等等)

Ingress Controller:为服务提供外网入口,对外提供服务的方式之一

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

Prometheus:提供资源监控

elk:提供集群日志采集、存储与查询

Flannel:是CoreOS团队针对Kubernetes设计的一个网络规划服务,简单来说,它的功能是让集群中的不同节点主机创建的Docker容器都具有全集群唯一的虚拟IP地址。而且它还能在这些IP 地址之间建立一个覆盖网络(Overlay Network) ,通过这个覆盖网络,将数据包原封不动地传递到目标容器内

推荐在 Kubernetes 集群中使用 Etcd v3,v2 版本已在 Kubernetes v1.11 中弃用。etcd 的官方将它定位成一个可信赖的分布式键值存储服务,它能够为整个分布式集群存储一些关键数据,协助分布式集群的正常运转:

资源清单

资源清单含义:在 k8s 中,一般使用 yaml 格式的文件来创建符合我们预期期望的 pod等资源对象,这样的 yaml 文件我们一般 称为资源清单。

分类

名称空间级别:仅存此名称空间下生效

工作负载型资源(workload):

Pod: k8s中最小单元

ReplicaSet:调度器,通过标签控制 pod 的副本数目

Deployment:控制器,通过控制 rs 的创建来创建 pod

StatefulSet:为有状态服务创建的管理器

DaemonSet:可以在每个节点运行 pod 主键

Job:为批处理而生

CronJob(ReplicationController)在v1.11版本被废弃:为批处理而生

服务发现及负载均衡型资源(ServiceDiscoveryLoadBalance):Service、Ingress、...

配置与存储型资源:Volume(存储卷)、CSI(容器存储接口,可以扩展各种各样的第三方存储卷)

特殊类型的存储卷:

ConfigMap(当配置中心来使用的资源类型):通过他可以创建一些配置文件,达到热更新

Secret(保存敏感数据):加密方案存储数据,可以用它存储一些秘钥等

DownwardAPI(把外部环境中的信息输出给容器):下载文件的接口,可以下载、上传

集群级别:所有名称空间都可以使用

Namespace:名称空间

Node:工作节点

Role

ClusterRole

RoleBinding

ClusterRoleBinding

元数据型资源

HPA

PodTemplate(pod模板)

LimitRange(资源限制)

三 Pod的创建过程

用户通过kubectl或APIServer提供的调用接口将要创建的pod信息提交给apiserver;

APIServer通过鉴权等后,构建出完整的Pod信息,并将该信息存储到etcd中,然后返回确认信息至客户端;

apiserver开始反映etcd中的pod对象的变化,其他组件使用watch(监听)机制来跟踪检查apiserver上的变动;

Scheduler watch(监听)到pod的事件,发现有新的pod创建信息, 随即为该pod分配合适的node,然后调用APIServer的修改接口,将Pod与node绑定;

node节点上的kubelet watch到pod事件,发现有pod调度过来,尝试调用docker启动容器,并将结果送至apiserver;

apiserver将接收到的pod状态信息存入etcd中

相关推荐
邢庆阳2 小时前
亚马逊ASDWindows系统构建实例并应用储存SSD
云计算·亚马逊
路边草随风4 小时前
paimon使用腾讯云cosn作为仓库存储的使用方式
java·大数据·flink·云计算·腾讯云
秒云5 小时前
MIAOYUN信创云原生项目亮相西部“中试”生态对接活动
云原生·云计算·创业创新·信创·中试·成果转化
九河云5 小时前
阿里云数据传输服务使用场景
数据库·阿里云·云计算
九河云5 小时前
阿里云无影云电脑的使用场景
阿里云·云计算
CodeLinghu5 小时前
云产品评测|阿里云服务诊断
阿里云·云计算
ZPC82105 小时前
Docker获取 Ubuntu 镜像
云原生·eureka
小峰编程5 小时前
Linux浅谈——管道、网络配置和客户端软件的使用
linux·运维·服务器·网络·windows·云原生·ai原生
前端 贾公子6 小时前
如何在Mac上彻底删除Docker及其相关组件:清理指南
spring cloud·云原生·eureka
weixin_307779136 小时前
AWS云平台上生成式AI通过项目文档内容分析获知项目风险
人工智能·云计算·aws