(1)kubernetes是什么?
一个分布式的资源管理系统,管理的对象是容器化之后的应用,支持资源的自动调度、scale up/down;
据说是从google出来的,与borg有关系;
用户侧的大致使用体感是,提供一个容器的image,相关的业务代码和逻辑都打包在该image中,kubernetes根据该image对资源的需求,选择合适的节点运行该image,并通过一个proxy服务将该应用的服务端口暴露出来。
(2)有哪些类似的系统?
类似的系统有:mesos、openstack、swarm。
与openstack的区别在于,openstack主要用来对VM(如kvm)进行管理,而且openstack更为负载,侧重于底层资源层的管理和调度,更像是一个iaas层的系统;而kubernetes更上层一些,屏蔽了底层的系统,暴露给用户的只是一个个容器
网上有一个相关的对比:http://www.dockone.io/article/1145
(3)kubernetes采用什么语言开发的?
据说是GO语言,这一点和docker一样
(4)大致结构
分为master和node两种角色;
master负责管理整个集群,包罗集群资源的调度、应用的状态监控管理、应用资源的伸缩、滚动升级等
node是具体的工作节点,集群之上的容器都是跑在node上边的;每个node上都有一个agent,叫做Kubelet,负责管理当前node一级与master进行通信,除了agent之外,node上还运行有容器相关的服务,如docker
(5)怎么快速的部署一个集群玩玩
为了方便部署,官方提供了一个叫做minikube的工具,可以上网嗖嗖,类似于之前的docker-machine,方便在本地起一个测试用的小集群。而且横跨各种平台:mac、linux、windows。
(6)怎么学习?
对着官方的文档,
https://kubernetes.io/docs/tutorials/