联系 http://controller:5000/v3 时未能发现可用的身份版本

Failed to discover available identity versions when contacting http://controller:5000/v3

尝试为 openstack USSURI 版本设置控制器节点时。我被要求将 glance 服务设置为 VM 映像管理子服务。

根据要求:article(低于 ubuntu 18.04):

  1. 我创建了一个名为:admin-openrc.sh 的文件,位置为:/usr/share/keystone,内容为:
    export OS_USERNAME=admin 
    
    export OS_PASSWORD=ADMIN_PASS 
    
    export OS_PROJECT_NAME=admin 
    
    export OS_USER_DOMAIN_NAME=Default 
    
    export OS_PROJECT_DOMAIN_NAME=Default 
    
    export OS_AUTH_URL=http://controller:5000/v3 
    
    export OS_IDENTITY_API_VERSION=3`

其中 ADMIN_PASS 是自定义的

  1. 键入命令:source ./admin-openrc.sh

  2. 然后,使用 cmd 创建 glance 用户:openstack user create --domain default --password-prompt glance

作为输出,我收到错误消息:

Failed to discover available identity versions when contacting http://controller:5000/v3. Attempting to parse version from URL.
Unable to establish connection to http://controller:5000/v3/auth/tokens: HTTPConnectionPool(host='controller', port=5000): Max retries exceeded with url: /v3/auth/tokens (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fa20bba02b0>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',))

请问有人能指点一下吗?我之前完成了所有步骤:NTP 安装、openstack 包下载、SQL 安装、RabbitMQ 安装、Memcached 安装、Etcd 安装、Keystone 安装(USSURI 版本)

这似乎是身份验证问题或其他问题?


如果问题对您有帮助,请点赞。提前致谢

如果这是单个控制节点设置(例如 keystone 的单个实例),我建议只用管理 IP 地址替换 controller。在投入生产时,您往往会在这些服务器前面安装一个负载均衡器,但您也可以在所有节点上使用可解析的 dns 记录(例如 controller.internal)。

# keystone-manage bootstrap --bootstrap-password ADMIN_PASS \
  --bootstrap-admin-url http://<your-ip>:5000/v3/ \
  --bootstrap-internal-url http://<your-ip>:5000/v3/ \
  --bootstrap-public-url http://<your-ip>:5000/v3/ \
  --bootstrap-region-id RegionOne

使用controller并且前面没有dns或负载平衡解决方案(例如通过将其添加到/etc/hosts文件)的缺点是您需要在所有节点上手动维护它,包括您添加到设置中的任何计算节点。

我向 etc/hosts 添加了一个条目:10.0.0.11 controller 然后重新执行这 2 个命令:

sudo keystone-manage bootstrap --bootstrap-password XXXXXXXX --bootstrap-admin-url http://10.0.0.11:5000/v3/ --bootstrap-internal-url http://10.0.0.11:5000/v3/ --bootstrap-public-url http://10.0.0.11:5000/v3/ --bootstrap-region-id RegionOne

sudo openstack user create --domain default --os-username XXXXXXXX --password-prompt --os-auth-url http://10.0.0.11:5000/v3 glance

但是收到了,同样的错误:

Failed to discover available identity versions when contacting http://10.0.0.11:5000/v3. Attempting to parse version from URL.

Unable to establish connection to http://10.0.0.11:5000/v3/auth/tokens: HTTPConnectionPool(host='10.0.0.11', port=5000): Max retries exceeded with url: /v3/auth/tokens (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fe863dff290>: Failed to establish a new connection: [Errno 113] No route to host',))

等待您的帮助,

也试过这个:

$sudo ping controller

PING controller (10.0.0.11) 56(84) bytes of data.
From bassamvm01.internal.cloudapp.net (10.0.0.4) icmp_seq=1 Destination Host Unreachable
......
^C
--- controller ping statistics ---
6 packets transmitted, 0 received, +3 errors, 100% packet loss, time 5081ms
pipe 4

感谢您的评论。我成功地授予了对地址为 10.0.0.11

的控制器的访问权限

我需要相应地更改 NIC 配置(IP:10.0.0.11)