4.2. 部署后在 RHOSO 环境中启用 TLS
如果在 OpenShift (RHOSO)环境中部署的 Red Hat OpenStack Services 中禁用了 TLS,您可以在可正常工作的 RHOSO 环境中重新启用它,并尽可能减少中断。
先决条件
- RHOSO 环境部署在 Red Hat OpenShift Container Platform (RHOCP)集群中。如需更多信息,请参阅在 OpenShift 上部署 Red Hat OpenStack Services。
-
以具有
cluster-admin权限的用户身份登录到可访问 RHOCP 集群的工作站。
流程
-
在工作站上打开
OpenStackControlPlane自定义资源(CR)文件openstack_control_plane.yaml。 在
spec配置中添加以下tls配置(如果尚不存在):Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 如果定义文件中已存在
tls配置,请确保启用了'podLevel'。
更新 control plane:
oc apply -f openstack_control_plane.yaml -n <namespace>
$ oc apply -f openstack_control_plane.yaml -n <namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow rabbitmq pod 无法更改操作环境中的 TLS 配置,因此您必须删除现有 rabbitmq pod,以使用启用了 TLS 的新 rabbitmq pod 更新 control plane:
oc delete pod -n openstack -l app.kubernetes.io/component=rabbitmq
$ oc delete pod -n openstack -l app.kubernetes.io/component=rabbitmqCopy to Clipboard Copied! Toggle word wrap Toggle overflow 等待 control plane 就绪:
oc wait openstackcontrolplane -n <namespace> --for=condition=Ready --timeout=400s -l core.openstack.org/openstackcontrolplane
$ oc wait openstackcontrolplane -n <namespace> --for=condition=Ready --timeout=400s -l core.openstack.org/openstackcontrolplaneCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在等待 control plane 就绪时,无法创建新的工作负载,并且无法使用 OpenStack API 管理现有工作负载。data plane 节点上的
nova-compute服务无法连接到 cell1 rabbitmq,并报告为 down :Copy to Clipboard Copied! Toggle word wrap Toggle overflow OVN 控制器和 OVN 元数据代理无法连接到南向数据库:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果没有通过 control plane 路由工作负载流量,现有工作负载不会受到影响。
为 data plane 上的每个节点打开
OpenStackDataPlaneNodeSetCR 定义文件,并各自启用 TLS:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 保存更新的
OpenStackDataPlaneNodeSetCR 定义文件并应用更新:oc apply -f openstack_data_plane.yaml -n <namespace>
$ oc apply -f openstack_data_plane.yaml -n <namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查每个节点中是否启用了 TLS:
oc get openstackdataplanenodeset <node_set_name> -n <namespace> -o json | jq .items[0].spec.tlsEnabled
$ oc get openstackdataplanenodeset <node_set_name> -n <namespace> -o json | jq .items[0].spec.tlsEnabled trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在工作站上创建一个文件来定义
OpenStackDataPlaneDeploymentCR:apiVersion: dataplane.openstack.org/v1beta1 kind: OpenStackDataPlaneDeployment metadata: name: <node_set_deployment_name>
apiVersion: dataplane.openstack.org/v1beta1 kind: OpenStackDataPlaneDeployment metadata: name: <node_set_deployment_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<node_set_deployment_name> 替换为OpenStackDataPlaneDeploymentCR 的名称。名称必须是唯一的,必须包含小写字母数字字符(hyphen)或.(句点),且必须以字母数字字符开头和结尾。
提示为定义文件和
OpenStackDataPlaneDeploymentCR 提供唯一和描述性名称,以指示修改的节点集的用途。-
将
添加您修改的
OpenStackDataPlaneNodeSetCR 来启用 TLS:spec: nodeSets: - <nodeSet_name>spec: nodeSets: - <nodeSet_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
保存
OpenStackDataPlaneDeploymentCR 部署文件。 部署修改后的
OpenStackDataPlaneNodeSetCR:oc create -f openstack_data_plane_deploy.yaml -n <namespace>
$ oc create -f openstack_data_plane_deploy.yaml -n <namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以在部署执行时查看 Ansible 日志:
oc get pod -l app=openstackansibleee -n <namespace> -w oc logs -l app=openstackansibleee -f --max-log-requests 10 -n <namespace>
$ oc get pod -l app=openstackansibleee -n <namespace> -w $ oc logs -l app=openstackansibleee -f --max-log-requests 10 -n <namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果
oc logs命令返回类似以下错误的错误,请提高--max-log-requests值:error: you are attempting to follow 19 log streams, but maximum allowed concurrency is 10, use --max-log-requests to increase the limit
error: you are attempting to follow 19 log streams, but maximum allowed concurrency is 10, use --max-log-requests to increase the limitCopy to Clipboard Copied! Toggle word wrap Toggle overflow 验证修改后的
OpenStackDataPlaneNodeSetCR 是否已部署:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 有关返回状态的信息,请参阅 在 OpenShift 上部署 Red Hat OpenStack Services 指南中的 Data plane 条件和状态。
如果状态表示 data plane 尚未部署,则对部署进行故障排除。如需更多信息,请参阅在 OpenShift 上部署 Red Hat OpenStack Services 指南中的对 data plane 创建和部署进行故障排除。
验证
nova-compute服务是否已重新连接到 TLS rabbitmq:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证 OVN 代理是否已再次运行:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow