请选择 进入手机版 | 继续访问电脑版

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 196|回复: 1

云计算概念&种类-K8S云计算剖析

[复制链接]

31

主题

20

回帖

251

积分

管理员

积分
251
发表于 2024-1-11 14:07:24 | 显示全部楼层 |阅读模式
1.1  云计算概念

云计算技术其实是将物理的硬件服务器、操作系统、软件服务、网络带宽、流量、计费系统等资源组成一个大的资源池(动态扩容、弹性伸缩),然后所有的资源池可以分配给租户去使用,租户可以根据自身的需求,按需购买的资源。

云计算技术强调的是资源池,是租户的概念,虚拟化技术是属于云计算技术框架中一个小模块、组件技术,云计算技术最终的产物:硬件设备、操作系统、软件服务、网络带宽等。每个产物都可以租给用户去使用,用户可以自行去购买。

云计算技术的资源池,对于租户来讲,租户不需要了解云计算底层框架、架构,租用只要清楚自身的需求,自身对资源池的需求,需要多少台服务器、多少云主机、多大带宽,最终按需付费即可。

1.2  云计算技术的分类

基础设施云(Infrastructure as a Service,IaaS);
  • 租户无需管理底层硬件设备、网络、服务器、存储、虚拟化技术;
  • 租户只需对操作系统、中间件、数据、应用做维护即可;

2)
平台云(Platform-as-a-Service,PaaS);
  • 租户无需管理底层硬件设备、网络、服务器、存储、虚拟化技术、操作系统、中间件;
  • 租户只需对应用服务、软件程序做维护、无需操作系统&底层设施;

3)
服务云(Software-as-a-Service,SaaS);
  • 租户无需管理底层硬件设备、网络、服务器、存储、虚拟化技术、操作系统、中间件、应用服务、软件程序等;
  • 租户只需花钱、付费,提交业务需求,运营商将满足租户所有需求。

图片1.png
1.3  Kubernetes入门及概念介绍

Kubernetes,又称为 k8s(首字母为 k、首字母与尾字母之间有 8 个字符尾字母为 s,所以简称 k8s)或者简称为 "kube" ,是一种可自动实施 Linux 容器操作的开源平台。
K8S可以帮助用户省去应用容器化过程的许多手动部署和扩展操作。我们可以将运行 Linux 容器的多组主机聚集在一起,由 Kubernetes 帮助您轻松高效地管理这些集群。而且,这些集群可跨公共云私有云混合云部署主机。因此,对于要求快速扩展的云原生应用而言(例如借助 Apache Kafka 进行的实时数据流处理),Kubernetes 是理想的托管平台。

Kubernetes 最初由 Google 的工程师开发和设计。Google 是最早研发 Linux 容器技术的企业之一(组建了cgroups),曾公开分享介绍 Google 如何将一切都运行于容器之中(这是 Google 云服务背后的技术)。Google 每周会启用超过 20 亿个容器——全都由内部平台 Borg 支撑。Borg 是 Kubernetes 的前身,多年来开发 Borg 的经验教训成了影响 Kubernetes 中许多技术的主要因素。

在企业生产环境中,APP应用会涉及部署到多个容器主机。这些容器必须跨多个服务器主机进行部署。容器安全性需要多层部署,因此可能会比较复杂。但 Kubernetes 有助于解决这一问题。Kubernetes 可以提供所需的编排和管理功能,以便您针对这些工作负载大规模部署容器。借助 Kubernetes 编排功能,您可以构建跨多个容器的应用服务、跨集群调度、扩展这些容器,并长期持续管理这些容器的健康状况。

Kubernetesk8s)是自动化容器操作的开源平台,这些操作包括部署,调度和节点集群间扩展。如果你曾经用过Docker容器技术部署容器,可以将Docker看成Kubernetes内部使用的低级别组件。        Kubernetes不仅支持Docker,还支持Rocket,这是另一种容器技术。使用Kubernetes可以实现如下功能:

  • 实现自动化容器的部署和复制;
  • 实现跨多台主机进行容器编排和管理;
  • 有效管控应用部署和更新,并实现自动化操作;
  • 挂载和增加存储,用于运行有状态的应用;
  • 能够快速、按需扩展容器化应用及其资源;
  • 对服务进行声明式管理,保证所部署的应用始终按照部署的方式运行;
  • 更加充分地利用硬件,最大程度获取运行企业应用所需的资源;
  • 利用自动布局、自动重启、自动复制以及自动扩展功能,对应用实施状况检查和自我修复

1.4  
Kubernetes平台组件概念

Kubernetes集群中主要存在两种类型的节点:master、minion节点,Minion节点为运行 Docker容器的节点,负责和节点上运行的 Docker 进行交互,并且提供了代理功能。

  • Kubelect Master:Master节点负责对外提供一系列管理集群的API接口,并且通过和 Minion 节点交互来实现对集群的操作管理。
  • Apiserver:用户和 kubernetes 集群交互的入口,封装了核心对象的增删改查操作,提供了 RESTFul 风格的 API 接口,通过etcd来实现持久化并维护对象的一致性。
  • Scheduler:负责集群资源的调度和管理,例如当有 pod 异常退出需要重新分配机器时,scheduler 通过一定的调度算法从而找到最合适的节点。
  • Controller-manager:主要是用于保证 replication Controller 定义的复制数量和实际运行的 pod容器 数量一致,另外还保证了从 service 到 pod 的映射关系总是最新的。

  • Kubelet:运行在 minion节点,负责和节点上的Docker交互,例如启停容器,监控运行状态等。
  • Kube-Proxy:运行在 minion 节点,负责为 pod 提供代理功能,会定期从 etcd 获取 service 信息,并根据 service 信息通过修改 iptables 来实现流量转发(最初的版本是直接通过程序提供转发功能,效率较低。),将流量转发到要访问的 pod 所在的节点上去。
  • Etcd:etcd 是一个分布式一致性k-v存储系统数据库,可用于服务注册发现与共享配置储数据库,用来存储kubernetes的信息的,etcd组件作为一个高可用、强一致性的服务发现存储仓库,渐渐为开发人员所关注。在云计算时代,如何让服务快速透明地接入到计算集群中,如何让共享配置信息快速被集群中的所有机器发现,更为重要的是,如何构建这样一套高可用、安全、易于部署以及响应快速的服务集群,etcd的诞生就是为解决该问题。
  • FlannelFlannel是CoreOS 团队针对 Kubernetes 设计的一个覆盖网络(Overlay Network)工具,Flannel 目的就是为集群中的所有节点重新规划 IP 地址的使用规则,从而使得不同节点上的容器能够获得同属一个内网且不重复的 IP 地址,并让属于不同节点上的容器能够直接通过内网 IP 通信。

31

主题

20

回帖

251

积分

管理员

积分
251
 楼主| 发表于 2024-1-11 14:13:54 | 显示全部楼层

楼主太厉害了!楼主,I*老*虎*U!
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表