前提条件
このページの手順を進める前に、プラットフォームの前提条件が満たされていることを確認してください。Kubernetes、ArgoCD、Helm、および基盤となる SQL / Redis / SMTP / OCI レジストリ / オブジェクト ストレージ サービスが必要です。以下の Azure 固有の項目は、それらに追加して必要となります。
インストール前に、さらに 2 つのセットアップ作業を完了する必要があります。どちらも、参照先となるインストール変数の説明の後に以下で扱っています。ArgoCD を OCI レジストリに接続するおよび イメージ プル アクセスです。
Azure Key Vault シークレット
Vantage operator は、エイリアスでシークレットを参照します。Azure で最も簡単な構成は、各エイリアスと同じ名前の Key Vault シークレットを作成することです。プロビジョニング処理で別の名前を使用する場合は、vantage.secrets.azure 配下に objects マッピングを指定して対応付けを変更してください。identityMode で選択した ID (インストール変数を参照) には、以下に示すすべてのシークレットに対する読み取りアクセス権が必要です。
エイリアスの完全な一覧 (プラットフォーム、Storage、Databases、OAuth) は、シークレットと Key Vault に記載されています。以下の一覧はこれと同じもので、Azure のインストール向けにここへ再掲しています。
プラットフォーム
ストレージ アカウント接続文字列
各ストレージ型の意味については、Vantage の基本 Documentation を参照してください。
データベース接続文字列
データベースごとに一意のエイリアスを 1 つ設定します。以下のデータベース名はあくまで例です。接続文字列が正しいデータベースを指していれば、プロビジョニング プロセスで生成された任意の名前を使用できます。OAuth
Azure Key Vault の TLS シークレット
以下の PEM 形式の TLS 関連データは、Azure Key Vault に シークレット として保存する必要があります (Key Vault の証明書オブジェクトではありません) 。identityMode で選択した identity には、4 つすべてのシークレットエイリアスに対する読み取りアクセス権が必要です。
最も簡単な方法は、Key Vault に
auth-signing と auth-deactivated という名前の自己署名証明書を 2 つ作成し (Common Name = Vantage の dnsRecord の値) 、その後、上記のエイリアス名に一致する 4 つの Key Vault シークレットを作成することです。別の名前を使用する場合は、secrets 構成で objects マッピングを指定してください。
Secrets Store CSI driver がこれらをどのように pod で利用可能にするかという概念モデルについては、Secrets and Key Vault を参照してください。
インストール変数
インストールコマンドを実行する前に、次の値を用意しておいてください。ArgoCD を OCI レジストリに接続する
ArgoCD は OCI レジストリから Vantage コンポーネントのチャートを取得するため、そのレジストリにアクセスできるよう ArgoCD で接続を設定します。ArgoCD はお客様がインストールして保守するサードパーティ ソフトウェアであるため、この接続は、お客様自身でレジストリを ArgoCD のリポジトリとして登録して作成します。詳しくは、ArgoCD のドキュメントの Private Repositories を参照してください。 Azure では、ArgoCD のドキュメントに記載されている Azure Workload Identity を使用することを推奨します。イメージ プル アクセス
ワークロードがレジストリからイメージをプルできるようにする必要があります。プル アクセスは、次の 2 つの方法のいずれかで設定します。以下のmy-pull-secret と my-service-account は例として使用している名前です。実際の環境に合わせて置き換えてください。
方法 1 (Azure) : AKS の managed identity に AcrPull を付与する。 Azure でのデプロイでは、プル シークレットを設定する代わりに、AKS の managed identity (kubelet ID) に Azure Container Registry への AcrPull を付与することで、設定を簡略化できます。これにより、Step 1 と Step 2 のプル シークレット用 --set フラグは省略できます。
方法 2: Kubernetes のイメージプルシークレット。 レジストリのプル シークレットを作成し (Kubernetes Documentation) 、その後、コンポーネントごとに関連付けます。
ロール割り当て、ServiceAccount、プル シークレットは、お客様自身で作成および管理します。
Step 1: Vantage operator をインストールする
Vantage operator 用の名前空間を選択し (app である必要はありません) 、チャートをインストールします。
AcrPull の代わりに pull secrets (イメージ プル アクセスを参照) を使用する場合は、以下を追記します:
vantage-operator チャートの値を参照してください。
ステップ 2: Vantage をインストールする
選択した名前空間にvantage-selfhosted チャートをインストールし、シークレット構成と OCI 移行設定を指定します:
AcrPull の代わりに pull secrets を使用する場合 (イメージ プル アクセスを参照) 、Vantage のワークロードと移行ジョブ用の pull 構成を追記します:
my-service-account は、$install_namespace に作成する ServiceAccount で、imagePullSecrets にレジストリの pull secret を指定します。migration job では、代わりに source エントリでその pull secret を参照することもできます。
sendgridApiKey を指定すれば、追加のメール設定は不要です。代わりに SMTP を使用するには、次を追記します:
vantage.secrets.azure.identityMode のデフォルトは workloadIdentity です。従来の pod-identity または VM-managed-identity モデルを使用する場合は、Secrets and Key Vault を参照してください。--set フラグは、Vantage カスタムリソース と vantage-selfhosted チャート の fields に直接マッピングされます。
ステップ 3: インストールの進行状況を確認する
Vantage のカスタムリソースがReady になるまで待ちます:
Step 4: Vantage にアクセスする
リソースがReady になったら、Vantage インスタンスには次の場所からアクセスできます。
この時点では、Skill インストーラーのジョブがまだ実行中の可能性があります。Skill のインストール中でも、サインインして Vantage を利用できます。ジョブの進行状況は、ステップ 3 のコマンドで確認してください。
Azure 固有の運用上の注意
- 監視: AKS では、推奨される構成は、Azure Monitor Workspace と Azure Managed Grafana に、Istio mTLS 経由で Vantage をスクレイプする in-mesh Prometheus を組み合わせることです。設定全体については、Azure Managed Monitoringを参照してください。
- Workload Identity: Secrets Store CSI driver の既定の認証モードです。また、OCI 移行ジョブでサポートされている認証シナリオ (Workload Identity + Azure RBAC) の 1 つでもあり、Azure Monitor に remote-write する in-mesh Prometheus でも使用されます。Secrets and Key Vaultを参照してください。
次のステップ
アーキテクチャ
operator + ArgoCD + CRD パターンの仕組み。
監視
in-mesh Prometheus を使用する Azure Monitor Workspace + Managed Grafana。
アップグレード
Vantage 3.0 の各バージョン間を移行するための手動アップグレード ワークフロー。
トラブルシューティング
operator、ArgoCD、Istio、Key Vault でよくある問題。
