DC/OS专题之安装部署篇

DC/OS的三种安装方式


  • GUI方式
  • CLI命令行方式
  • 高级方式

本文中使用CLI命令行方式进行安装,同时也会附带介绍一下另外两种。

事前准备 :硬件

DC/OS有如下4种方式的安装:


  • Local
  • Cloud
  • Custom Cloud
  • On-Premises
其中Local是与Vagrant进行结合,官方称其最少需要16G的内存。Cloud和Custom Cloud都是安装到AWS等云平台上。On-Premises的方式可以做自己的DC/OS本地部署。本文采用此种方式进行部署。此种方式目前支持两种Linux的操作系统,CentOS和CoreOS,本文采用CentOS7.2。所需node数量官方称至少4台,每台最低4G/2CPU的配置。本文仅仅是学习和研究的目的,使用3台机器,每台1G/1CPU的配置进行安装。

事前准备

安装CentOS, 按照以下标准准备3台CentOS
内核:>= 3.10
overlayfs启用
docker使用overlayfs方式安装
更新到最新的package
关闭selinux和防火墙
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

3台机器的主机名(可以自行自由改变)

host131: 192.168.32.131: BootStrap主机,用于安装
host132: 192.168.32.132: Master
host133: 192.168.32.133: Agent
  • 1
  • 2
  • 3

下载DC/OS安装文件

从下面的地址下载的DC/OS的安装文件,我使用的是1.7.0的EarlyAccess版本。

https://downloads.dcos.io/dcos/EarlyAccess/dcos_generate_config.sh  
  • 1

安装前准备

安装目录下需要提前准备的文件

preparement

安装准备:下载dcos_generate_config.sh

curl -O https://downloads.dcos.io/dcos/EarlyAccess/dcos_generate_config.sh
  • 1

安装准备:准备config.yaml

mkdir genconf
cd genconf
生成DC/OS所需要的config.yaml文件
以下为本次安装的例子,可供参照
---
agent_list:
- 192.168.32.133
# Use this bootstrap_url value unless you have moved the DC/OS installer assets.
bootstrap_url: http://192.168.32.131:8848
cluster_name: 'DCOS'
master_discovery: static
master_list:
- 192.168.32.132
resolvers:
- 8.8.4.4
- 8.8.8.8
ssh_port: 22
ssh_user: root
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

注意点:
以下是config.yaml中必须有的内容
agent_list
master_list
ssh_user
bootstrap_url: http://192.168.32.131:8848,这种写法是为了master和agent能够访问到bootstrap节点
另外,除了Vagrant的Local安装之外,DC/OS运行起来的最小Node,3台已经是最少了,要想更少可能会碰到一些麻烦。

安装准备:ip-detect

ip-detect文件为了在安装的过程中能确认到正确唯一的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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

注意点:
在虚拟机中安装 或者机器装有多张网卡可能会导致上述官方提供的简单脚本无法直接使用。如果需要更改,也是eth0的地方改成你自己。 确认方法可以用如下简单的方法执行一下,如果能够取得到正确的IP即可。
ip

安装准备:ssh_key

生成安装用户的ssh key,为方便,本文使用root用户
ssh-keygen

安装准备:打通ssh通路

使用ssh-copy-id打通ssh通路,安装过程中需要打通的是bootstrap节点到master和agent的ssh通路。具体使用命令如下:

ssh-copy-id -i 192.168.32.132
ssh-copy-id -i 192.168.32.133
  • 1
  • 2

ssh

如果你对ssh的设定很熟悉,完全可以不必使用ssh-copy-id,只需要注意authorized_keys和known_hosts设定好ssh命令行能无需密码执行即可。DC/OS的安装的时候会缺省的到genconf下面去寻找叫ssh_key的文件,所以需要把该文件提前准备好。不然会提示:ssh_key_path: could not find ssh private key: /genconf/ssh_key的错误。需要注意的是,使用生成的rsa的秘钥id_rsa作为安装时需要使用的key。
key
key的权限是600,ssh通路设定时候,权限加大比如设定成666很多时候都回导致不通,这是因为ssh在设计的目的是为了将权限最小化的思路有关。

Step 1

安装:生成定制安装程序

执行命令

dcos_generate_config.sh --genconf
  • 1

注意:部署到实际环境中希望对用户动作做进一步限制使用其他用户是,碰到权限问题时候加上sudo实施。

执行结果例与分析
[root@host131 dcos]# bash dcos_generate_config.sh --genconf
Extracting image from this script and loading into docker daemon, this step can take a few minutes
dcos-genconf.14509fe1e7899f4395-3a2b7e03c45cd615da.tar
Running mesosphere/dcos-genconf docker with BUILD_DIR set to /root/dcos/genconf
  • 1
  • 2
  • 3
  • 4
  • 5

分析:此处会稍微花一点时间,同时Docker需要保证是可用的状态,因为安装程序在此处会把mesosphere/dcos-genconf的镜像load到docker中
loadimage

====> EXECUTING CONFIGURATION GENERATIONG
省略
Package filename: packages/dcos-config/dcos-config–setup_e51eb828513de2494ec4c1d3ecb8c100f805a098.tar.xz
Generating Bash configuration files for DC/OS
Package filename: packages/dcos-metadata/dcos-metadata–setup_e51eb828513de2494ec4c1d3ecb8c100f805a098.tar.xz
[root@host131 dcos]#
“`
安装之后的结构
after

Step 2

预安装所需功能

执行命令:
bash dcos_generate_config.sh –install-prereqs
step2

基本上ssh通路通的话,此处不会有太多问题。不过此种方式官方称只适合CentOS和RHEL

Step 3

预装检查

执行命令:
bash dcos_generate_config.sh –preflight

此处出现最多的问题在于多次安装,如果已经安装可能会导致在预装检查失败。这种情况可以使用如下命令进行卸载。依然有问题的话手动删除所有节点安装过程中安装的/opt/mesos和/var/lib/zookeeper即可。
bash dcos_generate_config.sh –uninstall

step 3

另外,端口的占用等等也有可能会产生问题,因为是命令行安装,可以通过修改步骤1种自动生成出来的genconf/serve/dcos_install.sh来解决,因为在此处所有的port号都hardcoding出来了,可以自行修改以避免冲突,后续的DC/OS在此处一定会有一些更加人性化的改善不至于让它的用户去自行修改安装程序。

Step 4

安装

执行命令:
bash dcos_generate_config.sh –deploy

这里写图片描述

注意事项:
请务必确保如下两点:
- firewalld必须关闭
- nginx必须在docker中运行起来

nginx运行命令:

docker run -d -p 8848:80 -v $PWD/genconf/serve:/usr/share/nginx/html:ro nginx
请到genconf的父目录去执行该命令,否则传给nginx的Image的-v不正确

使用docker ps确认

这里写图片描述
blob.png

Step 5

确认服务运行状态

执行命令:
bash dcos_generate_config.sh –postflight

这里写图片描述

Step 4的安装没有问题的话,此处基本不会有问题。

Step 6

确认Zookeeper

连接URL:
http://:8181/exhibitor/v1/ui/index.html
这里写图片描述

Step 7

确认DC/OS图形界面

连接URL:
http:///

此处容易出现的问题点:DC/OS图形界面无法启动起来
DC/OS采用Systemd来部署他自己的应用,可以使用如下命令确认和排查问题。
- journalctl -u dcos-mesos-master -b
- systemctl list-unit-files |grep dcos
- systemctl status 服务名称(结合journalctl查的内容确认)
-
这里写图片描述

Google/Github/Microsoft的任何方式的登陆通过即可,赤裸的植入式广告.
然后就可以看到DC/OS的界面了

Dashboard

这里写图片描述

Service

这里写图片描述

Nodes

你的DataCenter现在还空空如也
blob.png

System

这里写图片描述
当前有24个Components,都是健康的,unhealthy的是0个,看起来一切正常的样子

通过Organization的界面添加用户

这里写图片描述

管理Repositories

这里写图片描述

总结

虽然整体来说安装稍微繁琐,并且也有一些小问题,比如port一旦被占用的话就只好修改安装文件,甚至图形版即使修改也无法继续,但是由于仍然是Earlyaccess版本,所以还是非常期待其正式版本的发布.

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://www.cnblogs.com/captainbed

猜你喜欢

转载自www.cnblogs.com/firsttry/p/10243816.html
今日推荐