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

Container Service for Kubernetes:Alibaba Cloud CLIを使用したACKサーバーレスクラスターの作成

最終更新日:Dec 19, 2024

Alibaba Cloud CLIは、Alibaba Cloud APIに基づいて開発された管理ツールです。 Alibaba Cloud CLIを使用して、Alibaba CloudサービスのAPIを呼び出すことができます。

前提条件

Alibaba Cloud CLIを使用する前に、Alibaba Cloudリソースを呼び出すために必要な情報を設定する必要があります。 この情報には、資格情報、地域、および言語が含まれます。 詳細については、「概要」をご参照ください。

Alibaba Cloud CLIとkubectlのインストールとセットアップ

デフォルトでは、Cloud ShellはAlibaba Cloud CLIとともにプリインストールされ、アカウント情報で設定されます。 構成を変更する必要はありません。 Cloud Shellを使用しない場合は、Alibaba Cloud CLIとkubectlをインストールして設定する必要があります。

  • Alibaba Cloud CLI のインストール。

    • Alibaba Cloud CLIをLinuxにインストールします。 詳細は、「Linux」をご参照ください。

    • macOSにAlibaba Cloud CLIをインストールします。

      • macOSにAlibaba Cloud CLIをインストールします。

      • パッケージマネージャーを使用して、macOSにAlibaba Cloud CLIをインストールすることもできます。 詳細については、「Homebrew」をご参照ください。 パッケージマネージャーのインストール後、次のコマンドを実行してAlibaba Cloud CLIをインストールします。

        brew install aliyun-cli
    • WindowsでAlibaba Cloud CLIをインストールする方法の詳細については、「Windows」をご参照ください。

  • Alibaba Cloud CLI の設定 次のコマンドを実行して、ID情報の格納に使用される環境変数を作成します。

    aliyun configure

    期待される出力:

    Configuring profile 'default' in 'AK' authenticate mode...
    Access Key Id []: ************
    Access Key Secret []: ************
    Default Region Id []: cn-beijing
    Default Output Format [json]: json (Only support json)
    Default Language [zh|en] en:
    Saving profile[default] ...Done.
    
    Configure Done!!!
    ..............888888888888888888888 ........=8888888888888888888D=..............
    ...........88888888888888888888888 ..........D8888888888888888888888I...........
    .........,8888888888888ZI: ...........................=Z88D8888888888D..........
    .........+88888888 ..........................................88888888D..........
    .........+88888888 .......Welcome to use Alibaba Cloud.......O8888888D..........
    .........+88888888 ............. ************* ..............O8888888D..........
    .........+88888888 .... Command Line Interface(Reloaded) ....O8888888D..........
    .........+88888888...........................................88888888D..........
    ..........D888888888888DO+. ..........................?ND888888888888D..........
    ...........O8888888888888888888888...........D8888888888888888888888=...........
    ............ .:D8888888888888888888.........78888888888888888888O ..............                    

kubectlクライアントをインストールして設定します。 詳細については、「kubectlのインストールと設定」をご参照ください。

ACKサーバーレスクラスターの作成

  1. という名前の作業ディレクトリとファイルを作成します。create.jsonディレクトリにあります。

    次のテンプレートは、create.jsonファイルの例です。

    {
        "cluster_type": "ManagedKubernetes",
        "profile": "Serverless",
        "name": "test-serverless-k8s",
        "region_id": "cn-hangzhou",
        "zoneid": "cn-hangzhou-h",
        "nat_gateway": true,
        "private_zone": false,
        "tags": [
            {"key": "env", "value": "test"}
        ]
    }             

    上記のサンプルテンプレートでは、ACKサーバーレスクラスターの作成に使用される設定について説明します。 詳細については、「ACKサーバーレスクラスターの作成」をご参照ください。

  2. 次のコマンドを実行して、ACKサーバーレスクラスターを作成します。

    aliyun cs  POST /clusters --header "Content-Type=application/json" --body "$(cat create.json)"                       
    {
        "cluster_id": "************************",
        "instanceId": "************************",
        "request_id": "**********-****-****-****-************",
        "task_id": "*-************"
    }
  3. ACKサーバーレスクラスターが作成されたら、次のコマンドを実行してクラスターに関する情報を照会します。

    aliyun cs GET /clusters/<YOUR-CLUSTER-ID>                    

    期待される出力:

       {
        "cluster_id": "************************",
        "cluster_spec": "ack.standard",
        "cluster_type": "ManagedKubernetes",
        "created": "2024-05-06T14:48:40+08:00",
        "current_version": "1.28.3-aliyun.1",
        "deletion_protection": false,
        "external_loadbalancer_id": "lb-*********",
        "init_version": "1.28.3-aliyun.1",
        "name": "test-serverless-k8s",
        "network_mode": "vpc",
        "profile": "Serverless",
        "region_id": "cn-hangzhou",
        "resource_group_id": "rg-*********",
        "security_group_id": "sg-*********",
        "service_domain_name": "",
        "size": 0,
        "state": "running",
        "tags": [
                {
                        "key": "env",
                        "value": "test"
                },
                {
                        "key": "ack.aliyun.com",
                        "value": "cc98dd6edd4ff4c*****************"
                }
        ],
        "updated": "2024-05-06T14:52:44+08:00",
        "vpc_id": "vpc-*********",
        "vswitch_id": "vsw-*********",
        "zone_id": "cn-hangzhou-*"
    }
  4. 次のコマンドを実行して、クラスター設定を照会します。

    KUBECONFIG=<YOUR-LOCAL-KUBECONFIG-PATH>
    aliyun cs GET /k8s/$cluster_id/user_config | jq -r '.config' > $KUBECONFIG
    kubectl get ns

    期待される出力:

    NAME              STATUS   AGE
    default           Active   7m43s
    kube-node-lease   Active   7m45s
    kube-public       Active   7m45s
    kube-system       Active   7m45s

ACKサーバーレスクラスターのテスト

  1. 次のコマンドを実行して、ACKサーバーレスクラスターにNGINXアプリケーションをデプロイします。

    kubectl run nginx --image=registry-vpc.cn-shenzhen.aliyuncs.com/acs-sample/nginx:latest

    期待される出力:

    deployment.apps/nginx created
  2. 次のコマンドを実行して、NGINXアプリケーションの状態を照会します。

    kubectl get deploy nginx

    期待される出力:

     NAME    READY   UP-TO-DATE   AVAILABLE   AGE
     nginx   1/1     1            1           58s

リソースの削除とリリース

  • 次のコマンドを実行してNGINXアプリケーションを削除します。

    kubectl delete deploy nginx

    期待される出力:

    deployment.extensions "nginx" deleted
  • 次のコマンドを実行して、ACKサーバーレスクラスターを削除し、クラスターがデプロイされている仮想プライベートクラウド (VPC) などの関連リソースを解放することもできます。

    aliyun cs DELETE /clusters/************