跳至主要内容

在 Amazon EKS 上安裝 Rancher

本頁面介紹如何在 Amazon EKS 叢集上安裝 Rancher。您也可以透過 AWS Marketplace 安裝 Rancher。

如果您已經擁有 EKS Kubernetes 叢集,請跳到有關安裝 ingress 的步驟。然後按照此頁面上的說明安裝 Rancher Helm chart。

為 Rancher 伺服器建立 EKS 叢集​

在本節中,您將使用命令列工具安裝具有 ingress 的 EKS 叢集。如果您想在 EKS 上試用 Rancher 時使用較少的資源,本指南可能會很有用。

前置條件:
  • 您應該已經擁有 AWS 帳戶。
  • 建議使用 IAM 使用者而不是 root AWS 帳戶。您需要 IAM 使用者的存取金鑰和秘密金鑰來設定 AWS 命令列介面。
  • IAM 使用者需要官方 eksctl 文件中描述的最低 IAM 政策。

1. 準備您的工作站​

在您的工作站上安裝以下命令列工具:

2. 設定 AWS CLI​

要設定 AWS CLI,請執行以下命令:

aws configure

然後輸入以下值:

值描述
AWS Access Key ID具有 EKS 權限的 IAM 使用者的存取金鑰憑證。
AWS Secret Access Key具有 EKS 權限的 IAM 使用者的秘密金鑰憑證。
Default region name叢集節點將位於的 AWS 區域。
Default output format輸入 json。

3. 建立 EKS 叢集​

要建立 EKS 叢集,請執行以下命令。使用適用於您使用案例的 AWS 區域。選擇 Kubernetes 版本時,請務必先參考支援矩陣以找到已針對您的 Rancher 版本驗證的最高 Kubernetes 版本。

注意: 如果您要從較舊版本的 Kubernetes 更新到 Kubernetes v1.22 或更高版本,您還需要更新 ingress-nginx。

eksctl create cluster \
--name rancher-server \
--version <VERSION> \
--region us-west-2 \
--nodegroup-name ranchernodes \
--nodes 3 \
--nodes-min 1 \
--nodes-max 4 \
--managed

叢集將需要一些時間透過 CloudFormation 部署。

4. 測試叢集​

要測試叢集,請執行:

eksctl get cluster

結果應類似於以下內容:

eksctl get cluster
2021-03-18 15:09:35 [ℹ] eksctl version 0.40.0
2021-03-18 15:09:35 [ℹ] using region us-west-2
NAME REGION EKSCTL CREATED
rancher-server-cluster us-west-2 True

5. 安裝 Ingress​

叢集需要一個 Ingress,以便可以從叢集外部存取 Rancher。

要確保您選擇正確的 Ingress-NGINX Helm chart,首先在 Kubernetes/ingress-nginx 支援表中找到與您的 Kubernetes 版本相容的 Ingress-NGINX version。

然後,透過執行以下命令列出可用的 Helm chart:

helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm repo update
helm search repo ingress-nginx -l

helm search 命令的輸出包含一個 APP VERSION 欄位。此欄位下的版本等同於您之前選擇的 Ingress-NGINX version。使用應用程式版本,選擇一個與您的 Kubernetes 安裝相容的應用程式捆綁的 chart 版本。例如,如果您有 Kubernetes v1.23,您可以選擇 v4.6.0 Helm chart,因為 Ingress-NGINX v1.7.0 與該 chart 捆綁在一起,而 v1.7.0 與 Kubernetes v1.23 相容。如有疑問,請選擇最新的相容版本。

現在您知道需要哪個 Helm chart version,請執行以下命令。它安裝一個帶有 Kubernetes 負載平衡器服務的 nginx-ingress-controller:

helm upgrade --install \
ingress-nginx ingress-nginx/ingress-nginx \
--namespace ingress-nginx \
--set controller.service.type=LoadBalancer \
--version 4.6.0 \
--create-namespace

6. 取得負載平衡器 IP​

要取得負載平衡器的位址,請執行:

kubectl get service ingress-nginx-controller --namespace=ingress-nginx

結果應類似於以下內容:

NAME                       TYPE           CLUSTER-IP     EXTERNAL-IP                                                              PORT(S)
AGE
ingress-nginx-controller LoadBalancer 10.100.90.18 a904a952c73bf4f668a17c46ac7c56ab-962521486.us-west-2.elb.amazonaws.com 80:31229/TCP,443:31050/TCP
27m

儲存 EXTERNAL-IP。

7. 設定 DNS​

前往 Rancher 伺服器的外部流量需要導向到您建立的負載平衡器。

設定 DNS 以指向您儲存的外部 IP。此 DNS 將用作 Rancher 伺服器 URL。

有許多有效的方法可以設定 DNS。如需協助,請參閱 AWS 文件中有關將流量路由到 ELB 負載平衡器的內容。

8. 安裝 Rancher Helm Chart​

接下來,按照此頁面上的說明安裝 Rancher Helm chart。在任何 Kubernetes 發行版上安裝 Rancher 的 Helm 說明都是相同的。

安裝 Rancher 時,使用上一步驟中的 DNS 名稱作為 Rancher 伺服器 URL。它可以作為 Helm 選項傳入。例如,如果 DNS 名稱是 rancher.my.org,您可以使用選項 --set hostname=rancher.my.org 執行 Helm 安裝命令。

在此設定上安裝 Rancher 時,您還需要將以下值傳遞到 Rancher Helm 安裝命令中,以設定用於 Rancher ingress 資源的 ingress controller 名稱:

--set ingress.ingressClassName=nginx

有關您選擇的憑證選項的 Helm 安裝命令,請參閱此處。