4.2. 对身份客户端(keystone)连接问题进行故障排除
当 Identity 客户端(keystone
)无法联系 Identity 服务时,它会返回错误:
Unable to communicate with identity service: [Errno 113] No route to host. (HTTP 400)
Unable to communicate with identity service: [Errno 113] No route to host. (HTTP 400)
要调试问题检查,请执行以下操作:
- Identity 服务停机
身份服务现在在 httpd.service 中运行。在托管身份服务的系统上,检查服务状态:
systemctl status httpd.service
# systemctl status httpd.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果服务未激活,则以 root 用户身份登录并启动该服务。
systemctl start httpd.service
# systemctl start httpd.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 防火墙没有正确配置
-
防火墙可能没有配置为允许端口
5000
和35357
上的 TCP 流量。如果是这样,请参阅高级 Overcloud 自定义指南中的管理 Overcloud 防火墙,以了解有关检查防火墙设置和定义自定义规则的说明。 - 没有正确定义服务端点
在托管身份服务的系统上,检查端点是否已正确定义。
获取管理令牌:
grep admin_token /etc/keystone/keystone.conf
# grep admin_token /etc/keystone/keystone.conf admin_token = 91f0866234a64fc299db8f26f8729488
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为身份服务确定正确的管理端点:
http://IP:35357/VERSION
http://IP:35357/VERSION
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用托管身份服务的系统的 IP 地址或主机名替换 IP。将 VERSION 替换为正在使用的 API 版本 (
v2.0
或v3
)。取消设置任何预定义的身份服务相关环境变量:
unset OS_USERNAME OS_TENANT_NAME OS_PASSWORD OS_AUTH_URL
# unset OS_USERNAME OS_TENANT_NAME OS_PASSWORD OS_AUTH_URL
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用管理令牌和端点与身份服务进行身份验证。确认 Identity 服务端点正确。例如:
openstack endpoint list --os-token=91f0556234a64fc299db8f26f8729488 --os-url=https://osp.lab.local:35357/v3/ --os-identity-api-version 3
# openstack endpoint list --os-token=91f0556234a64fc299db8f26f8729488 --os-url=https://osp.lab.local:35357/v3/ --os-identity-api-version 3
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证为 Identity 服务列出的
publicurl
、internalurl
和adminurl
是否正确。特别是,请确保每个端点中列出的 IP 地址和端口号正确,并可通过网络访问。如果这些值不正确,请添加正确的端点,并使用
openstack
命令的endpoint delete
操作删除任何不正确的端点。例如:openstack endpoint delete 2d32fa6feecc49aab5de538bdf7aa018 --os-token=91f0866234a64fc299db8f26f8729488 --os-url=https://osp.lab.local:35357/v3/ --os-identity-api-version 3
# openstack endpoint delete 2d32fa6feecc49aab5de538bdf7aa018 --os-token=91f0866234a64fc299db8f26f8729488 --os-url=https://osp.lab.local:35357/v3/ --os-identity-api-version 3
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 TOKEN 和 ENDPOINT 替换为之前标识的值。将 ID 替换为由
endpoint-list
操作列出的端点的身份。