关于云计算:什么都1202年了还不懂k8s和容器的关系这份k8s指南快拿走不谢

33次阅读

共计 2468 个字符,预计需要花费 7 分钟才能阅读完成。

都 1202 年了,还是有许多人搞不清容器与 k8s 之间的关系。在开始本篇注释之前,咱们先来捋一捋这对“CP”的关系。

你可能曾经很相熟虚拟机了,最常见的莫过于咱们拿到 macOS 却须要用 Windows 软件,游戏用户就更别说,很多游戏仅有 Windows 版本。咱们怎么解决的?下载并装置虚拟机软件,在虚拟机中实现双系统的运行就能够了。容器与虚拟机相似,也是能够将利用与库和其余依赖项打包,提供独立环境来运行软件服务。

如上图虚拟化部署时代、容器部署时代的架构比照,不难发现,容器比照虚拟机期间少了大块头的操作系统,这使得本来又高又轻便的架构霎时灵动笨重,IT 应用和运行效率大幅度飙升。

而容器的 CP——k8s,可能进行利用的自动化部署和扩缩容,是让容器们发光发热的编排容器工具。

什么是 k8s(Kubernetes)?

k8s 全称 Kubernetes,源于希腊语“κυβερνήτης”,意为“舵手”或“飞行员”。借助容器 container 的另一英文释义“集装箱”,k8s 可设想为一艘航行在海面上的轮船,把装载的大量集装箱(容器)送到该去的中央,治理并施展它们的最大效劳。

k8s 是比容器更上一层的架构,作为一个编排和治理容器的工具,它次要具备以下三大外围能力:主动调度、主动修复、程度主动伸缩。

1、主动调度
k8s 能够把用户提交的容器放到 k8s 集群的任意一个节点,但运行过程中 k8s 会依据容器大小、规格,各节点的负载水平等理论状况来决定容器应该放到哪一个节点上。

2、主动修复
k8s 有一个健康检查机制,会监测集群中所有的宿主机,当它发现其中有问题,比方某一个服务器挂了,它能够主动将这个服务器上的服务调度到另外一台主机上进行运行,无需人工干预。

3、程度主动伸缩
k8s 还具备业务负载查看的能力,会监测业务上所承当的负载,当达到预期设定的负载指标后,就会依据指标主动触发动静扩容或缩容行为。

k8s 几个外围概念

Master

集群是一组节点,这些节点能够是物理服务器或者虚拟机,在此之上装置了 Kubernetes 平台。下图一个典型的 Kubernetes 架构图,其中有一个提供集群独特视角的 Kubernetes Master,和一系列能够提供和集群交互的 REST 端点的组件,比方 Kubernetes API Server,此外 Master 节点还包含用来创立和复制 Pod 的 Replication Controller。

Pods

在 k8s 外面,集群调度的最小单元就是 pod,一个 pod 能够是一个容器,也能够是多个容器。例如你运行一个程序,其中应用了 nginx、mysql、jetty,能够将这三个应用在同一个 pod 中,对他们提供对立的调配能力。一个 pod 只能运行在一个主机上,而一个主机上能够有多个 pod。

Labels

Labels(标签用于辨别对象),每个对象能够有多个标签,通过标签关联对象。它是一个 key=value 的键值对,其中 key 与 value 由用户本人指定。能够附加到各种资源对象上,一个资源对象能够定义任意数量的 Label。能够通过 LabelSelector(标签选择器)查问和筛选资源对象。

Services

Service 定义了 Pod 的逻辑汇合和拜访该汇合的策略,是实在服务的形象。Service 提供了一个对立的服务拜访入口以及服务代理和发现机制,关联多个雷同 Label 的 Pod,用户不须要理解后盾 Pod 是如何运行。

Container

蕴含在 Pod 下,能够了解为容器,比方 docker 镜像。

Node

Node 是 Pod 真正运行的主机,能够物理机,也能够是虚拟机。为了治理 Pod,每个 Node 节点上至多要运行 container runtime(比方 docker 或者 rkt)、Kubelet 和 Kube-proxy 服务。


这里咱们举个现实生活中的例子,加深一下对 k8s 的了解。

在早以前,咱们去到某商店买货色时,遇到缺货、断货的状况,只能下次转到别的店再找找,而当初,咱们能够让连锁店家查看库存,间接从其余店铺调货。如此一来,其余店铺的商品不会沉积,该店铺的服务也有成果,而作为顾客的咱们更是胜利买到了想要的货色。

在这个利用场景中,以后城市能够了解为 pod,店铺是 container,label 代表你想找的那款产品,城市(pod)之上是省(node),service 就是可能在不同省份不同城市不同店铺之间调动商品库存的人。而 kubernetes 的弱小之处还在于,能够有限复制店铺(包含商品),对于咱们也就是有购买需要的用户来说,就失去了永远有货的保障。

你可能要说了,既然 k8s 这么好用,又是开源软件,咱们间接拿来用不就好了嘛?理是这么个理,但理论搭建生产环境的时候,跨多可用区部署 k8s 集群的过程简单不说,随着利用和业务不断扩大,对系统的监测与保护难度是按指数增长的。

基于以上种种思考,对许多企业或数据达到肯定体量的独立开发者来说,显著更青眼笼罩数据从采集、存储、剖析到展现的全流程、全自动的一站式解决方案。当初市场上相干计划不少,但大多是某一个性能十分突出,企业往往须要购买和应用多款软件,给经营老本和系统升级都造成极大的累赘。

DataFlux 一站式监测云平台

DataFlux 提供面向云、利用和业务的对立数据监控能力,全云平台、200+ 技术栈反对且可按量付费,应用简略,功能强大,性价比高。

DataFlux 反对采集 Kubernetes 集群指标并上报。对 Kubernetes 集群指标的采集,次要通过两个 input 插件实现:

  • kubernetes: 次要针对集群中 Kubelet 的数据采集,即 node 节点相干性能
  • Kube\_inventory: 次要针对集群中 api-server 的数据采集,即集群、pod 相干性能

咱们来看几张效果图。

1、Kubernetes Overview 视图

2、Kubernetes Node 内置视图

3、Kubernetes Pod 内置视图

DataFlux 的部署只须要几分钟就能搞定,咱们能够依照教程装置 DataFlux 采集器 DataKit,开启对 Kubernetes 集群指标的采集。

正文完
 0