云、云架构、云原生和K8S:一次全面的解析

发表时间: 2023-09-15 15:58

什么是云、什么是云架构、什么云原生、什么容器、什么Kubernetes都是是什么?

云架构和云原生到底是什么关系?

云和K8S的关系

云其实就是使用容器化技术构建的一套服务集群的网络环境,云中的很多组件都是通过容器的方式构建的。而K8S完成的操作就是对云中的这些容器进行的管理。

常见的云架构

  • On-Premises(本地部署云)
  • IaaS(基础设施即服务):用户可以通过租用、购买等方式来使用云主机,而不需要考虑网络、硬件设施等问题。
  • PaaS(平台即服务):例如我们的阿里云、腾讯云中的很多MySQL、MQ、ES等中间件的服务。
  • SaaS(软件应用程序即服务):常用的一些软件平台中自带的一些收费应用模块。

  • Serverless:无服务,不需要服务器。站在用户的角度考虑问题,用户只需要使用云服务器即可,在云服务器所在的基础环境,软件环境都不需要用户关心。未来服务开发都是 Serverless,企业都构建了自己的私有云环境,或者是使用公有云环境。

云原生

为了让应用程序、服务软件等都能精准无误的运行到云服务上的解决方案,被称为是云原生解决方案。云原生解决方案具有如下的一些特点。

  • 所有的服务都必须在容器中进行部署,也被称为是容器化
  • Web架构模式基本上都是微服务架构模式
  • 支持CI/CD操作
  • 支持DevOps操作

Kubernetes到底是什么?

Kubernetes是一个自动化部署、伸缩和操作应用程序容器的开源工具平台。对比Docker技术来看,Docker可以看做是Kubernetes内部使用的低级别组件,而Kubernetes则是管理Docker的容器工具。

使用Kubernetes可以快速实现如下的一些功能。

  • 可以快速部署应用
  • 可以快速扩展应用
  • 可以无缝对接新的应用
  • 可以节省资源、优化硬件资源的使用

K8S架构原理?

通俗来讲K8S就是构建一个Master节点来对应很多的Node节点。

Master结构

  • ApiServer:即为K8S的服务网关,所有的服务请求指令都是通过ApiServer实现。
  • Scheduler调度器:使用调度算法将某个资源调度到某个节点上
  • Controller Manager:控制管理器K8S的资源管理器
  • Etcd:K8S中的资源存储器。

Node结构

  • Kubelet:在每个节点上都存在的操作指令执行器
  • Kube-Proxy:代理服务,主要来处理服务间的负载均衡操作
  • Pod:K8S的基本管理单元,Pod的内部就是应用容器,这里需要注意的是K8S不是直接来管理容器而是来管理Pod。

  • Docker:应用运行的基础容器环境,也就是容器引擎。
  • Fluentd:日志收集服务。

总结

Kubernetes作为当前唯一被业界广泛认可和看好的Docker分布式系统解决方案,可以预见,在未来几年内,会有大量的新系统选择它。容器化技术已经成为计算模型演化的一个开端,Kubernetes作为容器开端的Docker容器集群管理技术,在这场新的技术革命中扮演着重要的角色,并具有不可预估的发展前景和商业价值