Selaa lähdekoodia

删除 pod 同时删除 redisKey

martin 2 vuotta sitten
vanhempi
commit
7db8455093

+ 2 - 12
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/manager/TaskManager.java

@@ -13,12 +13,10 @@ import com.css.simulation.resource.scheduler.pojo.po.ProjectPO;
 import com.css.simulation.resource.scheduler.pojo.po.TaskPO;
 import com.css.simulation.resource.scheduler.pojo.to.PrefixTO;
 import com.css.simulation.resource.scheduler.pojo.to.ScoreTO;
-import com.css.simulation.resource.scheduler.util.KubernetesUtil;
 import com.css.simulation.resource.scheduler.util.MinioUtil;
 import com.css.simulation.resource.scheduler.util.ProjectUtil;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
-import io.kubernetes.client.openapi.ApiClient;
 import io.minio.MinioClient;
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
@@ -79,11 +77,6 @@ public class TaskManager {
     RequestConfig requestConfig;
     @Resource
     ProjectUtil projectUtil;
-    @Resource
-    ApiClient apiClient;
-
-    @Value("${scheduler.kubernetes.namespace}")
-    String kubernetesNamespace;
 
 
     @SneakyThrows
@@ -159,8 +152,7 @@ public class TaskManager {
     @SneakyThrows
     public void createNextPod(String projectId, String nodeName, String lastPodName) {
         //1 删除上一个 pod 和 redis 键值对
-        KubernetesUtil.deletePod(apiClient, kubernetesNamespace, lastPodName);
-        projectUtil.deleteNodeNameOfPod(lastPodName);
+        projectUtil.deletePod(lastPodName);
         String lastPodString = FileUtil.read(podYamlDirectory + lastPodName + ".yaml");
         String nextPodName = projectUtil.getRandomPodName(projectId);
         String nextPodString = lastPodString.replace(lastPodName, nextPodName); // pod 名称包括 projectId 和 随机字符串
@@ -445,9 +437,7 @@ public class TaskManager {
             String podName = nodeOfPodKey.split(":")[1];
             String nodeName = projectUtil.getNodeNameOfPod(podName);
             // 删除 pod
-            KubernetesUtil.deletePod(apiClient, kubernetesNamespace, podName);
-            // 删除 redis key
-            projectUtil.deleteNodeNameOfPod(podName);
+            projectUtil.deletePod(podName);
             // 节点并行度加一
             projectUtil.addOneParallelismToNode(nodeName);
         }

+ 12 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/util/ProjectUtil.java

@@ -15,6 +15,7 @@ import com.css.simulation.resource.scheduler.pojo.po.ProjectPO;
 import com.css.simulation.resource.scheduler.pojo.po.UserPO;
 import com.css.simulation.resource.scheduler.pojo.to.KubernetesNodeTO;
 import com.css.simulation.resource.scheduler.pojo.to.PrefixTO;
+import io.kubernetes.client.openapi.ApiClient;
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Value;
@@ -41,6 +42,8 @@ public class ProjectUtil {
     String username;
     @Value("${scheduler.host.password}")
     String password;
+    @Value("${scheduler.kubernetes.namespace}")
+    String kubernetesNamespace;
 
 
     @Resource
@@ -57,13 +60,21 @@ public class ProjectUtil {
     KubernetesConfiguration kubernetesConfiguration;
     @Resource
     StringRedisTemplate stringRedisTemplate;
+    @Resource
+    ApiClient apiClient;
+
+
+
 
 
     public String getRandomPodName(String projectId) {
         return "project-" + projectId + "-" + StringUtil.getRandomEightBitUUID();
     }
 
-    public void deleteNodeNameOfPod(String podName) {
+    @SneakyThrows
+    public void deletePod(String podName) {
+        KubernetesUtil.deletePod(apiClient, kubernetesNamespace, podName);
+        // 删除 redis key
         stringRedisTemplate.delete("pod:" + podName + ":node");
     }