ノート:
- このチュートリアルでは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)アカウントにサインアップまたはサインインします。
- Google AnthosがGCPアカウントで有効になっている。
タスク1: OCIでのKubernetesクラスタの作成
-
Webコンソールの左上隅近くにある
ナビゲーション・メニューをクリックします。
-
「開発者サービス」に移動し、「Kubernetesクラスタ(OKE)」をクリックします。
-
「クラスタの作成」オプションを選択します。
-
「クイック作成」オプションを選択し、「送信」をクリックします。
ノート:これにより、OKEクラスタをデプロイするために必要なすべてのリソースが作成されます。
-
名前を入力し、このクラスタのコンパートメントを選択し、ノード・タイプを「管理対象」として選択します。
-
(オプション)シェイプ、イメージおよびノード数を選択することもできます。
-
「次へ」を2回クリックし、「作成」をクリックします。
タスク2: OCI Cloud Shellへのクラスタの登録
-
クラスタの作成後、このクラスタをOCI Cloud Shell内の
~/.kube/config
ファイルに登録する必要があります。 -
クラスタに移動し、「クラスタへのアクセス」オプションを選択します。
-
これにより、OCI Cloud Shellからクラスタにアクセスする方法に関するステップを含む新しいウィンドウが開きます。ステップに従います。
タスク3: サービス・アカウントの作成
-
クラスタがOCI Cloud Shellに登録されると、このクラスタにアクセスして操作できます。
-
サービス・アカウントを作成するには、このドキュメントの2-4ステップ「Kubeconfigファイルへのサービス・アカウント認証トークンの追加」に従います。
タスク4: OCI Cloud Shellへのクラスタの再登録
サービス・アカウントの作成後、OCI Cloud Shellにクラスタを再度登録する必要があります。より簡単でクリーンな状態を維持するには、次のステップに進む前に現在の構成のバックアップを作成します。
-
~/.kube/config
のバックアップを作成するには、OCI Cloud Shellを開きます。 -
次のコマンドを実行します。
mv ~/.kube/config ~/.kube/config.bkp
-
タスク2: OCI Cloud Shellへのクラスタの登録のステップに従います。
タスク5: OCIからGCPへの~/.kube/configのコピー
タスク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: OCIからGCPへの~/.kube/configのコピーを繰り返してみます。
タスク7: OCIからのトークン取得
タスク3: サービス・アカウントの作成で生成されたトークンを取得します。
-
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|"
-
GCP Cloud ShellでKubeconfigファイルへのサービス・アカウント認証トークンの追加というドキュメントのステップ6-7を実行します。
ノート:残りのタスクでは、GCPのみを使用します。
タスク8: GCPでのサービス・アカウントの作成とJSONキーの取得
-
GCP Cloud Shellを開きます。
-
次のコマンドを実行して、
connect-register-sa
というサービス・アカウントを作成します。gcloud iam service-accounts create connect-register-sa --project PROJECT_ID
ノート: PROJECT_IDを、
connect-register-sa
サービス・アカウントの親にするGCPのクラウド・プロジェクトの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"
ノート:
FLEET_HOST_PROJECT_ID
をGCP PROJECT_ID
に置き換え、SERVICE_ACCOUNT_EMAIL
をconnect-register-sa
サービス・アカウントの電子メールに置き換えます。 -
次のコマンドを実行して、
gkehub.connect
権限を付与します。gcloud projects add-iam-policy-binding PROJECT_ID --member serviceAccount:SERVICE_ACCOUNT_EMAIL --role "roles/gkehub.connect"
ノート:
PROJECT_ID
をGCP PROJECT_ID
に置き換え、SERVICE_ACCOUNT_EMAIL
をconnect-register-sa
サービス・アカウントの電子メールに置き換えます。
タスク10: GCP AnthosへのOKEクラスタの登録
すべての権限が設定されると、Google AnthosでのOKEクラスタの登録を続行できます。
-
Google Anthosへ。
-
「クラスタ」を選択し、「REGISTER EXISTING CLUSTER」オプションを選択します。
-
「外部クラスタの追加」をクリックします。
-
クラスタ名、場所、プロバイダを選択し、「登録コマンドの生成」をクリックします。
-
コマンドをコピーし、cluster-contextをOKEクラスタ・コンテキストに置き換えます(これは
~/.kube/config
ファイルにあります)。service-account-key-fileパスをタスク8: GCPでのサービス・アカウントの作成とJSONキーの取得(connect-register-key.JSON)で作成したJSONファイルへのパスに置き換え、最後にkubeconfig
ファイル・パス(通常は~/.kube/config
)を置き換えます。 -
GCP Cloud Shellでコマンドを実行します。
タスク11: OKEクラスタへのログイン
-
AnthosへのOKEクラスタの登録が完了したら、Anthosからクラスタにログインする必要があります。
-
クラスタにログインするには、タスク3: サービス・アカウントの作成で生成されたトークンを使用します。
関連リンク
謝辞
-
作成者 - Dragos Nicu (シニア・クラウド・エンジニア)
-
コントリビュータ - Andrei Ilas (プリンシパル・クラウド・アーキテクト)
その他の学習リソース
docs.oracle.com/learnで他のラボをご覧いただくか、Oracle Learning YouTubeチャネルでより無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスして、Oracle Learning Explorerになります。
製品ドキュメントについては、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.