2016年4月,Mesosphere公开了他们开发的DC/OS(数据中心操作系统),引起了广泛关注。开源版本和他们的企业版本之间应该有一些差异,但我们仍然可以学习DC/OS概念。本文介绍了DC/OS的一些基本概念,以及如何在小型群集上构建DC/OS系统。
DC/OS 简介
数据中心操作系统(DC/OS)的核心思想是允许用户像操作系统一样使用数据中心或大型群集。通过抽象数据中心的物理资源,集成平台管理使用户能够使用简单的命令行或图形界面轻松运行应用程序。与传统的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安装可以通过多种方式直接从AWS或Azure中选择安装模板进行安装。您还可以在自己的本地环境中通过Vagrant安装,或下载DC/OS的installer并在本地群集上安装。本文主要讨论第三种安装方法。
系统和依赖软件要求
系统对CPU和内存没有硬性要求。正式推荐的群集大小为:主节点4核32GB,所有计算节点2核16GB。如果只运行DC/OS,则不需要这么多资源,但如果要在DC/OS上运行某些应用程序,最好确保每台机器有足够的CPU和内存。此外,要通过运行与在chef部署应用程序中使用chef server类似的安装程序来安装整个群集,需要使用bootstrap node安装主机。本文档中使用的机器配置如下:
DC/OS支持的操作系统包括CoreOS、CentOS7和RHEL7。本文使用CentOS7。安装DC/OS之前,必须停止firewalld服务并安装必要的从属软件包。
$ sudo yum installyunzip agent在主节点和代理节点上设置selinux并创建nogroup
$ sudo sedI s/selinux=enforcing/selinux=permissive/g/etc/selinux/config
$ sudo groupadd nogroup要求在所有节点上安装docker,版本要求大于1.7。Docker安装可以通过以下步骤完成:
$ sudotee/etc-' eof '[docker repo]name=docker repository base URL=$ releasever/enabled=1 gpg cheed
$ sudo yum install docker-engine DC/OS对docker使用的存储驱动程序有特殊要求。如果overlayfs已加载到内核中,则可以使用overlayfs作为docker的存储驱动程序来打开/etc/sys。
exec start=/usr/bin/docker daemon-storage-driver=overlay-h FD 3360//
也可以使用Devicemapper作为存储驱动程序。必须通过LVM创建thinpool。具体命令如下:
//创建卷
$ DD if=/dev/zer oof=/root/docker-volumes bs=1 count=0 seek=2g
$ losetup/dev/loop 2/root/docker-volumes
//创建PV和VG
$ pvcreate /dev/loop2
$ vgcreate docker /dev/loop2
//创建精简池
$ lvcreate -n pool0 -L 1.5G docker
$ LV create-n pool 0 meta-l 0.1g docker
$ LV convert-type thin-pool-pool metadata docker/pool 0 meta docker/pool 0
//override.conf配置
exec start=/usr/bin/docker daemon-h FD ://-storage-opt DM . thinpool dev=/dev/mappev
docker-pool0最后重启docker。
安装DC/OS软件包
首先在安装节点上下载并运行DC/OS包(大概500M)
$ curl -O
$ sudo bash dco
这个脚本会下载并运行一个docker容器,之后在安装节点上会创建一个/opt/mesosphere/ 文件夹。
也可以使用GUI来进行安装:
$ sudo bash dco --web
然后访问http://<安装节点IP>:9000。由于使用GUI方式安装无法看安装过程中的日志和错误信息,不方便排查安装中的具体问题,所以本文中使用的客户端安装方式。
安装过程中需要创建一些配置文件,首先在/opt/mesosphere下创建一个genconf文件夹。在genconf文件夹下创建三个配置文件。
1.genconf/ip-detect:这个文件是为了在每个节点获取自己的IP地址,之后DC/OS会将脚本的输出广播给所有集群中的其他节点。本文使用了官方网站上的脚本获取本机eth0上的IP地址。
#!/usr/bin/env bash
set -o nounset -o errexit
export PATH=/usr/sbin:/usr/bin:$PATH
echo $(ip addr show eth0 | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | head -1)
2.创建集群配置文件gencon: 在这个文件中需要指定master和slave的IP地址,dns服务器地址,以及安装节点登陆其他节点的ssh用户名。
---
agent_list:
- <agent-private-ip-1>
- <agent-private-ip-2>
# Use this bootstrap_url value unless you have moved the DC/OS installer assets.
bootstrap_url: file:///opt/dcos_install_tmp
cluster_name: test
master_discovery: static
master_list:
- <master-private-ip-1>
resolvers:
- 8.8.4.4
- 8.8.8.8
ssh_port: 22
ssh_user: <username>
3.配置安装节点对集群所有节点的无密码访问,并把ssh key拷贝到genconf/ssh_key。
接下来就可以运行脚本来进行安装了:
// 创建所有配置文件
$ bash dco –genconf
// 安装依赖包
$ bash dco -install-prereqs
// 检查安装前是否所有依赖都已经安装并配置正确
$ bash dco -preflight
// 安装集群
$ bash dco -deploy
// 检查是否所有服务都已经启动
$ bash dco --postflight
如果在运行脚本的过程中没有出现错误的话,一个小的DC/OS集群已经安装成功了!现在就可以通过 http:// 来打开用户界面了。需要注意的是DC/OS采用了OAUTH方式认证用户并默认第一个登陆的用户是管理员。使用你的github用户来登陆自己的DC/OS集群吧。
作者简介:邱见,新加坡国立大学电子与信息工程专业博士,供职于IBM多年,主要从事云计算领域相关的工作,一直关注OpenStack, Mesos等开源社区。
1.《【安装中FS跟DC是什么】DC/OS安装和部署》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《【安装中FS跟DC是什么】DC/OS安装和部署》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/why/2931220.html