zhangqian
2024-01-11 4b717f9a0ed341163f4891f3007f990f658262d3
创建clusterIP service
4个文件已修改
153 ■■■■ 已修改文件
src/k8s/create.go 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/k8s/create_crm.go 45 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/k8s/create_srm.go 45 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/k8s/create_wms.go 45 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/k8s/create.go
@@ -48,6 +48,8 @@
    ALHost         string                // 算法Host
    Host           string                // 服务Host
    NodeID         string                // Nsq节点ID
    HttpNodePort   int32                 // HTTP nodePort端口
    RpcNodePort    int32                 // RPC nodePort端口
}
func create_test() {
@@ -298,7 +300,7 @@
        return err
    }
    config.HttpPort, config.RpcPort, err = getTwoNodePort(config.Client)
    config.HttpNodePort, config.RpcNodePort, err = getTwoNodePort(config.Client)
    if err != nil {
        return err
    }
@@ -350,7 +352,7 @@
        },
        {
            Name:  "GRPC_NODE_PORT",
            Value: strconv.Itoa(int(config.RpcPort)),
            Value: strconv.Itoa(int(config.RpcNodePort)),
        },
        {
            Name:  "NODE_ID",
@@ -459,16 +461,16 @@
                {
                    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,                  // 外部访问端口
                },
                {
                    Name:       "tcp",
                    Protocol:   apiv1.ProtocolTCP,
                    Port:       rpcPort,
                    TargetPort: intstr.FromInt(int(rpcPort)),
                    NodePort:   config.RpcPort,
                    Port:       config.RpcPort,
                    TargetPort: intstr.FromInt(int(config.RpcPort)),
                    NodePort:   config.RpcNodePort,
                },
            },
            SessionAffinity: apiv1.ServiceAffinityClientIP,
src/k8s/create_crm.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 *CrmCreate) 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)
src/k8s/create_srm.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 *SrmCreate) 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)
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)