スケーリンググループに Elastic Container Instance が含まれている場合、イメージを手動で更新すると、時間がかかり、エラーが発生しやすくなります。これらの問題を回避するために、Auto Scaling の Apsara DevOps パイプライン機能を使用することをお勧めします。これにより、イメージのビルド、更新、および Elastic Container Instance へのデプロイが自動化されます。
実装の原則
このソリューションは、Apsara DevOps パイプラインと Auto Scaling を統合して、コードの更新後に Elastic Container Instance 全体でイメージを迅速にビルドおよびデプロイできるようにします。実装プロセス:
ビルド:Apsara DevOps パイプラインは、コードリポジトリからコードをパッケージ化し、Docker イメージにビルドします。
公開:次に、Apsara DevOps パイプラインは Docker イメージを Container Registry リポジトリに公開します。
更新:公開後、Apsara DevOps パイプラインは CloudOps Orchestration Service(OOS)を使用して、スケーリンググループ内の Elastic Container Instance のイメージ(新しいインスタンスに使用されるスケーリング設定を含む)を更新します。
Apsara DevOps の詳細については、「Alibaba Cloud DevOps とは」をご参照ください。
準備
Resource Access Management(RAM)ユーザーを使用している場合は、次の権限を持っていることを確認してください。 RAM ユーザーに権限を付与する方法については、「RAM ユーザーに権限を付与する」をご参照ください。
環境を構成する
スケーリンググループ内の Elastic Container Instance 全体でイメージをビルドおよびデプロイするには、次の手順を実行する必要があります。
手順 1:Alibaba Cloud Container Registry リポジトリを作成する
既存の Container Registry リポジトリがある場合は、この手順をスキップできます。
Container Registry リポジトリを作成した後、イメージをリポジトリに保存できます。
Container Registry コンソール にログインします。
Container Registry インスタンスを作成します。
上部のナビゲーションバーで、Container Registry リージョンを選択します。
説明VPC(Virtual Private Cloud)を介したドメイン名ベースのアクセスをサポートするには、スケーリンググループと同じリージョンに Container Registry リポジトリを作成することをお勧めします。スケーリンググループとは異なるリージョンに Container Registry リポジトリを作成する場合は、Container Registry リポジトリとスケーリンググループ内の Elastic Container Instance のインターネットアクセスを有効にする必要があります。
インスタンス ページで、[Personal Edition のインスタンス] をクリックしてインスタンスを作成します。

インスタンスが作成された後、Personal Edition のインスタンス[個人版のインスタンス] ページに移動し、 をクリックします。

ログインパスワードをリセットした後、左側のナビゲーションウィンドウで [名前空間] をクリックし、次に [名前空間の作成] をクリックして名前空間を作成します。
左側のナビゲーションウィンドウで [リポジトリ] をクリックし、次に [リポジトリの作成] をクリックします。 リポジトリの作成 ダイアログボックスで、ビジネス要件に基づいてパラメータを構成します。次の表にパラメータを示します。
リポジトリ情報
パラメータ
説明
例
名前空間
手順 3 で作成した名前空間を選択します。
ess_eci_test_namespace
リポジトリ名
リポジトリのカスタム名を入力します。
ess_eci_test_repo
リポジトリタイプ
プライベートを選択します。
プライベート
概要
リポジトリを作成する理由を入力します。
テスト
コードソース
コードソース ステップで、[ローカルリポジトリ] を選択し、[リポジトリの作成] をクリックします。
リポジトリが作成された後、[詳細] ページに移動し、パブリックエンドポイントを見つけ、後で使用するためにエンドポイントをコピーします。
手順 2:Elastic Container Instance タイプのスケーリンググループを作成する
既存のスケーリンググループがある場合は、この手順をスキップできます。
スケーリンググループを作成するには、次のいずれかの方法を使用できます。
YAML ファイルを使用してスケーリンググループを作成する
フォームを使用してスケーリンググループを作成する
方法 1:YAML ファイルを使用してスケーリンググループを作成する
Auto Scaling コンソール にログインします。
上部のナビゲーションバーで、Auto Scaling リージョンを選択します。左側のナビゲーションウィンドウで、[スケーリンググループ] をクリックします。 スケーリンググループ作成 ページで、 をクリックします。
[YAML ファイルで作成] タブで、指示に従ってパラメータを構成してスケーリンググループを作成し、[作成] をクリックします。このトピックでは、次の YAML ファイルが使用されます。 YAML ファイルを使用してスケーリンググループを作成する方法の詳細については、「Kubernetes YAML ファイルを使用して Elastic Container Instance タイプのスケーリンググループを構成する」をご参照ください。
apiVersion: apps/v1 kind: Deployment metadata: name: nginx-demo annotations: k8s.aliyun.com/ess-scaling-group-name: ess-eci-test k8s.aliyun.com/ess-scaling-group-min-size: 0 k8s.aliyun.com/ess-scaling-group-max-size: 5 spec: selector: matchLabels: app: nginx-demo replicas: 0 template: metadata: labels: app: nginx-demo annotations: k8s.aliyun.com/eci-with-eip: false spec: containers: - name: nginx image: registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/nginx:latest ports: - containerPort: 80 name: http - containerPort: 443 name: https resources: requests: memory: 0.05Gi cpu: 50m limits: memory: 1Gi cpu: '1'警告すでにイメージがある場合は、サンプル YAML ファイルのイメージを自分のイメージに置き換えます。イメージがない場合は、サンプル YMAL ファイルのイメージを使用します。パイプラインの実行時に自動的に置き換えられます。イメージを指定しないと、スケーリンググループを作成できません。
パラメータ
パラメータ
説明
例
k8s.aliyun.com/ess-scaling-group-name
スケーリンググループの名前。
ess-eci-test
k8s.aliyun.com/ess-scaling-group-min-size
スケーリンググループ内のインスタンス数の下限。スケーリンググループ内のインスタンス数がこのパラメータの値よりも少ない場合、Auto Scaling はスケーリンググループ内にインスタンスを自動的に作成して下限に到達させます。
0
k8s.aliyun.com/ess-scaling-group-max-size
スケーリンググループ内のインスタンス数の上限。スケーリンググループ内のインスタンス数がこのパラメータの値よりも多い場合、Auto Scaling はインスタンス数が上限に達するまでスケーリンググループからインスタンスを自動的に削除します。
5
k8s.aliyun.com/eci-with-eip
EIP(Elastic IP Address)を自動的に作成し、EIP を Elastic Container Instance に関連付けるかどうかを指定します。
false
方法 2:フォームを使用してスケーリンググループを作成する
Auto Scaling コンソール にログインします。
上部のナビゲーションバーで、Auto Scaling リージョンを選択します。
スケーリンググループを作成します。
左側のナビゲーションウィンドウで、[スケーリンググループ] をクリックします。 スケーリンググループ作成 ページで、 をクリックします。
[フォームで作成] タブで、指示に従ってパラメータを構成してスケーリンググループを作成し、[作成] をクリックします。次の表に、この例で使用されるパラメータ設定を示します。含まれていないパラメータはすべてデフォルト値を保持します。詳細については、「スケーリンググループを作成する」をご参照ください。
パラメータ
説明
例
スケーリンググループ名
スケーリンググループの名前を入力します。
ess-eci-test
タイプ
ECI を選択します。これは、スケーリンググループに Elastic Container Instance が含まれていることを指定します。
ECI
インスタンス構成ソース
この段階では、Elastic Container Instance を自動的に作成するためのテンプレートを指定しないでください。スケーリンググループを作成した後、スケーリング設定の作成を続行する必要があります。
新規作成
最小インスタンス数
このパラメータを 1 に設定すると、スケーリンググループには少なくとも 1 つの Elastic Container Instance が含まれている必要があります。
0
最大インスタンス数
このパラメータを 5 に設定すると、スケーリンググループには最大 5 つの Elastic Container Instance を含めることができます。
5
VPC
VPC を指定します。このスケーリンググループに含まれる Elastic Container Instance は、この VPC に存在します。
vpc-test****-001
vSwitch
スケールアウト操作の成功率を向上させるために、異なるゾーンから複数の vSwitch を指定します。
vsw-test****
スケーリンググループのスケーリング設定を作成します。
作成したスケーリンググループを見つけ、[アクション] 列の [詳細] をクリックして、スケーリンググループの詳細ページに移動します。
[インスタンス構成ソース] タブで、[スケーリング設定] をクリックします。次に、[スケーリング設定の作成] をクリックして、[スケーリング設定の作成] ページに移動します。
指示に従ってパラメータを構成します。 スケーリング構成のプレビュー[スケーリング設定のプレビュー] ダイアログボックスで、有効にするElastic Container Instance タイプのスケーリング設定を作成する をクリックします。次に、 をクリックします。次の表に、この例で使用されるパラメータ設定を示します。含まれていないパラメータはすべてデフォルト値を保持します。スケーリング設定の作成方法の詳細については、「」をご参照ください。
パラメータ
説明
例
課金方法
ビジネス要件に基づいて課金方法を選択します。
従量課金制
セキュリティグループ
ビジネス要件に基づいてセキュリティグループを選択します。
sg-****oer
カスタムコンテナ名を入力します。
nginx
ビジネス要件に基づいてイメージとイメージタグを選択します。
警告既存のイメージがある場合は、既存のイメージを使用できます。既存のイメージがない場合は、サンプルイメージを使用することをお勧めします。イメージを指定しないと、スケーリンググループを作成できません。
イメージ名:registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/nginx。
イメージタグ:latest。
[スケーリング設定] タブで、作成したスケーリング設定を見つけ、[アクション] 列の アクション をクリックして、スケーリング設定を有効にします。
手順 3: Apsara DevOps パイプラインを構成する
イメージのパッケージ、リリース、およびデプロイを自動化するには、Apsara DevOps パイプラインを構成する必要があります。
スケーリンググループの詳細ページで、[公開管理] タブをクリックし、次に [Apsara DevOps を使用して公開] をクリックします。

組織の関連付け ドロップダウンリストから組織を選択し、 [次へ] をクリックします。
重要組織がない場合は、[組織の作成] をクリックして、指示に従って組織を作成します。組織を作成して選択した後、指示に従って認証を完了します。
パイプラインを構成します。
パイプラインソースを構成します。 [パイプラインソース] セクションで、[+ 追加] をクリックし、次に [サンプルコードソース] をクリックします。次に、[追加] をクリックします。
説明独自のコードリポジトリがある場合は、指示に従ってコードリポジトリの URL を選択できます。
イメージビルドタスクを追加します。
[イメージビルドタスク] セクションで、[+ 追加] をクリックします。
[イメージビルドタスク] パネルの [サービス接続の選択] セクションで、[サービス接続の作成] をクリックします。 ページが表示されたら、[サービス接続の作成] をクリックします。

表示されるダイアログボックスで、[Container Registry(ACR)] を選択し、[次へ] をクリックします。次に、[サービスの認証] を選択します。 サービスを承認する[作成][作成] ボタンが表示されない場合は、 をクリックして認証ページに移動し、 をクリックします。
[イメージビルドタスク] パネルに戻ります。 [サービス接続] ドロップダウンリストで、作成したサービス接続を選択します。 [イメージリポジトリ] ドロップダウンリストで、作成したイメージリポジトリを選択し、[追加] をクリックします。

デプロイタスクを追加します。
[デプロイタスク] セクションで、[+ 追加] をクリックします。 [サービス接続の選択] セクションで、[サービス接続の作成] をクリックします。

表示されるダイアログボックスで、[Auto Scaling] を選択します。 [次へ] をクリックし、次に [作成] をクリックします。
[イメージのデプロイ] セクションで、[イメージをビルドして Alibaba Cloud Image Warehouse 個人版.Mirror VPC アドレスにプッシュする] を選択し、[追加] をクリックします。
説明スケーリンググループとイメージが同じリージョンにある場合は、[イメージをビルドして Alibaba Cloud Image Warehouse 個人版.Mirror VPC アドレスにプッシュする] を選択することをお勧めします。他の場合にイメージをプルする場合は、Elastic Container Instance がインターネットにアクセスできることを確認してください。
[作成] をクリックします。
ユースケース:イメージのビルドとデプロイ
別の RAM ユーザーがこの機能を使用する場合は、その RAM ユーザーが組織に属しており、パイプライン権限を持っていることを確認してください。 RAM ユーザーは、次の権限も持っている必要があります。
Apsara DevOps RDC リソースを管理する権限
RAM リソースの読み取り専用権限
OOS リソースを管理する権限
コードを更新した後、[Apsara DevOps を使用して公開] タブの [実行] をクリックして、新しいコードをパッケージ化し、スケーリンググループにデプロイします。
次の準備を完了します。
環境を構成します。詳細については、「環境を構成する」をご参照ください。
コードを更新し、コードリポジトリにプッシュします。
数回クリックするだけでイメージをビルドおよびデプロイします。
スケーリンググループの詳細ページに移動します。 [公開管理] タブをクリックし、[Apsara DevOps を使用して公開] タブをクリックし、次に [実行] をクリックします。実行レコードのリストに新しいレコードが追加されます。

レコードリストで、[詳細] をクリックしてパイプラインの詳細を表示します。パイプラインが実行されるまで待ちます。パイプラインが完了すると、スケーリンググループの Elastic Container Instance とスケーリング設定が自動的に更新されます。新しいインスタンスは最新のイメージを使用します。

[インスタンス構成ソース] タブで、アクティブなスケーリング設定を見つけ、[編集] をクリックしてスケーリング設定を確認します。 [コンテナ設定] セクションのイメージが更新されているかどうかを確認します。
スケールアウトイベントを手動でトリガーします。 [インスタンス] タブで、新しくスケールアウトされた Elastic Container Instance をクリックし、インスタンスが新しいイメージを使用しているかどうかを確認します。
スケーリンググループに 実行中 状態の Elastic Container Instance が含まれている場合は、[インスタンス] タブでインスタンス名をクリックしてインスタンス詳細ページに移動し、インスタンスイメージが更新されているかどうかを確認します。