From 694739cdbc206517247c205f44cec2f345147f78 Mon Sep 17 00:00:00 2001
From: cheliequan <liequanche@126.com>
Date: 星期二, 06 六月 2023 12:14:45 +0800
Subject: [PATCH] 更新代码

---
 src/k8s/create.go |   63 +++++++++++++++++++++++--------
 1 files changed, 46 insertions(+), 17 deletions(-)

diff --git a/src/k8s/create.go b/src/k8s/create.go
index 65208e4..c57539f 100644
--- a/src/k8s/create.go
+++ b/src/k8s/create.go
@@ -22,7 +22,7 @@
 var (
 	replicas      int32 = 3
 	port          int32 = 9081
-	rpcPort       int32 = 9082
+	rpcPort       int32 = 9091
 	namespaces          = []string{"guangsheng", "geruimi", "tongsheng"}
 	usedNodePorts       = make(map[int32]bool)
 )
@@ -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{
@@ -204,15 +211,20 @@
 					Containers: []apiv1.Container{
 						{
 							Name:  namespace,
-							Image: "192.168.20.119/apsserver/apsserver:v0.5",
+							Image: "harbor.smartai.com/apsserver/apsserver:v0.1",
 							Env: []apiv1.EnvVar{
 								{
-									Name:  "NODE_ID",
-									Value: namespace,
+									Name:  "GRPC_PORT",
+									Value: port1,
 								},
+								// todo 浠庨厤缃枃浠朵腑璇诲彇
 								{
 									Name:  "DB_HOST",
-									Value: "localhost",
+									Value: "172.20.11.128",
+								},
+								{
+									Name:  "GRPC_HOST",
+									Value: "0.0.0.0",
 								},
 								{
 									Name:  "DB_NAME",
@@ -231,6 +243,7 @@
 									Value: namespace + "@Basic2023",
 								},
 							},
+							ImagePullPolicy: apiv1.PullAlways, // 璁剧疆闀滃儚鎷夊彇绛栫暐涓� Always
 						},
 					},
 				},
@@ -252,13 +265,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{
@@ -275,14 +283,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,
 				},
 			},
 		},
@@ -300,6 +308,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
@@ -369,7 +398,7 @@
 	if len(svc.Spec.Ports) > 0 {
 		for _, p := range svc.Spec.Ports {
 			// return tcp port
-			if p.Name == "tcp" {
+			if p.Name == "http" {
 				return p.NodePort, nil
 			}
 		}

--
Gitblit v1.8.0