集群管理
更新时间:2024-12-27
创建集群
Plain Text
1func CreateCluster() {
2 // 用户的Access Key ID和Secret Access Key
3 AK, SK := "", ""
4
5 // 用户指定的endpoint
6 ENDPOINT := ""
7
8 // 初始化一个CCEClient
9 ccev2Client, err := v2.NewClient(AK, SK, ENDPOINT)
10 if err != nil {
11 panic(err)
12 }
13 args := &v2.CreateClusterArgs{
14 CreateClusterRequest: &v2.CreateClusterRequest{
15 ClusterSpec: &types.ClusterSpec{
16 ClusterName: "your-cluster-name",
17 K8SVersion: "1.21.14",
18 RuntimeType: types.RuntimeTypeDocker,
19 VPCID: "vpc-id",
20 MasterConfig: types.MasterConfig{
21 MasterType: types.MasterTypeManaged,
22 ClusterHA: 1,
23 ExposedPublic: false,
24 ClusterBLBVPCSubnetID: "cluster-blb-vpc-subnet-id",
25 ManagedClusterMasterOption: types.ManagedClusterMasterOption{
26 MasterVPCSubnetZone: types.AvailableZoneA,
27 },
28 },
29 ContainerNetworkConfig: types.ContainerNetworkConfig{
30 Mode: types.ContainerNetworkModeKubenet,
31 LBServiceVPCSubnetID: "lb-service-vpc-subnet-id",
32 ClusterPodCIDR: "172.28.0.0/16",
33 ClusterIPServiceCIDR: "172.31.0.0/16",
34 },
35 Tags: types.TagList{
36 {
37 TagKey: "tagkey",
38 TagValue: "tagvalue",
39 },
40 },
41 },
42 NodeSpecs: []*v2.InstanceSet{
43 {
44 Count: 1,
45 InstanceSpec: types.InstanceSpec{
46 InstanceName: "",
47 ClusterRole: types.ClusterRoleNode,
48 Existed: false,
49 MachineType: types.MachineTypeBCC,
50 InstanceType: api.InstanceTypeN3,
51 VPCConfig: types.VPCConfig{
52 VPCID: "",
53 VPCSubnetID: "vpc-subnet-id",
54 SecurityGroupID: "security-group-id",
55 AvailableZone: types.AvailableZoneA,
56 },
57 InstanceResource: types.InstanceResource{
58 CPU: 4,
59 MEM: 8,
60 RootDiskSize: 40,
61 LocalDiskSize: 0,
62 CDSList: []types.CDSConfig{},
63 },
64 ImageID: "image-id",
65 InstanceOS: types.InstanceOS{
66 ImageType: api.ImageTypeSystem,
67 },
68 NeedEIP: false,
69 AdminPassword: "admin-password",
70 SSHKeyID: "ssh-key-id",
71 InstanceChargingType: api.PaymentTimingPostPaid,
72 RuntimeType: types.RuntimeTypeDocker,
73 RelationTag: true,
74 },
75 },
76 },
77 },
78 }
79
80 resp, err := ccev2Client.CreateCluster(args)
81 if err != nil {
82 fmt.Println(err.Error())
83 return
84 }
85 s, _ := json.MarshalIndent(resp, "", "\t")
86 fmt.Println("Response:" + string(s))
87}
创建集群并关联标签
Plain Text
1 args := &v2.CreateClusterArgs{
2 CreateClusterRequest: &v2.CreateClusterRequest{
3 ClusterSpec: &types.ClusterSpec{
4 // 创建集群的其他配置
5
6 // 集群关联的标签
7 Tags: types.TagList{
8 {
9 TagKey: "tagkey",
10 TagValue: "tagvalue",
11 },
12 },
13 },
14 NodeSpecs: []*v2.InstanceSet{
15 {
16 // 创建节点实例的其他配置
17
18 // 节点同时关联到上述标签
19 InstanceSpec: types.InstanceSpec{
20 RelationTag: true,
21 },
22 },
23 },
24 },
25 }
26
查询集群
Plain Text
1func GetCluster() {
2 // 用户的Access Key ID和Secret Access Key
3 AK, SK := "", ""
4
5 // 用户指定的endpoint
6 ENDPOINT := ""
7
8 // 初始化一个CCEClient
9 ccev2Client, err := v2.NewClient(AK, SK, ENDPOINT)
10 if err != nil {
11 panic(err)
12 }
13 clusterID := ""
14 resp, err := ccev2Client.GetCluster(clusterID)
15 if err != nil {
16 fmt.Println(err.Error())
17 return
18 }
19 s, _ := json.MarshalIndent(resp, "", "\t")
20 fmt.Println("Response:" + string(s))
21}
查询集群标签
Plain Text
1 resp, err := ccev2Client.GetCluster(clusterID)
2 if err != nil {
3 fmt.Println(err.Error())
4 return
5 }
6
7 tags, _ := json.MarshalIndent(resp.Cluster.Spec.Tags, "", "\t")
8 fmt.Println("Response:" + string(tags))
查询集群列表
Plain Text
1func ListClusters() {
2 // 用户的Access Key ID和Secret Access Key
3 AK, SK := "", ""
4
5 // 用户指定的endpoint
6 ENDPOINT := ""
7
8 // 初始化一个CCEClient
9 ccev2Client, err := ccev2.NewClient(AK, SK, ENDPOINT)
10 if err != nil {
11 panic(err)
12 }
13 args := &ccev2.ListClustersArgs{
14 KeywordType: "clusterName",
15 Keyword: "",
16 OrderBy: "clusterID",
17 Order: ccev2.OrderASC,
18 PageSize: 10,
19 PageNum: 1,
20 }
21 resp, err := ccev2Client.ListClusters(args)
22 if err != nil {
23 fmt.Println(err.Error())
24 return
25 }
26 s, _ := json.MarshalIndent(resp, "", "\t")
27 fmt.Println("Response:" + string(s))
28}
删除集群
Plain Text
1func DeleteCluster() {
2 // 用户的Access Key ID和Secret Access Key
3 AK, SK := "", ""
4
5 // 用户指定的endpoint
6 ENDPOINT := ""
7
8 // 初始化一个CCEClient
9 ccev2Client, err := ccev2.NewClient(AK, SK, ENDPOINT)
10 if err != nil {
11 panic(err)
12 }
13 clusterID := ""
14 args := &ccev2.DeleteClusterArgs{
15 ClusterID: clusterID,
16 DeleteResource: true,
17 DeleteCDSSnapshot: true,
18 }
19
20 resp, err := ccev2Client.DeleteCluster(args)
21 if err != nil {
22 fmt.Println(err.Error())
23 return
24 }
25
26 s, _ := json.MarshalIndent(resp, "", "\t")
27 fmt.Println("Response:" + string(s))
28}
更新集群删除保护
Plain Text
1func UpdateClusterForbidDelete() {
2 // 用户的Access Key ID和Secret Access Key
3 AK, SK := "", ""
4
5 // 用户指定的endpoint
6 ENDPOINT := ""
7
8 // 初始化一个CCEClient
9 ccev2Client, err := ccev2.NewClient(AK, SK, ENDPOINT)
10 if err != nil {
11 panic(err)
12 }
13 clusterID := ""
14 args := &ccev2.UpdateClusterForbidDeleteArgs{
15 ClusterID: clusterID,
16 UpdateClusterForbidDeleteRequest: ccev2.UpdateClusterForbidDeleteRequest{
17 ForbidDelete: true,
18 },
19 }
20
21 resp, err := ccev2Client.UpdateClusterForbidDelete(args)
22 if err != nil {
23 fmt.Println(err.Error())
24 return
25 }
26
27 s, _ := json.MarshalIndent(resp, "", "\t")
28 fmt.Println("Response:" + string(s))
29}
获取集群事件步骤
Plain Text
1func GetClusterEventSteps() {
2 // 用户的Access Key ID和Secret Access Key
3 AK, SK := "", ""
4
5 // 用户指定的endpoint
6 ENDPOINT := ""
7
8 // 初始化一个CCEClient
9 ccev2Client, err := v2.NewClient(AK, SK, ENDPOINT)
10 if err != nil {
11 panic(err)
12 }
13 clusterID := "cluster-id"
14 resp, err := ccev2Client.GetClusterEventSteps(clusterID)
15 if err != nil {
16 fmt.Println(err.Error())
17 return
18 }
19 s, _ := json.MarshalIndent(resp, "", "\t")
20 fmt.Println("Response:" + string(s))
21}