Verrazzanoのアーキテクチャ
各Verrazzanoインストールは、(様々な環境でホストできる) Kubernetesクラスタの上に配置されます。VerrazzanoはKubernetes APIに依存して、クラスタからコンポーネントに情報をプルし、コンポーネントからクラスタに指示をプッシュします。具体的には、VerrazzanoはKubernetes APIの拡張機能であるカスタム・リソースを使用して、Kubernetes環境を構成し、追加機能を提供します。
VerrazzanoはKubernetesを拡張するため、kubectlやkubeadmなど、すでに使い慣れている多くのKubernetes管理ツールを引き続き使用できます。
各Kubernetesクラスタには、コンテナ・ネットワーク・インタフェース(CNI)とコンテナ・ストレージ・インタフェース(CSI)プラグインの両方が必要です。
Verrazzanoインストールの内部
Verrazzanoは、多数の個別のコンポーネントで構成されています。これらのコンポーネント間で調整するために、Verrazzanoでは、サービス間の情報のフローを管理するインフラストラクチャ・レイヤーであるIstioサービス・メッシュを使用します。ほとんどのVerrazzanoコンポーネントは、Istioサービス・メッシュ内から動作し、コンポーネント間の高速で信頼性が高く安全な通信を促進するために、Istioサービス・メッシュに依存しています。Istioは、ロード・バランシング、トラフィック制御、可観測性などの便利な機能も提供しています。
IstioがVerrazzanoでトラフィックおよびネットワーク・セキュリティを処理する方法の詳細は、「ネットワーキング」を参照してください。
サービス・メッシュ内のコンポーネントは、大まかに次のカテゴリに編成されます:
- バックアップおよびリストア
- 証明書管理
- クラスタ管理
- GitOps
- アイデンティティ管理
- 可観測性
- Verrazzanoオペレータ
Verrazzanoに含まれるコンポーネントのリストは、「インストール済ソフトウェア」を参照してください。適用するインストール・プロファイルによっては、一部のコンポーネントはデフォルトで有効になっていません。
サービス・メッシュ内にないVerrazzanoコンポーネントの1つがVerrazzanoプラットフォーム・オペレータであり、インストール(およびアンインストール)、アップグレード、トラブルシューティングなど、Verrazzano自体の管理を処理するカスタムKubernetesオペレータです。また、プラットフォーム・オペレータはサービス・メッシュと連携して、コンポーネントとKubernetesクラスタ間のアクションを同期します。
アプリケーション・デプロイメント
Verrazzanoでは、様々なアプリケーション・タイプを管理できます。アプリケーションは、そのタイプに応じて、Verrazzanoのアーキテクチャ内の異なる領域からデプロイされます。
Open Application Model (OAM)仕様に準拠するアプリケーションは、サービス・メッシュ内にデプロイされます。他のコンポーネントに近接しているため、自動化および構成のメリットが大幅に得られます。
その他のアプリケーション・タイプは、Kubernetesクラスタにデプロイされます。Verrazzanoの機能は引き続き使用できますが、追加の構成が必要になる場合があります。どのアプリケーション・タイプを使用する場合でも、Verrazzanoの包括的な管理ソリューションを利用できます。
マルチクラスタ・サポート
Verrazzanoは、単一およびマルチクラスタのKubernetes環境で使用できます。マルチクラスタ環境には、アプリケーションのデプロイおよびモニタリングの中心的な管理ポイントである管理クラスタと、管理クラスタで構成を参照する1つ以上の管理対象クラスタがあります。
Verrazzanoはすべてのクラスタにインストールされます。管理クラスタはdev
またはprod
プロファイルのいずれかでインストールされますが、管理対象クラスタは、デフォルトで有効になっているコンポーネントが少なく、管理クラスタへの登録が必要なmanaged-cluster
プロファイルを使用します。詳細は、「インストール・プロファイル」を参照してください。
登録後、管理対象クラスタはロギングおよびメトリック・データを管理クラスタに送信し、HTTPS経由で構成手順を受け取ります。