最近的项目涉及到了kubernetes,之前没接触过,就来CSDN找文章了解一下。但是各种生涩的术语和词汇真是让人望而生畏,尤其对我这种非计算机科班出身的人。经过两天的搜罗,我查阅了CSDN上各种我能看懂的直白文章,再加上我个人的一点感悟,在这里整理分享一下,希望能帮助到和我一样迷茫的小伙伴。
1,简称解释
kubernetes,简称k8s,8代表k和s之间的8个字母。
2,容器
kubernetes是基于容器技术的,容器技术的实现靠Docker。那什么是容器呢?举个例子吧,我们经常遇到这种情况,程序在自己机器上跑的好好的,结果到了别的机器上就不行了,因为两台机器的环境不一样,别人的机器需要重新配置环境才行。
为了解决这个问题,容器就出现了,说白了,就是连程序带环境一块搬到对方的机器上,这下完美了,环境都给你了,直接就能跑。这个把程序和环境包在一块的东西,就叫容器。
举个更加直观的例子,你去美国参加比赛,因为水土不服导致成绩不好。教练为了让你发挥出在国内时的水平,就费好大劲给你找中式房子,配中国厨子,喝中国水,吃中国菜,尽量在美国给你还原出一个中国的环境。这么折腾,不如直接把你在中国的房子铲了,连厨师带保姆全部空运到美国,这下你就不会不习惯了。你这栋被铲掉的房子,就是你的“容器”。
至于Docker,你可以理解是给你铲房子打包行李的工人。
有人问了,那在服务器上装好多个虚拟机,不就有各种环境了吗?理论上是这样,但是虚拟机占的资源太多了。还是上面那个例子,就你一个人去参赛,总不能把你家小区全铲了空运过去吧,那也太浪费了。就铲你一个人的房子刚刚好。
容器相比于虚拟机,贵在简便低耗。
那我们常见的容器有哪些呢?很简单,微信就是一个容器。每个人的微信在刚下载的时候都是一样的,把所有聊天能用的环境都给了你。而你的聊天记录,你的设置,你下载的图片和文件,就是放在容器里的东西。
3,kubernetes到底是干嘛的
理解了容器,才能理解kubernetes。
那kubernetes到底是干嘛的呢?
说到底,kubernetes是一个大管家。你在服务器上,东一个容器,西一个容器地瞎鸡儿装,总有一天你会懵掉。因为你完全不知道自己有多少个容器,哪个容器负载小,哪个容器负载大。新来的应用要装在哪个容器等等等等。kubernetes就是帮你管理和维护这些容器的。
还是上面那个例子,被铲到美国的房子太多了,乱七八糟的,总得有人统一管理啊,他就负责房子以及运动员的日常管理等等,这就相当于一个项目的运维人员。
但是,他发现自己手动管理这些事情太费劲了,于是开发了一个“运动员在美住宿管理平台”,这就相当于kubernetes,一个自动化的运维平台。
在这里引用一下一张插图,这就很直观地体现出了kubernetes和容器之间的关系。
4,kubernetes集群架构
Master node:集群控制节点,整个架构的老大。他有四个小弟,分别是API server、controller manager、scheduler和etcd。
–API server,老大手下的秘书,所有的命令(例如增删改查)都要通过他来接收和传达,包括其余三个小弟的工作也要通过它。
–controller manager,老大手下的总经理,所有的资源对象都由他控制。
–scheduler,老大手下的调度室主任,负责调度所有资源。
–etcd,老大的仓库管理员,负责管理整个集群的数据。