创建 UK8S Kubernetes 集群。通过 ucloud-cli 调用 API,自动获取 VPC/子网/版本/镜像,生成配置并创建集群。
创建 UK8S Kubernetes 集群是一项面向实际任务的技能,主要用于你正在引导用户创建一个 UK8S 集群;集群名称从 $ARGUMENTS 获取,若未提供则默认为 uk8s;
安装后验证:;若网络仍慢,告知用户手动下载对应平台包:;macOS ARM: https://githu。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
你正在引导用户创建一个 UK8S 集群。集群名称从 $ARGUMENTS 获取,若未提供则默认为 uk8s。
CLUSTER_NAME = $ARGUMENTS 或 "uk8s" # Master 节点 MASTER_MACHINE_TYPE = "O" MASTER_CPU = 2 MASTER_MEM = 4096 MASTER_COUNT = 3 MASTER_SERIES = "o1i" # Node 节点 NODE_MACHINE_TYPE = "O" NODE_CPU = 4 NODE_MEM = 4096 NODE_COUNT = 2 NODE_MAX_PODS = 110 # 存储 BOOT_DISK_TYPE = "CLOUD_RSSD" BOOT_DISK_SIZE = 40 DATA_DISK_TYPE = "CLOUD_RSSD" DATA_DISK_SIZE = 20 # 网络 CNI_MODE = "VPC" SERVICE_CIDR = "192.168.0.0/16" # 其他 CHARGE_TYPE = "Dynamic" LB_CLASS = "nlb" KUBE_PROXY = "iptables" EXTERNAL_API_SERVER = "Yes" DELETE_PROTECTION = "No" IMAGE_OS = "Ubuntu 24.04"
检查 ucloud 命令是否可用:
which ucloud
如果不存在,执行以下脚本自动检测平台并下载:
OS=$(uname -s | tr '[:upper:]' '[:lower:]')
ARCH=$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/')
INSTALL_DIR="$HOME/.local/bin"
mkdir -p "$INSTALL_DIR"
curl -L "https://github.com/ucloud/ucloud-cli/releases/download/v0.3.0/ucloud-${OS}_${ARCH}.zip" -o /tmp/ucloud.zip
unzip -o /tmp/ucloud.zip -d "$INSTALL_DIR"
chmod +x "$INSTALL_DIR/ucloud"
export PATH="$INSTALL_DIR:$PATH"
安装后验证:
ucloud --help
若网络仍慢,告知用户手动下载对应平台包:
检查当前配置:
ucloud config list
需要确认以下字段已配置:
public_key — 不为空private_key — 不为空region — 不为空zone — 不为空project_id — 不为空若有缺失,使用 AskUserQuestion 询问用户提供对应值,然后执行:
ucloud config set --region--zone --project-id
记录下 Region、Zone、ProjectId 用于后续步骤。
ucloud api --Action DescribeVPC --Region--ProjectId
从返回结果中:
DataSet 数组Tag 为 Default 的 VPCAskUserQuestion 列出所有 VPC 让用户选择VPCIducloud api --Action DescribeSubnet --Region--ProjectId --VPCId
从返回结果中:
DataSet 数组Tag 为 Default 的 SubnetAskUserQuestion 列出所有 Subnet 让用户选择SubnetId调用 GetUK8SVersions 接口获取可用版本列表:
ucloud api --Action GetUK8SVersions --Region--ProjectId --Kind Dedicated
响应格式:
{
"RetCode": 0,
"Data": [
{ "K8sVersion": "1.32.8", "ContainerdVersion": "1.6.33" },
{ "K8sVersion": "1.30.14", "ContainerdVersion": "1.6.33" },
{ "K8sVersion": "1.28.15", "ContainerdVersion": "1.6.10" }
]
}
解析出第一个版本(最新)作为默认值:
ucloud api --Action GetUK8SVersions --Region--ProjectId --Kind Dedicated | python3 -c "import sys,json; data=json.load(sys.stdin); print(data['Data'][0]['K8sVersion'])"
K8sVersion(必须是完整三段式,如 1.32.8)若接口报错,用 AskUserQuestion 让用户手动输入版本号。
ucloud api --Action DescribeUK8SImage --Region--ProjectId
从返回结果中:
ImageName 包含 Ubuntu 24.04 或 Ubuntu 2404 的镜像ImageId若接口报错,用 AskUserQuestion 让用户提供镜像 ID。
生成随机密码(包含大小写字母和数字,12位):
openssl rand -base64 12 | tr -dc 'A-Za-z0-9' | head -c 12
然后 Base64 编码:
echo -n "" | base64
务必记录明文密码,最后报告给用户。
使用 Write 工具将以下 JSON 写入临时文件 /tmp/create_uk8s.json:
{
"Action": "CreateUK8SClusterV2",
"Region": "",
"Zone": "",
"ProjectId": "",
"ClusterName": "",
"Tag": "Default",
"LoginMode": "Password",
"Password": "",
"K8sVersion": "",
"VPCId": "",
"SubnetId": "",
"ExternalApiServer": "Yes",
"MasterMachineType": "O",
"MasterCPU": 2,
"MasterMem": 4096,
"MasterMinmalCpuPlatform": "Intel/CascadelakeR",
"MasterBootDiskType": "CLOUD_RSSD",
"MasterDataDiskType": "CLOUD_RSSD",
"MasterDataDiskSize": 20,
"Nodes.0.Zone": "",
"Nodes.0.MachineType": "O",
"Nodes.0.MinmalCpuPlatform": "Intel/CascadelakeR",
"Nodes.0.CPU": 4,
"Nodes.0.Mem": 4096,
"Nodes.0.Count": 2,
"Nodes.0.IsolationGroup": "",
"Nodes.0.MaxPods": 110,
"Nodes.0.Labels.0.Key": "",
"Nodes.0.Labels.0.Value": "",
"Nodes.0.BootDiskType": "CLOUD_RSSD",
"Nodes.0.DataDiskType": "CLOUD_RSSD",
"Nodes.0.DataDiskSize": 20,
"ImageId": "",
"CNIMode": "VPC",
"ServiceCIDR": "192.168.0.0/16",
"ChargeType": "Dynamic",
"LbClass": "nlb",
"KubeProxy.Mode": "iptables",
"Master.0.Zone": "",
"Master.1.Zone": "",
"Master.2.Zone": ""
}
重要:用实际获取到的值替换所有 。
ucloud api --local-file /tmp/create_uk8s.json
检查返回结果:
ClusterId创建成功后,向用户报告:
UK8S 集群创建成功! 集群名称:集群 ID: Region: Zone: Master: 3 x O型 (2C/4G) Node: 2 x O型 (4C/4G) K8s 版本: CNI: VPC 模式 Service CIDR: 192.168.0.0/16 登录密码: <明文密码> (请妥善保管此密码) 集群创建中,预计 5-10 分钟完成。 可通过以下命令查看状态: ucloud api --Action DescribeUK8SCluster --Region --ProjectId --ClusterId
相关专题
热门下载
相关下载
精品课程
共0课时 | 0人学习
共0课时 | 0人学习
最新文章