如何在OpenStack平台部署DC/OS?请求提供详细分步部署指南
如何在OpenStack上部署DC/OS?
我来给你详细拆解在OpenStack上部署DC/OS的每一步,亲测可行,跟着走就行~
一、先搞定前置准备
在动手之前,得确保你有这些东西:
- 可用的OpenStack环境:至少得有Keystone(认证)、Nova(计算)、Neutron(网络)、Cinder(存储)这些核心组件正常运行。建议准备至少3台节点:1个Master节点,2个Private Agent节点(用来跑任务),如果需要对外暴露服务可以再加1个Public Agent节点。每个节点配置至少4核CPU、8G内存、40G存储,并且所有节点能访问外网(用来拉取DC/OS的安装包和镜像)。
- 本地机器配置:装好
python-openstackclient(用来操作OpenStack)和terraform(DC/OS官方推荐的自动化部署工具),版本尽量用最新稳定版。 - DC/OS License(可选):如果用Enterprise版需要准备,开源社区版不需要。
二、配置OpenStack认证信息
首先在本地终端里设置OpenStack的环境变量,这样Terraform和OpenStack客户端才能正常连接你的环境:
export OS_AUTH_URL=https://你的OpenStack认证地址:5000/v3 export OS_PROJECT_ID=你的项目ID export OS_PROJECT_NAME="你的项目名称" export OS_USER_DOMAIN_NAME="Default" export OS_USERNAME="你的用户名" export OS_PASSWORD="你的密码" export OS_REGION_NAME="你的区域名称" export OS_INTERFACE=public export OS_IDENTITY_API_VERSION=3
设置完后,跑个命令验证一下:
openstack server list
如果能列出你OpenStack里的实例,说明认证没问题。
三、准备Terraform配置文件
DC/OS官方提供了Terraform的OpenStack模块,我们直接基于它来写配置:
- 先创建一个部署目录,比如
dcos-openstack-deploy,然后在里面创建main.tf文件,内容如下:
module "dcos" { source = "dcos-terraform/dcos/openstack" version = "0.1.0" # 建议用最新的稳定版本,可去Terraform Registry查 cluster_name = "my-dcos-cluster" # 自定义你的集群名称 ssh_public_key_file = "~/.ssh/id_rsa.pub" # 本地的SSH公钥路径,用来登录节点 admin_ips = ["你的本地IP/32"] # 允许这个IP访问DC/OS的UI和API # 节点数量配置 num_masters = 1 num_private_agents = 2 num_public_agents = 1 # OpenStack相关配置 openstack_auth_url = var.openstack_auth_url openstack_project_id = var.openstack_project_id openstack_username = var.openstack_username openstack_password = var.openstack_password openstack_region = var.openstack_region openstack_flavor_master = "m1.large" # 对应你OpenStack里的实例规格 openstack_flavor_agent = "m1.medium" openstack_image_name = "ubuntu-20.04-server-cloudimg-amd64" # 确保这个镜像在你的OpenStack中存在,CentOS7也兼容 openstack_external_network = "public" # 你的OpenStack外部网络名称 } # 部署完成后输出关键信息 output "dcos_ui_url" { value = module.dcos.dcos_ui_url } output "master_ips" { value = module.dcos.master_ips }
- 接着创建
variables.tf文件,定义需要的变量:
variable "openstack_auth_url" { type = string description = "OpenStack认证地址" } variable "openstack_project_id" { type = string description = "OpenStack项目ID" } variable "openstack_username" { type = string description = "OpenStack用户名" } variable "openstack_password" { type = string description = "OpenStack密码" } variable "openstack_region" { type = string description = "OpenStack区域" }
- 最后创建
terraform.tfvars文件,填入你的实际配置值:
openstack_auth_url = "https://你的认证地址:5000/v3" openstack_project_id = "你的项目ID" openstack_username = "你的用户名" openstack_password = "你的密码" openstack_region = "你的区域"
四、开始部署DC/OS集群
配置都弄好后,就可以启动部署了:
- 初始化Terraform,下载需要的模块和依赖:
terraform init
这一步会自动下载DC/OS的Terraform模块,耐心等它完成。
- 先预览部署计划,检查资源配置是否符合预期:
terraform plan
仔细看输出里的实例数量、网络、存储等信息,确认没问题再继续。
- 正式开始部署:
terraform apply
终端会提示你确认,输入yes回车就开始部署了,整个过程大概10-15分钟,取决于你的OpenStack环境性能。
部署完成后,Terraform会输出DC/OS UI的访问地址和Master节点的IP,比如http://192.168.1.100/。
五、验证集群是否正常运行
部署完别急着用,先验证一下:
- 访问DC/OS UI:用浏览器打开输出的UI地址,第一次登录用默认用户名
admin,密码可以通过SSH登录Master节点查看:
# 如果是Ubuntu镜像,登录用户是ubuntu;如果是CoreOS,用户是core ssh ubuntu@你的Master节点IP cat /var/lib/dcos/dcos-oauth/auth-token-secret
把输出的字符串作为密码输入,就能进入UI了,查看左侧的Nodes页面,所有节点都应该显示Healthy状态。
- 用DC/OS CLI验证:先安装DC/OS CLI,然后执行以下命令:
# 绑定集群 dcos cluster setup 你的Master节点IP # 列出所有节点 dcos node list
如果能正常列出所有Master、Agent节点,说明集群运行正常。
六、常见问题排查
- 如果部署失败,先看Terraform的错误日志,或者登录节点查看
/var/log/dcos/目录下的安装日志,定位问题。 - 如果节点无法联网,检查OpenStack的安全组是否开放了必要端口:80/443(UI和API)、22(SSH)、61001(节点间通信)、5050(Mesos)等。
- 如果提示镜像找不到,确认你在Terraform配置里填的镜像名称在OpenStack的
glance image list里存在,或者换一个兼容的Linux镜像(比如CentOS 7、Ubuntu 18.04都可以)。
内容的提问来源于stack exchange,提问作者Jeff
相关产品推荐
相关产品推荐

