引导用户通过 ucloud-cli 创建 UK8S 集群。
流程:环境检查 → 资源选择 → 参数收集 → 构造请求 → 执行创建 → 结果展示。
$ARGUMENTS,默认 uk8s按 references/check-ucloud-cli.md 执行环境检查。
ucloud api --Action GetUK8SVersions --Region <Region> --ProjectId <ProjectId> --Kind Dedicated
将版本列表展示给用户选择(详见 references/GetUK8SVersions.md):
可用 K8s 版本:
[1] 1.32.8
[2] 1.30.10
[3] 1.28.15
请选择版本编号:
记录 K8sVersion(完整三段式,如 1.32.8)。
ucloud api --Action DescribeVPC --Region <Region> --ProjectId <ProjectId>
将 VPC 列表展示给用户选择(详见 references/DescribeVPC.md):
可用 VPC:
[1] uvnet-xxx Default (10.23.0.0/16)
[2] uvnet-yyy my-vpc (192.168.0.0/16)
请选择 VPC 编号:
用户选定后查询该 VPC 下的 Subnet:
ucloud api --Action DescribeSubnet --Region <Region> --ProjectId <ProjectId> --VPCId <VPCId>
展示 Subnet 列表供用户选择:
VPC uvnet-xxx 下的子网:
[1] subnet-aaa Default (10.23.0.0/16) cn-sh2-01
[2] subnet-bbb my-subnet (10.23.1.0/24) cn-sh2-02
请选择 Subnet 编号:
记录 VPCId 和 SubnetId。
ucloud api --Action DescribeUK8SImage --Region <Region> --Zone <Zone> --ProjectId <ProjectId>
按 references/defaults.md 中的镜像选择规则自动匹配,无需用户手动选择。若自动匹配失败则展示列表询问用户(详见 references/DescribeUK8SImage.md)。
记录 ImageId。
用 AskUserQuestion 收集以下参数,默认值见 references/defaults.md:
ClusterName,优先使用 $ARGUMENTS)node-count,默认 2)ExternalApiServer,默认 Yes)用 AskUserQuestion 询问用户:
节点登录密码:
[1] 随机生成(推荐)
[2] 自定义输入
若选随机生成:
PLAIN_PWD=$(openssl rand -base64 12 | tr -dc 'A-Za-z0-9' | head -c 16)
若选自定义输入: 收集用户输入,赋值给 $PLAIN_PWD。
$PLAIN_PWD 明文仅在 Step 10 结果中展示一次,请用户立即保存。
使用 Read 工具读取以下文件:
references/CreateUK8SCluster.md — 字段定义和必填项references/defaults.md — 未填写参数的默认值按字段定义构造请求;未填写的参数使用默认值。
调用脚本生成请求文件:
python3 scripts/build-create-uk8s.py \
--region <Region> \
--zone <Zone> \
--project-id <ProjectId> \
--name <ClusterName> \
--k8s-version <K8sVersion> \
--vpc-id <VPCId> \
--subnet-id <SubnetId> \
--image-id <ImageId> \
--password "$PLAIN_PWD" \
--node-count <NodeCount> \
--node-cpu <NodeCPU> \
--node-mem <NodeMem> \
--external-api <ExternalApiServer>
> 脚本自动 Base64 编码密码,输出 JSON 并写入 /tmp/create_uk8s.json,若有报错立即中止。
读取 references/confirm-template.md,将收集到的参数填入模板后展示给用户,等待确认。
ucloud api --local-file /tmp/create_uk8s.json
| RetCode | 处理 |
|---|---|
| --------- | ------ |
| 0 | 解析 ClusterId,进入 Step 10 |
| 非 0 | 输出完整 RetCode + Message,给出修复建议(见 references/CreateUK8SCluster.md) |
读取 references/result-template.md,将创建结果填入模板后展示给用户。
共 1 个版本