当前位置:首页 > 生活

DC/OS 的安装与部署

2016年4月,Mesosphere开源了他们开发的DC/OS (数据中心操作系统),引起了广泛的关注,虽然开源版本和他们的企业版本应该还有一些差距,但是我们仍然可以从中学习其DC/OS的理念。本文介绍了DC/OS的一些基本概念,以及如何在一个小型集群中搭建一套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的安装有多种方式,可以直接在AWS或者Azure中选定安装模版来安装;也可以在自己的本地环境通过Vagrant安装,或者下载DC/OS的installer,在本地集群中安装。本文主要介绍的是第三种安装方式。

系统和依赖软件要求

对于机器CPU和内存没有硬性要求,官方推荐的集群规模是主节点4 core + 32 GB,所有计算节点2 core + 16 GB。如果只是将DC/OS运行起来,当然不需要这么多资源,但是如果还是想要在DC/OS上运行一些应用的话,最好保证每台机子上都有足够多的CPU和内存。另外还需要一台主机做为bootstrap node来运行安装程序安装整个集群,这类似于使用chef部署应用中的chef server。本文使用的机器配置如下。

DC/OS 支持的操作系统有CoreOS,CentOS7,以及RHEL7。本文中使用的的是CentOS7。在安装DC/OS前要确保停止firewalld服务并且安装一些需要的依赖包。

$ sudo yum install –y unzip ipset

在master和agent节点上设置selinux并且创建nogroup

$ sudo sed –i s/SELINUX=enforcing/SELINUX=permissive/g /etc/selinux/config $ sudo groupadd nogroup

在所有节点上都需要安装docker,版本要求大于1.7。docker安装可以通过以下步骤:

$ sudo tee /etc <<-'EOF' [dockerrepo] name=Docker Repository baseurl=$releasever/ enabled=1 gpgcheck=1 gpgkey= EOF $ sudo yum install docker-engine

DC/OS 对于docker使用的存储驱动有特殊要求,如果在内核中已经加载了overlayfs,可以使用overlayfs做为docker的存储驱动,打开 /etc/system/system 并修改,然后重启docker。

ExecStart=/usr/bin/docker daemon —storage-driver=overlay -H fd://

也可以使用devicemapper做为存储驱动,那就需要通过lvm创建thinpool来完成。具体命令如下:

// 创建volume $ dd if=/dev/zero of=/root/docker-volumes bs=1 count=0 seek=2G $ losetup /dev/loop2 /root/docker-volumes // 创建PV和VG $ pvcreate /dev/loop2 $ vgcreate docker /dev/loop2 // 创建thin pool $ lvcreate -n pool0 -L 1.5G docker $ lvcreate -n pool0meta -L 0.1G docker $ lvconvert --type thin-pool --poolmetadata docker/pool0meta docker/pool0 // 配置override.conf ExecStart=/usr/bin/docker daemon -H fd://--storage-opt dm.thinpooldev=/dev/mapper/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.《DC/OS 的安装与部署》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《DC/OS 的安装与部署》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/shehui/3267301.html

上一篇

关于小低音炮是什么原因我想说什么叫低音炮

关于小低音炮是什么原因我想说什么叫低音炮

小低音炮是什么原因相关介绍,低音炮是大家的一个简称,严格意义上讲应该是:重低音音箱。就人耳可闻的音频分析而言,由重低音、低音、低中音、中音、中高音、高音、超高音等组成,有强化音节节奏的效果。 分类: 低音炮大体上可以分为有源低音

美的冰箱e2是什么故障代码看这里!海尔冰箱故障码E1 E2 E3 E4 E5 E6 E7 E8 H L故障愿因

美的冰箱e2是什么故障代码相关介绍,E1 冷藏室传感器短路或断路 E2 微冻室传感器短路或断路 E3 冷冻室传感器短路或断路 E4 环温传感器短路或断路 E5 E2PROM出现读写故障 E6 超温报警,冷冻温度持续过高 E7 通讯故障

美的冰箱e2是什么故障代码,干货看这篇!修冰箱老师傅常用的方法与技巧

美的冰箱e2是什么故障代码相关介绍,一、处理冰箱噪声 A级标准(≤42DB)以内为正常值。 1、电冰箱放置不够水平,可调整冰箱前面的两个可调脚。 2、压缩机冷凝器等部件的固定螺钉或螺母松动及接水盘松动等。 3、管路震动,由于管路悬空过长

全解空调加氟的作用、费用、依据、工具、步骤及方法

空调加压力是什么意思相关介绍,如果家里的空调制冷效果越来越差,很多人的第一反应就是空调该加氟了。其实,这是一个错误的认识,究竟空调什么时候加氟?空调怎么加氟?空调加氟多少钱? 空调加氟的作用 氟立昂是空调制冷系统中传递热量的媒介。

关于空调e2是什么故障代码我想说格力空调故障E2防冶结保护处理方法和解决办法

空调e2是什么故障代码相关介绍,1. 故障概述 室内机显示E2。保护时,制冷:压缩机停,内风机运行。防冶结保 护主要是保护蒸发器正常换热,防止影响压缩机可靠性、结霜影响制况 效果。 2. 可能故障点 • 室内机回风不良、蒸发器戒过滤

【电视红灯为什么不亮了怎么回事】电视不通电了,开不了怎么回事?是“它们”在捣鬼

电视红灯为什么不亮了怎么回事相关介绍,几乎所有的家庭都有电视机,还有空调、洗衣机、电脑等其他先进设备。不得不承认科技的发达。但是电视机因为使用频率太高,故障也是频频出现的。电视不通电了,开不了是怎么回事呢?一起了解一下。 (此处已添加小程