CLI集成示例

本文以调用ACKDescribeClusterDetail接口查询指定集群详情为例,为您介绍使用阿里云CLI调用ACK OpenAPI的操作步骤。

前置概念

阿里云CLI(Alibaba Cloud Command Line Interface)是基于OpenAPI构建的通用命令行工具,您可以通过阿里云CLI实现自动化管理和维护ACK。更多信息,请参见什么是阿里云CLI

步骤一:安装阿里云CLI

使用阿里云CLI前,您需要先安装阿里云CLI。阿里云CLI为用户提供了Windows、Linux和macOS三种操作系统下的安装服务,请根据您使用设备的操作系统选择对应的安装服务。

云命令行(Cloud Shell)预装了阿里云CLI,且在使用时自动为您配置身份凭证,无需手动操作。您可在云命令行中调试阿里云CLI命令。更多信息,请参见什么是云命令行

步骤二:配置阿里云CLI

重要

阿里云账号(主账号)拥有所有产品OpenAPI的管理和访问权限,风险很高。强烈建议您创建RAM用户(子账号),并依据最小化权限原则授予权限,使用RAM用户身份访问OpenAPI。关于ACK支持的系统权限策略,请参见AliyunCSFullAccessAliyunCSReadOnlyAccess

使用阿里云CLI之前,您需要在阿里云CLI中配置身份凭证、地域ID等信息。阿里云CLI支持多种身份凭证,详情请参见身份凭证类型。阿里云CLI支持使用RAM用户的AccessKey信息配置AK类型身份凭证,具体操作流程如下。

  1. 创建一个RAM用户,并创建AccessKey,以便后续配置身份凭证使用。具体操作,请参见创建RAM用户创建AccessKey

  2. 为RAM用户授权。本文示例需授予RAM用户只读访问ACK的权限AliyunCSReadOnlyAccess。具体操作,请参见为RAM用户授权

  3. 获取可用的地域ID,以便后续配置身份凭证使用。阿里云CLI将使用您指定的地域发起OpenAPI调用,推荐您选择集群所在地域对应的地域ID。ACK的可用地域请参见服务接入点

    说明

    使用阿里云CLI过程中,您可以使用--region选项指定地域发起命令调用,该选项在使用时将忽略默认身份凭证配置及环境变量设置中的地域信息。更多信息,请参见API命令可用选项

  4. 使用RAM用户的AccessKey信息配置AK类型凭证,配置文件命名为AkProfile。具体操作,请参见配置示例

步骤三:生成CLI命令示例

  1. 在OpenAPI门户中,访问DescribeClusterDetail调试地址

    image

  2. 参数配置中输入请求参数,单击CLI示例页签,查看生成的CLI示例。

  3. 复制CLI示例或在云命令行中快速执行:

    • 单击运行命令按钮image,可唤出云命令行并快速完成命令调试。

    • 单击复制按钮image,将CLI示例复制到剪贴板中,可粘贴至本地Shell工具中运行或用于编辑自动化脚本。

    说明
    • 复制CLI示例到本地Shell工具中进行调试时请注意参数格式。关于阿里云CLI命令参数使用格式的详细信息,请参见参数格式说明

    • OpenAPI门户生成示例中会默认添加--region选项,复制命令到本地调用时阿里云CLI将忽略默认身份凭证配置及环境变量设置中的地域信息,优先使用指定的地域调用命令,您可根据需要对该选项进行删除或保留。

步骤四:调用ACK OpenAPI

示例一:获取支持阿里云CLI调用的ACK OpenAPI列表

以下示例将为您展示如何使用--help选项获取支持阿里云CLI调用的ACK OpenAPI列表。更多信息,请参见API概览

  1. 执行以下命令。

    aliyun cs --help
  2. 预期输出。

    image

示例二:查询集群详情

以下示例将为您展示如何使用阿里云CLI调用ACKDescribeClusterDetail接口,根据集群ID查询指定ACK集群的详细信息。更多接口信息,请参见DescribeClusterDetail - 查询指定集群的信息

  1. 执行以下命令。

    aliyun cs GET /clusters/cdde1f21ae22e483ebcb068a6eb7f****
  2. 预期输出。

    {
      "cluster_id": "c82e6987e2961451182edacd74faf****",
      "cluster_type": "Kubernetes",
      "created": "2019-11-25T15:50:20+08:00",
      "init_version": "1.16.6-aliyun.1",
      "current_version": "1.16.6-aliyun.1",
      "next_version": "1.18.8-aliyun.1",
      "deletion_protection": true,
      "docker_version": "19.03.5",
      "external_loadbalancer_id": "lb-2zehc05z3b8dwiifh****",
      "meta_data": "\\\"Addons\\\":***",
      "name": "cluster-demo",
      "network_mode": "vpc",
      "region_id": "cn-beijing",
      "resource_group_id": "rg-acfmyvw3wjm****",
      "security_group_id": "sg-25yq****",
      "container_cidr": "172.20.0.0/16",
      "service_cidr": "172.21.0.0/20",
      "proxy_mode": "ipvs",
      "timezone": "Asia/Shanghai",
      "node_cidr_mask": "26",
      "ip_stack": "ipv4",
      "cluster_domain": "cluster.local",
      "size": 5,
      "state": "running",
      "tags": [
        {
          "key": "env",
          "value": "prod"
        }
      ],
      "updated": "2020-01-13T23:01:03+08:00",
      "vpc_id": "vpc-2zecuu62b9zw7a7qn****",
      "vswitch_id": "vsw-2zete8s4qocqg0mf6****,vsw-2zete8s4qocqg0mf6****",
      "vswitch_ids": [
        "vsw-2zete8s4qocqg0mf6****"
      ],
      "subnet_cidr": "172.20.0.0/16",
      "zone_id": "cn-beijing-a",
      "master_url": "{\\\"intranet_api_server_endpoint\\\":\\\"https://192.168.0.251:6443\\\"***}",
      "private_zone": false,
      "profile": "Default",
      "cluster_spec": "ack.pro.small",
      "worker_ram_role_name": "KubernetesWorkerRole-ec87d15b-edca-4302-933f-c8a16bf0****",
      "maintenance_window": {
        "enable": false,
        "maintenance_time": "2020-10-15T12:31:00.000+08:00",
        "duration": "3h",
        "weekly_period": "Monday,Thursday",
        "recurrence": "FREQ=WEEKLY;INTERVAL=4;BYDAY=MO,TU"
      },
      "parameters": {
        "key": "WorkerImageId"
      },
      "operation_policy": {
        "cluster_auto_upgrade": {
          "enabled": true,
          "channel": "patch"
        }
      }
    }
    说明
    • 如果调用ACK OpenAPI后返回错误,您需要根据返回的错误码提示检查传入的请求参数及其取值是否正确。

    • 您也可以记录下调用返回的RequestID或SDK报错信息,通过阿里云OpenAPI诊断平台进行自助诊断。

相关文档