Docker コンテナイメージを使用するデプロイでは、コンテナイメージデプロイパッケージの使用を推奨します。 Compute Nest は、イメージをホストおよび保存するためのパブリックな Container Registry (ACR) インスタンスを提供します。マルチテナンシーを確保するため、各サービスプロバイダーには一意の名前空間が割り当てられます。このトピックでは、コンテナイメージデプロイパッケージのユースケースについて説明し、その仕組みを解説し、作成方法と使用方法を説明します。
ユースケース
パブリックインターネットから Docker コンテナイメージをプルするプライベートデプロイメントでは、一時キーを使用してコンテナイメージデプロイパッケージを利用できます。
コンテナイメージデプロイパッケージは、オートスケーリングや初回デプロイ後の頻繁なイメージのプルをサポートしていません。
仕組み
マルチテナンシーを確保するため、異なるサービスプロバイダーのコンテナイメージは共有リポジトリに保存されますが、名前空間によって分離されます。各サービスプロバイダーは一意の名前空間にマッピングされます。イメージのアップロードまたはプル時に、サービスプロバイダーの AliUid に基づいて名前空間の一時キーが生成されます。アクセス制御は名前空間レベルで適用されます。
実装
サービスの Resource Orchestration Service (ROS) テンプレートで、次の 2 つのプレースホルダーを定義する必要があります。これらのプレースホルダーは、デプロイ時に実際の値に置き換えられます。
-
{{ computenest::acrimage::yourimage }}:コンテナイメージデプロイパッケージのプレースホルダー。 デプロイ時に、Compute Nest はこのプレースホルダーを関連するコンテナイメージの URL (例:compute-nest-registry.cn-hangzhou.cr.aliyuncs.com/aliUid1/volcanosh/vc-controller-manager:1.0) に置き換えます。 -
{{ computenest::acr::dockerconfigjson }}:プル認証情報のプレースホルダー。 デプロイ時に、このプレースホルダーはプライベートコンテナイメージをプルするために使用される一時キーに置き換えられます。
次の YAML の例は、コンテナイメージデプロイパッケージの使用方法を示しています。 プル認証情報のプレースホルダー {{ computenest::acr::dockerconfigjson }} は、computenestrepo という名前の Secret としてデプロイされます。この Secret は、イメージプレースホルダーが置き換えられた後、コンテナイメージをプルするための imagePullSecret として使用されます。
作成と使用
前提条件
Docker がインストールされ、Docker イメージが作成されている必要があります。そうでない場合は、「Dockerのインストールと使用」をご参照ください。
デプロイパッケージの作成
-
デプロイパッケージの基本情報を設定します。
-
Compute Nest コンソールにログインします。左側メニューで、サービスアーティファクト を選択します。デプロイメントオブジェクト タブで、リソースの作成 をクリックします。
-
基本情報 セクションで、次のパラメーターを設定します。
パラメーター
説明
[リソース名]
名前には、中国語文字、英字、数字、アンダースコア (_) を使用できます。名前の長さは 3~128 文字である必要があります (中国語1文字は2文字としてカウントされます)。デプロイパッケージ名は作成後に変更できません。
[バージョン名]
名前には、中国語文字、英字、数字、アンダースコア (_) を使用できます。名前の長さは 3~50 文字である必要があります (中国語1文字は2文字としてカウントされます)。
[リソースの説明]
説明は 10~500 文字である必要があります。中国語1文字は2文字としてカウントされます。
[リソースグループ]
デプロイパッケージが属するリソースグループを選択します。
リソースグループを使用すると、使用状況、権限、または所有者別にクラウドリソースをグループ化でき、組織内の複数のユーザーとプロジェクトの階層的なリソース管理が可能になります。詳細については、「リソースグループ」をご参照ください。
[タグの設定]
完全なタグキーとタグ値を入力または選択して、デプロイパッケージにタグを追加します。リソースには最大 20 個のタグを関連付けることができます。利用可能なタグキーまたは値がない場合は、カスタムタグを作成できます。詳細については、「カスタムタグの作成とバインド」をご参照ください。
-
-
コンテナイメージのデプロイパッケージを設定します。
このセクションでは、
apache-php5イメージのアップロードを例に説明します。-
リソースの内容 セクションで、リソースタイプ を コンテナーイメージ に設定します。
-
アクセス資格情報の取得 をクリックして、コンテナイメージを Compute Nest リポジトリにアップロードするためのコマンドを取得します。
認証情報を取得すると、ページに必要なコマンドが表示されます。 まず、
docker loginコマンドで Compute Nest イメージリポジトリにログインします。 次に、[イメージ名] と [タグ] (例:latest) を入力した後、docker tagコマンドを使用してローカルイメージにタグを付けます。 最後に、タグ付けされたイメージをdocker pushコマンドでリポジトリにプッシュします。-
コマンドラインツールにログインし、ログインコマンドを実行して Compute Nest イメージリポジトリにアクセスします。
docker login compute-nest-registry.cn-hangzhou.cr.aliyuncs.com --username=cr_temp_user --password=<temporary_token> -
コンテナイメージに Compute Nest イメージリポジトリ用のタグを付けます。
docker tag registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5:latest compute-nest-registry.cn-hangzhou.cr.aliyuncs.com/lxepoo/apache-php5:latest -
タグ付けされたコンテナイメージをプッシュします。
docker push compute-nest-registry.cn-hangzhou.cr.aliyuncs.com/lxepoo/apache-php5:latest The push refers to repository [compute-nest-registry.cn-hangzhou.cr.aliyuncs.com/lxepoo/apache-php5] 6bb81559e239: Pushed cea911103474: Pushed cc523d99ead5: Pushed b00b1ec7b8ef: Pushed 7715ecdbe18e: Pushed 5e755f0e0b5c: Pushed 2a1ce34e52b6: Pushed 28dc854edc91: Pushed 24fc817b31ed: Pushed 7cd75a52f72c: Pushed 05b156d2bc54: Pushed 8cc36998586f: Pushed ab73fa68e475: Pushed dbf739521f53: Pushed 3e019add9ad9: Pushed 18e3751aa1ef: Pushed 4eb95f543324: Pushed a594229cce80: Pushed 69a54e38f06b: Pushed d2808f8124fd: Pushed fe4c16cbf7a4: Pushed latest: digest: sha256:2afcd2b89f317e0570325817f4e8d9c93f12ac781779e365e456ae37aa297f7a size: 4700
-
-
プッシュが成功したら、コンテナイメージの選択 セクションで、アップロードしたイメージを選択し、リソースの公開 をクリックします。
-
-
デプロイパッケージを表示します。
-
[サービスデプロイパッケージ] ページに戻ります。 デプロイパッケージの名前をクリックして リソースの詳細 ページに移動し、そのステータスを確認します。
-
ステータスが 使用可能 に変わると、パッケージの作成は完了です。
-
デプロイパッケージの使用
このセクションでは、プライベートデプロイメントサービスを作成する際に コンテナイメージデプロイパッケージを使用する方法について説明します。
-
Compute Nest コンソールにログインします。
-
左側のナビゲーションペインで、[マイサービス] をクリックします。[マイサービス] ページの [作成済みサービス] タブで、[サービスの作成] をクリックします。
-
[新しいサービスの作成] ページで、作成方法として [カスタム起動] を選択し、サービスタイプとして プライベートデプロイサービス を選択し、次へ:サービスの設定 をクリックします。
-
サービスの基本情報を入力し、必要に応じて ROS テンプレートを入力します。
ROS テンプレートで、アクセス認証情報のプレースホルダー
{{ computenest::acr::dockerconfigjson }}と、ALIYUN::CS::ClusterApplicationリソース内のコンテナイメージのプレースホルダー{{ computenest::acrimage::yourimage }}を定義します。 -
[デプロイパッケージの関連付け] セクションで、[コンテナイメージの関連付けを設定] をクリックします。[デプロイメントオブジェクト] の選択 をクリックします。表示されたダイアログボックスで、デプロイパッケージとバージョンを選択し、確定する をクリックしてコンテナイメージデプロイパッケージを関連付けます。
-
サービスを作成してテストした後、サービスリリース基準に照らして自己チェックを行い、審査のために提出します。詳細については、「審査基準」をご参照ください。
-
サービスが作成された後、サービス詳細ページでデプロイパッケージの関連付けを確認できます。
サービス詳細ページで、[デプロイパッケージの関連付け] タブ、次に [コンテナイメージの関連付け] タブをクリックして、プレースホルダー (例:
{{ computenest::acrimage::nginx }}) と対応するデプロイパッケージ情報の間の関連付けを確認します。
関連ドキュメント
-
Compute Nest でサービスを作成する方法の詳細については、「サービスの作成」をご参照ください。
-
不要になったデプロイパッケージまたはそのバージョンは削除できます。詳細については、「デプロイパッケージの削除」をご参照ください。
-
デプロイパッケージの内容やその他の情報を変更するには、新しいバージョンを作成します。詳細については、「新しいバージョンの作成」をご参照ください。
-
デプロイパッケージの更新設定については、「サービスアップグレードの設定」をご参照ください。