因为Docker本身没有提供集群管理能力,对于docker集群一台台的登陆操作不太现实,因此需要引进容器集群的管理工具,主流的有mesosphere的marathon、谷歌的Kubernetes、docker社区的swarm,目前成熟度最高的是Kubernetes。Kubernetes是Google开源的容器集群管理系统,其提供应用部署、维护、 扩展机制等功能,利用Kubernetes能方便地管理跨机器运行容器化的应用,其主要功能如下:
- 使用Docker对应用程序包装(package)、实例化(instantiate)、运行(run)。
- 以集群的方式运行、管理跨机器的容器。
- 解决Docker跨机器容器之间的通讯问题。
- Kubernetes的自我修复机制使得容器集群总是运行在用户期望的状态。
Mesos是Apache下的一个开源项目,最初起源加州大学伯克利分校AMPLab。通过mesos可以将整个数据中心的物理资源CPU、内存、I/O等整合在一个虚拟资源池中,然后根据其上应用的需求动态的调整资源分配。就像操作系统将PC的处理器和RAM放入资源池,使其可以为不同的进程分配和释放资源,所以在数据中心操作系统这个概念下,mesos是作为整个集群的分布式内核。mesos目前除了可以支持微服务应用外,还支持多种大数据分布式应用,包括Hadoop、Kafaka、Spark等,因此我们把mesos作为我们的统一资源调度层。Kubernetes作为一个框架集成到mesos中,通过mesos来获得底层物理资源,我们使用Kubernetes来管理容器集群中的微服务应用。下面我会介绍在一个3节点的集群上mesos如何安装部署,以及Kubernetes如何在mesos中做集成,省略起见下面kubernetes会以ku8相称。在部署前我们需要先在服务器上安装dokcer,具体安装文档请参考我的另一篇分享。
一.mesos安装
1.1环境准备
- 操作系统版本需要centos7.2
- docker版本需要1.9以上
- 安装前关闭selinux和iptables/firewalld
1.2 下载安装文件
安装mesos yum源,这个源是rpm包格式,直接安装就行了不用配置。
rpm -Uvh http://repos.mesosphere.com/el/7/noarch/RPMS/mesosphere-el-repo-7-1.noarch.rpm
安装yum下载工具
yum install -y yum-utils
创建安装文件夹
mkdir -p /opt/mesos-download
cd /opt/mesos-download
mkdir mesos marathon zookeeper
依次执行如下命令,下载安装包
cd /opt/mesos-download/mesos
yumdownloader --resolve mesos
cd /opt/mesos-download/marathon
yumdownloader --resolve marathon
cd /opt/mesos-download/zookeeper
yumdownloader --resolve mesosphere-zookeeper
最后将下载好的安装文件拷贝到集群另外两台节点上
scp -r /opt/mesos-download/* root@xxxx:/opt/mesos-download/
1.3 配置主机名列表
注意!这一步非常关键,集群中的3个节点都需要配置,我们当初就是slave节点没有配置hosts文件导致找不到master节点,花了好长时间才找到问题。
hostnamectl --static set-hostname master
用这种方式配置不用重新启动服务器,退出客户端再进去就能看到更改。hosts文件按如下编辑:
1.4 安装zookeeper
cd /opt/mesos-download/zookeeper
sudo yum localinstall -y *.rpm
将master节点上的/var/lib/zookeeper/myid设置为1,如果安装多个master节点依次设置为2、3。将zookeeper地址信息配置到/etc/zookeeper/conf/zoo.cfg文件中,如下:
启动zookeeper
sudo systemctl enable zookeeper
sudo systemctl start zookeeper
看一下zookeeper进程能否正常启动,zookeeper启动不起来往往是因为网络墙没有关闭。
1.5 安装Master
依次进入各个文件