

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 安裝選項
<a name="installation-options"></a>

有兩種主要的方法來安裝 Red Hat OpenShift on AWS：
+ 安裝程式佈建的基礎設施 (IPI) – 使用者提供基本資訊 (例如控制平面機器的數目)，並且可以為大多數問題選擇預設值。Red Hat OpenShift Service on AWS 命令列公用程式 (`rosa` CLI) 可以放置在 IPI 結構中，如下一節所述。
+ 使用者佈建的基礎設施 (UPI) – 所有基礎設施元件，例如域名稱伺服器 (DNS)、Amazon 虛擬私有雲端 (VPC)、引導機器和控制平面都是手動建立的，而 Red Hat OpenShift 則安裝在該基礎設施之上。

兩種設定都使用相同的安裝程式 (`install-config.yaml`)，這會根據目標和相依性安裝元件。每個目標都有自己的相依性，因此程式可以平行支援多個目標，並確保目標可以成功執行叢集。下圖顯示了一些目標和相依性。

![Red Hat OpenShift on 的目標和相依性 AWS](http://docs.aws.amazon.com/zh_tw/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>

上的 Red Hat OpenShift Service AWS 實作 IPI 類型的安裝，但提供額外的優勢。您可以使用 `rosa` CLI 來管理 （更新、刪除或佈建） AWS 叢集和資源上的 Red Hat OpenShift。如需詳細資訊，請參閱 [Red Hat OpenShift 文件](https://docs.openshift.com/rosa/rosa_getting_started/rosa-getting-started.html)。

若要在 上佈建 Red Hat 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上佈建叢集。
+ 提供日誌資訊；如果出現任何問題，便於進行疑難排解。
+ 可以透過命令列驗證必要條件。
+ 也可用於刪除和其他操作。

一些可能的問題：
+ 自訂選項可能會受到限制。
+ 需要 `rosa` CLI 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 基礎設施上佈建 Red Hat OpenShift 叢集。若要佈建基礎設施，您可以使用 CloudFormation 範本來建立 VPC、託管區域、DNS 記錄和其他元件。如需詳細步驟和 CloudFormation 範本，請參閱 [OpenShift 文件](https://docs.redhat.com/en/documentation/openshift_container_platform/4.1/html/installing/installing-on-user-provisioned-aws)。

佈建叢集後，必須核准所有憑證簽署請求 (CSR)，才能將工作節點移至 `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...
```

在將叢集交付給利益相關者之前，請務必檢查日誌並確認沒有錯誤。