本頁說明安裝 GKE on AWS 前必須完成的步驟。
環境
如要安裝 GKE on AWS,您需要一個環境,以便安裝及執行各種工具。下列步驟假設您在 Linux 或 macOS 上使用 bash shell。如果無法存取 Bash Shell 環境,可以使用 Cloud Shell。
AWS 需求
如要完成本主題,您需要具備指令列存取權的 AWS 帳戶,以及與使用者叢集位於相同區域的兩個 AWS Key Management Service (KMS) 金鑰。
如要進一步瞭解其他必要的 AWS 資源,請參閱「需求條件」。
設定 AWS
事前準備
填寫本節前,請先完成下列操作:
- 下載並安裝 AWS CLI。執行
aws --version
確認安裝。如果找不到可執行檔,請將aws
工具新增至PATH
。 - 使用
aws configure
設定 AWS IAM 憑證和 AWS 區域。
管理員使用者權限
在 GKE on AWS 中,管理服務的建立者必須具備特定權限。建立管理服務或使用者叢集之前,請先建立或取得符合需求的 AWS IAM 憑證。
建立 KMS 金鑰
GKE on AWS 需要兩個 AWS KMS 金鑰。KMS 金鑰會加密:
- 在安裝程序期間,使用信封式加密保護資料。
- 使用者叢集中的應用程式層密鑰。
請按照下列步驟建立兩個 AWS KMS 金鑰。
指令列
在 AWS 帳戶中建立 KMS 金鑰。
aws kms create-key
輸出內容會包含金鑰的中繼資料。
在上一個指令的輸出內容中,從
Arn
欄位複製金鑰的 Amazon Resource Name (ARN)。舉例來說,us-west-2
地區中的金鑰具有 ARNarn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
。使用
aws kms create-alias
為金鑰建立別名。別名可讓您依名稱管理 AWS KMS 金鑰。aws kms create-alias \ --alias-name=alias/key-name \ --target-key-id=key-arn
針對其他金鑰重複上述步驟。
主控台
- 登入 AWS 控制台。
- 前往 KMS,然後從側欄選取「客戶管理的金鑰」。
- 按一下 [Create Key] (建立金鑰)。
- 保留已選取的預設選項。
- 建立完成後,請從清單中選取金鑰。
- 複製金鑰的 ARN。
- 針對其他金鑰重複上述步驟。
Google Cloud 需求條件
貴機構定義的安全性限制,可能會導致您無法完成下列步驟。如需疑難排解資訊,請參閱「在受限的 Google Cloud 環境中開發應用程式」。
事前準備
請確認您在 Google 帳戶中擁有專案擁有者權限,以便在 Google Cloud 專案中啟用 API,並連結 GKE on AWS 環境。您只會使用「擁有者」權限,在下一節中建立 GKE on AWS 服務帳戶。
安裝 Google Cloud CLI。
您必須為 Google Cloud 專案啟用 GKE Enterprise API。啟用這項 API 後,您就能在 Google Cloud 專案中使用其他 GKE Enterprise 功能。
建立 GKE on AWS 服務帳戶
在本節中,您將為 GKE on AWS 建立三個 IAM 服務帳戶和金鑰。這些服務帳戶如下所示:
名稱 | 角色 | 說明 |
---|---|---|
management-sa
|
gkehub.admin | 管理 Hub 成員資格的權限 |
hub-sa
|
gkehub.connect | 設定使用者叢集與 Hub 之間的連線。 |
node-sa
|
storage.objectViewer | 存取 Container Registry 的權限。 |
指令列
使用 Google Cloud CLI 進行驗證。
gcloud auth login &&\ gcloud auth application-default login
系統會兩次提示您前往
cloud.google.com
,並使用 Google 帳戶進行驗證。使用 gcloud CLI 將 Google Cloud 專案設為環境變數,並設定預設project-id。
export PROJECT_ID=project-id gcloud config set project $PROJECT_ID
將 project-id 的值替換成您的 Google Cloud 專案。
啟用 Google Cloud API。
gcloud services enable anthos.googleapis.com gcloud services enable cloudresourcemanager.googleapis.com gcloud services enable gkehub.googleapis.com gcloud services enable gkeconnect.googleapis.com gcloud services enable logging.googleapis.com gcloud services enable monitoring.googleapis.com gcloud services enable serviceusage.googleapis.com gcloud services enable stackdriver.googleapis.com gcloud services enable storage-api.googleapis.com gcloud services enable storage-component.googleapis.com
執行下列指令,使用
gcloud
建立服務帳戶。gcloud iam service-accounts create management-sa gcloud iam service-accounts create hub-sa gcloud iam service-accounts create node-sa
執行下列指令,下載每個服務帳戶的金鑰。
gcloud
gcloud iam service-accounts keys create management-key.json \ --iam-account management-sa@$PROJECT_ID.iam.gserviceaccount.com gcloud iam service-accounts keys create hub-key.json \ --iam-account hub-sa@$PROJECT_ID.iam.gserviceaccount.com gcloud iam service-accounts keys create node-key.json \ --iam-account node-sa@$PROJECT_ID.iam.gserviceaccount.com
將角色授予管理服務帳戶。
gcloud projects add-iam-policy-binding \ $PROJECT_ID \ --member serviceAccount:management-sa@$PROJECT_ID.iam.gserviceaccount.com \ --role roles/gkehub.admin
將角色授予中樞服務帳戶。
gcloud projects add-iam-policy-binding \ $PROJECT_ID \ --member serviceAccount:hub-sa@$PROJECT_ID.iam.gserviceaccount.com \ --role roles/gkehub.connect
將角色授予節點服務帳戶。
gcloud projects add-iam-policy-binding \ $PROJECT_ID \ --member serviceAccount:node-sa@$PROJECT_ID.iam.gserviceaccount.com \ --role roles/storage.objectViewer
主控台
- 開啟Google Cloud 控制台 API 程式庫頁面。
- 從畫面頂端的下拉式選單中選取偏好的專案。
找出並啟用下列 API。
- Anthos
- Cloud Resource Manager
- Cloud Storage
- Cloud Logging
- Google Cloud Storage JSON API
- GKE Hub
- GKE Connect API
- 服務使用情形
- Stackdriver
- Stackdriver Monitoring
接著,建立服務帳戶,並為
management-sa
服務帳戶指派角色。- 按一下「建立服務帳戶」。
- 命名帳戶管理員,然後按一下「建立」。 系統會顯示「將專案存取權授予這個服務帳戶」畫面。
- 新增 GKE Hub 管理員角色。
- 按一下「繼續」。系統會顯示「將這個服務帳戶的存取權授予使用者」畫面。
- 按一下 [完成]。系統會顯示「Service accounts for project」(專案的服務帳戶) 畫面。
- 找出包含服務帳戶「電子郵件」的資料列:
management-sa@project_id.iam.gserviceaccount.com
。 - 按一下服務帳戶的 more_vert 動作選單,然後選取「管理金鑰」。
- 按一下「Add key」(新增金鑰) 下拉式選單。
- 按一下「建立新的金鑰」。
- 選取「JSON」做為金鑰類型,然後按一下「建立」。瀏覽器會下載服務帳戶金鑰。
- 將檔案重新命名為
management-key.json
。
接著,請建立服務帳戶,並為
hub-sa
服務帳戶指派角色。- 按一下「建立服務帳戶」。
- 將帳戶中心命名為 hub-sa,然後按一下「建立」。 系統會顯示「將專案存取權授予這個服務帳戶」畫面。
- 新增 GKE Hub 連結代理人角色。
- 按一下「繼續」。系統會顯示「將這個服務帳戶的存取權授予使用者」畫面。
- 按一下 [完成]。系統會顯示「Service accounts for project」(專案的服務帳戶) 畫面。
- 找出包含服務帳戶「電子郵件」的資料列:
hub-sa@project_id.iam.gserviceaccount.com
。 - 按一下服務帳戶的 more_vert 動作選單,然後選取「管理金鑰」。
- 按一下「Add key」(新增金鑰) 下拉式選單。
- 按一下「建立新的金鑰」。
- 選取「JSON」做為金鑰類型,然後按一下「建立」。瀏覽器會下載服務帳戶金鑰。
- 將檔案重新命名為
hub-key.json
。
接著,請建立服務帳戶,並為
node-sa
服務帳戶指派角色。- 按一下「建立服務帳戶」。
- 命名帳戶節點 node-sa,然後按一下「建立」。 系統會顯示「將專案存取權授予這個服務帳戶」畫面。
- 新增 Storage 物件檢視者角色。
- 按一下 [完成]。系統會顯示「Service accounts for project」(專案的服務帳戶) 畫面。
- 找出包含服務帳戶「電子郵件」的資料列:
node-sa@project_id.iam.gserviceaccount.com
。 - 按一下服務帳戶的 more_vert 動作選單,然後選取「管理金鑰」。
- 按一下「Add key」(新增金鑰) 下拉式選單。
- 按一下「建立新的金鑰」。
- 選取「JSON」做為金鑰類型,然後按一下「建立」。瀏覽器會下載服務帳戶金鑰。
- 將檔案重新命名為
node-key.json
。
anthos-gke 指令列工具
anthos-gke
是 GKE on AWS 的指令列工具,您可以使用 anthos-gke
建立設定,並安裝管理服務。最新版本為 aws-1.14.1-gke.0。anthos-gke
anthos-gke
指令列工具僅支援 Linux 和 macOS。
從 Cloud Storage 下載二進位檔。
Linux
gcloud storage cp gs://gke-multi-cloud-release/aws/aws-1.14.1-gke.0/bin/linux/amd64/anthos-gke .
macOS
gcloud storage cp gs://gke-multi-cloud-release/aws/aws-1.14.1-gke.0/bin/darwin/amd64/anthos-gke .
更新
anthos-gke
的權限,然後複製到/usr/local/bin
。chmod 755 anthos-gke sudo mv anthos-gke /usr/local/bin
確認版本為
aws-1.14.1-gke.0
anthos-gke version
anthos-gke 指令列工具的權限
如要使用 anthos-gke
指令列工具,執行指令的使用者必須具備 ServiceUsageViewer 和 StorageAdmin 角色。如要將角色新增至 IAM 主體,請執行下列指令:
gcloud projects add-iam-policy-binding PROJECT_NAME \
--member user:USER_NAME \
--role roles/serviceusage.serviceUsageViewer
gcloud projects add-iam-policy-binding PROJECT_NAME \
--member user:USER_NAME \
--role roles/storage.admin
更改下列內容:
PROJECT_NAME
:您的 Google Cloud 專案USER_NAME
:執行anthos-gke
指令列工具的使用者名稱。如果您使用服務帳戶,請使用serviceAccount:SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com
Terraform
anthos-gke
工具會產生 Terraform 設定檔,並呼叫 terraform
指令列工具。
GKE on AWS 需要高於 v0.14.3 的 Terraform 版本。您可以使用下列指令檢查 Terraform 版本:
terraform version
如果沒有 v0.14.3 以上版本,請下載並安裝 Terraform,再建立管理服務。
升級 Terraform
在安裝 GKE on AWS 後升級 Terraform 時,您必須依序升級每個子版本,才能升級 Terraform 二進位檔。
舉例來說,如要將 Terraform 從 v0.12.x 升級至 v0.14.x,您必須暫時安裝 v0.13.x。安裝 v0.13.x 後,請執行 anthos-gke aws
management init
和 anthos-gke aws management apply
。GKE on AWS 會更新設定。然後升級至 v0.14.x。
Kubernetes
GKE on AWS 必須使用 kubectl
1.17 以上版本。如要查看 kubectl
版本,請執行下列指令:
kubectl version --client -o yaml | grep gitVersion
如果沒有 1.17 以上版本,請安裝新版 kubectl
。
後續步驟
- 在專屬虛擬私有雲中安裝管理服務,並使用堡壘主機。
- 整合現有 VPC 中的現有基礎架構。