14.10. 创建用于 AWS 的安装文件


要在 Amazon Web Services (AWS) 上安装 OpenShift Container Platform 并使用 AWS Local Zones,您必须生成安装程序部署集群所需的文件,并进行修改,以便集群只创建要使用的机器。您可以生成和自定义 install-config.yaml 文件,并为该文件配置添加区域子网。

14.10.1. 集群安装的最低资源要求

每台集群机器都必须满足以下最低要求:

表 14.1. 最低资源要求
机器操作系统vCPU [1]虚拟内存Storage每秒输入/输出 (IOPS) [2]

bootstrap

RHCOS

4

16 GB

100 GB

300

Control plane(控制平面)

RHCOS

4

16 GB

100 GB

300

Compute

RHCOS、RHEL 8.6 及更新版本 [3]

2

8 GB

100 GB

300

  1. 当未启用并发多线程 (SMT) 或超线程时,一个 vCPU 相当于一个物理内核。启用后,使用以下公式来计算对应的比例:(每个内核数的线程)× sockets = vCPU。
  2. OpenShift Container Platform 和 Kubernetes 对磁盘性能非常敏感,建议使用更快的存储速度,特别是 control plane 节点上需要 10 ms p99 fsync 持续时间的 etcd。请注意,在许多云平台上,存储大小和 IOPS 可一起扩展,因此您可能需要过度分配存储卷来获取足够的性能。
  3. 与所有用户置备的安装一样,如果您选择在集群中使用 RHEL 计算机器,则负责所有操作系统生命周期管理和维护,包括执行系统更新、应用补丁和完成所有其他必要的任务。RHEL 7 计算机器的使用已弃用,并已在 OpenShift Container Platform 4.10 及更新的版本中删除。
注意

从 OpenShift Container Platform 版本 4.13 开始,RHCOS 基于 RHEL 版本 9.2,它更新了微架构要求。以下列表包含每个架构需要的最小指令集架构 (ISA):

  • x86-64 体系结构需要 x86-64-v2 ISA
  • ARM64 架构需要 ARMv8.0-A ISA
  • IBM Power 架构需要 Power 9 ISA
  • s390x 架构需要 z14 ISA

如需更多信息,请参阅 RHEL 架构

如果平台的实例类型满足集群机器的最低要求,则 OpenShift Container Platform 支持使用它。

其他资源

14.10.2. 为 AWS 测试的实例类型

以下 Amazon Web Services (AWS) 实例类型已使用 OpenShift Container Platform 测试,以用于 AWS Local Zones。

注意

将以下图中包含的机器类型用于 AWS 实例。如果您使用没有在图中列出的实例类型,请确保使用的实例大小与集群安装"最小资源要求"中列出的最少资源要求匹配。

例 14.3. 基于 AWS 本地区的 64 位 x86 架构的机器类型

  • c5.*
  • c5d.*
  • m6i.*
  • m5.*
  • r5.*
  • t3.*

其他资源

  • 如需有关 AWS Local Zones 和支持的实例类型和服务的更多信息,请参阅 AWS 文档中的 AWS Local Zones 功能

14.10.3. 创建安装配置文件

生成并自定义安装程序部署集群所需的安装配置文件。

先决条件

  • 已获取 OpenShift Container Platform 安装程序和集群的 pull secret。
  • 使用红帽发布的附带 Red Hat Enterprise Linux CoreOS(RHCOS)AMI 检查您是否将集群部署到一个区域。如果您要部署到需要自定义 AMI 的区域,如 AWS GovCloud 区域,您必须手动创建 install-config.yaml 文件。

流程

  1. 创建 install-config.yaml 文件。

    1. 进入包含安装程序的目录并运行以下命令:

      $ ./openshift-install create install-config --dir <installation_directory> 1
      1
      对于 <installation_directory>,请指定要存储安装程序创建的文件的目录名称。
      重要

      指定一个空目录。有些安装资产,如 bootstrap X.509 证书的过期间隔较短,因此不得重复使用安装目录。如果要重复使用另一个集群安装中的单个文件,您可以将它们复制到您的目录中。但是,安装资产的文件名可能会在发行版本间有所变化。从以前的 OpenShift Container Platform 版本中复制安装文件时请小心。

    2. 在提示符处,提供云的配置详情:

      1. 可选: 选择用于访问集群机器的 SSH 密钥。

        注意

        对于您要在其上执行安装调试或灾难恢复的生产环境 OpenShift Container Platform 集群,请指定 ssh-agent 进程使用的 SSH 密钥。

      2. 选择 aws 作为目标平台。
      3. 如果计算机上没有保存 AWS 配置集,请为您配置用于运行安装程序的用户输入 AWS 访问密钥 ID 和 secret 访问密钥。

        注意

        AWS 访问密钥 ID 和 secret 访问密钥存储在安装主机上当前用户主目录中的 ~/.aws/credentials 中。如果文件中不存在导出的配置集凭证,安装程序会提示您输入凭证。您向安装程序提供的所有凭证都存储在文件中。

      4. 选择要将集群部署到的 AWS 区域。您指定的区域必须是包含您为 AWS 帐户选择的区域相同的区域。
      5. 选择您为集群配置的 Route 53 服务的基域。
      6. 为集群输入描述性名称。
      7. 粘贴 Red Hat OpenShift Cluster Manager 中的 pull secret
  2. 可选:备份 install-config.yaml 文件。

    重要

    install-config.yaml 文件会在安装过程中消耗掉。如果要重复使用该文件,您必须立即备份该文件。

14.10.4. AWS 本地区的边缘计算池

OpenShift Container Platform 4.12 引入了一个新的计算池 edge,用于在远程区中使用。边缘计算池配置在 AWS Local Zone 位置之间很常见。但是,由于 Local Zone 资源上的 EC2 和 EBS 等资源的类型和大小限制,创建的默认实例类型可能与传统的 worker 池不同。

Local Zone 位置的默认 Elastic Block Store (EBS) 是 gp2,它与常规 worker 池不同。根据区上的实例产品,边缘计算池中的每个 Local Zone 使用的实例类型可能与 worker 池不同。

边缘计算池创建新的标签,供开发人员用来将应用程序部署到 AWS Local Zone 节点上。新标签包括:

  • node-role.kubernetes.io/edge=''
  • machine.openshift.io/zone-type=local-zone
  • machine.openshift.io/zone-group=$ZONE_GROUP_NAME

默认情况下,只有在用户在列表 platform.aws.subnets 中添加 AWS Local Zone 子网 ID 时,系统才会创建边缘计算池清单。

默认情况下,边缘计算机器集具有 NoSchedule 污点,以防止将常规工作负载分散到这些机器上。只有 pod 规格中定义了容限,用户才能运行用户工作负载。

以下示例演示了使用边缘机器池的 install-config.yaml 文件。

使用带有默认设置的边缘池的配置

apiVersion: v1
baseDomain: devcluster.openshift.com
metadata:
  name: ipi-localzone
platform:
  aws:
    region: us-west-2
    subnets:
      - publicSubnetId-1
      - publicSubnetId-2
      - publicSubnetId-3
      - privateSubnetId-1
      - privateSubnetId-2
      - privateSubnetId-3
      - publicSubnetId-LocalZone-1
  pullSecret: '{"auths": ...}'
sshKey: ssh-ed25519 AAAA...

使用自定义实例类型使用边缘池的配置

apiVersion: v1
baseDomain: devcluster.openshift.com
metadata:
  name: ipi-localzone
compute:
- name: edge
  platform:
    aws:
      type: m5.4xlarge
platform:
  aws:
    region: us-west-2
    subnets:
      - publicSubnetId-1
      - publicSubnetId-2
      - publicSubnetId-3
      - privateSubnetId-1
      - privateSubnetId-2
      - privateSubnetId-3
      - publicSubnetId-LocalZone-1
pullSecret: '{"auths": ...}'
sshKey: ssh-ed25519 AAAA...

实例类型因位置而异。要验证集群将在其中运行的区域中的可用性,请参阅 AWS 文档。

使用自定义 EBS 类型使用边缘池的配置

apiVersion: v1
baseDomain: devcluster.openshift.com
metadata:
  name: ipi-localzone
compute:
- name: edge
  platform:
    aws:
      rootVolume:
        type: gp3
        size: 120
platform:
  aws:
    region: us-west-2
    subnets:
    - publicSubnetId-1
    - publicSubnetId-2
    - publicSubnetId-3
    - privateSubnetId-1
    - privateSubnetId-2
    - privateSubnetId-3
    - publicSubnetId-LocalZone-1
pullSecret: '{"auths": ...}'
sshKey: ssh-ed25519 AAAA...

EBS 类型因位置而异。查看 AWS 文档以验证集群将在其中运行的 Local Zone 中的可用性。

14.10.4.1. Edge 计算池和 AWS 本地区域

边缘 worker 节点是在 AWS Local Zones 位置中运行的污点 worker 节点。

在部署使用本地区的集群时:

  • 本地区域中的 Amazon EC2 实例比可用区中的 Amazon EC2 实例的成本更高。
  • 应用程序和最终用户之间的延迟较低在本地区域中,并且可能因位置而异。例如,对于某些工作负载,在地区与可用性区域之间混合了路由器,则对一些工作负载会有一个延迟影响。
  • 根据网络插件,如果在 install-config.yaml 上检测到 Local Zone 子网时,cluster-network 最大传输单元 (MTU) 会自动调整为 AWS 的限制。例如,对于 OVN-Kubernetes,调整的值为 1200,OpenShift SDN 为 1250。如果启用了其他功能,则需要手动调整 MTU。
重要

通常,本地区中的 Amazon EC2 实例和 Region 中的 Amazon EC2 实例之间的最大传输单元 (MTU) 为 1300。如需更多信息,请参阅 AWS 文档中的 Local Zones 如何工作。对于开销,集群网络 MTU 必须总是小于 EC2 MTU。具体开销由您的网络插件决定,例如:

  • OVN-Kubernetes: 100 字节
  • OpenShift SDN: 50 字节

网络插件可以提供额外的功能,如 IPsec,它们还必须减少 MTU。如需更多信息,请参阅文档。

14.10.5. 修改安装配置文件以使用 AWS 本地区域子网

修改 install-config.yaml 文件,使其包含 AWS Local Zones 子网。

先决条件

  • 您使用"在 AWS Local Zones 中创建子网"流程创建子网。
  • 您使用"创建安装配置文件"流程创建了 install-config.yaml 文件。

流程

  • 添加 VPC 和 Local Zone 子网作为 platform.aws.subnets 属性的值。例如:

    ...
    platform:
      aws:
        region: us-west-2
        subnets: 1
        - publicSubnetId-1
        - publicSubnetId-2
        - publicSubnetId-3
        - privateSubnetId-1
        - privateSubnetId-2
        - privateSubnetId-3
        - publicSubnetId-LocalZone-1
    ...
    1
    在可用性和本地区域中创建的子网列表。

其他资源

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.