Helm を使用した Apigee Hybrid のインストール: Kubernetes ネイティブなアプローチ
Google Cloud Japan Team
※この投稿は米国時間 2023 年 11 月 30 日に、Google Cloud blog に投稿されたものの抄訳です。
Google Cloud の Apigee API Management を使用すると、Apigee Hybrid を構成することで、独自のデータセンターや任意のパブリック クラウドなど、どこにでも API を自由にデプロイできます。コンテナ化されたランタイム サービスを Kubernetes クラスタでホストして管理することで、Apigee で API を一貫して管理しながら、アジリティと相互運用性を向上できます。
これまで、お客様には Apigee Hybrid のインストールに専用ツールである apigeectl を使用していただいていました。しかしお客様からは、既存のツールを活用して、gitops モデルに従ってインストールを自動化したいとのご要望が寄せられていました。それを受け、このたびは Helm パッケージ マネージャーを使用して Apigee Hybrid(1.11 リリース時点)をインストールする新しい方法をお知らせいたします。Helm を使用すると、Apigee Hybrid のインストールと 2 日目からの運用の両方を自動化するために使用できるツールのエコシステムへの道が拓かれます。
Helm チャートとは何か、それを選択した理由は
Helm チャートは、Kubernetes 上でソフトウェアをパッケージ化し、バージョン付けしてデプロイする方法です。これらは、他の方法に比べて次のような多くの利点があるため、アプリケーションをデプロイするためによく使われる選択肢です。
- 使いやすさ: Helm チャートは、Kubernetes に詳しくないユーザーでも使いやすいものになっています。
- 再現性: Helm チャートを使用すると、デプロイを簡単に再現できます。
- バージョン管理: Helm チャートを使用すると、デプロイしているソフトウェアのバージョンを追跡できます。
- 自動化: Helm チャートを使用して、ソフトウェアのデプロイを自動化できます。
さらに、Helm チャートはユーザーと開発者の大規模なコミュニティによってサポートされているため、利用開始に役立つリソースが豊富にあります。
Helm チャートを選択する際の重要な考慮事項の一つは、Helm チャートが本質的にスティッキー(ステートフル)であるということです。
- オブジェクトが存在しない場合に限り、オブジェクトを作成します。
- オブジェクトが同じ名前の Helm チャートを使用してインストールされた場合に限り、オブジェクトを更新します。
Helm は、Apigee Hybrid の複数のコンポーネント間を簡単に移動するのに役立ちます。Apigee Hybrid のコア コンポーネントは、管理と更新が容易になるように個別のチャートに分割されています。この分離によりリスクが最小限に抑えられ、Apigee 環境の拡張に応じた適応性が強化されて 2 日目からの運用を簡素化できます。
以下は、Apigee Hybrid のコンポーネントの Helm チャートです。
- apigee-operator
- apigee-datastore
- apigee-telemetry
- apigee-redis
- apigee-Ingress-manager
- apigee-org
- apigee environments
- apigee-virtualhost
- apigee-datastore-data-replication
Apigee Hybridで Helm チャートを使用する利点
Apigee Hybridで Helm チャートを使用すると、次のような多くの利点があります。
- Apigee Hybrid のカスタム リソース オブジェクトおよびコンポーネントのデプロイと管理の簡素化
- ネイティブ Kubernetes 統合とサポートツールの堅牢なエコシステム
- 整合性と再現性
- 複数の Kubernetes クラスタにわたる均一で反復可能なデプロイ
- さまざまなソフトウェア開発ライフサイクル クラスタと地域的な生産拡大の管理に最適
Apigee Hybridで Helm チャートを使用する方法
Apigee Hybrid で Helm チャートを使用するには、cert-manager と Apigee Hybrid CRD(カスタム リソース定義)が Kubernetes クラスタにインストールされている必要があります。Kubernetes クラスタへのデプロイに使用されるクライアントに Helm をインストールする必要もあります。
CRD(カスタム リソース定義)の目的と使用
Apigee Hybrid ランタイムは、クラス最高の API 管理ソリューションに期待される機能を提供するため、連携が必要な複数のコンポーネントで構成されています。CRD を使用すると、コンポーネントが正しく設定されていることを確認し、必要なドメイン固有のロジックをマスクして、堅牢で信頼性の高いランタイムを保証できます。
CRD に Helm チャートがない理由
Apigee Hybrid の新しいリリースでは、CRD の更新が必要になる場合があります。現在、Helm チャートは CRD の作成と更新をサポートしていません。これは、CRD の Helm サポートに関連するだけでなく、この手順では CRD をインストールするために昇格されたクラスタ権限(つまり、クラスタ管理者のクラスタ ロール権限)を必要とするため、より簡単な権限管理も可能になります。
Helm チャートを使用して Apigee Hybrid をインストールして管理する方法の詳細な手順については、こちらのガイドをご覧ください。
以下の図は、Helm チャート付き Apigee Hybrid をインストールするときのインストール シーケンスを示しています。
Apigee Hybrid で Helm チャートを使用するためのベスト プラクティス
Apigee Hybrid で Helm チャートを簡単に使用できるようにするために、私たちが見つけたいくつかのベスト プラクティスをご紹介します。
- コードを monorepo に整理する: これにより、コードの管理と Apigee Hybrid 環境への変更のデプロイが容易になります。
- すべてのコンポーネントを同じチャート バージョンにアップグレードする: コンポーネントを異なる時点でアップグレードしないでください。
- Google Cloud の公式 Apigee Hybrid Helm チャートを使用する: この一連のグラフは定期的に維持および更新されます。
- Helm テンプレートを使用して、デプロイをカスタマイズする: これにより、Helm チャート自体を変更することなく、Apigee Hybrid デプロイのライフサイクルを管理できるようになります。
- デプロイを自動化する: これにより、デプロイが整合性のある、再現可能で、アップグレード可能なものになります。
- Apigee Hybrid チャートのデプロイをモニタリングして、すべてのコンポーネントが正常に作成されていることを確認する: チャートをデプロイしても、すべてのコンポーネントと基盤となる Kubernetes リソースがインストールされ、これらが正常であることが必ずしも保証されるわけではありません。自動化のテストをモニタリングおよび構築して、すべてのコンポーネントが期待どおりに表示されることを確認します。
Helm チャートによる自動化
ここで、Helm チャートを使用して Apigee Hybrid のデプロイを自動化できるツールをいくつか見てみましょう。
Helm チャートにより、多数の Apigee Hybrid コンポーネントを作成する際の自動化が導入されます。これは、デプロイ プロセスを合理化し、ヒューマン エラーを減らすのに役立ちます。
Helm チャートは、GitHub、bitbucket などの選択したリポジトリに保存できます。チャートを pull してそれぞれのリソースを作成するには、ArgoCD、ansible、flux などの GitOps スタイルツールを使用できます。また、デフォルト値をオーバーライドするカスタム値や、作成時に各チャートのコンポーネントに適用される構成を設定することもできます。これにより、さまざまな Apigee Hybrid コンポーネントのライフサイクルを作成して管理するためのパイプラインを作ることができます。また、コンポーネントを個別にアップグレードすることもできます。
このセットアップは、開発、ステージング、本番など、複数の環境にわたるお客様の完全なソフトウェア開発ライフサイクルの一部として実装できます。このシナリオでは、パイプラインによって基礎となるインフラストラクチャが作成され、値はカスタムであり、各環境に指定されます。
ArgoCD と Helm を使用した Apigee Hybrid のセットアップについて詳しくは、コミュニティ記事「ArgoCD と Helm を使用した Apigee Hybrid デプロイ」をご覧ください。
Ansible と Helm を使用した Apigee Hybrid デプロイの設定について詳しくは、コミュニティ記事「Apigee Hybrid 管理を Ansible と Helm で高速化する」をご覧ください。
Helm チャートでサポートされる Apigee Hybrid バージョン
Helm チャートは Apigee Hybrid 1.10 で導入されたため、まず、お使いの Apigee Hybrid のバージョンがサポートを提供していることを確認してください。次に、こちらの手順に沿って、Apigeectl ベースのインストールを Helm ベースのインストールに変換する必要があります。
-テクニカル ソリューション コンサルタント Ayo Salawu
-テクニカル ソリューション コンサルタント Greg Kuelgen