6.9. 安装后 RHOSP 网络配置
您可在安装后在 Red Hat OpenStack Platform(RHOSP)集群中配置 OpenShift Container Platform 的一些方面。
6.9.1. 使用浮动 IP 地址配置应用程序访问
安装 OpenShift Container Platform 后,请配置 Red Hat OpenStack Platform (RHOSP) 以允许应用程序网络流量。
如果您在 install-config.yaml
文件中为 platform.openstack.apiFloatingIP
和 platform.openstack.ingressFloatingIP
提供了值,或为 inventory.yaml
playbook 中的 os_api_fip
和 os_ingress_fip
提供了值,在安装过程中不需要执行此步骤。已设置浮动 IP 地址。
先决条件
- 必须已安装 OpenShift Container Platform 集群
- 启用浮动 IP 地址,如 RHOSP 安装文档中的 OpenShift Container Platform 所述。
流程
在安装 OpenShift Container Platform 集群后,将浮动 IP 地址附加到入口端口:
显示端口:
$ openstack port show <cluster_name>-<cluster_ID>-ingress-port
将端口附加到 IP 地址:
$ openstack floating ip set --port <ingress_port_ID> <apps_FIP>
在您的 DNS 文件中,为
*apps.
添加一条通配符A
记录。*.apps.<cluster_name>.<base_domain> IN A <apps_FIP>
如果您不控制 DNS 服务器,但希望为非生产用途启用应用程序访问,您可以将这些主机名添加到 /etc/hosts
:
<apps_FIP> console-openshift-console.apps.<cluster name>.<base domain> <apps_FIP> integrated-oauth-server-openshift-authentication.apps.<cluster name>.<base domain> <apps_FIP> oauth-openshift.apps.<cluster name>.<base domain> <apps_FIP> prometheus-k8s-openshift-monitoring.apps.<cluster name>.<base domain> <apps_FIP> grafana-openshift-monitoring.apps.<cluster name>.<base domain> <apps_FIP> <app name>.apps.<cluster name>.<base domain>
6.9.2. Kuryr 端口池
Kuryr 端口池在待机时维护多个端口,用于创建 pod。
将端口保留在待机上可最大程度缩短 pod 创建时间。如果没有端口池,Kuryr 必须明确请求在创建或删除 pod 时创建或删除端口。
Kuryr 使用的 Neutron 端口是在绑定到命名空间的子网中创建的。这些 pod 端口也作为子端口添加到 OpenShift Container Platform 集群节点的主端口。
因为 Kuryr 将每个命名空间保留在单独的子网中,所以为每个命名空间 worker 对维护一个单独的端口池。
在安装集群前,您可以在 cluster-network-03-config.yml
清单文件中设置以下参数来配置端口池行为:
-
enablePortPoolsPrepopulation 参数
控制池预填充,它会强制 Kuryr 在创建时(如添加新主机或创建新命名空间时)将端口添加到池中。默认值为false
。 -
poolMinPorts
参数是池中保留的最少可用端口的数量。默认值为1
。 poolMaxPorts
参数是池中保留的最大可用端口数。值0 可
禁用此上限。这是默认设置。如果您的 OpenStack 端口配额较低,或者 pod 网络上的 IP 地址有限,请考虑设置此选项以确保删除不需要的端口。
-
poolBatchPorts
参数定义一次可以创建的 Neutron 端口的最大数量。默认值为3
。
6.9.3. 在 RHOSP 上的活跃部署中调整 Kuryr 端口池设置
您可以使用自定义资源 (CR) 配置 Kuryr 如何管理 Red Hat OpenStack Platform (RHOSP) Neutron 端口,以控制在部署的集群上创建 pod 的速度和效率。
流程
在命令行中,打开 Cluster Network Operator (CNO) CR 进行编辑:
$ oc edit networks.operator.openshift.io cluster
编辑设置以满足您的要求。以下示例提供了以下文件:
apiVersion: operator.openshift.io/v1 kind: Network metadata: name: cluster spec: clusterNetwork: - cidr: 10.128.0.0/14 hostPrefix: 23 serviceNetwork: - 172.30.0.0/16 defaultNetwork: type: Kuryr kuryrConfig: enablePortPoolsPrepopulation: false 1 poolMinPorts: 1 2 poolBatchPorts: 3 3 poolMaxPorts: 5 4
- 1
- 将
enablePortPoolsPrepopulation
设置为true
以使 Kuryr 在创建命名空间或在集群中添加新节点后创建新 Neutron 端口。此设置引发 Neutron 端口配额,但可以缩短生成容器集所需的时间。默认值为false
。 - 2
- 如果池中的可用端口数量低于
poolMinPorts
的值,Kuryr 会为池创建新端口。默认值为1
。 - 3
poolBatchPorts
控制在可用端口数量低于poolMinPorts
值时创建的新端口数量。默认值为3
。- 4
- 如果池中的可用端口数量大于
poolMaxPorts
的值,Kuryr 会删除它们,直到数量与这个值匹配为止。将值设为0
可禁用此上限,防止池被缩小。默认值为0
。
- 保存您的更改,再退出文本编辑器以提交更改。
在正在运行的集群中修改这些选项会强制 kuryr-controller 和 kuryr-cni pod 重启。因此,创建新 pod 和服务会延迟。
6.9.4. 为负载均衡器服务启用 RHOSP Octavia
您可以通过在 Red Hat OpenStack Platform (RHOSP)上使用 Octavia 创建负载均衡器服务类型和入口控制器。
依赖 Octavia 的服务和控制器有以下限制:
- 仅支持 TCP 流量。
- 在集群删除操作过程中不会删除活跃的 Octavia 负载均衡器以及附加到它们的浮动 IP 地址。您必须先删除这些项目,然后才能执行操作。
-
云供应商配置中的
manage-security-groups
属性只适用于具有管理特权的 RHOSP 租户。 -
不支持负载均衡器服务的
loadBalancerSourceRanges
属性。 -
不支持负载均衡器服务的
loadBalancerIP
属性。
先决条件
- 您有一个活跃的集群。
-
已安装 OpenShift CLI(
oc
)。
流程
在命令行中,打开云供应商配置进行编辑:
$ oc edit configmap -n openshift-config cloud-provider-config
编辑驱动程序类型的配置:
如果您使用 Amphora 驱动程序,请在云供应商配置中添加以下部分:
[LoadBalancer] use-octavia = true lb-provider = amphora
如果使用 OVN 驱动程序,请在云供应商配置中添加以下部分:
[LoadBalancer] use-octavia = true lb-provider = ovn lb-method = SOURCE_IP_PORT
注意如果您对 Octavia 使用 OVN 驱动程序,还必须修改主和 worker 安全组的 TCP ingress 安全组规则,以允许来自 0.0.0.0/0 的 IPv4 流量发送到端口 30000 到 32767。
如果您有多个外部网络,请将云供应商配置中的
floating-network-id
参数的值设置为在其中创建浮动 IP 地址的外部网络 UUID。例如:[LoadBalancer] use-octavia = true lb-provider = amphora floating-network-id = <network_UUID>
- 保存对配置的更改。