From 9827f73e922a5eba800bf7782a73b8eacb749c24 Mon Sep 17 00:00:00 2001
From: wangpengfei <274878379@qq.com>
Date: 星期一, 05 六月 2023 18:20:38 +0800
Subject: [PATCH] fix k8s create createDeployment add port
---
src/k8s/create.go | 53 ++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 42 insertions(+), 11 deletions(-)
diff --git a/src/k8s/create.go b/src/k8s/create.go
index 84db8a8..aa5884d 100644
--- a/src/k8s/create.go
+++ b/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
--
Gitblit v1.8.0