在 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. 準備您的工作站
在您的工作站上安裝以下命令列工具:
- **AWS CLI v2:**如需協助,請參閱這些安裝步驟。
- **eksctl:**如需協助,請參閱這些安裝步驟。
- **kubectl:**如需協助,請參閱這些安裝步驟。
- **helm:**如需協助,請參閱這些安裝步驟。
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 安裝命令,請參閱此處。