Continuous Delivery および Satellite 構成を使用したクラスターへのアプリのデプロイ
GitHub または GitLab のリポジトリにあるデプロイメントなどの Kubernetes リソースを、 IBM Cloud® Continuous Delivery および Satellite Configを使用して複数のクラスターにデプロイします。
目標
このチュートリアルでは、 Continuous Delivery を使用してアプリを複数のクラスターにデプロイし、オープンなツールチェーンを構築する方法について学びます。 また、ツールチェーンが Continuous Delivery サービスにどのように実装されているか、および Continuous Delivery専用ツールチェーン・テンプレートを使用して単純な Web アプリをデプロイする方法についても説明します。
Satellite 構成を使用して、クラスター・グループにデプロイする Kubernetes リソースを指定する構成を作成します。 次に、 Continuous Delivery パイプラインをセットアップして、構成に変更が加えられるたびにクラスターのグループ全体にこれらのリソースをデプロイします。
このチュートリアルで使用するツールチェーンは、 Satellite ロケーションでデプロイメントを管理することにより、継続的デリバリー機能に関する標準の DevOps プラクティスを実装します。 クラスタを作成し、それらを Satellite のクラスタグループに関連付けた後、ツールチェーンを作成してデプロイ用ソースコードを変更し、その変更を GitHub リポジトリにプッシュすることができます。 リポジトリーに変更をプッシュすると、Tekton ベースのデリバリー・パイプラインによってコードがクラスターに自動的にデプロイされます。
対象読者
このチュートリアルは、 Continuous Delivery ツールチェーンおよび Satellite Configを使用して、初めてリソースをデプロイする管理者向けです。
前提条件
このチュートリアルを始める前に、以下のリソースが揃っていることを確認してください。
-
IBM Cloud アカウント。 IBM Cloud アカウントのタイプによっては、特定のリソースへのアクセスが制限される場合があります。 アカウント制限によっては、一部の導入戦略で必要となる特定の機能が利用できない場合があります。 IBM Cloud アカウント詳細については、 IBM Cloud アカウントの設定 および アカウントのアップグレード を参照してください。
-
Satellite に登録されている Satellite クラスター、または IBM Cloud クラスター。
Satellite クラスターをお持ちでない場合は、 Satellite から Red Hat OpenShift クラスターを登録 できます。
-
ツールチェーンが必要とするクラスターを含む Satellite クラスター・グループ 。 このチュートリアルのツールチェーンは、 Red Hat OpenShift クラスターのみを含む Satellite クラスター・グループをサポートします。
-
画像プルする秘密 クラスター名前空間にアプリケーション・イメージをデプロイするために必要なイメージ・プル・シークレットを構成してください。 詳しくは、専用レジストリーからイメージをプルすることをクラスターに許可する方法についてを参照してください。
-
リソースをデプロイするための Satellite の場所。
-
Continuous Delivery サービスのインスタンスです。
始めに
IBM Cloud でツールチェーンの作成を開始します。
- IBM Cloud 資格情報を使用して IBM Cloud ツールチェーン にログインします。
- ツールチェーンのリソース・グループとロケーションを選択します。
- [ ツールチェーンの作成 ] をクリックします。
- 「ツールチェーンの作成」 ページで、 「フィルター」 の下の Satellite を選択して、 Satelliteに適用できるテンプレートを表示します。
- 「複数のクラスターへの Kubernetes リソースのデプロイ」 テンプレートを選択します。
- ツールチェーンの仕組みを理解するための情報を読み、 「開始」 をクリックします。
ツールチェーン設定の定義
ツールチェーンの名前、地域、およびリソース・グループを定義します。
- ツールチェーンの名前を指定します。
- ツールチェーンを作成する地域を選択してください。
- ツールチェーンを作成するリソース・グループを選択します。
- 「続行」 をクリックします。
ソース・リポジトリーの定義
このツールチェーンが listen するソース・リポジトリーの詳細を指定します。 この情報は、標準構成オプションまたは拡張構成オプションのいずれかを使用して指定できます。
-
ソース・プロバイダーを選択します。 選択したソース・プロバイダーに応じて、そのソース・プロバイダーに固有のオプションが表示されます。 例えば、ソース・プロバイダーとして Github Enterprise Whitewater を選択できます。
-
ソース・リポジトリーを定義します。
- このツールチェーンに新規リポジトリーを使用するには、 「新規ソース・リポジトリーの作成」 をクリックして、新規リポジトリーに名前を付けます。
- このツールチェーンで既存のリポジトリを使用するには、 「既存ソースリポジトリを使用 」をクリックし、リポジトリ URL を指定してください。 ソースプロバイダを選択し、リポジトリの URL を入力してください。例:
https://github.com/my-org/my-repo。
-
「続行」 をクリックします。
カスタム・サーバーの使用やクローン作成動作の変更など、より高度なソース・リポジトリー設定にアクセスする場合は、 「拡張構成に切り替え」 を選択します。
デリバリー・パイプラインのセットアップ
Satellite クラスターグループ内の複数のクラスターにアプリケーションをデプロイするためのデリバリーパイプラインに名前を付けてください。
-
ツールチェーンに表示されるパイプライン名を入力します。
-
「続行」 をクリックします。
API キーの指定
ツールチェーンが Satellite の場所にアクセスするために使用できる、 IBM Cloud のAPIキー情報を指定してください。
既存の API キーがある場合、または複数の既存の API キーがある場合は、以下のステップを実行します。
-
使用する 1 つ以上のシークレット・プロバイダーを選択します。 1つ以上選択できます。
-
「続行」 をクリックします。
-
シークレット・プロバイダーにアクセスするために必要な情報を指定します。
既存の API キーがない場合は、このページのオプションを無視して 「続行」 をクリックし、次のページに進みます。このページで、 IBM Cloud API キーを作成して、秘密プロバイダーに保存できます。
Satellite の設定
Satellite 設定ツールがリソースのデプロイ時に使用できる設定を指定します。
-
IBM Cloud のAPIキーを入力してください。 前のページで既存の IBM Cloud API キーを指定しなかった場合は、 「新規」 をクリックして新しい IBM Cloud API キーを作成できます。
このキーは、新しいキーの作成時にそのオプションを選択するか、キー・アイコンをクリックすることにより、任意のシークレット・プロバイダーに保存して再利用することができます。
-
リソースのデプロイ先の名前空間を定義します。 これは既存の名前空間でなければなりません。
-
リソースのデプロイ先のブランチを指定します (例:
v1)。 -
リソースのデプロイ先のパスを指定します (例:
deployments)。 -
デプロイするリソースを受け取るクラスター・グループを選択します。
-
表示されている Satellite 構成の名前を指定します。
-
「続行」 をクリックします。
要約の確認
要約を確認し、ツールチェーンを作成することを確認します。
-
以前に指定したパラメーターを変更するには、 「戻る」 をクリックします。
-
指定したパラメーターを使用してツールチェーンを作成するには、 「ツールチェーンの作成」 をクリックします。
ツールチェーンのテスト
ツールチェーンが作成されると、ツールチェーンの「概要」ページが表示されます。 このページでは、このツールチェーンに関連付けられているリポジトリ、パイプライン、および IBM Cloud の各種ツールを確認できます。
「リポジトリー」 の下には、ソース・リポジトリーと、Tekton カタログ・タスクおよびパイプライン・タスク用の追加リポジトリーがあります。 Tekton の使用に慣れている場合は、これらの Tekton リポジトリーに移動して、ツールチェーンに変更を加えることができます。
「デリバリー・パイプライン (Delivery pipelines)」 で、パイプライン実行の状況を確認できます。 パイプラインの名前をクリックしてパイプラインに関する詳細を表示し、設定することができます。このパイプラインの概要から、パイプラインのトリガーを設定できます。 トリガーは、パイプラインの開始時期を定義します。
デリバリーパイプラインは、以下のいずれかの方法で開始できます。
- 手動トリガーを設定して、デリバリー・パイプラインを手動でトリガーします。
- Git リポジトリー・トリガーの定義に従って、デプロイメント・ソース・リポジトリーにコミットをプッシュします。 Git リポジトリー・トリガーを設定するには、 別のブランチからのアプリの新規バージョンのデプロイ を参照してください。
手動パイプライン実行を開始するには、以下のステップを実行します。
- ツールチェーンの 「概要」 の 「デリバリー・パイプライン」 の下で、デリバリー・パイプラインを選択してその状況を表示します。
- **「パイプラインの実行」**をクリックします。
- トリガー・プロパティーを調べて、ご使用の構成と一致することを確認してください。
- 「実行」 をクリックしてツールチェーンを実行し、アプリをデプロイします。
- オプション: 実行の名前をクリックして、状況、ログ、および詳細を表示します。
- オプション: アプリが実行されたら、 Satellite 構成 に移動するか、
ibmcloud sat configコマンドを実行して Satellite 構成リソースを表示します。
サンプル・アプリケーションが実行中であることの確認
ツールチェーンの設定が完了し、「 Delivery Pipeline 」が正常に終了したら、以下の手順を実行してアプリを確認してください。
- 「クラスター」 ページで、アプリのデプロイに使用したクラスターをクリックします。
- **「OpenShift Web コンソール (OpenShift web console)」**をクリックします。
- 「ワークロード」 > 「ポッド」 セクションで、プロジェクトまたはクラスター名前空間でフィルタリングし、ポッドが実行中であることを確認します。
- [ Networking ] > [ Routes ] セクションで、プロジェクトまたはクラスターのネームスペースを条件に絞り込み、アプリ「 URL 」を探します。
- ブラウザでアプリ「 URL 」にアクセスし、アプリが実行されていることを確認してください。
- オプション: コンソールで、または
ibmcloud sat config lsコマンドを実行して、 Satellite 構成を表示することができます。
別のブランチからのアプリの新規バージョンのデプロイ
複数のバージョンのアプリを表す複数のブランチがリポジトリー内にある場合は、別のブランチをデプロイして、新しいバージョンのアプリが実行されていることを確認できます。 ソース・リポジトリーの別のブランチをデプロイするようにツールチェーンを変更するには、以下の手順に従います。
- ツールチェーンの 「概要」 で、変更するデリバリー・パイプラインを選択します。
- 「トリガー」 をクリックします。
- commit-push トリガーのアクション・メニューをクリックします。
- **「編集」**を選択します。
- 「ブランチ」 フィールドで、デプロイするブランチを選択します。 例えば、
v2です。 - 「プロパティー」 の下の deployment-branch 行で、 「編集」 アイコンをクリックします。
- このプロパティーの値を、デプロイするブランチ名に変更します。 例えば、
v2です。 - 変更を保存します。
- ブラウザで URL にアクセスし、アプリが新しいバージョンで動作しているかどうかを確認してください。
- オプション: Satellite 構成 コンソール で新しいバージョンの構成を表示するか、
ibmcloud sat config get --config CONFIGコマンドを実行します。
単一のツールチェーンを使用して、 Kubernetes リソースを複数のクラスターにデプロイできるようになりました。