Container Registry は、クラウドネイティブアプリケーションデリバリーチェーン機能を提供します。デリバリーチェーンでは、イメージビルド、イメージスキャン、グローバルイメージレプリケーション、イメージディストリビューションなどのタスクを効率化できます。デリバリーチェーン全体が可観測、追跡可能、かつ安全です。デリバリーチェーンを使用すると、ソースコードの変更をサブミットするだけで、世界中でイメージのビルド、スキャン、レプリケーション、ディストリビューションを行うことができます。このトピックでは、デリバリーチェーンの作成方法について説明します。
前提条件
Container Registry Enterprise Edition インスタンスが作成されていること。詳細については、「Container Registry Enterprise Edition インスタンスの作成」をご参照ください。
重要Container Registry Enterprise Edition の Advanced Edition インスタンスのみが、クラウドネイティブアプリケーションデリバリーチェーン機能をサポートしています。
イメージリポジトリとイメージが作成されていること。詳細については、「リポジトリの作成とイメージのビルド」をご参照ください。
ステップ 1: デリバリーチェーンの作成と基本情報の設定
Container Registry コンソールにログインします。
トップナビゲーションバーで、リージョンを選択します。
-
左側のナビゲーションウィンドウで、インスタンス をクリックします。
[インスタンス] ページで、管理する Enterprise Edition インスタンスをクリックします。
-
インスタンス管理ページの左側のナビゲーションウィンドウで、 を選択します。
-
[チェーン] ページの左上隅にある 配信チェーンを作成します をクリックします。
-
配信チェーンを作成します ページの 基本情報 セクションで、次のパラメーターを設定します。
名前:デリバリーチェーンの名前。
説明:(任意) デリバリーチェーンの説明。
スコープ:名前空間と、その名前空間内のイメージリポジトリを選択します。
すべて有効:このスイッチをオンにすると、現在の名前空間内のすべてのリポジトリがデリバリーチェーンに追加されます。このスイッチをオフにすると、デリバリーチェーンに追加したくないリポジトリを指定できます。
ステップ 2: イメージビルドルールの設定
オンプレミスのイメージリポジトリを選択した場合、デリバリーチェーンのイメージビルド機能は使用できません。
-
デリバリーチェーンのナビゲーションエリアで イメージのビルド をクリックし、次に ビルドルールの追加 をクリックします。
-
ビルド情報 ウィザードでパラメーターを設定し、次へ をクリックします。
パラメーター
説明
タイプ
ソースコードリポジトリのタイプを指定します。有効な値:ブランチとタグ。
ブランチ/タグ
ブランチまたはタグを選択または入力します。正規表現がサポートされています。正規表現として `release-(?<imageTag>\w*)` を使用すると、`release-v1` ブランチ配下のソースコードが更新されたときに、システムは V1 イメージをビルドします。V1 イメージは数分以内にビルドされます。正規表現の使用方法の詳細については、「名前付きキャプチャグループでの正規表現の使用」をご参照ください。
説明正規表現を指定すると、イメージはシステムによってのみビルドできます。手動でイメージをビルドすることはできません。
コンテキストディレクトリをビルド
Dockerfile が存在するディレクトリを指定します。相対ディレクトリを指定する必要があります。親ディレクトリはコードブランチのルートディレクトリです。
Dockerfile ファイル名
Dockerfile の名前を指定します。デフォルト名は Dockerfile です。
-
イメージのバージョン ウィザードでパラメーターを設定し、保存 をクリックしてから、次へ をクリックします。
説明構成を追加 をクリックして、イメージタグを追加します。最大 3 つのタグを追加できます。
パラメーター
説明
イメージのバージョン
イメージのタグ。例:latest。名前付きキャプチャグループを有効にできます。たとえば、[ブランチ/タグ] に名前付きキャプチャグループを指定した場合、キャプチャしたコンテンツを使用できます。
ビルド時間
ソースコードがプッシュされた時刻 (UTC+08:00)。例:20201015 または 202010151613。
説明このパラメーターは任意です。このパラメーターを設定すると、イメージはシステムによってのみビルドできます。手動でイメージをビルドすることはできません。
コミット ID
最後にプッシュされたコードのコミット ID から取得する文字数。デフォルトでは、最初の 6 文字が使用されます。スライダーを調整して文字数を変更できます。
説明このパラメーターは任意です。このパラメーターを設定すると、イメージはシステムによってのみビルドできます。手動でイメージをビルドすることはできません。
-
構成をビルド ウィザードでビルドパラメーターを設定し、OK をクリックします。
パラメーター
説明
アーキテクチャの構築
イメージをビルドするアーキテクチャ。複数のアーキテクチャを選択できます。複数のアーキテクチャを選択した場合、各イメージタグに対して、それらのアーキテクチャ用の複数のコンテナイメージがビルドされます。
タイプをビルド
イメージビルドの実行時パラメーター。各ビルドパラメーターは、大文字と小文字を区別するキーと値のペアです。最大 20 個のビルドパラメーターを設定できます。
ステップ 3: イメージセキュリティスキャンのブロックルールの設定
イメージセキュリティスキャンは、イメージのレプリケーションおよびディストリビューション時のイメージのセキュリティを確保します。
-
デリバリーチェーンのナビゲーションエリアで、セキュリティスキャン をクリックします。
-
ノード設定 セクションで、ブロックルールを設定します。
-
セキュリティエンジン:セキュリティスキャンエンジン または Trivy スキャンエンジン を選択できます。
セキュリティスキャンエンジン を使用すると、検出された脆弱性をワンクリックで修正できます。Trivy スキャンエンジン はこの機能をサポートしていません。
説明セキュリティセンターのイメージスキャン機能を使用するには、セキュリティセンターの Ultimate Edition を購入する必要があります。詳細については、「セキュリティセンターの購入」をご参照ください。現在のリージョンでセキュリティセンターが有効化されていない場合、セキュリティセンターのオプションは Container Registry コンソールに表示されません。
-
ブロック戦略:
-
ブロック:ブロックルールが満たされた場合、システムはすべてのイメージに対する後続のステップを停止します。
ブロックルールは、脆弱性の重大度 と 脆弱性の数 の数に基づいて定義する必要があります。 また、配信チェーンがブロックされた後に、元のイメージを削除するか、イメージをバックアップするかなどの操作を設定する必要もあります。
非ブロック:システムはすべてのイメージに対して後続のステップを続行します。
-
-
ステップ 4: イメージレプリケーションルールの設定
イメージレプリケーションルールを設定すると、更新されたイメージはルールに基づいて Container Registry Enterprise Edition インスタンス間で自動的にレプリケーションされます。
-
デリバリーチェーンのナビゲーションエリアで 同期をトリガー をクリックし、次に ルールの作成 をクリックします。
-
ルールの作成 ダイアログボックスで、ルール名を入力し、宛先インスタンスを設定してから、次へ をクリックします。
リージョンを選択し、既存のインスタンスを宛先インスタンスとして選択します。
-
宛先インスタンスが存在しない場合は、インスタンスを作成 をクリックします。詳細については、「Enterprise Edition インスタンスの作成」をご参照ください。
説明インターネットアクセスが無効な場合でも、イメージは異なるリージョン間で自動的にレプリケーションできます。
-
レプリケーション情報 ウィザードで、ソースインスタンスの詳細を設定し、ルールの作成 をクリックします。
パラメーター
説明
レプリケーションレベル
レプリケーションレベルを選択します。有効な値:名前空間とリポジトリ。
ソースアドレス
名前空間とリポジトリ名を選択します。正規表現を入力してイメージタグをフィルターします。デフォルトでは、すべてのタグがレプリケーションされます。レプリケーションレベル を リポジトリ に設定した場合にのみ、特定のソースリポジトリを選択する必要があります。
ステップ 5: ディストリビューショントリガーの設定
ディストリビューショントリガーを設定して、イメージを自動的にディストリビューションできます。これにより、アプリケーションを自動的に再デプロイできます。
-
デリバリーチェーンのナビゲーションエリアで 配布のトリガー をクリックし、次に 作成 をクリックします。
-
トリガーの作成 ダイアログボックスでパラメーターを設定し、OK をクリックします。
パラメーター
説明
名前
トリガーの名前。
トリガー URL
トリガーが通知を送信する URL です。URL は、Container Service for Kubernetes (ACK) クラスターの構成から取得できます。
トリガー
トリガーメソッド。有効な値:
すべて:イメージが更新されるたびに、イメージディストリビューションがトリガーされます。
正規表現による:正規表現を使用してイメージタグをフィルターします。イメージタグが正規表現に一致する場合にのみ、イメージディストリビューションがトリガーされます。
タグによる:タグを使用してイメージをフィルターします。イメージタグが指定されたタグリストに含まれている場合にのみ、イメージディストリビューションがトリガーされます。
-
配信チェーンを作成します ページの左下隅にある 作成 をクリックします。
結果
[チェーン] ページで、作成したデリバリーチェーンを表示できます。
ソースコードがコードリポジトリにサブミットされた後、またはイメージがプルされた後、Container Registry Enterprise Edition インスタンスにログインして [レコード] ページに移動できます。このページでは、デリバリーチェーンの各ステップのステータスと結果を表示できます。その後、ご利用の ACK クラスターでイメージが更新されているかどうかを確認できます。