3.2. 在 RHOSP 上安装 OpenShift Container Platform 的资源指南


为支持 OpenShift Container Platform 安装,您的 Red Hat OpenStack Platform(RHOSP)配额必须满足以下要求:

表 3.1. RHOSP 上默认 OpenShift Container Platform 集群的建议资源
resourcevalue

浮动 IP 地址

3

端口

15

路由器

1

子网

1

RAM

88 GB

VCPU

22

卷存储

275 GB

实例

7

安全组

3

安全组规则

60

服务器组

2 - 每个机器池中每个额外可用区加 1

集群或许能以少于推荐资源运行,但其性能无法保证。

重要

如果 RHOSP 对象存储(Swift)可用,并由具有 swiftoperator 角色的用户帐户执行,它将用作 OpenShift Container Platform 镜像 registry 的默认后端。在这种情况下,卷存储需要 175 GB。根据镜像 registry 的大小,Swift 空间要求会有所不同。

注意

默认情况下,您的安全组和安全组规则配额可能较低。如果遇到问题,请以管理员 身份运行 openstack quota set --secgroups 3 --secgroup-rules 60 <project> 来提高配额。

OpenShift Container Platform 部署包含 control plane 机器、计算机器和 bootstrap 机器。

3.2.1. control plane 机器

默认情况下,OpenShift Container Platform 安装过程会创建三台 control plane 机器。

每台机器都需要:

  • 来自 RHOSP 配额的实例
  • 来自 RHOSP 配额的端口
  • 至少有 16 GB 内存和 4 个 vCPU 的类别
  • RHOSP 配额中至少有 100 GB 存储空间

3.2.2. 计算机器

默认情况下,OpenShift Container Platform 安装过程会创建三台计算机器。

每台机器都需要:

  • 来自 RHOSP 配额的实例
  • 来自 RHOSP 配额的端口
  • 至少有 8 GB 内存和 2 个 vCPU 的类别
  • RHOSP 配额中至少有 100 GB 存储空间
提示

计算机器托管您在 OpenShift Container Platform 上运行的应用程序;运行数量应尽可能多。

3.2.3. bootstrap 机器

在安装过程中,会临时置备 bootstrap 机器来支持 control plane。生产 control plane 就绪后,bootstrap 机器会被取消置备。

bootstrap 机器需要:

  • 来自 RHOSP 配额的实例
  • 来自 RHOSP 配额的端口
  • 至少有 16 GB 内存和 4 个 vCPU 的类别
  • RHOSP 配额中至少有 100 GB 存储空间

3.2.4. 用户置备的基础架构的负载均衡要求

重要

使用用户管理的负载平衡器进行部署只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

在安装 OpenShift Container Platform 前,您可以置备自己的 API 和应用程序入口负载平衡基础架构,以代替默认的内部负载平衡解决方案。在生产环境中,您可以单独部署 API 和应用程序入口负载均衡器,以便可以隔离扩展每个负载均衡器基础架构。

注意

如果要使用 Red Hat Enterprise Linux (RHEL) 实例部署 API 和应用程序入口负载均衡器,您必须单独购买 RHEL 订阅。

负载平衡基础架构必须满足以下要求:

  1. API 负载均衡器 :提供一个通用端点,供用户(包括人工和机器)与平台交互和配置。配置以下条件:

    • 仅第 4 层负载均衡.这可被称为 Raw TCP 或 SSL Passthrough 模式。
    • 无状态负载平衡算法。这些选项根据负载均衡器的实施而有所不同。
    重要

    不要为 API 负载均衡器配置会话持久性。为 Kubernetes API 服务器配置会话持久性可能会导致出现过量 OpenShift Container Platform 集群应用程序流量,以及过量的在集群中运行的 Kubernetes API。

    在负载均衡器的前端和后端配置以下端口:

    表 3.2. API 负载均衡器
    port后端机器(池成员)internal外部描述

    6443

    Bootstrap 和 control plane.bootstrap 机器初始化集群 control plane 后,您要从负载均衡器中删除 bootstrap 机器。您必须为 API 服务器健康检查探测配置 /readyz 端点。

    X

    X

    Kubernetes API 服务器

    22623

    Bootstrap 和 control plane.bootstrap 机器初始化集群 control plane 后,您要从负载均衡器中删除 bootstrap 机器。

    X

     

    机器配置服务器

    注意

    负载均衡器必须配置为,从 API 服务器关闭 /readyz 端点到从池中移除 API 服务器实例时最多需要 30 秒。在 /readyz 返回错误或健康后的时间范围内,端点必须被删除或添加。每 5 秒或 10 秒探测一次,有两个成功请求处于健康状态,三个成为不健康的请求是经过良好测试的值。

  2. 应用程序入口负载均衡器 :为应用程序流量从集群外部流提供入口点。OpenShift Container Platform 集群需要正确配置入口路由器。

    配置以下条件:

    • 仅第 4 层负载均衡.这可被称为 Raw TCP 或 SSL Passthrough 模式。
    • 建议根据可用选项以及平台上托管的应用程序类型,使用基于连接的或基于会话的持久性。
    提示

    如果应用程序入口负载均衡器可以看到客户端的真实 IP 地址,启用基于 IP 的会话持久性可以提高使用端到端 TLS 加密的应用程序的性能。

    在负载均衡器的前端和后端配置以下端口:

    表 3.3. 应用程序入口负载均衡器
    port后端机器(池成员)internal外部描述

    443

    默认情况下,运行 Ingress Controller Pod、计算或 worker 的机器。

    X

    X

    HTTPS 流量

    80

    默认情况下,运行 Ingress Controller Pod、计算或 worker 的机器。

    X

    X

    HTTP 流量

    注意

    如果要部署一个带有零计算节点的三节点集群,Ingress Controller Pod 在 control plane 节点上运行。在三节点集群部署中,您必须配置应用程序入口负载均衡器,将 HTTP 和 HTTPS 流量路由到 control plane 节点。

3.2.4.1. 使用用户管理的负载均衡器部署的集群的负载均衡器配置示例

本节提供了一个满足用户管理的负载均衡器部署的集群的负载均衡要求的 API 和应用程序入口负载均衡器配置示例。示例是 HAProxy 负载均衡器的 /etc/haproxy/haproxy.cfg 配置。这个示例不是为选择一个负载平衡解决方案提供建议。

在这个示例中,将相同的负载均衡器用于 Kubernetes API 和应用入口流量。在生产环境中,您可以单独部署 API 和应用程序入口负载均衡器,以便可以隔离扩展每个负载均衡器基础架构。

注意

如果您使用 HAProxy 作为负载均衡器,并且 SELinux 设置为 enforcing,您必须通过运行 setsebool -P haproxy_connect_any=1 来确保 HAProxy 服务可以绑定到配置的 TCP 端口。

例 3.1. API 和应用程序入口负载均衡器配置示例

global
  log         127.0.0.1 local2
  pidfile     /var/run/haproxy.pid
  maxconn     4000
  daemon
defaults
  mode                    http
  log                     global
  option                  dontlognull
  option http-server-close
  option                  redispatch
  retries                 3
  timeout http-request    10s
  timeout queue           1m
  timeout connect         10s
  timeout client          1m
  timeout server          1m
  timeout http-keep-alive 10s
  timeout check           10s
  maxconn                 3000
listen api-server-6443 1
  bind *:6443
  mode tcp
  option  httpchk GET /readyz HTTP/1.0
  option  log-health-checks
  balance roundrobin
  server bootstrap bootstrap.ocp4.example.com:6443 verify none check check-ssl inter 10s fall 2 rise 3 backup 2
  server master0 master0.ocp4.example.com:6443 weight 1 verify none check check-ssl inter 10s fall 2 rise 3
  server master1 master1.ocp4.example.com:6443 weight 1 verify none check check-ssl inter 10s fall 2 rise 3
  server master2 master2.ocp4.example.com:6443 weight 1 verify none check check-ssl inter 10s fall 2 rise 3
listen machine-config-server-22623 3
  bind *:22623
  mode tcp
  server bootstrap bootstrap.ocp4.example.com:22623 check inter 1s backup 4
  server master0 master0.ocp4.example.com:22623 check inter 1s
  server master1 master1.ocp4.example.com:22623 check inter 1s
  server master2 master2.ocp4.example.com:22623 check inter 1s
listen ingress-router-443 5
  bind *:443
  mode tcp
  balance source
  server worker0 worker0.ocp4.example.com:443 check inter 1s
  server worker1 worker1.ocp4.example.com:443 check inter 1s
listen ingress-router-80 6
  bind *:80
  mode tcp
  balance source
  server worker0 worker0.ocp4.example.com:80 check inter 1s
  server worker1 worker1.ocp4.example.com:80 check inter 1s
1
端口 6443 处理 Kubernetes API 流量并指向 control plane 机器。
2 4
bootstrap 条目必须在 OpenShift Container Platform 集群安装前就位,且必须在 bootstrap 过程完成后删除它们。
3
端口 22623 处理机器配置服务器流量并指向 control plane 机器。
5
端口 443 处理 HTTPS 流量,并指向运行 Ingress Controller pod 的机器。默认情况下,Ingress Controller Pod 在计算机器上运行。
6
端口 80 处理 HTTP 流量,并指向运行 Ingress Controller pod 的机器。默认情况下,Ingress Controller Pod 在计算机器上运行。
注意

如果要部署一个带有零计算节点的三节点集群,Ingress Controller Pod 在 control plane 节点上运行。在三节点集群部署中,您必须配置应用程序入口负载均衡器,将 HTTP 和 HTTPS 流量路由到 control plane 节点。

提示

如果您使用 HAProxy 作为负载均衡器,您可以通过在 HAProxy 节点上运行 netstat -nltupe 来检查 haproxy 进程是否在侦听端口 64432262344380

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.