From 4b717f9a0ed341163f4891f3007f990f658262d3 Mon Sep 17 00:00:00 2001 From: zhangqian <zhangqian@123.com> Date: 星期四, 11 一月 2024 20:12:14 +0800 Subject: [PATCH] 创建clusterIP service --- src/k8s/create_wms.go | 45 +++++++++++++++++++++++++++++++++++++++------ 1 files changed, 39 insertions(+), 6 deletions(-) diff --git a/src/k8s/create_wms.go b/src/k8s/create_wms.go index 14abb26..399e6d7 100644 --- a/src/k8s/create_wms.go +++ b/src/k8s/create_wms.go @@ -23,7 +23,7 @@ return err } - config.HttpPort, err = getRandomNodePort(config.Client) + config.HttpNodePort, err = getRandomNodePort(config.Client) if err != nil { return err } @@ -138,11 +138,12 @@ // createService 鍒涘缓鎸囧畾鐨� Service func (c *WmsCreate) CreateService(config Config) error { - fmt.Println("\033[1;37;40mCreating Service:", config.ServiceName, "\033[0m") + httpServiceName := config.ServiceName + "-http" + fmt.Println("\033[1;37;40mCreating Service:", httpServiceName, "\033[0m") service := &apiv1.Service{ ObjectMeta: metav1.ObjectMeta{ - Name: config.ServiceName, + Name: httpServiceName, }, Spec: apiv1.ServiceSpec{ Selector: map[string]string{ @@ -153,9 +154,9 @@ { Name: "http", Protocol: apiv1.ProtocolTCP, - Port: port, // 闆嗙兢鍐呴儴璁块棶绔彛 - TargetPort: intstr.FromInt(int(port)), // 瀹瑰櫒瀵瑰绔彛 - NodePort: config.HttpPort, // 澶栭儴璁块棶绔彛 + Port: config.HttpPort, // 闆嗙兢鍐呴儴璁块棶绔彛 + TargetPort: intstr.FromInt(int(config.HttpPort)), // 瀹瑰櫒瀵瑰绔彛 + NodePort: config.HttpNodePort, // 澶栭儴璁块棶绔彛 }, }, SessionAffinity: apiv1.ServiceAffinityClientIP, @@ -168,6 +169,38 @@ if !errors.IsAlreadyExists(err) { return fmt.Errorf("failed to create Service: %v", err) } + log.Printf("Service %s already exists in Namespace %s\n", httpServiceName, config.NameSpace) + } else { + log.Printf("Service %s created in Namespace %s\n", httpServiceName, config.NameSpace) + } + + clusterIPService := &apiv1.Service{ + ObjectMeta: metav1.ObjectMeta{ + Name: config.ServiceName, + }, + Spec: apiv1.ServiceSpec{ + Selector: map[string]string{ + "cid": c.GetCid(config), + }, + Type: apiv1.ServiceTypeClusterIP, + Ports: []apiv1.ServicePort{ + { + Name: "grpc", + Protocol: apiv1.ProtocolTCP, + Port: config.RpcPort, // 闆嗙兢鍐呴儴璁块棶绔彛 + TargetPort: intstr.FromInt(int(config.RpcPort)), // 瀹瑰櫒瀵瑰绔彛 + }, + }, + SessionAffinity: apiv1.ServiceAffinityClientIP, + }, + } + + _, err = config.Client.CoreV1().Services(config.NameSpace).Create(context.TODO(), clusterIPService, metav1.CreateOptions{}) + + if err != nil { + if !errors.IsAlreadyExists(err) { + return fmt.Errorf("failed to create clusterIP Service: %v", err) + } log.Printf("Service %s already exists in Namespace %s\n", config.ServiceName, config.NameSpace) } else { log.Printf("Service %s created in Namespace %s\n", config.ServiceName, config.NameSpace) -- Gitblit v1.8.0