4.2. 对 Identity Client(keystone)连接问题进行故障排除
当身份客户端(keystone)无法联系其身份服务,它会返回错误:
Unable to communicate with identity service: [Errno 113] No route to host. (HTTP 400)
要调试问题检查这些常见原因:
- 身份服务关闭
身份服务现在在 httpd.service 中运行。在托管 Identity 服务的系统中,检查服务状态:
# systemctl status httpd.service如果服务不激活,则以 root 用户身份登录并启动该服务。
# systemctl start httpd.service- 防火墙没有被正确配置
-
防火墙可能没有配置为在端口
5000和35357上允许 TCP 流量。如果是这样,请参阅高级 Overcloud 自定义指南中的管理 Overcloud 防火墙,以了解有关检查防火墙设置和定义自定义规则的说明。 - Service Endpoints 没有正确定义
在托管身份服务的系统上,检查端点是否已正确定义。
获取管理令牌:
# grep admin_token /etc/keystone/keystone.conf admin_token = 91f0866234a64fc299db8f26f8729488确定身份服务的正确管理端点:
http://IP:35357/VERSION使用托管身份服务的系统的 IP 地址或主机名替换 IP。将 VERSION 替换为正在使用的 API 版本(
v2.0或 v3)。取消设置任何预定义身份服务相关环境变量:
# unset OS_USERNAME OS_TENANT_NAME OS_PASSWORD OS_AUTH_URL使用管理令牌和端点与身份服务进行身份验证。确认 Identity 服务端点正确。例如:
# openstack endpoint list --os-token=91f0556234a64fc299db8f26f8729488 --os-url=https://osp.lab.local:35357/v3/ --os-identity-api-version 3验证 Identity 服务中列出的
publicurl、内部url 和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将 TOKEN 和 ENDPOINT 替换为前面标识的值。将 ID 替换为要按照
endpoint-list操作列出的端点的身份。