CNE GCP準備完了:初期環境のブートストラップ
の前提条件を完了したら、Cloud Native Experience (CNE) ブートストラップ プロセスを実行して、クリーンな Google Cloud Platform (GCP) プロジェクトから完全な GKE 環境をプロビジョニングします。
クラウドネイティブエクスペリエンス(CNE)の初期プロビジョニングには、約45分かかります。
ブートストラッププロセスでは、TerraformとCrossplaneを使用して、複数のGCPマネージドサービスとプラットフォームコンポーネントをプロビジョニングします。 プロビジョニングは複数のフェーズにまたがって並行して行われ、すべての依存関係が正常な状態に達した後にのみ、環境が使用可能になります。
最も時間がかかるブロッキング手順は通常次のとおりです。
- Google Kubernetes Engine (GKE) クラスターのプロビジョニング(約15分)
- Cloud SQLデータベースのプロビジョニング(約10分)
- GitOpsプラットフォームのインストール(Argo CD、Crossplane、外部シークレット)(約5分)
- GitOpsリソースの調整(約3分)
- Liferayインフラストラクチャのプロビジョニングとアプリケーションの起動(約15~20分)
Liferay が有効なサービス接続で起動するには、 LiferayInfrastructure リソースが Healthy を報告する必要があります。
プロビジョニング中はブートストラップ処理を中断しないでください。
最初のデプロイメントでは、デフォルト設定を使用してブートストラッププロセスを実行します。
この初期導入により、Terraformで管理されるインフラストラクチャ、Crossplaneリソース、およびArgo CDによるGitOpsの調整を含む、プラットフォームの完全なベースラインが確立されます。
環境の検証が完了したら、必要に応じて本番ワークロードの設定値を調整し、ブートストラッププロセスを再実行できます。
ローカル環境を認証する
スクリプトを実行する前に、Google Cloudでターミナルを認証してください。
-
gcloudで認証する:
gcloud auth login -
アプリケーションのデフォルト認証情報を設定する:
gcloud auth application-default loginTerraformはプロビジョニング時にアプリケーションのデフォルト認証情報を使用します。
プロビジョニング中に oauth2 invalid_grant または invalid_rapt エラーが発生して Terraform が失敗した場合は、アプリケーションのデフォルト認証情報を更新してください。
gcloud auth application-default login
Bootstrapディレクトリを準備する
ブートストラップ処理用の作業ディレクトリを作成します。 このディレクトリには、プロビジョニング中に使用されるブートストラップ構成とダウンロードされたTerraformリソースが保存されます。
mkdir cne-bootstrap
cd cne-bootstrap
touch config.json
Bootstrapを設定する
config.json ファイルは、環境の完全なプロビジョニング動作を定義します。
{
"options": {
"auto_approve": false,
"parallelism": 10,
"provider": "gcp",
"version": "1.0.1"
},
"variables": {
"deployment_name": "liferay-gcp-test",
"liferay_git_repo_url": "https://github.com/clarity/acme-gitops",
"project_id": "your-gcp-project-id",
"region": "us-central1",
"liferay_git_repo_config": {
"auth": {
"credentials_secret_name": "liferay-credentials-gitops"
},
"source_paths": {},
"target": {}
}
}
}
GitOpsリポジトリはArgo CDからアクセス可能である必要があります。
liferay_git_repo_config.auth.credentials_secret_name の値は、前提条件中に作成された Secret Manager のシークレットと一致する必要があります。 設定された値が一致していれば、どのような秘密命名規則を使用しても構いません。
オプション
| オプション | 説明 |
|---|---|
provider | インフラストラクチャプロバイダーを指定します。 有効な値: aws、 gcp。 |
version | Liferayが提供するBootstrapバージョン。 |
auto_approve | true に設定すると確認プロンプトをスキップします。 |
parallelism | Terraformの同時実行操作の最大数を設定します。 デフォルトは 10 です。 APIのレート制限が発生したり、kubeapiが過負荷になったりする場合は、この値を小さくしてください。 |
利用可能なすべての GKE インフラストラクチャおよび GitOps 構成変数の完全なリストについては、 ブートストラップ構成リファレンス を参照してください。
変数
| 変数 | 説明 |
|---|---|
deployment_name | プロビジョニングされたすべてのリソースに使用される識別子。 |
project_id | インフラストラクチャが構築されるGCPプロジェクト。 |
region | すべてのリソースに対応するGCPリージョン。 |
liferay_git_repo_url | GitOpsリポジトリのURL。 |
liferay_git_repo_config | GitOpsの認証およびデプロイ構成。 |
liferay_git_repo_config.source_paths | GitOpsリポジトリのソースマッピング(構造をカスタマイズしない限り、デフォルトのままにしてください)。 |
liferay_git_repo_config.target | Argo CDアプリケーションのターゲット設定(構造をカスタマイズしない限り、デフォルトのままにしてください)。 |
Bootstrapスクリプトを実行する
-
ブートストラッププロセスを実行します。
bash <(curl -sL https://raw.githubusercontent.com/liferay/liferay-portal/master/cloud/scripts/bootstrap.sh)このスクリプトは、Terraformを初期化し、インフラストラクチャをプロビジョニングし、GitOpsプラットフォームとLiferayリソースをデプロイします。
-
auto_approveが無効になっている場合は、プロンプトが表示されたらプロビジョニング手順を確認してください。このプロセスには以下が含まれます
- GKEクラスタのプロビジョニング
- GitOpsプラットフォームの導入(Argo CD、Crossplane、外部シークレット)
- Cloud SQLのプロビジョニング
- Elasticsearch (ECK) のデプロイ
- Liferay環境の初期化
ブートストラッププロセスは冪等性を持つ。 同じ config.json を使用してスクリプトを再実行すると、可能な場合は既存のリソースが再利用され、最後に成功した手順からプロビジョニングが再開されます。
Bootstrapプロセスを再実行する
プロビジョニングが失敗した場合は、 config.json を更新し、同じディレクトリからスクリプトを再実行してください。
-
既存のリソースは、障害の段階に応じて再利用できる場合があります。
-
インフラの一部が既に存在している場合、再試行時に競合が発生する可能性があります。
失敗が続く場合は、再試行する前に環境をクリーンアップしてください。
プロビジョニングまたはGitOps調整中に繰り返し障害が発生する場合は、トラブルシューティングガイドを参照してください。
アクセスアルゴCD
ブートストラップが完了すると、スクリプトはArgo CDの認証情報を出力し、ポートフォワーディングを開始します。
ブラウザで Argo CD を http://localhost:8080 で開きます。 ユーザー名 admin と、ターミナル出力に表示されているパスワードを使用してログインしてください。
後でポートフォワーディングを再起動する必要がある場合は、以下を実行してください。
kubectl port-forward service/argocd-server 8080:443 \
--namespace argocd-system
パスワードを再取得する:
kubectl -n argocd-system get secret argocd-initial-admin-secret \
-o jsonpath="{.data.password}" | base64 --decode
Argo CD ですべてのアプリケーションが 正常 かつ 同期済み に達すると、クラウドネイティブエクスペリエンス環境のプロビジョニングが完了します。 GCPインフラストラクチャ、Kubernetesクラスター、GitOpsプラットフォーム、およびLiferayランタイムは稼働中です。
デプロイメントを確認する
インフラストラクチャとLiferayワークロードを検証します。
kubectl get liferayinfrastructure --all-namespaces
kubectl get pods --all-namespaces -l app=liferay
LiferayInfrastructure リソースは 正常 を報告する必要があります。 Liferay ポッドは Running 状態になり、 Ready と報告する必要があります。
プロビジョニングされたLiferayネームスペースを識別するには:
kubectl get ns | grep liferay
クラウドネイティブエクスペリエンスの設定 に進んでください。