分享

求助:搭建multi-region的openstack环境

openmind 发表于 2015-5-25 15:28:51 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 17 50886
大家好,我尝试着搭建一个multi-region的openstack集群,但是一直不成功,请大家帮我看看。

我有两台主机,每台都安装了独立的openstack环境,系统默认的region是regionOne,我想在一台机器A上把另一台机器B加成regionTwo。在网上查资料是讲多个region之间公用keystone和horizon,需要增加endpoint。我现在机器A上增加了机器B的endpoint,现在在机器B的页面上有下拉框可以选择某个region,但是点击其他都会显示“未授权”,这应该是keystone没有认证,我又修改了机器B上的keystone,但是还是不行。

有没有大神搭建过多region的环境的,求助啊! 我的qq:1191809906, 感激不尽

已有(17)人评论

跳转到指定楼层
langke93 发表于 2015-5-25 16:25:45


楼主如果按照官网搭建应该见到过下面内容:
OpenStack uses three API endpoint variants for each service: admin, internal, and public. The admin API endpoint allows modifying users and tenants by default, while the public and internal APIs do not. In a production environment, the variants might reside on separate networks that service different types of users for security reasons. For instance, the public API network might be reachable from outside the cloud for management tools, the admin API network might be protected, while the internal API network is connected to each host. Also, OpenStack supports multiple regions for scalability. For simplicity, this guide uses the management network for all endpoint variations and the default RegionOne region.

Create the Identity service API endpoint:


[mw_shl_code=bash,true]openstack endpoint create \
  --publicurl http://controller:5000/v2.0 \
  --internalurl http://controller:5000/v2.0 \
  --adminurl http://controller:35357/v2.0 \
  --region RegionOne \
  identity[/mw_shl_code]


楼主是说的两个独立的openstack环境???
如果说一个openstack环境,然后创建多个RegionOne是没有问题的,因为他们是同一个数据库。


但是如果是两个独立的openstack,他们之间是没有任何关联的,因为是两个独立的数据库。如果做过开发的话,应该就明了了





回复

使用道具 举报

openmind 发表于 2015-5-25 16:31:17
langke93 发表于 2015-5-25 16:25
楼主如果按照官网搭建应该见到过下面内容:
OpenStack uses three API endpoint variants for each se ...

他们并不完全是独立的,共用keystone,其他部分是独立的。

回复

使用道具 举报

langke93 发表于 2015-5-25 16:36:05
openmind 发表于 2015-5-25 16:31
他们并不完全是独立的,共用keystone,其他部分是独立的。

既然是共用的那就不分AB
按照上面操作,划分region即可
回复

使用道具 举报

openmind 发表于 2015-5-25 16:41:11
langke93 发表于 2015-5-25 16:36
既然是共用的那就不分AB
按照上面操作,划分region即可

现在的问题是,理论上他们是共用keystone的,但我不知道怎么让他们共用keystone。那些配置文件里面的5000和35357端口的url是不是都要修改呢?
回复

使用道具 举报

langke93 发表于 2015-5-25 16:49:08
openmind 发表于 2015-5-25 16:41
现在的问题是,理论上他们是共用keystone的,但我不知道怎么让他们共用keystone。那些配置文件里面的5000 ...

公用这个简单了
他们的配置文件相同,然后你的两个openstack注册都指向同一个keystone即可。

并不是简单的修改url,而是他们公用相同的访问keystone url.

而且是每个组件都需要修改;举个例子
A机器和B机器安装glance

A机器安装glance
比如你安装glance,那么就需要在
/etc/glance/glance-api.conf
/etc/glance/glance-registry.conf
两个文件中加入下面内容:

[keystone_authtoken]
...
auth_uri = http://controller:5000/v2.0
identity_uri = http://controller:35357
admin_tenant_name = service
admin_user = glance
admin_password = GLANCE_PASS


B机器安装glance
上面部分完全相同,其它根据自己的情况来配置





回复

使用道具 举报

openmind 发表于 2015-5-25 17:20:57
langke93 发表于 2015-5-25 16:49
公用这个简单了
他们的配置文件相同,然后你的两个openstack注册都指向同一个keystone即可。

之前这样试过了,但是会显示“未认证”, keystone的log显示  Invalid token
回复

使用道具 举报

langke93 发表于 2015-5-25 17:54:41
openmind 发表于 2015-5-25 17:20
之前这样试过了,但是会显示“未认证”, keystone的log显示  Invalid token

说明使用的不是同一个token,把token获取之后,复制到另一个机器中
回复

使用道具 举报

openmind 发表于 2015-5-25 21:04:09
解决了,谢谢@ langke93

要将B机器上所有的验证url都改成A的验证url,另外注意将B中各种配置文件中的token改成A中的admin_token。还有注意两台机器的时间一定要接近,不然还是会出现未授权的错误。

另外,cinder服务的配置文件中没有验证url的字段,需要自己加上去
回复

使用道具 举报

langke93 发表于 2015-5-26 11:26:59
openmind 发表于 2015-5-25 21:04
解决了,谢谢@ langke93

要将B机器上所有的验证url都改成A的验证url,另外注意将B中各种配置文件中的tok ...

客气了,相互交流和学习,只不过我正好明白这个而已。你们集群是模拟的还是生产环境,是否遇到了产生的实例,网络不通的情况

回复

使用道具 举报

12下一页
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条