デプロイメント・モデル
デプロイメント・モデルは、クラスター間のアプリケーション・デプロイメント・プロセスを理解するのに役立ちます。
プッシュ・ベースのデプロイメント
プッシュ・ベースのデプロイメント・モデルは、アプリケーションを単一クラスターにデプロイします。 デプロイメントパイプラインはクラスターに接続し、デプロイメントファイルを適用します。 このモデルでは、クラスターへのオペレーターやエージェントのインストールは一切必要ありません。
デプロイメントパイプラインからターゲットクラスターに対して実行できるデプロイメントツールであれば、どれでも使用できます。例えば:
- kubectl (または、 Red Hat OpenShift on IBM Cloud の場合は
oc)を使用して、 Kubernetes のマニフェストを適用します。 - Helm チャートのリリースをインストールまたはアップグレードするには。 このチャートは、他のデプロイメント資産と同様に、インベントリリポジトリに保存することができます。
デプロイスクリプトはデプロイリポジトリの一部であり、アプリケーションやクラスタの要件に合わせてカスタマイズすることができます。 DevSecOps デプロイメント処理を網羅した、 コモンズ・ライブラリ と呼ばれるヘルパースクリプトを提供しています。
プル・ベースのデプロイメント
プル・ベースのデプロイメント・モデルは、マルチクラスター・アプリケーション・デプロイメントに適しています。 このモデルでは、複数のクラスターにデプロイするためのデプロイメント・ツールとして IBM Cloud Satellite Config を使用します。 詳しくは、 Understanding Satellite Config を参照してください。
デプロイメントパイプラインは、各クラスターに接続されていません。 その代わりに、デプロイメントファイルを Satellite Configに公開し、各クラスター上で実行されるエージェントがそれらを取得します。 同じデプロイメントを受け取るクラスターは、「 Satellite 」クラスターグループにまとめられます。
Satellite この設定では、 Kubernetes のリソース定義がデプロイされます。 アプリケーションが Helm チャートまたは Kustomize オーバーレイとしてパッケージ化されている場合は、まず、 helm template や kustomize build などを使用して、それを Kubernetes マニフェストに変換し、変換されたマニフェストを構成バージョンとしてアップロードしてください。
プル・ベースのデプロイメントの場合は、以下の手順を実行します。
- デプロイメントファイルに必要な Satellite の設定およびそのバージョンを作成または更新します。
- 「 Satellite 」の設定およびデプロイが必要なバージョンを使用して、「 Satellite 」の構成サブスクリプションを作成または更新します。
- サブスクリプションが更新されると、クラスターにインストールされているRazeeエージェントが、 Satellite Configから最新のデプロイメントを取得し、それらをクラスター全体にデプロイします。
導入モデルの選定
| 考慮事項 | プッシュ・ベースのデプロイメント | プル・ベースのデプロイメント |
|---|---|---|
| ターゲット | 単一クラスター | クラスターの集合 |
| デプロイメント・ツール | kubectl、 oc、 Helm、 Kustomize、またはパイプライン内で実行される任意のツール |
Satellite Config |
| クラスタ上のコンポーネント | なし | Satellite 設定エージェント |
| クラスタへのアクセス | パイプラインには、クラスターへの認証情報が必要です | クラスター上のエージェントがデプロイメントを取得し、パイプラインがアクセスする必要があるのは Satellite の構成のみです |
| Helm チャート | 以下を使用して直接インストールまたはアップグレードしました Helm | アップロード前にマニフェストに変換されました |
デプロイ先を選択する方法の詳細については、「 ターゲットへのアプリケーションのデプロイ 」を参照してください。