最近被k8s概念撩动,所以准备了解k8s的原理。
在了解原理之前,先对k8s的几个概念进行整理归纳,做到知己知彼。
先放上参考链接 http://www.dockone.io/article/932 (十分钟带你理解Kubernetes核心概念),受益匪浅,十分感谢。
进入正题。
先放上链接中严谨的对kubernetes的描述:Kubernetes(k8s)是自动化容器操作的开源平台,这些操作包括部署,调度和节点集群间扩展。也就是通过集合Docker、Rocket等容器技术为组件,来达到在一个平台上对容器的自动化控制,解放人力的同时提高业务系统强度与稳定性的目的。
链接里总结了k8s的能力:
- 自动化容器的部署和复制
- 随时扩展或收缩容器规模
- 将容器组织成组,并且提供容器间的负载均衡
- 很容易地升级应用程序容器的新版本
- 提供容器弹性,如果容器失效就替换它,等等...
(胡说)如果说docker等容器是手机上的app的话,那么k8s就是提供搭载app的手机。无论是什么环境,ios也好,安卓也好,塞班也罢,只要有需求,k8s都能提供,并且还装好了用户需要的一切app。奢侈地实现“一个手机挂qq,一个手机打电话”的目标(实际上k8s也鼓励用户这么做)
k8s需要搭建在集群之上,k8s集群中的每一个节点(物理机或者虚拟机)将会扮演不同的角色。先放一张图(转载于链接)
上图可以看到如下组件,使用特别的图标表示Service和Label: