云计算的三种服务模式: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中

相关推荐
RedCong6 小时前
如何在k8s中对接s3存储
云原生·容器·kubernetes
Yan-英杰6 小时前
DeepSeek-R1模型现已登录亚马逊云科技
java·大数据·人工智能·科技·机器学习·云计算·deepseek
扣脚大汉在网络9 小时前
云原生安全渗透篇
安全·云原生·dubbo
XINVRY-FPGA9 小时前
Xilinx FPGA XCVC1902-2MSEVSVA2197 Versal AI Core系列芯片的详细介绍
人工智能·嵌入式硬件·5g·ai·fpga开发·云计算·fpga
csdn_aspnet10 小时前
使用 .NET 9 和 Azure 构建云原生应用程序:有什么新功能?
microsoft·云原生·azure
字节源流11 小时前
【spring cloud Netflix】Eureka注册中心
云原生·eureka
基哥的奋斗历程12 小时前
kubernetes configMap 存储
云原生·容器·kubernetes
阿里云云原生1 天前
LLM 不断提升智能下限,MCP 不断提升创意上限
云原生
阿里云云原生1 天前
GraalVM 24 正式发布阿里巴巴贡献重要特性 —— 支持 Java Agent 插桩
云原生