注意:
- 此教學課程需要存取 Oracle Cloud。若要註冊免費帳戶,請參閱開始使用 Oracle Cloud Infrastructure Free Tier 。
- 它會使用 Oracle Cloud Infrastructure 證明資料、租用戶及區間的範例值。完成實驗室時,請將這些值替代為您雲端環境特定的值。
整合 Oracle Cloud Infrastructure Container Engine for Kubernetes 與 Google Anthos
簡介
Oracle Cloud Infrastructure Container Engine for Kubernetes (OKE) 是一個功能強大的解決方案,適合想要將基礎架構現代化並採用雲端原生方式進行應用程式開發及部署的組織。透過自動調整規模、升級及安全打補丁,OKE 可確保控制層和工作節點之間的可靠作業,進一步減少管理負擔。另一方面,Google Anthos 是一個混合式多雲平台,可讓組織無縫跨不同環境管理及部署應用系統。
OKE 和 Google Anthos 整合了兩全其美的功能,可讓使用者運用這兩種服務的優勢來達到高擴展性、安全、彈性的容器協調解決方案,並降低成本。有了這項整合,使用者便可以在多個雲端和企業內部部署環境輕鬆部署及管理容器化應用系統。
目標
將 OKE 與 Google Anthos 整合。
必要條件
- 註冊或登入您的 Oracle Cloud Infrastructure (OCI) 帳戶。
- 註冊或登入 Google Cloud Platform (GCP) 帳戶。
- 在 GCP 帳號中開啟 Google Anthos。
工作 1:在 OCI 中建立 Kubernetes 叢集
-
按一下 Web 主控台左上角的
導覽功能表。
-
前往開發人員服務,然後按一下 Kubernetes 叢集 (OKE) 。
-
選取建立叢集選項。
-
選取快速建立選項,然後按一下提交。
注意:這將會建立部署 OKE 叢集的所有必要資源。
-
輸入名稱,選取此叢集的區間,然後選取受管理的節點類型。
-
(選擇性) 您也可以選擇「節點」的形狀、影像和數目。
-
按兩次下一步,然後按一下建立。
作業 2:在 OCI Cloud Shell 註冊叢集
-
建立叢集之後,您必須在 OCI Cloud Shell 內的
~/.kube/config
檔案中註冊此叢集。 -
前往叢集並選取存取叢集選項。
-
這會開啟一個包含如何從 OCI Cloud Shell 存取叢集之步驟的新視窗。遵循其步驟。
作業 3:建立服務帳戶
-
將叢集註冊到 OCI Cloud Shell 之後,您便可以存取此叢集並與其互動。
-
若要建立服務帳號,請依照本文件中的步驟 2-4 : Adding a Service Account Authentication Token to a Kubeconfig File 。
作業 4:在 OCI Cloud Shell 重新註冊叢集
服務帳戶建立之後,您必須再次在 OCI Cloud Shell 註冊叢集。為了簡化並更為乾淨,請先建立目前組態的備份,再繼續進行後續步驟。
-
若要建立
~/.kube/config
的備份,請開啟 OCI Cloud Shell。 -
執行下列命令:
mv ~/.kube/config ~/.kube/config.bkp
-
請依照作業 2:在 OCI Cloud Shell 註冊叢集的步驟進行。
作業 5:將 ~/.kube/config 從 OCI 複製到 GCP
將作業 4:在 OCI Cloud Shell 中再次註冊叢集中重新建立的 ~/.kube/config
檔案複製到 GCP Cloud Shell。
-
複製
cat ~/.kube/config
檔案的內容,選取 OCI Cloud Shell 中的所有內容,然後按 Ctrl+c (複製)。 -
前往 GCP Cloud Shell 並執行
vim ~/.kube/config
命令,前往組態檔的底端,然後按 Ctrl+v (貼上)。
作業 6:確認 GCP 中的連線
-
設定好檔案項目之後,請確認連線是否正常運作。在 GCP 和 OCI Cloud Shell 中執行下列命令。
kubectl get nodes
-
如果 IP 符合所有條件,請嘗試重複作業 5:將 ~/.kube/config 從 OCI 複製到 GCP 。
作業 7:從 OCI 取得 TOKEN
取得作業 3:建立服務帳戶中產生的 TOKEN。
-
在 OCI Cloud Shell 執行下列命令:
TOKEN=`kubectl -n kube-system get secret oke-kubeconfig-sa-token -o jsonpath='{.data.token}' | base64 --decode
-
在您取得程式碼之後,執行下列命令。
echo $TOKEN
並複製記號。 -
前往 GCP Cloud Shell 並建立名為
token
的變數。TOKEN="|the token you copied|"
-
請從下列文件執行步驟 6-7 :將服務帳戶認證權杖新增至 GCP Cloud Shell 中的 Kubeconfig 檔案。
注意:對於其餘任務,我們只會使用 GCP。
作業 8:在 GCP 中建立服務帳戶並取得 JSON 金鑰
-
開啟 GCP Cloud Shell。
-
執行下列命令以建立名為
connect-register-sa
的服務帳戶。gcloud iam service-accounts create connect-register-sa --project PROJECT_ID
注意:請將 PROJECT_ID 取代為 GCP 中要作為
connect-register-sa
服務帳戶父項的雲端專案 ID。 -
執行下列命令以建立 JSON 金鑰。
gcloud iam service-accounts keys create connect-register-key.json --iam-account SERVICE_ACCOUNT_EMAIL
注意:請將 SERVICE_ACCOUNT_EMAIL 取代為
connect-register-sa
服務帳戶的電子郵件地址。
任務 9:將必要的權限授予服務帳戶
對於將安裝在 OKE 叢集中的 gpc-cloud-agent
,若要與 GCP Anthos 通訊,我們需要為剛才建立的服務帳戶授予一些額外權限。
-
執行下列命令以授予
gkehub.editor
權限。gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" --role "roles/gkehub.editor"
注意:使用您的
connect-register-sa
服務帳戶電子郵件,將FLEET_HOST_PROJECT_ID
取代為您的GCP PROJECT_ID
和SERVICE_ACCOUNT_EMAIL
。 -
執行下列命令以授予
gkehub.connect
權限。gcloud projects add-iam-policy-binding PROJECT_ID --member serviceAccount:SERVICE_ACCOUNT_EMAIL --role "roles/gkehub.connect"
注意:使用您的
connect-register-sa
服務帳戶電子郵件,將PROJECT_ID
取代為您的GCP PROJECT_ID
和SERVICE_ACCOUNT_EMAIL
。
作業 10:在 GCP Anthos 中登錄 OKE 叢集
一旦我們具備所有的權限,就可以繼續在 Google Anthos 註冊 OKE 叢集。
-
前往 Google Anthos。
-
選取叢集,然後選取 REGISTER EXISTING CLUSTER 選項。
-
按一下 ADD EXTERNAL CLUSTER 。
-
選取叢集名稱、位置、提供者,然後按一下 GENERATE REGISTRATION COMMAND 。
-
複製指令並將 cluster-context 取代為 OKE cluster-context (可以在
~/.kube/config
檔案中找到),然後將 service-account-key-file 路徑取代為在 任務 8:在 GCP 中建立服務帳戶並取得 JSON 金鑰 (connect-register-key.JSON),最後再取代kubeconfig
檔案路徑 (通常是~/.kube/config
)。 -
在 GCP Cloud Shell 中執行命令。
作業 11:登入 OKE 叢集
-
在 Anthos 註冊 OKE 叢集之後,您必須從 Anthos 登入叢集。
-
您可以使用任務 3:建立服務帳戶中產生的 TOKEN 登入叢集。
相關連結
確認
-
作者 - Dragos Nicu (資深雲端工程師)
-
貢獻者 - Andrei Ilas (主要雲端架構師)
其他學習資源
探索 docs.oracle.com/learn 的其他實驗室,或者存取更多 Oracle Learning YouTube 頻道上的免費學習內容。此外,請瀏覽 education.oracle.com/learning-explorer 以成為 Oracle Learning 檔案總管。
如需產品文件,請造訪 Oracle Help Center 。
Integrate Oracle Cloud Infrastructure Container Engine for Kubernetes with Google Anthos
F80662-01
April 2023
Copyright © 2023, Oracle and/or its affiliates.