Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

8.2. 验证容器化 overcloud

以下是检查容器化 overcloud 功能的一组步骤。

流程

  1. 查找 undercloud 访问详情:

    $ source ~/stackrc
  2. 检查裸机节点的状态:

    (undercloud) $ openstack baremetal node list

    所有节点均应具有有效的电源状态(on)和维护模式,应为 false

  3. 检查失败的 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
  4. 检查失败的容器化服务:

    (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
  5. 检查与所有服务的 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 & gt; 和 <IP ADDRESS > 详情替换为 haproxy.stats 服务的实际详情。生成的列表显示每个节点上的 OpenStack Platform 服务及其连接状态。

    注意

    如果节点运行 Redis 服务,则只有一个节点为该服务显示 ON 状态。这是因为 Redis 是一个主动 - 被动服务,它一次仅在一个节点上运行。

  6. 检查 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
  7. 检查 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
  8. 检查 Pacemaker 资源健康状况:

    (undercloud) $ NODE=$(openstack server list --name controller-0 -f value -c Networks | cut -d= -f2); ssh heat-admin@$NODE "sudo pcs status"

    查找:

    • 所有集群节点 在线
    • 任何集群节点上都没有 停止 资源。
    • 没有 失败的 pacemaker 操作。
  9. 检查每个 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
  10. 检查 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"
  11. 检查 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"
  12. 检查时钟是否在 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
  13. 查找 overcloud 访问详情:

    (undercloud) $ source ~/overcloudrc
  14. 检查 overcloud 网络服务:

    (overcloud) $ openstack network agent list

    所有代理都应 处于活动状态,其状态应为 UP

  15. 检查 overcloud 计算服务:

    (overcloud) $ openstack compute service list

    所有代理的状态都应 为启用状态,其状态应为 up

  16. 检查 overcloud 卷服务:

    (overcloud) $ openstack volume service list

    所有代理的状态都应 为启用状态,其状态应为

相关信息