8.2. 验证容器化 overcloud
以下是检查容器化 overcloud 功能的一组步骤。
流程
查找 undercloud 访问详情:
$ source ~/stackrc
检查裸机节点的状态:
(undercloud) $ openstack baremetal node list
所有节点均应具有有效的电源状态(
on
)和维护模式,应为false
。检查失败的 Systemd 服务:
(undercloud) $ for NODE in $(openstack server list -f value -c Networks | cut -d= -f2); do echo "=== $NODE ===" ; ssh heat-admin@$NODE "sudo systemctl list-units --state=failed 'openstack*' 'neutron*' 'httpd' 'docker' 'ceph*'" ; done
检查失败的容器化服务:
(undercloud) $ for NODE in $(openstack server list -f value -c Networks | cut -d= -f2); do echo "=== $NODE ===" ; ssh heat-admin@$NODE "sudo docker ps -f 'exited=1' --all" ; done (undercloud) $ for NODE in $(openstack server list -f value -c Networks | cut -d= -f2); do echo "=== $NODE ===" ; ssh heat-admin@$NODE "sudo docker ps -f 'status=dead' -f 'status=restarting'" ; done
检查与所有服务的 HAProxy 连接。获取
haproxy.stats
服务的 Control Plane VIP 地址和身份验证详情:(undercloud) $ NODE=$(openstack server list --name controller-0 -f value -c Networks | cut -d= -f2); ssh heat-admin@$NODE sudo 'grep "listen haproxy.stats" -A 6 /var/lib/config-data/puppet-generated/haproxy/etc/haproxy/haproxy.cfg'
在以下 cURL 请求中使用这些详情:
(undercloud) $ curl -s -u admin:<PASSWORD> "http://<IP ADDRESS>:1993/;csv" | egrep -vi "(frontend|backend)" | cut -d, -f 1,2,18,37,57 | column -s, -t
将
<PASSWORD
> 和 <IP ADDRESS
> 详情替换为haproxy.stats
服务的实际详情。生成的列表显示每个节点上的 OpenStack Platform 服务及其连接状态。注意如果节点运行 Redis 服务,则只有一个节点为该服务显示
ON
状态。这是因为 Redis 是一个主动 - 被动服务,它一次仅在一个节点上运行。检查 overcloud 数据库复制健康状况:
(undercloud) $ for NODE in $(openstack server list --name controller -f value -c Networks | cut -d= -f2); do echo "=== $NODE ===" ; ssh heat-admin@$NODE "sudo docker exec clustercheck clustercheck" ; done
检查 RabbitMQ 集群健康状况:
(undercloud) $ for NODE in $(openstack server list --name controller -f value -c Networks | cut -d= -f2); do echo "=== $NODE ===" ; ssh heat-admin@$NODE "sudo docker exec $(ssh heat-admin@$NODE "sudo docker ps -f 'name=.*rabbitmq.*' -q") rabbitmqctl node_health_check" ; done
检查 Pacemaker 资源健康状况:
(undercloud) $ NODE=$(openstack server list --name controller-0 -f value -c Networks | cut -d= -f2); ssh heat-admin@$NODE "sudo pcs status"
查找:
-
所有集群节点
在线
。 -
任何集群节点上都没有
停止
资源。 -
没有
失败的
pacemaker 操作。
-
所有集群节点
检查每个 overcloud 节点上的磁盘空间:
(undercloud) $ for NODE in $(openstack server list -f value -c Networks | cut -d= -f2); do echo "=== $NODE ===" ; ssh heat-admin@$NODE "sudo df -h --output=source,fstype,avail -x overlay -x tmpfs -x devtmpfs" ; done
检查 overcloud Ceph Storage 集群健康状态。以下命令在 Controller 节点上运行
ceph
工具来检查集群:(undercloud) $ NODE=$(openstack server list --name controller-0 -f value -c Networks | cut -d= -f2); ssh heat-admin@$NODE "sudo ceph -s"
检查 Ceph Storage OSD 是否有可用空间。以下命令在 Controller 节点上运行
ceph
工具来检查可用空间:(undercloud) $ NODE=$(openstack server list --name controller-0 -f value -c Networks | cut -d= -f2); ssh heat-admin@$NODE "sudo ceph df"
检查时钟是否在 overcloud 节点上同步
(undercloud) $ for NODE in $(openstack server list -f value -c Networks | cut -d= -f2); do echo "=== $NODE ===" ; ssh heat-admin@$NODE "sudo ntpstat" ; done
查找 overcloud 访问详情:
(undercloud) $ source ~/overcloudrc
检查 overcloud 网络服务:
(overcloud) $ openstack network agent list
所有代理都应
处于活动状态
,其状态应为UP
。检查 overcloud 计算服务:
(overcloud) $ openstack compute service list
所有代理的状态都应
为启用状态
,其状态应为up
检查 overcloud 卷服务:
(overcloud) $ openstack volume service list
所有代理的状态都应
为启用状态
,其状态应为。
相关信息
- 请参阅文章 "我如何验证我的 OpenStack 环境是通过红帽推荐的配置进行部署?"。本文提供有关如何检查您的 Red Hat OpenStack Platform 环境并对红帽的建议调整配置的一些信息。