使用阿里云CLI创建ACK Serverless集群

阿里云CLI是基于阿里云开放API建立的管理工具。您可以通过该工具调用阿里云开放API来管理阿里云产品。

前提条件

在使用阿里云CLI之前,您需要配置调用阿里云资源所需的凭证信息、地域、语言等。更多信息,请参见简介

安装配置阿里云CLI和kubectl

Cloud Shell默认安装配置了阿里云CLI和账号信息,无需任何额外配置。如果您不使用Cloud Shell,您需要安装和配置如下组件。

  • 安装阿里云CLI。

  • 配置阿里云CLI。执行以下命令,创建环境变量,用于存放身份认证信息。

    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客户端,详情请参见Install and Set Up kubectl

创建ACK Serverless集群

  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 Serverless集群配置信息。更多信息,请参考创建ACK Serverless集群

  2. 执行以下命令创建ACK Serverless集群

    aliyun cs  POST /clusters --header "Content-Type=application/json" --body "$(cat create.json)"                       
    {
        "cluster_id": "************************",
        "instanceId": "************************",
        "request_id": "**********-****-****-****-************",
        "task_id": "*-************"
    }
  3. 创建成功后,执行以下命令查看集群实例。

    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 Serverless集群

  1. 执行以下命令,部署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 Serverless集群和相关的VPC等资源。

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