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

Container Service for Kubernetes:ACK マネージドクラスターの作成

最終更新日:Jul 12, 2025

ACK マネージドクラスターを作成する場合、ワーカーノードのみを構成する必要があります。マスターノードは、Container Service for Kubernetes (ACK) によって作成および管理されます。これにより、O&M コストが削減され、ビジネスアプリケーションに集中できます。このトピックでは、ACK コンソールで、API 操作を呼び出すことによって、および Terraform、SDK、CLI を使用して、ACK マネージドクラスターを作成する方法について説明します。

ACK クラスターを作成する前に、関連する基本情報について理解しておくことをお勧めします。詳細については、「Kubernetes の概念」、「製品紹介」、および「クラスター」をご参照ください。

ACK マネージドクラスターを初めて使用する場合は、キューブゲームから始めることができます。詳細については、「ACK を使用してマジックキューブゲームアプリケーションをデプロイする」をご参照ください。試用が終了したら、予期しないコストを避けるために、できるだけ早くリソースを解放してください。

計画と設計

クラスターを作成する前に、ビジネス要件に基づいてクラスターを計画および設計し、クラスターが安定して効率的かつ安全に実行できるようにします。ほとんどの ConfigMap は、クラスターの作成後に調整できます。ただし、一部の ConfigMap は、クラスターの作成後に変更できません。特に、クラスターの可用性とクラスターネットワークに関連する構成は変更できません。計画を立てるときは、次の要件が満たされていることを確認してください。

カテゴリ

説明

デプロイメントの場所

  • リージョン:ユーザーの地理的に近いリージョンにデプロイされたサービスは、ユーザーがサービスにアクセスするときの応答性が向上します。

  • ゾーン:クラスターの高可用性を確保するために、複数のゾーンを構成することをお勧めします。

バージョンと仕様

  • Kubernetes バージョン:使用する Kubernetes バージョン。最新バージョンを使用することをお勧めします。

  • クラスターの仕様:Professional または Basic を選択します。Pro Edition は本番環境に適しており、サービスレベル契約 (SLA) を提供します。Basic Edition はテスト環境に適しており、リソースクォータが制限されています。

ネットワーク計画

  • ネットワークプラグイン:Terway または Flannel を選択します。高いネットワークセキュリティ、固定 Pod IP アドレスなどの IP アドレスマネージャー (IPAM)、およびネットワークポリシーが必要な場合は、Terway を使用することをお勧めします。クラスターサイズが小さい場合 (500 ノード未満など) で、特別なネットワーク要件がない場合は、Flannel を使用できます。Terway と Flannel の違いの詳細については、「Terway と Flannel コンテナネットワークプラグインの比較」をご参照ください。

  • ACK クラスターのネットワークを計画する:ビジネスシナリオとクラスターサイズに基づいて、仮想プライベートクラウド (VPC) CIDR ブロック、vSwitch CIDR ブロック、コンテナ CIDR ブロック、およびサービス CIDR ブロックを構成します。次に、クラスターの IP アドレス範囲と、Pod とノードで使用可能な IP アドレスの数を指定します。

  • インターネットアクセス:クラスター内のノードがインターネットにアクセスできるかどうかを指定します。パブリックイメージをプルするときは、クラスターにインターネットアクセスが必要です。

    詳細については、「ネットワーク構成」の [SNAT の構成] をご参照ください。

  • IPv6 デュアルスタック:クラスターが IPv4 と IPv6 をサポートするかどうかを指定します。IPv4/IPv6 デュアルスタックを有効にするには、クラスターが存在する VPC がデュアルスタックをサポートしている必要があり、IPv6 CIDR ブロックを計画する必要があります。

  • セキュリティグループ:クラスターが属するセキュリティグループと、セキュリティグループのタイプ。

  • クラスタードメイン:クラスター内のすべてのサービスで使用される標準サフィックスを持つトップレベルドメイン名。これにより、Pod やその他のリソースは、IP アドレスではなく名前を使用して相互にアクセスできます。デフォルト値は cluster.local です。カスタム値を構成する方法の詳細については、「クラスターのドメイン名を構成する際に注意すべき点は何ですか?」をご参照ください。

準備

クラスターを作成する前に、ACK をアクティブ化し、ACK システムロールを Alibaba Cloud アカウントまたは RAM ユーザーに割り当てていることを確認してください。さらに、VPC、Server Load Balancer (SLB)、NAT ゲートウェイなどのクラウドサービスをアクティブ化していることを確認してください。詳細については、「ACK マネージドクラスターをすばやく作成する」をご参照ください。

説明

従量課金方式で CLB などのサービスを購入する場合は、延滞料金が発生しないように、Alibaba Cloud アカウントの残高が十分にあることを確認してください。

クラスターの作成

ACK では、ACK コンソールで、API 操作を呼び出すことによって、および SDK、Terraform、CLI を使用してクラスターを作成できます。

ACK コンソールの使用

手順

説明

RAM ユーザーを使用して ACK コンソールでクラスターを作成する場合は、対応する権限を RAM ユーザーに付与する必要があります。権限の付与方法の詳細については、「ACK コンソールに必要な権限」をご参照ください。

ACK コンソールのデフォルトのクラスター構成に基づいてクラスターを作成できます。パラメーターをきめ細かく構成する方法の詳細については、「ACK マネージドクラスター ConfigMap の説明」をご参照ください。次の図は、プロセスの概要を示しています。

image

ステップ 1:作成ページに移動する

  1. ACK コンソール にログオンします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  2. 上部のナビゲーションバーで、管理するリソースが属するリージョンとリソースグループを選択します。image

  3. [クラスター] ページで、[Kubernetes クラスターの作成] をクリックします。[ACK マネージドクラスター] ページで、クラスター、ノードプール、およびコンポーネントを構成します。

    次の手順では、自動モードは無効になっています。自動モードを有効にするには、「ACK マネージドクラスターの作成 (インテリジェントマネージドモード)」をご参照ください。

ステップ 2:クラスターの構成

セクション

説明

基本構成

名前、仕様、リージョン、バージョンなど、クラスターの基本情報。クラスターの自動更新を有効にし、スケジュール実行のメンテナンスウィンドウを構成できます。

image

ネットワーク設定

IPv6 デュアルスタック、VPC、vSwitch、API サーバーへのアクセス、セキュリティグループ、ネットワークプラグイン、サービス CIDR ブロックなどのパラメーターを構成します。

image

詳細オプション

クラスターリソースの管理とセキュリティに関連する構成。

image

パラメーターの詳細については、「クラスター構成」をご参照ください。

(オプション) ステップ 3:エラスティックノードプールを構成する

ノードプールは、ノードをグループ化して管理するために使用されます。これは、同じ属性を持つノードの論理的なコレクションであり、無料です。ノードプールは構成テンプレートに似ています。ノードプールに追加されたすべてのノードは、このテンプレートに基づいて構成されます。この手順で構成するノードプールは、クラスターのデフォルトノードプールとして使用されます。

プロンプトに従って、ノードプールの作成と構成をスキップできます。クラスターの作成後、さらにノードプールを作成できます。詳細については、「ノードプールを作成および管理する」をご参照ください。このようにして、異なるオペレーティングシステム、CPU アーキテクチャ、課金方式、インスタンスタイプを持つノードなど、異なるタイプのノードを混在させて分離できます。購入した ECS インスタンスをクラスターに追加する方法の詳細については、「既存の ECS インスタンスを追加する」をご参照ください。

カテゴリ

説明

基本構成

名前、コンテナランタイムなど、ノードの基本情報。マネージドノードプールを有効にできます。

image

インスタンスとイメージの構成

ノードの課金方式、インスタンスタイプ、およびオペレーティングシステム。複数のインスタンスタイプを選択することをお勧めします。

image

ボリューム設定

ノードで使用されるシステムディスクとデータディスク。システムディスクは、オペレーティングシステムのインストールと実行に使用されます。データディスクは、ビジネスデータを永続化するために使用されます。

image

インスタンス数量の構成

ノードプールで維持するインスタンスの数、プリエンティブルインスタンスの容量、および補償構成。このパラメーターは、課金方式がプリエンティブルインスタンスの場合にのみサポートされます。

image

詳細オプション

ECS タグ、ノードラベル、テイントなどの詳細構成。

image

パラメーターの詳細については、「ノードプール構成」をご参照ください。

ステップ 4:コンポーネントを構成する

システムコンポーネントに加えて、ACK は、クラスターネットワーキング、可観測性、コスト最適化などの機能を活用するための複数タイプの機能コンポーネントも提供します。

説明

デフォルトでは、ACK はベストプラクティスに基づいて特定のコンポーネントをインストールします。この手順でコンポーネントを確認できます。また、クラスターの作成後にコンポーネントをインストール、アンインストール、および更新することもできます。詳細については、「コンポーネントを管理する」をご参照ください。

セクション

説明

基本コンポーネント

ネットワーク、ストレージ、およびモニタリングコンポーネント。

image

その他のコンポーネント

アプリケーション管理、ログモニタリング、ストレージなどのシナリオで使用されるコンポーネント。

image

パラメーターの詳細については、「コンポーネントの構成」をご参照ください。

ステップ 5: 構成と請求情報を確認する

[注文の確認] ページで、機能構成、リソース請求情報、クラウドサービス依存関係チェック、サービス契約など、クラスターの構成を確認します。

ACK マネージドクラスター に対しては、クラスター管理費(Pro Edition のみ)とクラウド リソース料金が課金されます。ページの下部には、クラスターの請求の概要と、ACK およびその他のサービスの請求ドキュメントが表示されます。詳細については、「請求の概要」および「クラウド リソース料金」をご参照ください。

[確認] ステップでは、左上隅にある [Console-to-Code] をクリックして、現在のクラスターの構成に一致する Terraform または SDK サンプル パラメーターを作成することもできます。

API

デバッグ

デバッグ

サンプルリクエスト

次のサンプルリクエストは、ACK マネージド Pro クラスタを作成するために使用されます。パラメーターの詳細については、「CreateCluster」をご参照ください。

POST /clusters 
<共通リクエストヘッダー>
{
    "name": "ACK managed cluster",            
    "cluster_type": "ManagedKubernetes",  // profile および cluster_spec と共にこのパラメーターを使用して、クラスタタイプを ACK マネージド Pro クラスタに設定します。 #必須
    "profile": "Default",                    
    "cluster_spec": "ack.pro.small",         
    "kubernetes_version": "1.32.1-aliyun.1",  //作成されるクラスタの Kubernetes バージョン。最新の Kubernetes バージョンを選択することをお勧めします。    
    "region_id": "cn-hongkong",   //クラスタが属するリージョンは、中国 (香港) リージョンです。 #必須
    "snat_entry": true,           // クラスタをデプロイする VPC の SNAT ルールを設定して、クラスタのインターネットアクセスを有効にします。
    "endpoint_public_access": false,  //クラスタの API サーバーのインターネットアクセスは無効になっています。
    "deletion_protection": true,  //クラスタの削除保護を有効にします。
    "proxy_mode": "ipvs", // プロキシモードを IP Virtual Server (IPVS) に設定します。これは高パフォーマンスモードです。
    "tags": [],
    "timezone": "Asia/Shanghai",
    "addons": [                  //インストールされているクラスタコンポーネント。
        {
            "name": "terway-controlplane",
            "config": "{\"ENITrunking\":\"true\"}"
        },
        {
            "name": "terway-eniip",  //クラスタのネットワークプラグインは Terway です。クラスタの作成後、このパラメーターを変更することはできません。
            "config": "{\"IPVlan\":\"false\",\"NetworkPolicy\":\"false\",\"ENITrunking\":\"true\"}"
        },
        {
            "name": "csi-plugin"
        },
        {
            "name": "managed-csiprovisioner"
        },
        {
            "name": "storage-operator",
            "config": "{\"CnfsOssEnable\":\"false\",\"CnfsNasEnable\":\"false\"}"
        },
        {
            "name": "nginx-ingress-controller",
            "disabled": true
        },
        {
            "name": "ack-node-local-dns"
        }
    ],
    "enable_rrsa": false,
    "os_type": "Linux",
    "platform": "AliyunLinux",
    "image_type": "AliyunLinux3",
    "pod_vswitch_ids": [         // クラスタに Terway がインストールされている場合は、このパラメーターを設定して、ポッドの vSwitch を指定します。クラスタ内の各ポッドは個別の IP アドレスを使用します。
        "vsw-j6cht66iul7h61x******",
        "vsw-j6c5ne6mxgnx3g5******"
    ],
    "charge_type": "PostPaid",
    "vpcid": "vpc-j6cc1ddlp4rzs7v******",   //クラスタの VPC は、ネットワーク計画中に決定する必要があります。クラスタの作成後、VPC を変更することはできません。 #必須
    "service_cidr": "192.168.xx.xx/16",     //クラスタのサービス CIDR ブロック。 #必須
    "vswitch_ids": [                        // 複数の vSwitch を選択して、クラスタの高可用性を確保します。 #必須
        "vsw-j6cht66iul7h61x******",
        "vsw-j6c5ne6mxgnx3g5******"
    ],
    "ip_stack": "ipv4",                     // IP スタックタイプを IPv4 に設定します。
    "logging_type": "SLS",
    "cpu_policy": "none",
    "service_account_issuer": "https://kubernetes.default.svc",
    "api_audiences": "https://kubernetes.default.svc",
    "is_enterprise_security_group": true,
    "maintenance_window": {    //クラスタのメンテナンスウィンドウを毎週水曜日の 01:00 から 04:00 に設定します。
        "enable": true,
        "duration": "3h",
        "weekly_period": "Thursday",
        "maintenance_time": "2025-03-03T01:00:00.000+08:00",
    },
    "operation_policy": {
        "cluster_auto_upgrade": {
            "enabled": true,
            "channel": "stable"
        }
    },
    "controlplane_log_ttl": "30",
    "controlplane_log_components": [
        "apiserver",
        "kcm",
        "scheduler",
        "ccm",
        "controlplane-events",
        "alb"
    ],
    "nodepools": [
        {
            "nodepool_info": {         //ノードプール設定。
                "name": "default-nodepool"        
            },
            "scaling_group": {
                "system_disk_category": "cloud_essd",   //ノードプールのシステムディスクとして Enterprise SSD (ESSD) を選択します。
                "system_disk_size": 120,                //システムディスクサイズを 120 GiB に設定します。
                "system_disk_performance_level": "PL0", //システムディスクの最大 IOPS は 10000 です。
                "system_disk_encrypted": false,
                "data_disks": [],
                "tags": [],
                "soc_enabled": false,
                "security_hardening_os": false,
                "vswitch_ids": [
                    "vsw-j6cht66iul7h61x******",
                    "vsw-j6c5ne6mxgnx3g5******"
                ],
                "instance_types": [
                    "ecs.c6.xlarge",
                    "ecs.c7.xlarge"
                ],
                "instance_patterns": [],
                "login_password": "",
                "instance_charge_type": "PostPaid",
                "security_group_ids": [],
                "platform": "AliyunLinux",
                "image_id": "aliyun_3_x64_20G_alibase_20241218.vhd",
                "image_type": "AliyunLinux3",
                "desired_size": 3,        //ノードの予想数が 3 であるノードプールを作成します。
                "rds_instances": [],
                "multi_az_policy": "BALANCE"
            },
            "kubernetes_config": {
                "cpu_policy": "none",
                "cms_enabled": true,
                "unschedulable": false,
                "runtime": "containerd",    //コンテナランタイムを containerd 1.6.36 に設定します。クラスタの作成後、このパラメーターを変更することはできません。
                "runtime_version": "1.6.36"
            },
            "node_config": {
                "image_acceleration_config": {
                    "enable_image_acceleration": false
                }
            },
            "management": {
                "enable": true,
                "auto_repair": true,
                "auto_repair_policy": {
                    "restart_node": true
                },
                "auto_upgrade": true,
                "auto_upgrade_policy": {
                    "auto_upgrade_kubelet": true,
                    "auto_upgrade_os": false
                },
                "auto_vul_fix": true,
                "auto_vul_fix_policy": {
                    "vul_level": "asap",
                    "restart_node": true
                },
                "rolling_policy": {
                    "max_parallelism": 10
                }
            }
        }
    ]
}

主要なパラメーター

CreateCluster 操作を呼び出して ACK マネージドクラスタ を作成する場合は、次のパラメーターを設定します。

パラメーター

説明

パラメーターの組み合わせ

cluster_type

ACK マネージドクラスタ を作成する場合は、このパラメーターを ManagedKubernetes に設定します。

ACK マネージド Pro クラスタ を作成する

  • "cluster_type": "ManagedKubernetes"

  • "profile": "Default"

  • "cluster_spec": "ack.pro.small"

ACK マネージド Basic クラスタ を作成する

  • "cluster_type": "ManagedKubernetes"

  • "profile": "Default"

  • "cluster_spec": "ack.standard"

profile

ACK マネージドクラスタ を作成する場合は、このパラメーターを Default に設定します。

cluster_spec

クラスタの仕様。

  • ack.pro.small: ACK マネージド Pro クラスタ を作成することを指定します。

  • ack.standard: ACK マネージド Basic クラスタ を作成することを指定します。

Terraform

詳細については、「Terraform を使用して ACK マネージドクラスターを作成する」をご参照ください。

SDK

詳細については、「Java 用 ACK SDK の使用方法の例」をご参照ください。

CLI

詳細については、「クラスタを作成する」をご参照ください。

次のステップ

  • アプリケーションのデプロイ: デプロイメント、StatefulSet、ジョブなどのワークロードを作成および管理できます。詳細については、「ワークロードをデプロイする」をご参照ください。

  • サービスディスカバリとネットワーク管理

    • サービス: ポッドのグループに固定アクセス ポータルを提供し、クラスタ内アクセスとインターネット アクセスを可能にします。

    • Ingress: Ingress を使用して、さまざまな転送ルールを構成できます。たとえば、ドメイン名またはロード バランシングのためのアクセス パスに基づいて、リクエストをさまざまな サービス に転送できます。

    • DNS ベースのサービス ディスカバリ: クラスタ内のワークロードにドメイン名解決サービスを提供します。これにより、クラスタ内のサービスは、特定の IP アドレスを必要とせずに、サービス名を使用して相互にアクセスできます。

  • 可観測性: クラスタ ログの収集、アラートの監視、クラスタ ステータスの診断を可能にします。ACK が提供するインフラストラクチャ、コンテナ、ワークロードに関する可観測性ソリューションの詳細については、「可観測性」をご参照ください。

  • ストレージ: CSI プラグインは、アプリケーション データの永続ストレージ、機密データと構成データのストレージ、ストレージ リソースの動的プロビジョニングなどのストレージ要件を満たすために使用されます。

  • 自動スケーリング 構成: Web アプリケーション、ゲーム サービス、オンライン教育など、ビジネス リソースの要件が予測困難な場合や定期的に変化する場合は、自動スケーリングを有効にすることをお勧めします。この機能には、HPA、CronHPA、VPA などのワークロード スケーリングと、ノードの自動スケーリングインスタント ノードの弾力性などの計算リソースのスケーリングが含まれます。

  • きめ細かい権限付与

    基本リソース (ACK が依存する Alibaba Cloud サービス) とクラスタ内部リソース (Kubernetes リソース) にきめ細かい権限を付与する方法については、ACK は RAM と Kubernetes のネイティブ RBAC メカニズムに基づいて複数の権限管理ソリューションを提供しています。詳細については、「権限付与」をご参照ください。

クォータと制限

クラスタサイズが大きい場合、またはアカウントに多数のリソースがある場合は、ACK クラスタに指定されているクォータと制限に従ってください。詳細については、「クォータと制限」をご参照ください。

  • 制限: ACK 構成制限(アカウント残高、クラスタの容量制限など)。これは、クラスタ内のさまざまな Kubernetes リソースの最大容量です。

  • クォータ制限とクォータの増やし方: ACK クラスタのクォータ制限、および ACK が依存するクラウドサービス(ECS や VPC など)のクォータ制限。クォータを増やす場合は、関連するトピックをご覧ください。

よくある質問

ACK クラスタの使用時に発生する問題のトラブルシューティング方法の詳細については、「Troubleshooting」および「FAQ」をご参照ください。

ノード数がゼロのクラスタを作成できますか?

はい、できます。ノードの作成をスキップするか、クラスタの作成後に購入した ECS インスタンスをクラスタに追加する場合、構成時に [予期されるノード数] パラメータを 0 に設定できます。これにより、クラスタ内のインスタンス数も 0 に設定されます。次に、その他の必要なパラメータを構成します。ノードプールの構成を更新したり、さらにノードプールを作成したりできます。詳細については、「ノードプールを作成および管理する」をご参照ください。既存の ECS インスタンスをクラスタに追加する方法の詳細については、「既存の ECS インスタンスを ACK クラスタに追加する」をご参照ください。

購入した ECS インスタンスをクラスタに追加するにはどうすればよいですか?

ACK では、既存の ECS インスタンスをノードプールに手動または自動で追加できます。自動モードで既存のノードをノードプールに追加すると、ECS インスタンスの OS はノードプールで使用されている OS に変更され、ノードの元のシステムディスクは解放されます。 ECS インスタンスのオペレーティングシステムを保持するには、ECS インスタンスを手動で追加します。操作と使用上の注意の詳細については、「既存の ECS インスタンスを ACK クラスタに追加する」をご参照ください。

追加する ECS インスタンスとノードプールは、課金方法、ディスク構成、インスタンスタイプなど、同じか類似した構成にすることをお勧めします。これにより、後続のノードの一元管理が容易になります。

従量課金インスタンスをサブスクリプションノードプールに追加できますか?

はい、できます。詳細については、「既存の ECS インスタンスを追加する」をご参照ください。ただし、ノードプールの課金方法がサブスクリプションの場合、ノードプールに追加されるすべてのノードはサブスクリプションノードになります。課金方法、ディスク構成、インスタンスタイプなどが異なるノードを管理するために、異なるノードプールを作成することをお勧めします。詳細については、「ノードプールを作成および管理する」をご参照ください。

クラスタの作成時にポッドの数が不足するのはなぜですか?

このエラーメッセージは、次のいずれかの理由で表示されます。

  • コンポーネントによって消費される: クラスタコンポーネントはポッドにデプロイされます。ポッドはノードリソースを消費します。特定のコンポーネントでは、複数のポッドが必要になる場合があります。クラスタに多数のコンポーネントをインストールすると、コンポーネント用に多数のポッドが作成されます。

  • 小規模インスタンス: Terway モードでは、ノードでサポートされるポッドの最大数は、インスタンスファミリによって提供されるElastic Network Interface (ENI) の数によって異なります。ノードでサポートされるポッドの最大数は CPU とメモリに直接関係していませんが、仕様の低い ECS インスタンスはサポートする ENI の数が少なく、ノードあたりのポッドの最大数も少なくなります。

ノード上のポッドの数が上限に達すると、新しいポッドのスケジュールが失敗します。これはサービスのパフォーマンスに影響します。使用可能なポッドの数を増やすには、ノードプールをスケールアウトして使用可能なノードを追加するか、ノードを更新してノードあたりのポッドの最大数を増やします。詳細については、「クラスタ内のポッドの最大数を増やす」をご参照ください。

ノードの使用可能な CPU とメモリリソースが、購入したインスタンスタイプのリソースよりも少ないのはなぜですか?

ACK は、Kubernetes コンポーネントとシステムプロセスを実行するために、特定量のノードリソースを予約します。これにより、オペレーティングシステムカーネル、システムサービス、および Kubernetes デーモンが期待どおりに実行できるようになります。ただし、これにより、ノードの割り当て可能なリソースの量がノードのリソース容量と異なる場合があります。詳細については、「リソース予約ポリシー」をご参照ください。

参考資料