如果想要在Docker上部署大型应用,首先就是要解决网络的问题,还有一系列复杂的问题,包括集群管理,负载均衡等。此时就需要容器编排部署工具来解决这些问题。
一、容器编排部署工具
容器管理工具可以完成容器的基础管理,但是容器的应用并不是只能进行简单应用部署的,可以使用容器完成企业中更加复杂的应用部署,当需要对多应用的系统进行部署时,就需要更加复杂的工具来完成对容器运行应用的编排,这就是容器编排部署工具。
容器编排部署工具有:
(1)docker三剑客:docker machine、docker compose、docker swarm
(2)mesos+marathon
(3)kubernetes
二、Kubernetes介绍
kubernetes简称为k8s,8是因为k和s之间有8个字母,是谷歌内部的Borg系统的开源版本,也是目前主流的容器编排部署工具。
k8s是一个轻便的和可扩展的开源平台,用于管理多个主机上的容器化的应用,让部署容器化的应用简单并且高效,提供了应用部署、规划、更新、维护的一种机制,能进行应用的自动化部署及扩缩容。
如上图所示,k8s集群是Master和Worker的模式。
Master节点上有kube-apiserver、kube-controller-mansger、kube-scheduler以及etcd进程,分别用于接收客户端请求并控制集群、资源对象的控制中心并监控容器健康、资源调度、资源对象数据存储等功能。
Worker节点上有kubelet、kube-proxy、docker,分别用于管理Pod及Pod容器并定时向Master汇报节点资源信息、实现Service的透明代理及负载均衡、运行容器。
三、k8s主要功能介绍
(1)自动装箱
基于容器对应用运行环境的资源配置要求自动部署应用容器
(2)自我修复
当容器失败时,会对容器进行重启
当所部署的Node节点宕机时,会对容器进行重新部署和重新调度
当容器未通过监控检查时,会关闭此容器,直到容器正常运行时,才会对外提供服务。
(3)水平扩展
通过简单的命令、用户UI界面或基于CPU等资源使用情况,对应用容器进行扩容或缩容
(4)服务发现
不需要使用额外的服务发现机制&#