すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:ACKサーバーレスとは何ですか?

最終更新日:Nov 17, 2024

このトピックでは、ACK Serverlessとその利点、使用シナリオ、およびACK Serverlessクラスターをすぐに使い始めるのに役立つ主要な機能について説明します。 このトピックでは、ACKサーバーレスクラスターとACKクラスターも比較します。

概要

ACK Serverlessは、Alibaba Cloudが提供するサーバーレスコンテナサービスです。 ACK Serverlessクラスタは、ACK Serverlessによって提供される。 ノードの計画、購入、保守を必要とせずに、アプリケーションをデプロイできます。 従量課金制でアプリケーションに割り当てられたCPUおよびメモリリソースに対して課金されます。 ACKサーバーレスクラスターはKubernetes互換機能を提供し、初心者がインフラストラクチャ管理ではなくアプリケーションに集中できるようにします。

ACK Serverless clusterは、ACK Serverless Basic clusterACK Serverless Pro clusterに分類されます。 ACK Serverless Proクラスターは、ACK Serverless Basicクラスターに基づいて開発されており、大規模生産のセキュリティと信頼性を向上させます。 ACKサーバーレスクラスタは、補償条項をサポートするサービスレベル契約 (SLA) によってもカバーされます。 ACK Serverless Proクラスターの詳細については、「ACK Serverless Proクラスターの概要」をご参照ください。

メリット

メリット

説明

すぐに使える

Kubernetesノードとサーバーを管理することなく、ACKサーバーレスクラスターをすばやく作成し、ACKサーバーレスクラスターにアプリケーションをデプロイできます。

超大容量

構成を追加したり、クラスターのサイズを設計したりすることなく、ACKサーバーレスクラスターに50,000を超えるポッドを作成できます。

重要

多数のポッドがサービスに関連付けられている場合は、ポッドの数を20,000に抑えることをお勧めします。

第2レベルのスケーリング

トラフィックの急増を処理するために、短期間で数千のポッドを作成できます。

予測スケーリング

ACKサーバーレスは、履歴データに基づいてリソース需要を予測し、ピーク時にリソースを迅速にスケーリングできます。

クラウドネイティブサービスとの互換性

ACK ServerlessはKubernetesと完全互換性があり、Kubernetesネイティブアプリケーションとエコシステムをサポートしています。 KubernetesアプリケーションをACK Serverlessにシームレスに移行できます。

セキュリティの分離

ポッドをelasticコンテナインスタンスにデプロイできます。 ポッドがデプロイされているインスタンスは、軽量の仮想サンドボックステクノロジを使用して互いに分離されます。

コスト削減

ポッドはオンデマンドで作成されます。 アプリケーションで使用されているリソースに基づいて課金されます。 サーバーレスアーキテクチャは、リソースの無駄を防ぎ、O&Mコストを削減するのに役立ちます。

サービス統合

コンテナー化されたアプリケーションをAlibaba Cloudの基本サービスとシームレスに統合できます。 コンテナは、仮想マシンにデプロイされたアプリケーションと通信できます。

ACK Serverless Proクラスター

ACK Serverless Basicクラスターと比較して、ACK Serverless Proクラスターは信頼性が高く、サービスの稼働時間が長くなり、より多くのポッドをデプロイできます。 アプリケーションをACK Serverless BasicクラスターからACK Serverless Proクラスターにシームレスに移行できます。

ACKサーバーレスクラスタとACKクラスタの比較

次の図は、左側のACKクラスターと右側のACKサーバーレスクラスターを比較しています。

image

利用シナリオ

シナリオ

説明

アプリケーションホスティング

ACKサーバーレスクラスターでは、ノードを管理または保守したり、クラスターサイズを計画したりする必要はありません。 これにより、インフラストラクチャの管理とメンテナンスのコストが大幅に削減されます。

交通スパイク

オンライン教育やeコマースなどの業界で変動するワークロードの場合、ACKサーバーレスクラスターは数秒以内にリソースをスケールして、コンピューティングコストを削減し、リソースの無駄を防ぎ、トラフィックの急増に耐えることができます。 詳細については、「」をご参照ください。自動スケーリングの概要.

データコンピューティング

Sparkジョブなどのコンピューティングジョブを処理するために、ACK Serverless clusterは短時間で多数のポッドを開始し、ジョブが完了した直後にポッドをリリースしてコンピューティングコストを削減できます。 詳細については、「ACKサーバーレスを使用したSparkタスクの作成」をご参照ください。

CI / CD

ACKサーバーレスクラスターを使用して、JenkinsやGitlab-Runnerなどの継続的インテグレーション (CI) 環境を構築し、アプリケーションコードをすばやくコンパイルし、イメージをビルドしてプッシュし、パイプラインを作成できます。 CIジョブは互いに分離されています。 リソースプールを維持する必要がないため、コンピューティングコストが削減されます。 詳細については、「JenkinsをACKサーバーレスクラスターにデプロイし、アプリケーションを作成してデプロイする」と「Elastic and cost-effective CI/CD based on ACK Serverless」をご参照ください。

CronJobs

ACKサーバーレスクラスターでCronJobsを実行できます。 ジョブが完了すると、課金は停止します。 リソースプールを維持する必要がないため、リソースの無駄を防ぐことができます。 詳細については、「」をご参照ください。スケジュールされた水平スケーリングにCronHPAを使用する.

主な機能

ACKサーバーレスクラスターは、Kubernetes互換機能を提供します。 Kubernetesネイティブの機能に加えて、ACKサーバーレスクラスターを使用する場合は、次の機能に注意することを推奨します。

ECIプロフィール

ACKサーバーレスクラスターのポッドは、エラスティックコンテナインスタンスで実行されます。 Elastic Container Instance Profileを設定して、ポッドとポッド関連のクラスターアクションをきめ細かく制御できます。 Elastic Container Instance Profileは、kube-system名前空間のeci-profileという名前のConfigMapです。 次の表に、主要なパラメーターを示します。

パラメーター

説明

vpcId

ポッドがデプロイされている仮想プライベートクラウド (VPC) の一意の識別子。

securityGroupId

VPCの [概要] の一意の識別子。

vSwitchIds

VPC内のvSwitchの一意の識別子。 複数のvSwitch IDをコンマ (,) で区切ります。 仮想ノードはvSwitchに基づいて生成されます。

セレクター

ポッドセレクタ。 ポッドセレクターは、名前空間またはラベルに基づいてポッドを選択し、注釈またはラベルを自動的に追加できます。

enableClusterIp

ClusterIPを使用するかどうかを指定します。 デフォルト値:true

enableLogController

Alibaba Cloudログコントローラーを有効にするかどうかを指定します。 デフォルト値:false

enablePVCController

永続ボリューム要求 (PVC) コントローラを有効にするかどうかを指定します。 デフォルト値:false

enablePrivateZone

PrivateZoneのサービス検出機能を有効にするかどうかを指定します。 デフォルト値:false

featureGates

フィーチャーゲートを有効にするかどうかを指定します。

詳細については、「Elastic Container Instanceの概要」をご参照ください。

仮想ノード

ACKサーバーレスクラスターを使用する場合、ノードを管理する必要はありません。 ACKサーバーレスクラスターがKubernetesネイティブ機能と互換性を持つようにするために、ACKサーバーレスクラスターで仮想ノードを見つけることができます。 ACKサーバーレスクラスタ内の仮想ノードは、トラフィック変動に対処するための超大規模なコンピューティングリソースを提供できます。 仮想ノードは、eci-profile ConfigMapのvSwitchIdsパラメーターに基づいて生成されます。 仮想ノードはコンピューティングリソースを占有しません。

image

ポッドの設定

ポッドにアノテーションを追加することで、ACKサーバーレスクラスターのポッドをカスタマイズできます。 次の表に、アノテーションを示します。

重要
  • 次の表に示すアノテーションは、仮想ノードにスケジュールされているポッドにのみ適用できます。 これらのポッドは、弾性コンテナインスタンスで実行されます。 通常のノードにスケジュールされているポッドにアノテーションを追加することはできません。

  • ポッドのmetadataフィールドにアノテーションを追加します。 たとえば、配置を設定するときに、spec.template.metadataフィールドに注釈を追加します。

  • ポッドの注釈は、Elastic Container Instanceプロファイルの同じ機能に対応する設定よりも優先度が高くなります。

注釈

説明

関連ドキュメント

k8s.aliyun.com/eci-security-group

sg-bp1dktddjsg5nktv ****

セキュリティグループの ID です。

セキュリティグループをelasticコンテナーインスタンスに割り当てる

k8s.aliyun.com/eci-vswitch

vsw-bp1xpiowfm5vo8o3c ****

vSwitchのID。 ゾーン間で複数のvSwitchを指定できます。

エラスティックコンテナインスタンスベースのポッドを作成するための複数のゾーンの設定

k8s.aliyun.com/eci-schedule-strategy

vSwitchOrdered

マルチゾーンスケジューリングポリシー。 有効な値:

  • vSwitchOrdered: 指定されたゾーンのリソースは、vSwitchが指定された順序でスケジュールされます。

  • vSwitchRandom: 指定されたゾーンのリソースはランダムにスケジュールされます。

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

弾性コンテナインスタンスの仕様。 CPUコア数やメモリサイズなど、复数の仕様を指定できます。 ECSインスタンスタイプを指定することもできます。

複数のインスタンス仕様を指定してelastic containerインスタンスを作成

k8s.aliyun.com/eci-spot-strategy

SpotAsPriceGo

プリエンプティブルインスタンスの入札ポリシー。 有効な値:

  • SpotAsPriceGo: インスタンスは購入時の市場価格で請求されます。

  • SpotWithPriceLimit: プリエンプティブルインスタンスに支払う最高価格を指定する必要があります。

プリエンプティブエラスティックコンテナインスタンスの作成

k8s.aliyun.com/eci-spot-price-limit

0.5

プリエンプティブルインスタンスの最高価格。

説明

このパラメーターは、f 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"

エラスティックコンテナインスタンスの再スケジューリング機能を有効にするかどうかを指定します。

ECIポッド注釈

k8s.aliyun.com/pod-fail-on-create-err

"true"

エラスティックコンテナインスタンスでポッドの作成に失敗した場合、エラスティックコンテナインスタンスのステータスをFailedに設定するかどうかを指定します。

ECIポッド注釈

k8s.aliyun.com/eci-image-snapshot-id

imc-2zebxkiifuyzzlhl ****

イメージキャッシュのID。

説明

イメージキャッシュを使用してエラスティックコンテナインスタンスを作成するには、使用するイメージキャッシュを指定するか、イメージキャッシュの自動マッチングを有効にします。 イメージキャッシュの自動マッチングを有効にすることを推奨します。

ImageCacheを使用したポッドの作成の高速化

k8s.aliyun.com/eci-image-cache

"true"

イメージキャッシュの自動マッチングを有効にするかどうかを指定します。

説明

イメージキャッシュを使用してエラスティックコンテナインスタンスを作成するには、使用するイメージキャッシュを指定するか、イメージキャッシュの自動マッチングを有効にします。 イメージキャッシュの自動マッチングを有効にすることを推奨します。

k8s.aliyun.com/acr-instance-id

cri-j36zhodptmyq ****

Container Registry Enterprise EditionインスタンスのID。

エラスティックコンテナインスタンスのリージョンとは異なるリージョンに存在する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 ****

elastic IPアドレス (EIP) のID。

EIPをelasticコンテナインスタンスに関連付ける

k8s.aliyun.com/eci-with-eip

"true"

EIPを自動的に作成し、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にのみ適用されます。 有効な値:

  • BGP: BGP (マルチISP) ライン

  • BGP_PRO: BGP (マルチISP) プロライン

k8s.aliyun.com/eip-internet-charge-type

帯域幅課金

EIPの計量方法。 有効な値:

  • PayByBandwidth: 料金は帯域幅使用量に基づいて課金されます。

  • PayByTraffic:データ転送による支払い

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

インバウンド帯域幅。

エラスティックコンテナインスタンスの受信帯域幅と送信帯域幅の制限

kubernetes.io /出力帯域幅

20M

アウトバウンド帯域幅。

k8s.aliyun.com/eci-extra-ephemeral-storage

50Gi

一時的なストレージ容量。

一時保存スペースのスケールアップ

k8s.aliyun.com/eci-eviction-enable

"true"

エラスティックコンテナインスタンスから十分な一時記憶領域がないポッドを自動的に削除するかどうかを指定します。

一時保管スペースが不足しているポッドを自動的に削除する

k8s.aliyun.com/eci-core-pattern

/pod/data/dump/core

コアダンプファイルが格納されているディレクトリ。

coredumpを使用したインスタンスプログラムの例外分析

k8s.aliyun.com/eci-ntp-server

100.100.*.*

ネットワークタイムプロトコル (NTP) サーバーの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はHTTP経由でイメージをプルでき、異なるプロトコルの使用によるイメージプルの失敗を防ぎます。

自己管理イメージリポジトリからイメージを取得

k8s.aliyun.com/insecure-registry

「harbor *** .pre.com、192.168。XX。XX:5000、reg *** .test.com:80」

自己管理イメージリポジトリのドメイン名。

自己署名証明書を使用する自己管理イメージリポジトリ内のイメージを使用してエラスティックコンテナインスタンスを作成する場合、証明書の認証をスキップするには、この注釈をインスタンスに追加する必要があります。 これにより、証明書認証の失敗によるイメージプルの失敗を防ぎます。

詳細については、「ECIポッド注釈」をご参照ください。

ネットワーク管理

デフォルトでは、Elastic Container Instanceベースのポッドはホストネットワークモードを使用します。 各ポッドには、vSwitchによってelastic network interface (ENI) を割り当てる必要があります。 これにより、クラスターがデプロイされているVPC内のElastic Compute Service (ECS) インスタンスおよびApsaraDB RDSインスタンスとの通信が可能になります。

項目

説明

サービス

  • ClusterIPおよびLoadBalancerサービスを作成できます。

  • NodePortサービスを作成できず、Session Affinityを有効にすることもできません。

    説明

    ACKサーバーレスクラスタは、ノード関連機能をサポートしていません。

Ingress

  • SLB Ingress: コントローラーなしのServer Load Balancer (SLB) インスタンスに基づくレイヤー7トラフィック転送をサポートします。 詳細については、「Ingressデモ」をご参照ください。

  • NGINX Ingress: NGINX-ingress-controllerのデプロイ後にnginx Ingressを作成できます。 詳細については、「ingress-nginxデモ」をご参照ください。

サービス検出

クラスター内でサービス検出機能を使用するには、クラスターの作成時にPrivateZoneまたはCoreDNSを有効にします。 クラスターの作成後、ECIプロファイルを使用してPrivateZoneを有効にするか、ACKコンソールのアドオンページからCoreDNSコンポーネントをインストールすることもできます。

EIP

EIPをElastic Container Instanceベースのポッドに関連付けることができます。 Elastic Container InstanceベースのポッドのEIPを自動的に作成するか、既存のEIPをElastic Container Instanceベースのポッドに関連付けることができます。

ストレージ管理

Elastic Block Storage (EBS) またはFile Storage NAS (NAS) ファイルシステムをポッドにマウントできます。

項目

説明

EBS (ディスク)

  • FlexVolumeを使用してディスクをマウントするには、FlexVolumeをインストールする必要はありません。 ディスクIDを指定してディスクをマウントできます。 詳細については、「disk-flexvolume-static.yamlデモ」をご参照ください。 ディスクをボリュームとして動的にプロビジョニングすることもできます。 詳細については、「disk-flexvolume-dynamic.yamlデモ」をご参照ください。

  • 永続ボリューム (PV) とPVCを作成してディスクを動的にプロビジョニングするには、まずディスクコントローラーをインストールする必要があります。 詳細については、「disk-pvc-dynamic.yamlデモ」をご参照ください。

NAS

  • NFSボリュームを使用するには、NFSを使用してNASファイルシステムをマウントします。 詳細については、「nas-nfsvolume.yamlデモ」をご参照ください。

  • FlexVolumeを使用してNASファイルシステムをボリュームとして静的にプロビジョニングするには、FlexVolumeをインストールしなくても、マウントターゲットを直接指定できます。 詳細については、「nas-flexvolume.yamlデモ」をご参照ください。

  • PVおよびPVCを作成してNASファイルシステムをボリュームとして静的にプロビジョニングするには、まずディスクコントローラーをインストールする必要があります。 詳細については、「nas-pvc.yamlデモ」をご参照ください。

可観測性

項目

説明

ロギング

ACKサーバーレスクラスターでは、eci-profileを変更して、Simple Log Serviceでポッドログを収集できるようにします。 詳細については、「ポッド環境変数を使用してアプリケーションログを収集する」トピックの「手順1: アプリケーションを作成し、アプリケーションログを収集するようにSimple Log Serviceを設定する」をご参照ください。

モニタリング

arms-prometheusコンポーネントをインストールして、ACKサーバーレスクラスターのクラスターモニタリングを有効にすることができます。 詳細については、「Prometheusのマネージドサービスの有効化」をご参照ください。

イメージ管理

自動スケーリング

ACKサーバーレスクラスタは無ノードです。 cluster-autoscalerを使用して、ノードの計画やクラスターの拡張について心配する必要はありません。 ビジネス要件を満たすためにアプリケーションを拡張するだけで済みます。 水平ポッドオートスケーラー (HPA) またはCronHPAポリシーを設定して、ポッドの数をオンデマンドで調整することを推奨します。 詳細については、「自動スケーリングの概要」をご参照ください。

承認

アプリケーションポッドがAlibaba Cloudサービスにアクセスする必要がある場合は、サービスアカウントのRAMロール (RRSA) を設定して認証を完了できます。

クラスター管理

項目

説明

インテリジェントO&M

インテリジェントO&M機能を使用して、ACKサーバーレスクラスターのヘルスステータスを定期的にチェックしたり、アップグレードまたは移行するクラスターに対して事前チェックを実行したりできます。

アップデート

サービスを中断することなく、ACKサーバーレスクラスターをアップグレードできます。

ACKサーバーレスプロ

ACK Serverless Proクラスターはより信頼性が高く、より高いサービス稼働時間を確保し、より多くのポッドを作成できます。

移行

サービスの信頼性を高めるために、サービスを中断することなく、試用版または古いACK Serverless BasicクラスターACK Serverless Proクラスターにアップグレードできます。

コンポーネント管理

ACKサーバーレスクラスタは、さまざまなコンポーネントと拡張クラスタ機能を提供します。 ビジネス要件に基づいてコンポーネントをデプロイ、更新、またはアンインストールできます。 詳細については、「コンポーネントの管理」をご参照ください。

管理対象コンポーネント

クラスターのO&Mを簡素化し、アプリケーション開発に集中できるようにするために、ACKサーバーレスクラスターはマネージドシステムコンポーネントを提供します。 ACKサーバーレスクラスターでは、kube-scheduler、cloud-controller-manager、kube-controller-manager、kube-apiserverの管理対象システムコンポーネントを使用できます。 これらの主要なKubernetesコンポーネントに加えて、ACKサーバーレスクラスターは将来、より多くのマネージドストレージ、ネットワーク、およびモニタリングコンポーネントを提供する予定です。

重要

管理コンポーネントは、ClusterRoles、ClusterRoleBindings、ServiceAccounts、Services、ConfigMapsなどのオブジェクトを作成できます。 ただし、管理コンポーネントによって作成されたオブジェクトは、ACKサーバーレスクラスターで実行されるエラスティックコンテナーインスタンスにはデプロイされません。 クラスターの安定性を確保するため、管理コンポーネントによって作成されたオブジェクトは変更しないことを推奨します。

管理対象コンポーネントは、ACKサーバーレスクラスタによってデプロイおよび保守されます。 ACK APIを使用して、ACKサーバーレスクラスター内の管理対象コンポーネントと対話できます。 管理コンポーネントには、次の利点があります。

  • 弾性コンテナインスタンスのコストを節約できます。

  • 自動化された展開とメンテナンスを提供します。

  • 高可用性アーキテクチャを使用します。

アプリケーション管理

ACKコンソールMarketplaceページからHelmチャートをインストールし、Helmページで管理できます。 詳細については、「Helmを使用したアプリケーションのデプロイの簡素化」をご参照ください。

課金ルール

ACK Serverless clusterは、ACK Serverless Basic clusterACK Serverless Pro clusterに分類されます。 課金可能な項目と課金ルールは、クラスターのタイプによって異なります。 詳細については、「ACKサーバーレスクラスターの課金」をご参照ください。

制限事項

ACKサーバーレスクラスタには、次の制限があります。

  • ACKサーバーレスクラスターはDaemonSetsをサポートしていません。 DaemonSetsをサイドカーコンテナに置き換えることができます。

  • ポッドマニフェストHostPathまたはHostNetworkを指定することはできません。

  • ACKサーバーレスクラスタは、特権コンテナをサポートしません。 セキュリティコンテキストを使用して、ポッドに機能を追加できます。

    説明

    特権コンテナー機能は内部プレビュー中です。 この機能を使用するには、

    チケットを起票してサポートセンターにお問い合わせくださいしてサポートセンターにお問い合わせください。

  • ACKサーバーレスクラスターは、NodePortサービスまたはセッションアフィニティ機能をサポートしていません。

  • ACKサーバーレスクラスターは、China South FinanceまたはAlibaba Gov Cloudリージョンをサポートしていません。

お問い合わせ

ASKクラスターについて質問がある場合は、DingTalkグループ31544226に参加してください。