22.2.3. OpenShift Container Platform 先决条件
成功部署 OpenShift Container Platform 需要满足很多前提条件。其中包括一组基础架构和主机配置步骤,然后再使用 Ansible 进行 OpenShift Container Platform 的实际安装。在后续小节中,详细介绍了 OpenStack 环境中 OpenShift Container Platform 所需的前提条件和配置更改。
本参考环境中的所有 OpenStack CLI 命令都使用 CLI openstack
命令从 director 节点的不同节点执行。在另一节点中执行命令,以避免与 Ansible 版本 2.6 及更高版本产生软件包冲突。务必在指定的软件仓库中安装以下软件包。
例如:
从 Set Up Repositories 启用 rhel-7-server-openstack-13-tools-rpms 和所需的 OpenShift Container Platform 存储库。
$ sudo subscription-manager repos \ --enable rhel-7-server-openstack-{rhosp_version}-tools-rpms \ --enable rhel-7-server-openstack-14-tools-rpms $ sudo subscription-manager repo-override --repo=rhel-7-server-openstack-14-tools-rpms --add=includepkgs:"python2-openstacksdk.* python2-keystoneauth1.* python2-os-service-types.*" $ sudo yum install -y python2-openstackclient python2-heatclient python2-octaviaclient ansible
验证软件包是否至少包含以下版本(使用 rpm -q <package_name>
):
-
python2-openstackclient
-3.14.1.-1
-
python2-heatclient
1.14.0-1
-
python2-octaviaclient
1.4.0-1
-
python2-openstacksdk
0.17.2
22.2.3.1. 启用 Octavia:OpenStack 负载平衡即服务(LBaaS)
Octavia 是一个支持的负载均衡器解决方案,建议与 OpenShift Container Platform 一起使用,以便对外部传入的流量进行负载平衡,并为应用程序提供 OpenShift Container Platform master 服务的单一视图。
要启用 Octavia,必须包含在安装 OpenStack overcloud 的过程中,如果 overcloud 已存在则需要升级 Octavia 服务。以下步骤提供启用 Octavia 的基本非自定义步骤,并适用于 overcloud 的干净安装或 overcloud 更新。
以下步骤只包括在部署 OpenStack 时需要处理 Octavia 部分的信息。有关更多信息,请参阅安装 OpenStack 文档。请注意对于节点 registry 方法会有所不同。有关更多信息,请参阅 Registry 方法 文档。这个示例使用了本地 registry 方法。
如果使用本地 registry,请创建一个模板来将镜像上传到 registry。如下例所示。
(undercloud) $ openstack overcloud container image prepare \ -e /usr/share/openstack-tripleo-heat-templates/environments/services-docker/octavia.yaml \ --namespace=registry.access.redhat.com/rhosp13 \ --push-destination=<local-ip-from-undercloud.conf>:8787 \ --prefix=openstack- \ --tag-from-label {version}-{release} \ --output-env-file=/home/stack/templates/overcloud_images.yaml \ --output-images-file /home/stack/local_registry_images.yaml
验证创建的 local_registry_images.yaml 是否包含 Octavia 镜像。
本地 registry 文件中的 Octavia 镜像
... - imagename: registry.access.redhat.com/rhosp13/openstack-octavia-api:13.0-43 push_destination: <local-ip-from-undercloud.conf>:8787 - imagename: registry.access.redhat.com/rhosp13/openstack-octavia-health-manager:13.0-45 push_destination: <local-ip-from-undercloud.conf>:8787 - imagename: registry.access.redhat.com/rhosp13/openstack-octavia-housekeeping:13.0-45 push_destination: <local-ip-from-undercloud.conf>:8787 - imagename: registry.access.redhat.com/rhosp13/openstack-octavia-worker:13.0-44 push_destination: <local-ip-from-undercloud.conf>:8787
Octavia 容器的版本会根据安装的特定 Red Hat OpenStack Platform 版本而有所不同。
以下步骤从 registry.redhat.io
拉取容器镜像到 undercloud 节点。这个过程可能需要一些时间,具体要看网络和 undercloud 磁盘的速度。
(undercloud) $ sudo openstack overcloud container image upload \ --config-file /home/stack/local_registry_images.yaml \ --verbose
当 Octavia Load Balancer 用于访问 OpenShift API 时,需要增加它们的监听程序默认超时时间。默认超时为 50 秒。通过将以下文件传递给 overcloud deploy 命令,将超时时间增加到 20 分钟:
(undercloud) $ cat octavia_timeouts.yaml parameter_defaults: OctaviaTimeoutClientData: 1200000 OctaviaTimeoutMemberData: 1200000
在 Red Hat OpenStack Platform 14 起,不需要这样做。
使用 Octavia 安装或更新 overcloud 环境:
openstack overcloud deploy --templates \ . . . -e /usr/share/openstack-tripleo-heat-templates/environments/services-docker/octavia.yaml \ -e octavia_timeouts.yaml . . .
以上命令只包含与 Octavia 相关的文件。此命令将根据您具体的 OpenStack 安装而有所不同。如需更多信息,请参阅官方 OpenStack 文档 。有关自定义 Octavia 安装的详情请参考 使用 Director 安装 Octavia。
如果使用 Kuryr SDN,overcloud 安装需要在 Neutron 中启用"中继"扩展。这在 Director 部署中默认启用。当 Neutron 后端是 ML2/OVS 时,使用 openvswitch 防火墙而不是默认的 ovs-hybrid。如果后端为 ML2/OVN,则不需要修改。