このトピックでは、Alibaba Cloud CLIを使用してContainer Service for Kubernetes (ACK) のAPI操作を呼び出す方法について説明します。 この例では、DescribeClusterDetail
操作を呼び出して、ACKクラスターの詳細を照会します。ACK
始める前に
Alibaba Cloud CLIは、APIに基づいて開発された汎用のコマンドラインツールです。 Alibaba Cloud CLIを使用して、ACKリソースの自動管理とメンテナンスを実装できます。 詳細については、「」をご参照ください。Alibaba Cloud CLIとは
ステップ1: Alibaba Cloud CLIのインストール
Alibaba Cloud CLIを使用する前にインストールする必要があります。 Alibaba Cloud CLIは、Windows、Linux、およびmacOSオペレーティングシステムにインストールできます。 デバイスのオペレーティングシステムに基づいて、Alibaba Cloud CLIのインストールパッケージを選択する必要があります。 詳細については、以下のトピックをご参照ください。
Cloud ShellはAlibaba Cloud CLIと共にプリインストールされています。 Cloud ShellインスタンスでAlibaba Cloud CLIを使用する場合、Cloud ShellはログオンアカウントのID情報に基づいてID資格情報を自動的に設定します。 Cloud Shellを使用して、Alibaba Cloud CLIで実行するコマンドをデバッグできます。 詳細については、「」をご参照ください。Cloud Shellとは.
ステップ2: Alibaba Cloud CLIの設定
Alibaba Cloudアカウントには、すべてのAlibaba CloudサービスのAPIを管理およびアクセスする権限があります。 Alibaba Cloudアカウントを使用してAPI操作を呼び出すと、セキュリティリスクが発生する可能性があります。 RAM (Resource Access Management) ユーザーを作成し、最小権限の原則に基づいてRAMユーザーに権限を付与し、RAMユーザーを使用してAPI操作を呼び出すことを推奨します。 ACKでサポートされているシステムポリシーの詳細については、「AliyunCSFullAccess」および「AliyunCSReadOnlyAccess」をご参照ください。
Alibaba Cloud CLIを使用する前に、Alibaba Cloud CLIでID資格情報やリージョンIDなどの情報を設定する必要があります。 Alibaba Cloud CLIは、さまざまなタイプのID資格情報をサポートしています。 詳細については、「資格情報の種類」をご参照ください。 Alibaba Cloud CLIでは、RAMユーザーのAccessKeyペアを使用して、AccessKey ID認証情報を設定できます。 手順は次のとおりです。
RAMユーザーを作成し、RAMユーザーがID資格情報を設定するためのAccessKeyペアを作成します。 詳細については、「RAM ユーザーの作成」および「AccessKeyペアの作成」をご参照ください。
RAM ユーザーに必要な権限を付与します。 この例では、
AliyunCSReadOnlyAccess
ポリシーをRAMユーザーにアタッチします。 このポリシーは、RAMユーザーにACKに対する読み取り専用権限を付与します。 詳細については、「RAMユーザーへの権限付与」をご参照ください。ID資格情報を設定するリージョンのIDを取得します。 Alibaba Cloud CLIは、指定されたリージョンIDを使用してAPI操作を呼び出します。 クラスターが存在するリージョンのIDを選択することを推奨します。 ACKでサポートされているリージョンの詳細については、「エンドポイント」をご参照ください。
説明Alibaba Cloud CLIを使用する場合、
-- region
オプションを使用して、呼び出しを開始するリージョンを指定できます。 このオプションを使用してリージョンを指定すると、Alibaba Cloud CLIはデフォルトの資格情報設定と環境変数のリージョン情報を無視します。 詳細については、「API呼び出しのコマンドラインオプション」をご参照ください。RAMユーザーのAccessKeyペアを使用して、
AkProfile
という名前の設定ファイルでID資格情報を設定します。 詳細については、「設定例」をご参照ください。
ステップ3: CLIコマンドを生成する
OpenAPI Explorerで、 DescribeClusterDetail
操作。
[パラメーター] タブで、パラメーターを設定します。 次に、[CLIの例] タブをクリックして、生成されたサンプルCLIコマンドを表示します。
CLIコマンドをコピーするか、Cloud ShellでCLIコマンドをデバッグします。
アイコンをクリックしてCloud Shellを起動し、Cloud Shellでコマンドをデバッグします。
アイコンをクリックし
て、サンプルコマンドをクリップボードにコピーします。 次に、サンプルコマンドをローカルシェルに貼り付けて、自動化スクリプトを実行または変更します。
説明CLIコマンドをオンプレミスのシェルに貼り付けてデバッグするときは、パラメーターの形式に注意してください。 Alibaba Cloud CLIで必要なパラメーター形式の詳細については、「パラメーター形式」をご参照ください。
デフォルトでは、OpenAPI Explorerは、生成されたCLIコマンドに
-- region
オプションを追加します。 コマンドをシェルにコピーすると、Alibaba Cloud CLIはデフォルトのID資格情報設定と環境変数設定のリージョン情報を無視し、指定されたリージョンで優先的にコマンドを実行します。 ビジネス要件に基づいてオプションを削除または保持できます。
ステップ4: ACKのAPI操作を呼び出す
例1: Alibaba Cloud CLIを使用したACKのサポートされているAPI操作のクエリ
次の例は、-- help
オプションを使用して、サポートされているACKのAPI操作を照会する方法を示しています。 詳細については、「関数別の操作の一覧」をご参照ください。
以下のコマンドを実行します。
aliyun cs --help
期待される出力:
例2: クラスターの詳細のクエリ
次の例は、Alibaba Cloud CLIを使用してACKのDescribeClusterDetail
操作を呼び出し、クラスターIDに基づいてACKクラスターの詳細を照会する方法を示しています。 詳細については、「DescribeClusterDetail」をご参照ください。
以下のコマンドを実行します。
aliyun cs GET /clusters/cdde1f21ae22e483ebcb068a6eb7f****
期待される出力:
{ "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のAPIを呼び出した後にエラーが返された場合は、エラーコードに基づいて入力パラメーターと値が有効かどうかを確認します。
返されたリクエストIDまたはSDKエラー情報に基づいて、セルフサービス診断を実行することもできます。 OpenAPIの問題診断
ページ。