用打比方的方法,10分钟给你讲清楚Kubernetes

译自:https://opensource.com/article/20/7/kubernetes-analogyweb


Kubernetes容器编排系统背后的概念可能很难理解。这里作了一个简单的类比:把房子里的房间出租,帮助你了解Kubernetes是如何工做的。微信


如何在房子里出租房间              网络


想象一下你拥有一座有10个房间的房子。你想经过在线住宿服务出租其中的三个房间。你有两个选择:发布广告,本身管理一切;雇人帮你作。             架构


想省事儿,你决定雇佣一个租赁代理来处理这些事情。你与代理的合同规定:app

——在任什么时候候,都应该有三个房间出租给客人。             运维

——每一个房间有两张床。             微服务

——每次客人预订时,钥匙都须要在适当的时间交给客人。             工具

——每次客人离开时,房间都要打扫干净。             学习

——若是有太多的预订请求(例如在假日期间),那么可预订的房间能够从3个增长到10个。             大数据


就这样!你不用操什么心了,愿意的话能够不时地用电话联系代理了解状况。             


如何管理租赁              


代理雇佣员工来知足你的需求。假设有三个员工管理三个房间:一号房间预订后,员工一确保房间情况良好,提供钥匙,清洁服务等。             


床是最基本的实体,由于它是客人过夜的最低要求。             


代理将员工、房间、床位、预订等全部信息保存在笔记本上。代理还记录员工的休假时间,以便在某个员工生病或休假时将另外一名员工分配到房间。代理根据须要使用电话联系员工。             


当客人在线预订房间时,预订会被重定向到一个确保该房间准备就绪的员工。客人来了,拿到钥匙,晚上睡在床上,走的时候打扫房间,而后重复这个循环。             


这听起来很简单,但这和Kubernetes有什么关系?             


Kubernetes的相似之处              


你经过雇用其余员工的代理实现自动化,这与Kubernetes对应用程序的操做相似。下面是它的工做原理。             


假设你是一个应用程序开发者。类比出租房中最基本的实体是床,应用程序(知足用户需求的最基本实体)运行在容器中。应用程序的“房间”称为pod,它是应用程序运行的地方。


         

节点或工做节点本质上是一台运行pod的机器。             


代理的员工确保客房功能齐全。在Kubernetes里,你没有员工,但有kubelet。kubelet是节点内的一个代理,它确保在该节点内运行的pod是健康的。  


        

租赁代理对应于Kubernetes中的两件事:kube-scheduler和kube-controller manager。就像代理决定应该将哪一个房间分配给哪一个员工同样,kube-scheduler根据可用的资源及其需求来决定哪一个pod在哪一个节点上运行。记住,节点是一台机器,而pod在节点内运行。就像代理决定员工下班时要作什么同样,kube-controller manager决定当节点宕机或机器因任何缘由中止工做时该作什么。 


代理的笔记本上记录了关于出租多少房间、有多少张床空着、哪一个员工在作什么等全部细节,它与etcd数据存储相对应。这就是配置数据存储的地方,例如,若是你须要三个pod一直在运行。



Kubernetes中的主节点和worker节点相似于代理和员工用来通讯的电话。主API-server相似于代理的电话,而每一个worker节点的kube-proxy则相似于员工的电话。        


    


API-server、etcd、kube-controller manager和kube-scheduler组成了这个Kubernetes实例的控制中心。


             

部署              


你(房主)和代理之间的合同至关于在Kubernetes中的部署。部署包括一组需求,好比须要运行多少个pod,须要什么资源(例如CPU)等。Kubernetes确保无需人工干预便可知足这些要求。  


        

还记得协议中的额外条款吗?若是有太多客人预订,该怎么办?这至关于Kubernetes中的自autoscaling。这意味着Kubernetes能够扩展你的服务,随着应用程序用户的增长,为你提供更多的pod,就像你能够在更多的客人试图预订时提供更多的房间同样。正如你不能将预订扩展到超过10个房间同样,你可能须要为自动缩放设置一个上限,由于你不能随意地继续增长pod。



后台回复“加群”,带你进入高手如云交流群


推荐阅读:

Linux 进程必知必会

5种主要的软件架构模式

5个基本Linux命令行工具的现代化替代品

齐全了!Linux开发运维经常使用调试排障工具

几款实时查看网卡流量的工具

从零认识 iptables

Linux经常使用命令 &  实用命令万字总结

容易被遗忘的10个Linux命令,很实用!

阿里云出品的《深刻浅出k8s》手册下载

用动图展现 10 大 Git 命令

经典!服务端TCP链接的TIME_WAIT过多

Linux萌新和老司机都必备命令查询工具

8 个问题完全搞透 DNS 协议

三张图完全搞懂iptables和netfilter

别再说你不懂Linux内存管理了

强烈安利的几款画图工具

故障排查:K8s中Pod没法正常解析域名

网络排错大讲解~

HTTP/3 原理实战

Linux 下10个帮助你调试的命令

OVS 和 OVS-DPDK 对比

微软出品的最新K8S学习指南3.0下载



喜欢,就给我一个“在看”



10T 技术资源大放送!包括但不限于:云计算、虚拟化、微服务、大数据、网络、Linux、Docker、Kubernetes、Python、Go、C/C++、Shell、PPT 等。在公众号内回复「1024,便可免费获取!!

本文分享自微信公众号 - Linux云计算网络(cloud_dev)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索