Alibaba Cloud CLI は、Alibaba Cloud OpenAPI 上に構築された管理ツールです。コマンドラインから ACK Serverless クラスターを作成して検証し、サンプル NGINX ワークロードをデプロイしてクラスターが正常に機能していることを確認します。
このガイドではデフォルト設定を使用します。本番環境にデプロイする前に、ACK Serverless クラスターの作成で設定オプションを確認してください。
前提条件
始める前に、以下を確認してください。
Alibaba Cloud CLI と kubectl のインストール
Cloud Shell を使用する場合、Alibaba Cloud CLI とアカウント認証情報は事前にインストールおよび構成されています。このセクションはスキップしてください。
それ以外の場合は、お使いのプラットフォーム向けに Alibaba Cloud CLI をインストールします。
| プラットフォーム | 手順 |
|---|---|
| Linux | Linux へのインストール |
| macOS | macOS へのインストール、または Homebrew がインストールされている場合は、brew install aliyun-cli を実行 |
| Windows | Windows へのインストール |
aliyun configure で認証情報を設定します。
aliyun configure
アクセスキー ID、シークレットアクセスキー、デフォルトリージョン、出力形式を入力します。
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.
インストールの確認
CLI がインストールされ、構成されていることを確認します。
aliyun version
ACK Serverless クラスターの作成
ステップ 1: 設定変数の設定
クラスターパラメータの環境変数を設定します。値をお使いのリージョンとゾーンに置き換えてください。
export CLUSTER_NAME="test-serverless-k8s"
export REGION_ID="cn-hangzhou"
export ZONE_ID="cn-hangzhou-h"
export KUBECONFIG="$HOME/.kube/ask-config"
ステップ 2: クラスター設定ファイルの作成
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"}
]
}
| フィールド | 値 | 説明 |
|---|---|---|
cluster_type |
ManagedKubernetes |
ACK Serverless クラスターに必須 |
profile |
Serverless |
サーバーレス プロファイル |
name |
test-serverless-k8s |
クラスター名 |
region_id |
cn-hangzhou |
クラスターのリージョン |
zoneid |
cn-hangzhou-h |
ゾーン |
nat_gateway |
true |
アウトバウンドインターネットアクセス用の NAT ゲートウェイを作成します |
private_zone |
false |
PrivateZone ベースのサービスディスカバリーを無効化します |
すべての設定パラメータについては、「ACK Serverless クラスターの作成」をご参照ください。
ステップ 3: クラスター作成リクエストの送信
aliyun cs POST /clusters --header "Content-Type=application/json" --body "$(cat create.json)"
レスポンスにクラスター ID が含まれます。
{
"cluster_id": "************************",
"instanceId": "************************",
"request_id": "**********-****-****-****-************",
"task_id": "*-************"
}
cluster_id を環境変数として保存します。
export CLUSTER_ID="<your-cluster-id>"
ステップ 4: クラスターが実行中であることの確認
クラスターの作成には数分かかります。状態を確認します。
aliyun cs GET /clusters/$CLUSTER_ID
レスポンスに "state": "running" が表示されたら、クラスターの準備が完了しています。
{
"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-*"
}
ステップ 5: kubectl アクセスの構成
kubeconfig をダウンロードし、kubectl がクラスターに接続できることを確認します。
aliyun cs GET /k8s/$CLUSTER_ID/user_config | jq -r '.config' > $KUBECONFIG
kubectl get ns
4 つのシステム名前空間が表示されたら、クラスターにアクセス可能です。
NAME STATUS AGE
default Active 7m43s
kube-node-lease Active 7m45s
kube-public Active 7m45s
kube-system Active 7m45s
クラスターのテスト
ステップ 6: テストアプリケーションのデプロイ
NGINX をデプロイして、クラスターがワークロードを受け入れることを確認します。
kubectl run nginx --image=registry-vpc.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest
期待される出力:
deployment.apps/nginx created
ステップ 7: Deployment の準備完了の確認
kubectl get deploy nginx
READY に 1/1 と表示されたら、Deployment の準備が完了しています。
NAME READY UP-TO-DATE AVAILABLE AGE
nginx 1/1 1 1 58s
リソースのクリーンアップ
NGINX Deployment を削除します。
kubectl delete deploy nginx
期待される出力:
deployment.apps/nginx deleted
クラスターと Virtual Private Cloud (VPC) を含むすべての関連リソースを削除するには、次のコマンドを実行します。
aliyun cs DELETE /clusters/$CLUSTER_ID