

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 安装选项
<a name="installation-options"></a>

安装红帽 OpenShift 的方法主要有两种 AWS：
+ 安装程序预置的基础设施（IPI）— 用户提供基本信息（例如控制面板机器的数量），并且可以为大多数问题选择默认值。如下一节所述，红帽 AWS 命令行 OpenShift 服务实用程序 (`rosa`CLI) 可以放置在 IPI 结构中。
+ 用户配置的基础设施 (UPI) — 所有基础设施组件，例如域名服务器 (DNS)、Amazon 虚拟私有云 (VPCs)、引导计算机和控制平面，都是手动创建的，红帽 OpenShift 安装在该基础设施之上。

两种设置都使用相同的安装程序（`install-config.yaml`），它根据目标和依赖关系安装组件。每个目标都有自己的依赖关系，因此程序可以并行支持多个目标，并确保目标能够成功运行集群。下图显示了一些目标和依赖关系。

![红帽 OpenShift 的目标和依赖关系 AWS](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/red-hat-openshift-on-aws-implementation/images/targets-dependencies.png)


## 每种方法的优缺点
<a name="adv-disadv"></a>


****  

| 安装程序预置的基础设施（IPI） | 用户预置基础的设施（UPI） | 
| --- | --- | 
| 易于安装。 | 复杂；需要一些时间进行设置。 | 
| 不提供太多自定义选项。 | 您可以自定义拓扑和整个基础设施。 | 
| 支持 AWS 和其他公有云选项。 | 支持 VMware 和裸机系统 AWS 以及其他云选项。 | 
| 创建所有基础设施组件，包括负载均衡器和虚拟网络。 | 可以在底层平台不能满足所有要求时使用。（例如，裸机系统不提供负载均衡器。） | 
| 高度自动化。 | 要求您创建整个自动化层来预置底层基础设施。您可以为此使用 AWS CloudFormation 模板。 | 
| 先决条件检查很容易执行。 | 必须仔细验证先决条件。 | 

## IPI 示例 — 使用 `rosa` CLI
<a name="ipi-example1"></a>

红帽 OpenShift 服务 AWS 实现了 IPI 类型的安装，但它提供了其他好处。您可以使用 `rosa` CLI 来管理（更新、删除或配置）红帽 OpenShift AWS 集群和资源。有关更多信息，请参阅[红帽 OpenShift 文档](https://docs.openshift.com/rosa/rosa_getting_started/rosa-getting-started.html)。

要在上配置红帽 OpenShift 集群 AWS，请先安装 `rosa` CLI，并确保 AWS Command Line Interface (AWS CLI) 指向您的 AWS 账户。然后，您可以通过使用类似于以下的命令，使用 `rosa` CLI 执行验证和预置集群。

```
rosa verify permissions [arguments]
rosa download oc

rosa verify quota [arguments]
rosa init --token=<token> 
rosa create cluster --cluster-name=<cluster_name>
```

集群配置完成后，您可以使用 OpenShift命令对其进行验证。

```
oc get nodes (list all nodes if connected to cluster)
oc get ns (list all namespaces)
```

有关详情，请参阅 [OpenShift 文档](https://docs.openshift.com/rosa/cli_reference/openshift_cli/getting-started-cli.html)。

使用这种方法具有以下好处：
+ 易于设置并可快速在 AWS上预置集群。
+ 提供日志记录信息；如果出现任何问题，可轻松进行故障排除。
+ 可以通过命令行验证先决条件。
+ 也可以用于删除和其他操作。

一些可能的问题：
+ 自定义选项可能有限。
+ 需要 C `rosa` LI 和其他基本设置。 AWS CLI
+ IPI 面临的所有挑战也都适用于使用 `rosa` CLI。

## IPI 示例 — 使用 `openshift-install`
<a name="ipi-example2"></a>

`openshift-install` 是一个命令行实用程序，可用于快速创建集群。此命令通过修改 `install-config.yaml` 文件来提供一定的灵活性。本节提供了使用该实用程序的高级步骤。有关详细的安装步骤，请参阅[OpenShift 文档](https://docs.openshift.com/container-platform/4.6/installing/installing_aws/installing-aws-default.html)。

1. 从 [Red Hat 网站](https://console.redhat.com/openshift/install)获取安装程序（需要 Red Hat 账户）。

1. 解压缩安装包。

   ```
   tar xvf openshift-install-linux.tar.gz
   ```

1. 确定安装目录，然后运行 `create cluster` 命令。

   ```
   ./openshift-install create cluster --dir <installation_directory> --log-level=info
   ```

1. 要自定义安装，请生成 `install-config.yaml` 文件。

   ```
   ./openshift-install create install-config --dir <installation_directory>
   ```

下面是来自一个示例 `install-config.yaml` 文件的摘录：有关配置选项，请参阅[OpenShift 文档](https://docs.openshift.com/container-platform/4.7/installing/installing_aws/installing-aws-customizations.html)。

```
      apiVersion: v1
baseDomain: sample.com 
credentialsMode: Mint 
controlPlane:   
  hyperthreading: Enabled 
  name: master
  platform:
    aws:
      zones:
      - us-east-2a
      - us-east-2b
      rootVolume:
        iops: 4000
        size: 500
        type: io1 
      type: m5.xlarge
  replicas: 3
compute: 
- hyperthreading: Enabled 
  name: worker
  platform:
    aws:
      rootVolume:
        iops: 2000
        size: 500
        type: io1 
      type: c5.4xlarge
      zones:
      - us-east-2c
  replicas: 3
metadata:
  name: sample-cluster 
networking:
  clusterNetwork:
  - cidr: 10.128.0.0/14
    hostPrefix: 23
  machineNetwork:
  - cidr: 10.0.0.0/16
  networkType: OpenShiftSDN
  serviceNetwork:
  - 172.30.0.0/16
platform:
  aws:
    region: us-west-2 
    userTags:
      adminContact: jdoe
      costCenter: 7536
    amiID: ami-96c6f8f7 
    serviceEndpoints: 
      - name: ec2
        url: https://vpce-id.ec2.us-west-2.vpce.amazonaws.com
fips: false 
sshKey: ssh-ed25519 AAAA... 
pullSecret: '{"auths": ...}'
```

## UPI 示例 — 在用户 AWS 配置的基础架构上安装
<a name="upi-example"></a>

您可以在单独配置的现有 AWS 基础设施上配置红帽 OpenShift 集群。要配置基础设施，您可以使用 CloudFormation 模板创建 VPC、托管区域、DNS 记录和其他组件。有关详细步骤和 CloudFormation 模板，请参阅[OpenShift 文档](https://docs.redhat.com/en/documentation/openshift_container_platform/4.1/html/installing/installing-on-user-provisioned-aws)。

集群配置完成后，必须批准所有证书签名请求 (CSRs) 才能将工作节点移至`Ready`状态。

```
oc get nodes

NAME      STATUS    ROLES   AGE  VERSION
master-0  Ready     master  63m  v1.13.4+b626c2fe1
master-1  Ready     master  63m  v1.13.4+b626c2fe1
master-2  Ready     master  64m  v1.13.4+b626c2fe1
worker-0  NotReady  worker  76s  v1.13.4+b626c2fe1
worker-1  NotReady  worker  70s  v1.13.4+b626c2fe1
```

您可以使用以下命令一次性批准所有证书。

```
    oc get csr -ojson | jq -r '.items[] | select(.status == {} ) | .metadata.name' | xargs oc adm certificate approve
```

您可以通过使用 `oc` 命令行或从 Red Hat 控制台验证所有运算符是否都在 `Ready` 阶段。

验证后，您可以删除引导资源。您可以根据创建堆栈时提供的名称和名称来确定`stack-name`。 AWS 管理控制台

```
aws cloudformation delete-stack --stack-name <name> 
```

您可以使用以下命令完成集群的预置。

```
./openshift-install --dir=<installation_directory> wait-for install-complete 

INFO Waiting up to 30m0s for the cluster to initialize...
```

在将集群交付给利益相关者之前，请务必检查日志并确认没有错误。