このトピックでは、ACK Serverless とそのメリット、ユースケース、主要機能について説明し、Serverless Kubernetes クラスターをすぐに使い始められるようにします。 また、ACK Serverless クラスターと ACK クラスターの比較も行います。
2025 年 2 月 17 日以降、Alibaba Cloud Container Service for Kubernetes (ACK) Serverless は、ACK Serverless クラスターを作成したことがない新規ユーザーのクラスター作成を無効にします。 代わりに、Container Compute Service (ACS) を通じてサーバーレスコンテナコンピューティング機能を活用できます。 ACS クラスターは、エンタープライズレベルの Kubernetes コンテナ化アプリケーションのライフサイクル全体を管理し、強化された機能とより便利なサービスを提供します。 ACS の詳細については、「ACS 製品の概要」をご参照ください。
ACK Serverless クラスターを作成していないユーザーの場合、新しい ACK Serverless クラスターを作成するためのインターフェースは使用できません。 Serverless コンテナコンピューティング機能を使用するには、次の手順を実行します。
ACS クラスターを作成し、その中で Serverless リソースを活用します。
ACK マネージドクラスター プロフェッショナル版でServerless コンピューティングを柔軟に使用します。
既存の ACK Serverless クラスターユーザーの場合、現在の ACK Serverless クラスターとデフォルトのクォータ内での新しいクラスター作成は影響を受けません。 ドキュメントに記載されているとおりに操作を続行でき、サービスの中断や調整は必要ありません。
この製品変更の詳細については、「[製品の変更] ACK Serverless クラスターの新規ユーザー向けのクラスター作成インターフェースの廃止に関するお知らせ」をご参照ください。
概要
ACK Serverless は、Alibaba Cloud が提供するサーバーレス コンテナー サービスです。ACK Serverless クラスター は、ACK Serverless によって提供されるノードレス クラスターです。ノードを計画、購入、または保守することなく、アプリケーションをデプロイできます。アプリケーションに割り当てられた CPU と メモリ リソースに対して、従量課金制で課金されます。ACK Serverless クラスター は、Kubernetes 互換の機能を提供し、初心者がインフラストラクチャ管理ではなくアプリケーションに集中できるようにします。
ACK Serverless クラスターは、ACK Serverless ベーシッククラスターと ACK Serverless プロクラスターに分類されます。 ACK Serverless プロクラスターは ACK Serverless ベーシッククラスターに基づいて開発されており、大規模な本番環境向けのセキュリティと信頼性が向上しています。 ACK Serverless クラスターは、補償条項をサポートするサービスレベル契約 (SLA) の対象にもなります。 ACK Serverless プロクラスターの詳細については、「ACK Serverless プロクラスターの概要」をご参照ください。
メリット
メリット | 説明 |
すぐに使える | Kubernetes ノードとサーバーを管理する必要なく、ACK Serverless クラスターをすばやく作成し、アプリケーションをデプロイできます。 |
超大容量 | 追加の構成を追加したり、クラスターのサイズを設計したりすることなく、ACK Serverless クラスターに 50,000 を超えるポッドを作成できます。 重要 多数のポッドがサービスに関連付けられている場合は、ポッドの数を 20,000 未満に保つことをお勧めします。 |
秒単位のスケーリング | 短期間で数千のポッドを作成して、トラフィックの急増に対応できます。 |
予測スケーリング | ACK Serverless は、既存データに基づいてリソース需要を予測し、ピーク時にリソースを迅速にスケーリングできます。 |
クラウドネイティブサービスとの互換性 | ACK Serverless は Kubernetes と完全に互換性があり、Kubernetes ネイティブのアプリケーションとエコシステムをサポートしています。 Kubernetes アプリケーションを ACK Serverless にシームレスに移行できます。 |
セキュリティのための隔離 | Elastic Container Instance にポッドをデプロイできます。 ポッドがデプロイされているインスタンスは、軽量の仮想サンドボックステクノロジーを使用して相互に隔離されています。 |
コスト削減 | ポッドはオンデマンドで作成されます。 アプリケーションで使用されるリソースに基づいて課金されます。 サーバーレスアーキテクチャは、リソースの浪費を防ぎ、O&M コストを削減するのに役立ちます。 |
サービス統合 | コンテナ化されたアプリケーションを Alibaba Cloud の基本サービスとシームレスに統合できます。 コンテナは、仮想マシンにデプロイされたアプリケーションと通信できます。 |
ACK Serverless ベーシッククラスターと比較して、ACK Serverless プロクラスターはより信頼性が高く、サービスの稼働時間が長くなり、より多くのポッドをデプロイできます。 アプリケーションを ACK Serverless ベーシッククラスターから ACK Serverless プロクラスターにシームレスに移行できます。 |
ACK Serverless クラスターと ACK クラスターの比較
次の図は、左側の ACK クラスターと右側の ACK Serverless クラスターを比較したものです。
ユースケース
シナリオ | 説明 |
アプリケーションホスティング | ACK Serverless クラスターでは、ノードの管理や保守、クラスターサイズの計画を行う必要はありません。 これにより、インフラストラクチャの管理と保守のコストが大幅に削減されます。 |
トラフィックの急増 | オンライン教育や e コマースなどの業界の変動するワークロードの場合、ACK Serverless クラスターは数秒以内にリソースをスケーリングできるため、コンピューティングコストの削減、リソースの浪費の防止、トラフィックの急増への対応に役立ちます。 詳細については、「自動スケーリングの概要」をご参照ください。 |
データコンピューティング | Spark ジョブなどのコンピューティングジョブを処理するために、ACK Serverless クラスターは短期間で多数のポッドを起動し、ジョブの完了直後にポッドを解放してコンピューティングコストを削減できます。 詳細については、「ACK Serverless を使用して Spark タスクを作成する」をご参照ください。 |
CI/CD | ACK Serverless クラスターを使用して、Jenkins や Gitlab-Runner などの継続的インテグレーション (CI) 環境を構築し、アプリケーションコードをすばやくコンパイルし、イメージをビルドしてプッシュし、パイプラインを作成できます。 CI ジョブは相互に隔離されています。 リソースプールを維持する必要がないため、コンピューティングコストが削減されます。 詳細については、「ACK Serverless クラスターに Jenkins をデプロイし、アプリケーションを作成してデプロイする」および「ACK Serverless に基づく柔軟で費用対効果の高い CI/CD」をご参照ください。 |
CronJob | ACK Serverless クラスターで CronJob を実行できます。 ジョブが完了すると課金が停止します。 リソースプールを維持する必要がないため、リソースの浪費を防ぐのに役立ちます。 詳細については、「コンテナ定時スケーリングに CronHPA を使用する」をご参照ください。 |
主要機能
ACK Serverless クラスターは Kubernetes 互換の機能を提供します。 Kubernetes ネイティブの機能に加えて、ACK Serverless クラスターを使用する場合は、次の機能に注意することをお勧めします。
ECI プロファイル
ACK Serverless クラスターのポッドは、Elastic Container Instance 上で実行されます。 Elastic Container Instance プロファイルを設定して、ポッドとポッド関連のクラスターアクションを詳細に制御できます。 Elastic Container Instance プロファイルは、kube-system 名前空間にある eci-profile という名前の ConfigMap です。 次の表に主要なパラメータを示します。
パラメータ | 説明 |
vpcId | ポッドがデプロイされる VPC (Virtual Private Cloud) の一意の識別子。 |
securityGroupId | VPC のセキュリティグループの一意の識別子。 |
vSwitchIds | VPC 内のvSwitch の一意の識別子。 複数の vSwitch ID はコンマ (,) で区切ります。 仮想ノードは vSwitch に基づいて生成されます。 |
selectors | ポッドセレクタ。 ポッドセレクタは、名前空間またはラベルに基づいてポッドを選択し、アノテーションまたはラベルを自動的に追加できます。 |
enableClusterIp | ClusterIP を使用するかどうかを指定します。 デフォルト値: true。 |
enableLogController | Alibaba Cloud ログコントローラを有効にするかどうかを指定します。 デフォルト値: false。 |
enablePVCController | 永続ボリューム要求 (PVC) コントローラを有効にするかどうかを指定します。 デフォルト値: false。 |
enablePrivateZone | PrivateZone のサービスディスカバリ機能を有効にするかどうかを指定します。 デフォルト値: false。 |
featureGates | feature gate を有効にするかどうかを指定します。 |
詳細については、「Elastic Container Instance の概要」をご参照ください。
仮想ノード
ACK Serverless クラスターを使用する場合、ノードを管理する必要はありません。 ACK Serverless クラスターが Kubernetes ネイティブ機能と互換性があることを確認するために、ACK Serverless クラスターで仮想ノードを見つけることができます。 ACK Serverless クラスターの仮想ノードは、トラフィックの変動に対応するために超大規模なコンピューティングリソースを提供できます。 仮想ノードは、vSwitchId
eci-profile ConfigMap の パラメータに基づいて生成されます。 仮想ノードはコンピューティングリソースを占有しません。
ポッド構成
ポッドにアノテーションを追加することで、ACK Serverless クラスターのポッドをカスタマイズできます。 次の表にアノテーションを示します。
次の表に示すアノテーションは、仮想ノードにスケジュールされているポッドにのみ適用されます。 これらのポッドは Elastic Container Instance 上で実行されます。 アノテーションは、通常のノードにスケジュールされているポッドには追加できません。
ポッドの
metadata
フィールドにアノテーションを追加します。 たとえば、デプロイメントを構成する場合は、spec.template.metadata フィールド
にアノテーションを追加します。ポッドアノテーションは、Elastic Container Instance プロファイルの同じ機能に対応する設定よりも優先順位が高くなります。
アノテーション | 例 | 説明 | 参照 |
k8s.aliyun.com/eci-security-group | sg-bp1dktddjsg5nktv**** | セキュリティグループの ID。 | 詳細については、「Elastic Container Instance にセキュリティグループを割り当てる」をご参照ください。 |
k8s.aliyun.com/eci-vswitch | vsw-bp1xpiowfm5vo8o3c**** | vSwitch の ID。 ゾーンをまたいで複数の vSwitch を指定できます。 | 詳細については、「マルチゾーンを構成して Elastic Container Instance ベースのポッドを作成する」をご参照ください。 |
k8s.aliyun.com/eci-schedule-strategy | vSwitchOrdered | マルチゾーンスケジューリングポリシー。 有効な値:
| |
k8s.aliyun.com/eci-ram-role-name | AliyunECIContainerGroupRole | Elastic Container Instance が他の Alibaba Cloud サービスにアクセスするために引き受ける RAM (Resource Access Management) ロール。 | 詳細については、「RAM ロールの構成」をご参照ください。 |
k8s.aliyun.com/eci-use-specs | 2-4Gi,4-8Gi,ecs.c6.xlarge | Elastic Container Instance の仕様。 CPU コア数やメモリサイズなど、複数の仕様を指定できます。 ECS インスタンスタイプを指定することもできます。 | 詳細については、「複数のインスタンス仕様を指定して Elastic Container Instance を作成する」をご参照ください。 |
k8s.aliyun.com/eci-spot-strategy | SpotAsPriceGo | プリエンプティブルインスタンスの入札ポリシー。 有効な値:
| 詳細については、「プリエンプティブル Elastic Container Instance を作成する」をご参照ください。 |
k8s.aliyun.com/eci-spot-price-limit | 0.5 | プリエンプティブルインスタンスの最高価格。 説明 このパラメータは、k8s.aliyun.com/eci-spot-strategy が SpotWithPriceLimit に設定されている場合にのみ有効です。 | |
k8s.aliyun.com/eci-cpu-option-core | 2 | 物理 CPU コアの数。 | 詳細については、「CPU オプションの指定」をご参照ください。 |
k8s.aliyun.com/eci-cpu-option-ht | 1 | コアあたりのスレッド数。 | |
k8s.aliyun.com/eci-reschedule-enable | "true" | Elastic Container Instance の再スケジューリング機能を有効にするかどうかを指定します。 | 詳細については、「ECI Pod アノテーション」をご参照ください。 |
k8s.aliyun.com/pod-fail-on-create-err | "true" | Elastic Container Instance でポッドの作成に失敗した場合に、Elastic Container Instance のステータスを「失敗」に設定するかどうかを指定します。 | 詳細については、「ECI Pod アノテーション」をご参照ください。 |
k8s.aliyun.com/eci-image-snapshot-id | imc-2zebxkiifuyzzlhl**** | イメージキャッシュの ID。 説明 イメージキャッシュを使用して Elastic Container Instance を作成するには、使用するイメージキャッシュを指定するか、イメージキャッシュの自動マッチングを有効にすることができます。 イメージキャッシュの自動マッチングを有効にすることをお勧めします。 | 詳細については、「ImageCache を使用してポッドの作成を高速化する」をご参照ください。 |
k8s.aliyun.com/eci-image-cache | "true" | イメージキャッシュの自動マッチングを有効にするかどうかを指定します。 説明 イメージキャッシュを使用して弾性コンテナーインスタンスを作成するには、使用するイメージキャッシュを指定するか、イメージキャッシュの自動マッチングを有効にします。イメージキャッシュの自動マッチングを有効にすることをお勧めします。 | |
k8s.aliyun.com/acr-instance-id | cri-j36zhodptmyq**** | Container Registry Enterprise Edition インスタンスの ID。 Elastic Container Instance のリージョンとは異なるリージョンにある Container Registry Enterprise Edition インスタンスを指定できます。 これを行うには、Container Registry Enterprise Edition インスタンスの ID の前に、Container Registry Enterprise Edition インスタンスのリージョン名を追加する必要があります。 例: cn-beijing:cri-j36zhodptmyq****。 | 詳細については、「シークレットを使用せずに Container Registry Enterprise Edition インスタンスからイメージをプルする」をご参照ください。 |
k8s.aliyun.com/eci-eip-instanceid | eip-bp1q5n8cq4p7f6dzu**** | EIP (Elastic IP Address) の ID。 | 詳細については、「Elastic Container Instance に EIP を関連付ける」をご参照ください。 |
k8s.aliyun.com/eci-with-eip | "true" | EIP を自動的に作成し、ポッドに関連付けるかどうかを指定します。 | |
k8s.aliyun.com/eip-bandwidth | 5 | EIP の帯域幅値。 | |
k8s.aliyun.com/eip-common-bandwidth-package-id | cbwp-2zeukbj916scmj51m**** | EIP 帯域幅プランの ID。 | |
k8s.aliyun.com/eip-isp | BGP | EIP の回線タイプ。 このアノテーションは、従量課金制の EIP にのみ適用されます。 有効な値:
| |
k8s.aliyun.com/eip-internet-charge-type | PayByBandwidth | EIP の課金方法。 有効な値:
| |
k8s.aliyun.com/eci-enable-ipv6 | "true" | インスタンスに IPv6 アドレスを割り当てるかどうかを指定します。 | 詳細については、「Elastic Container Instance ベースのポッドに IPv6 アドレスを割り当てる」をご参照ください。 |
k8s.aliyun.com/eci-ipv6-bandwidth-enable | "true" | IPv6 アドレス経由でポッドへのインターネットアクセスを有効にするかどうかを指定します。 | |
k8s.aliyun.com/eci-ipv6-bandwidth | 100M | IPv6 アドレスの最大パブリック帯域幅。 | |
kubernetes.io/ingress-bandwidth | 40M | インバウンド帯域幅。 | 詳細については、「Elastic Container Instance のインバウンドおよびアウトバウンド帯域幅を制限する」をご参照ください。 |
kubernetes.io/egress-bandwidth | 20M | アウトバウンド帯域幅。 | |
k8s.aliyun.com/eci-extra-ephemeral-storage | 50Gi | 一時記憶容量。 | 詳細については、「一時記憶領域をスケールアップする」をご参照ください。 |
k8s.aliyun.com/eci-eviction-enable | "true" | 一時記憶領域が不足しているポッドを Elastic Container Instance から自動的にエビクトするかどうかを指定します。 | 詳細については、「一時記憶領域が不足しているポッドを自動的にエビクトする」をご参照ください。 |
k8s.aliyun.com/eci-core-pattern | /pod/data/dump/core | コアダンプファイルが格納されるディレクトリ。 | 詳細については、「coredump を使用してインスタンスプログラムの例外を分析する」をご参照ください。 |
k8s.aliyun.com/eci-ntp-server | 100.100.*.* | NTP (Network Time Protocol) サーバーの IP アドレス。 | 詳細については、「NTP サービスの構成」をご参照ください。 |
k8s.aliyun.com/plain-http-registry | "harbor***.pre.com,192.168.XX.XX:5000,reg***.test.com:80" | セルフマネージドイメージリポジトリの IP アドレス。 HTTP プロトコルを使用するセルフマネージドイメージリポジトリのイメージを使用して Elastic Container Instance を作成する場合は、このパラメータを指定する必要があります。 これにより、Elastic Container Instance は HTTP 経由でイメージをプルし、異なるプロトコルの使用によるイメージプルの失敗を防ぎます。 | 詳細については、「セルフマネージドイメージリポジトリからイメージをプルする」をご参照ください。 |
k8s.aliyun.com/insecure-registry | "harbor***.pre.com,192.168.XX.XX:5000,reg***.test.com:80" | セルフマネージドイメージリポジトリのドメイン名。 自己署名証明書を使用するセルフマネージドイメージリポジトリのイメージを使用して Elastic Container Instance を作成する場合は、インスタンスにこのアノテーションを追加して、証明書の認証をスキップする必要があります。 これにより、証明書の認証エラーによるイメージプルの失敗を防ぎます。 |
詳細については、「ECI Pod アノテーション」をご参照ください。
ネットワーク管理
デフォルトでは、Elastic Container Instance ベースのポッドはホストネットワークモードを使用します。 各ポッドには、vSwitch によって ENI (Elastic Network Interface) が割り当てられる必要があります。 これにより、クラスターがデプロイされている VPC 内の Elastic Compute Service (ECS) インスタンスおよび ApsaraDB RDS インスタンスとの通信が可能になります。
項目 | 説明 |
サービス |
|
Ingress |
|
サービスディスカバリ | クラスター内でサービスディスカバリ機能を使用するには、クラスターの作成時に PrivateZone または CoreDNS を有効にします。 また、ECI プロファイルを使用して PrivateZone を有効にするか、クラスターの作成後に ACK コンソールのアドオンページから CoreDNS コンポーネントをインストールすることもできます。 |
EIP | EIP を Elastic Container Instance ベースのポッドに関連付けることができます。 Elastic Container Instance ベースのポッドの EIP を自動的に作成するか、既存の EIP を Elastic Container Instance ベースのポッドに関連付けることができます。 |
ストレージ管理
EBS (Elastic Block Storage) または File Storage NAS (NAS) ファイルシステムをポッドにマウントできます。
項目 | 説明 |
EBS (ディスク) |
|
NAS |
|
可観測性
項目 | 説明 |
ロギング | ACK Serverless クラスターでは、eci-profile を変更して Simple Log Service を有効にし、ポッドログを収集できます。 詳細については、「ポッド環境変数を使用してアプリケーションログを収集する」トピックの手順 1: アプリケーションを作成し、Simple Log Service を構成してアプリケーションログを収集する」セクションをご参照ください。 |
モニタリング | arms-prometheus コンポーネントをインストールして、ACK Serverless クラスターのクラスターモニタリングを有効にできます。 詳細については、「Managed Service for Prometheus を有効にする」をご参照ください。 |
イメージ管理
ACK Serverless クラスターでは、イメージキャッシュを使用してポッドの作成を高速化できます。 これにより、アプリケーションの応答時間が短縮されます。 ポッドのイメージキャッシュ機能を有効にする方法の詳細については、「ImageCache を使用してポッドの作成を高速化する」をご参照ください。
Container Registry からイメージをプルして ACK Serverless クラスターにポッドを作成する場合、シークレットを使用せずに Container Registry Enterprise Edition インスタンスからイメージをプルすることができます。
自動スケーリング
ACK Serverless クラスターはノードレスです。 cluster-autoscaler を使用してノード計画やクラスター拡張について心配する必要はありません。 ビジネス要件に合わせてアプリケーションをスケーリングするだけで済みます。 Horizontal Pod Autoscaler (HPA) またはコンテナ定時スケーリングポリシーを構成して、必要に応じてポッドの数を調整することをお勧めします。 詳細については、「自動スケーリングの概要」をご参照ください。
権限付与
アプリケーションポッドが Alibaba Cloud サービスにアクセスする必要がある場合は、サービスアカウントの RAM ロール (RRSA) を構成して権限付与を完了できます。
クラスター管理
項目 | 説明 |
インテリジェント O&M | インテリジェント O&M 機能を使用して、ACK Serverless クラスターのヘルスステータスを定期的にチェックしたり、スペックアップまたは移行されるクラスターの事前チェックを実行したりできます。 |
更新 | ACK Serverless クラスターはサービスを中断することなくスペックアップできます。 |
ACK Serverless プロ | ACK Serverless プロクラスターはより信頼性が高く、サービスの稼働時間が長くなり、より多くのポッドを作成できます。 |
移行 | サービスの信頼性を高めるために、サービスを中断することなく、トライアルまたは古い ACK Serverless ベーシッククラスターを ACK Serverless プロクラスターにスペックアップできます。 |
コンポーネント管理
ACK Serverless クラスターは、さまざまなコンポーネントと拡張クラスター機能を提供します。 ビジネス要件に基づいて、コンポーネントをデプロイ、更新、またはアンインストールできます。 詳細については、「コンポーネントの管理」をご参照ください。
マネージドコンポーネント
クラスター O&M を簡素化し、アプリケーション開発に集中できるようにするために、ACK Serverless クラスターはマネージドシステムコンポーネントを提供します。 ACK Serverless クラスターでは、kube-scheduler、cloud-controller-manager、kube-controller-manager、kube-apiserver などのマネージドシステムコンポーネントを使用できます。 これらの主要な Kubernetes コンポーネントに加えて、ACK Serverless クラスターは、将来的にはより多くのマネージドストレージ、ネットワーク、およびモニタリングコンポーネントを提供する予定です。
マネージドコンポーネントは、ClusterRole、ClusterRoleBinding、ServiceAccount、サービス、ConfigMap などのオブジェクトを作成できます。 ただし、マネージドコンポーネントによって作成されたオブジェクトは、ACK Serverless クラスターで実行されている Elastic Container Instance にはデプロイされません。 クラスターの安定性を確保するために、マネージドコンポーネントによって作成されたオブジェクトを変更しないことをお勧めします。
マネージドコンポーネントは、ACK Serverless クラスターによってデプロイおよび保守されます。 ACK API を使用して、ACK Serverless クラスター内のマネージドコンポーネントと対話できます。 マネージドコンポーネントには次の利点があります。
Elastic Container Instance のコストを節約します。
自動デプロイとメンテナンスを提供します。
高可用性アーキテクチャを使用します。
アプリケーション管理
ACKコンソールの [マーケットプレイス] ページから Helm チャートをインストールし、[helm] ページで管理できます。 詳細については、「Helm を使用してアプリケーションデプロイを簡素化する」をご参照ください。
課金ルール
ACK Serverless クラスターは、ACK Serverless ベーシッククラスターと ACK Serverless プロクラスターに分類されます。 課金項目と課金ルールは、クラスターのタイプによって異なります。 詳細については、「ACK Serverless クラスターの課金」をご参照ください。
制限
ACK Serverless クラスターには次の制限があります。
DaemonSet はサポートされていません。 DaemonSet は sidecar コンテナで置き換えることができます。
ポッド
マニフェスト
でHostPath
またはHostNetwork
を指定することはできません。権限のあるコンテナはサポートされていません。 Security Context を使用して、ポッドに機能を追加できます。
説明権限のあるコンテナ機能は内部プレビュー中です。 この機能を使用するには、チケットを送信してください。
NodePort サービスとセッションアフィニティ機能はサポートされていません。
中国南方金融および Alibaba GovCloud リージョンはサポートされていません。
お問い合わせ
ASK クラスターについてご質問がある場合は、DingTalk グループ 31544226 に参加してください。