wangpengfei
2023-06-05 9827f73e922a5eba800bf7782a73b8eacb749c24
fix
k8s create createDeployment add port
1个文件已修改
53 ■■■■ 已修改文件
src/k8s/create.go 53 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/k8s/create.go
@@ -129,15 +129,22 @@
        return err
    }
    nodePort1, nodePort2, err := getTwoNodePort(clientset)
    if err != nil {
        return err
    }
    port1 := fmt.Sprint(nodePort1)
    port2 := fmt.Sprint(nodePort2)
    // 创建 Deployment
    err = createDeployment(clientset, namespace, deploymentName)
    err = createDeployment(clientset, namespace, deploymentName, port1, port2)
    if err != nil {
        return err
    }
    log.Printf("Waiting for Deployment %s to be ready...\n", deploymentName)
    // 创建 Service
    err = createService(clientset, namespace, serviceName)
    err = createService(clientset, namespace, serviceName, nodePort1, nodePort2)
    if err != nil {
        return err
    }
@@ -168,7 +175,7 @@
    return nil
}
func createDeployment(clientset *kubernetes.Clientset, namespace, deploymentName string) error {
func createDeployment(clientset *kubernetes.Clientset, namespace, deploymentName, port1, port2 string) error {
    fmt.Println("\033[1;37;40mCreating Deployment:", deploymentName, "\033[0m")
    deployment := &appsv1.Deployment{
@@ -206,6 +213,14 @@
                            Name:  namespace,
                            Image: "192.168.20.119/apsserver/apsserver:v0.5",
                            Env: []apiv1.EnvVar{
                                {
                                    Name:  "NODE_PORT1",
                                    Value: port1,
                                },
                                {
                                    Name:  "NODE_PORT2",
                                    Value: port2,
                                },
                                {
                                    Name:  "DB_HOST",
                                    Value: "localhost",
@@ -249,13 +264,8 @@
}
// createService 创建指定的 Service
func createService(clientset *kubernetes.Clientset, namespace, serviceName string) error {
func createService(clientset *kubernetes.Clientset, namespace, serviceName string, port1, port2 int32) error {
    fmt.Println("\033[1;37;40mCreating Service:", serviceName, "\033[0m")
    //nodePort, err := getRandomNodePort(clientset)
    //if err != nil {
    //    return err
    //}
    service := &apiv1.Service{
        ObjectMeta: metav1.ObjectMeta{
@@ -272,14 +282,14 @@
                    Protocol:   apiv1.ProtocolTCP,
                    Port:       port,                      // 集群内部访问端口
                    TargetPort: intstr.FromInt(int(port)), // 容器对外端口
                    NodePort:   0,                         // 外部访问端口
                    NodePort:   port1,                     // 外部访问端口
                },
                {
                    Name:       "tcp",
                    Protocol:   apiv1.ProtocolTCP,
                    Port:       rpcPort,
                    TargetPort: intstr.FromInt(int(rpcPort)),
                    NodePort:   0,
                    NodePort:   port2,
                },
            },
        },
@@ -299,6 +309,27 @@
    return nil
}
func getTwoNodePort(client *kubernetes.Clientset) (nodePort1, nodePort2 int32, err error) {
    nodePort1, err = getRandomNodePort(client)
    if err != nil {
        return 0, 0, err
    }
    for {
        nodePort2, err = getRandomNodePort(client)
        if err != nil {
            return 0, 0, err
        }
        if nodePort2 != nodePort1 {
            break
        }
    }
    return nodePort1, nodePort2, nil
}
// getRandomNodePort 获取一个未使用的随机 NodePort
func getRandomNodePort(clientset *kubernetes.Clientset) (int32, error) {
    // 获取一个随机的 NodePort