Overcloud Administration

更新软件包

可以更新 Overcloud 主机上的软件包。

软件包仓库

如果在使用 CentOS 或 Rocky 的自定义 DNF 软件包仓库,则可能需要在运行软件包更新之前更新这些仓库。为此,更新 ${KAYOBE_CONFIG_PATH}/dnf.yml 中的配置并运行以下命令

(kayobe) $ kayobe overcloud host configure --tags dnf --kolla-tags none

软件包更新

要更新一个或多个软件包

(kayobe) $ kayobe overcloud host package update --packages <package1>,<package2>

要更新所有符合条件的软件包,请使用 *,必要时进行转义

(kayobe) $ kayobe overcloud host package update --packages "*"

要仅安装已被标记为安全相关的更新

(kayobe) $ kayobe overcloud host package update --packages "*" --security

请注意,这些命令不会影响安装在容器中的软件包,只会影响安装在主机上的软件包。

内核更新

如果内核已更新,您可能需要重启主机以启动到新内核。可以使用如下命令来完成此操作

(kayobe) $ kayobe overcloud host command run --command "shutdown -r" --become

通常最好分批将此操作应用于控制平面主机,以避免集群服务失去仲裁。可以使用 --limit 参数来实现这一点,并确保在重启后服务完全启动后再进行下一批处理。

运行命令

可以在 Overcloud 主机上运行命令

(kayobe) $ kayobe overcloud host command run --command "<command>"

例如

(kayobe) $ kayobe overcloud host command run --command "service docker restart"

要以 root 权限执行命令,请添加 --become 参数。添加 --verbose 参数允许查看命令的输出。

重新配置容器化服务

当配置发生更改时,必须以自动化的方式将这些更改应用到整个系统。要重新配置 Overcloud,首先在 Ansible 控制主机上进行任何必要的更改。接下来,运行以下命令

(kayobe) $ kayobe overcloud service reconfigure

如果并非所有服务的配置都已修改,可以通过指定 Ansible 标签来限制 kayobe 和/或 kolla-ansible playbook 中运行的任务,从而提高性能。这可能需要了解这些工具的内部工作原理,但通常,kolla-ansible 会使用服务名称对用于配置每个服务的 playbook 进行标记。例如:novaneutronironic。使用 -t--tags 指定 kayobe 标签,使用 -kt--kolla-tags 指定 kolla-ansible 标签。例如

(kayobe) $ kayobe overcloud service reconfigure --tags config --kolla-tags nova,ironic

部署更新的容器镜像

一项常见任务是部署更新的容器镜像,而无需进行配置更改。这可能是为了推出更新的容器操作系统,或者获取一些软件包更新。这应该比完全部署或重新配置更快。

要部署更新的容器镜像

(kayobe) $ kayobe overcloud service deploy containers

请注意,如果存在配置更改,则使用此命令将不会应用这些更改,因此如有疑问,请使用正常的 kayobe overcloud service deploy

如果并非所有服务的容器都已修改,可以通过指定 Ansible 标签来限制 kayobe 和/或 kolla-ansible playbook 中运行的任务,从而提高性能。这可能需要了解这些工具的内部工作原理,但通常,kolla-ansible 会使用服务名称对用于配置每个服务的 playbook 进行标记。例如:novaneutronironic。使用 -t--tags 指定 kayobe 标签,使用 -kt--kolla-tags 指定 kolla-ansible 标签。例如

(kayobe) $ kayobe overcloud service deploy containers --kolla-tags nova,ironic

升级容器化服务

可以通过使用从注册表拉取或本地构建的更新镜像替换现有容器来升级容器化的控制平面服务。如果使用 Kayobe 的更新版本或从一个 OpenStack 版本升级到另一个版本,请务必遵循 kayobe 升级指南。可能需要在发布版本内升级一个或多个服务,例如应用补丁或次要版本。

要升级容器化的控制平面服务

(kayobe) $ kayobe overcloud service upgrade

与重新配置命令一样,可以指定 Kayobe 和/或 kolla-ansible 的标签

(kayobe) $ kayobe overcloud service upgrade --tags config --kolla-tags keystone

运行预检查

有时,在不部署服务的情况下运行预检查可能很有用

(kayobe) $ kayobe overcloud service prechecks

与其他类似命令一样,可以指定 Kayobe 和/或 kolla-ansible 的标签

(kayobe) $ kayobe overcloud service upgrade --tags config --kolla-tags keystone

停止 Overcloud 服务

注意

此步骤将停止 Overcloud 主机上的所有容器。

要停止 Overcloud 服务

(kayobe) $ kayobe overcloud service stop --yes-i-really-really-mean-it

应注意的是,此状态是持久的 - 容器将在其运行的主机重启后保持停止状态。

可以通过 --kolla-limit 限制操作到特定主机,或通过 --kolla-tags 限制到特定服务。还可以通过 --kolla-skip-tags common 避免停止公共容器。例如

(kayobe) $ kayobe overcloud service stop –kolla-tags glance,nova –kolla-skip-tags common

销毁 Overcloud 服务

注意

此步骤将销毁 Overcloud 主机上的所有容器、容器镜像、卷和数据。

要销毁 Overcloud 服务

(kayobe) $ kayobe overcloud service destroy --yes-i-really-really-mean-it

取消配置云

注意

此步骤将关闭 Overcloud 主机,并从 seed 的 ironic 服务中删除其节点的实例状态。此命令将打印将要取消配置的主机列表,您必须键入 yes 以确认。要自动确认,请传递参数 -e confirm_deprovision=yes

要取消配置 Overcloud

(kayobe) $ kayobe overcloud deprovision

保存 Overcloud 服务配置

通常,能够保存控制平面服务的配置以便检查或与重新配置或升级之前的另一个配置集进行比较很有用。此命令将收集并保存所有主机的控制平面配置到 Ansible 控制主机

(kayobe) $ kayobe overcloud service configuration save

保存配置的默认位置是 $PWD/overcloud-config,但可以通过 output-dir 参数进行更改。要从默认目录 /etc/kolla 以外的目录收集配置,请使用 node-config-dir 参数。

生成 Overcloud 服务配置

在部署、重新配置或升级控制平面之前,生成将要应用的配置可能很有用,而无需实际将其应用于正在运行的容器。通常应在默认配置目录 /etc/kolla 以外的目录中生成配置,以避免覆盖活动配置

(kayobe) $ kayobe overcloud service configuration generate --node-config-dir /path/to/generated/config

配置将在指定的目录中在 Overcloud 主机上远程生成,每个容器一个子目录。此命令可以后跟 kayobe overcloud service configuration save,以将生成的配置收集到 Ansible 控制主机。

验证 Overcloud 服务配置

当在 Kolla Ansible 部署中使用配置文件的错误选项时,可能会出现问题。这是因为 OpenStack 服务将忽略未知的选项。同样重要的是要关注将来可能会删除的弃用选项。可以使用 oslo-config-validator 来检查这两点。此命令将在 OpenStack 控制平面服务上运行它

(kayobe) $ kayobe overcloud service configuration validate --output-dir /path/to/save/results

执行数据库备份

可以使用 Kolla Ansible 中的底层支持执行数据库备份。

为了启用备份,请在 ${KAYOBE_CONFIG_PATH}/kolla.yml 中启用 Mariabackup

kolla_enable_mariabackup: true

要应用此更改,请使用 kayobe overcloud service reconfigure 命令。

要执行完全备份,请运行以下命令

kayobe overcloud database backup

或者要执行增量备份,请运行以下命令

kayobe overcloud database backup --incremental

有关备份和恢复数据库的更多信息,请参阅 Kolla Ansible 文档

执行数据库恢复

使用 Kolla Ansible 中的底层支持恢复完全停止的 MariaDB 集群。

要执行恢复,请运行以下命令

kayobe overcloud database recover

或者要在指定的宿主机上执行恢复,请运行以下命令

kayobe overcloud database recover --force-recovery-host <host>

默认情况下,底层的 kolla-ansible 将自动确定要使用的主机,不应使用此选项。

收集信息

可以使用以下命令为所有 Overcloud 主机收集信息,包括 Kayobe 和 Kolla Ansible

kayobe overcloud facts gather

这可能有助于提前填充事实缓存,以便进行其他操作。