2016年4月,Mesosphere开源了他们开发的DC/OS (数据中心操作系统),开源版本和他的企业版本存在一些差距,但是仍然可以从中领会核心DC/OS理念。
DC/OS (Data Center Operating System) 核心思想是让用户可以像使用操作系统一般使用数据中心或者大规模集群。通过对于数据中心的的物理资源进行抽象,使用统一的平台管理起来,用户可以使用简单的命令行或者图形界面方便的运行应用。和现有的PaaS平台主要专注于Web应用的部署不同,DC/OS可以部署各种不同应用,从传统Web 服务器,数据库,到NoSQL服务器,分布式文件系统,以及大数据应用等。DC/OS提供了一套应用包管理服务,使用户可以像部署linux中的rpm/debian包一样在数据中心中部署应用。
类似操作系统,DC/OS 也可以分为内核空间和用户空间。Apache Mesos是DC/OS的内核,主要用来管理数据中心中的各种物理资源,把底层的物理资源调度给各个应用,并且在容器中运行应用的具体任务。用户空间由服务(Services) 和系统组件(Service Components)组成。服务可以认为是一个Marathon或者Hadoop的进程(process),而其中又会运行具体的应用或者任务,比如通过Marathon启动的web 服务器。系统组件的功能包括提供用户认证和授权,服务发现,负载均衡等。
DC/OS可以安装在实体主机,虚拟机和各种云环境中。并具备可定制化的、灵活配置的安装过程。
GUI方式,可以用一种WEB页面的方式,简单的安装DC/OS集群。这种方式是通过Boot节点批量化调用ssh命令,远程安装集群上每个节点内的依赖环境和节点内服务实例。
CLI方式,可以通过较为简单化的命令行方式,在Boot节点上作出cinfig文件配置,并调用安装文件,与GUI放肆好一样,远程安装集群上每个节点内的依赖环境和节点内服务实例。优点是在安装过程中,可以看到控制台上显示的log信息,确保安装过程出现问题后快速定位失败原因。
高级方式,手工步骤灵活的逐个去安装每个节点。
DC/OS 支持的操作系统有CoreOS,CentOS7,以及RHEL7。本文中使用的的是CentOS7.2。
安装准备:
1) 升级boot及所有集群节点CentOS版本
sudo yum upgrade -y
2) 停止并关闭防火墙
$ sudo systemctl stop firewalld && sudo systemctl disable firewalld
3) 安装NTP确保所有节点时间同步
$ yum install -y ntp
4) 配置boot节点免密码访问其它所有节点
$ssh-keygen -t rsa
三次回车以后,默认在 /root/.ssh/下生成2个文件:id_rsa和id_rsa.pub。其中拷贝id_rsa.pub文件到各集群节点并通过cat 追加或改名为同目录结构下的authorized_keys文件。而后在boot节点可以如ssh ip方式访问各节点ip,如果能访问,ssh无密码访问配置正确。而id_rsa便是dc/os安装过程中需要的genconf/ssh_key文件。
5)首先在没有安装docker前确保各节点安装centos适合版本,目前采用centos7.2
$ sudo yum upgrade --assumeyes --tolerant
$ sudo yum update --assumeyes
6)确保内核版本不得低于3.10。
$ uname -r
3.10.0-327.10.1.el7.x86_64
7)确保安装docker前配置到OverlayFS,而后reboot
$ sudo tee /etc/modules-load.d/overlay.conf <<-'EOF'
overlay
EOF
8)配置docker的yum源
$ sudo tee /etc/yum.repos.d/docker.repo <<-'EOF'
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF
9) 配置Docker守护支持OverlayFS
$ sudo mkdir -p /etc/systemd/system/docker.service.d && sudo tee /etc/systemd/system/docker.service.d/override.conf <<- EOF
[Service]
ExecStart=
ExecStart=/usr/bin/docker daemon --storage-driver=overlay -H fd://
EOF
10)安装Docker并使服务有效
$ sudo yum install --assumeyes --tolerant docker-engine
$ sudo systemctl start docker
$ sudo systemctl enable docker
Complete!
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
11)在高级安装,针对bootnode,需要下载nginx容器image,在安装时发布安装web页面
$ sudo docker pull nginx
12)在高级安装,其它集群节点,需要安装以下工具
$ sudo yum install -y tar xz unzip curl ipset
13 ) 针对所有集群节点,需要执行下列命令并重新启动后便做好了DCOS安装准备
$ sudo sed -i s/SELINUX=enforcing/SELINUX=permissive/g /etc/selinux/config &&
sudo groupadd nogroup &&
sudo reboot
有了上述安装前准备,按照GUI、CLI、或者是高级安装,都会很较容易的安装好DC/OS集群环境。