集群管理
更新时间: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}
            