Kubernetes简介

Kubernetes简介

此文旨在以简明清晰的方式简要介绍Kubernetes的缘由、原理和架构。读者需要对容器技术有所了解。

Kubernetes缘由

在传统的 PaaS上,用户必须为不同语言、不同框架区分不同的打包方式,这个打包过程是非常具有灾难性的。而现实往往更糟糕,当在本地跑的好好的应用,由于和远端环境的不一致,在打包后却需要在云端各种调试,最终才能让应用“平稳”运行。

Docker的出现改变了这一切,它凭借容器技术解决了这个问题,大大方便了交付、测试和部署应用。

然而,在Docker容器技术被炒得热火朝天之时,大家发现,如果想要将Docker应用于具体的业务实现,是存在困难的——编排、管理和调度等各个方面,都不容易。在生产环境中部署一个应用程序时,通常要部署该应用的多个实例以便对应用请求进行负载均衡。于是,人们迫切需要一套管理系统,对Docker及容器进行更高级更灵活的管理。

于是,Kubernetes(K8S)就出现了。

Kubernetes是Google开源的容器集群管理系统,能提供一个以“容器为中心的基础架构”。Kubernetes的目标是让部署容器化的应用简单并且高效。它支持自动化部署、大规模可伸缩、应用容器化管理。

简要原理

Kubernetes将资源高度抽象化,允许将容器化的应用程序部署到集群中。在新的部署模型中,应用程序被直接安装到特定的机器上,Kubernetes以更高效的方式在集群中实现容器的分发和调度运行。

所以说,Kubernetes 就像是容器层面的操作系统。集中控制容器的部署、扩展、负载均衡、日志、监控等。这使得系统更加易用、强大、弹性和可扩展。

整体架构

Kubernetes将底层的计算资源连接在一起对外体现为一个高可用的计算机集群,形成一个K8S系统,通常称为K8S集群(Cluster)。每一个 Kubernetes 集群都由两个部分组成:

  • Master节点(主节点)
  • Node节点(计算节点)

总的来说,Master节点负责发号施令,Node节点负责执行。

Master 是 Kubernetes 集群的管理节点,负责管理集群,提供集群的资源数据访问入口。拥有 Etcd 存储服务,运行 API Server 进程,Controller Manager 服务进程及 Scheduler 服务进程,关联工作节点 Node。

API Server是整个系统的对外接口,供客户端和其它组件调用,相当于“营业厅”。Scheduler负责对集群内部的资源进行调度,相当于“调度室”。Controller manager负责管理控制器,相当于“大总管”。

Node 是 Kubernetes 集群架构中运行 Pod 的服务节点。Node 是 Kubernetes 集群操作的单元,用来承载被分配 Pod 的运行,是 Pod 运行的宿主机。关联 Master 管理节点,拥有名称和 IP、系统资源信息。运行 Docker Runtime、kubelet 和 kube-proxy。

Pod是Kubernetes中的最小单位,由一个或多个容器组合在一起得共享资源。这些资源包括:

  • 共享存储,如 Volumes 卷
  • 网络,唯一的集群IP地址
  • 每个容器运行的信息,例如:容器镜像版本
img

下面这张图是从宏观上看 Kubernetes 的整体架构。

img

References

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值