|
@@ -74,7 +74,7 @@ public class ProjectUtil {
|
|
return "project-" + projectId + "-" + StringUtil.getRandomEightBitUUID();
|
|
return "project-" + projectId + "-" + StringUtil.getRandomEightBitUUID();
|
|
}
|
|
}
|
|
|
|
|
|
- public String getPodYamlName(String podName, String nodeName) {
|
|
|
|
|
|
+ public String getPodYamlName(String nodeName, String podName) {
|
|
return nodeName + "#" + podName + ".yaml";
|
|
return nodeName + "#" + podName + ".yaml";
|
|
}
|
|
}
|
|
|
|
|
|
@@ -112,6 +112,25 @@ public class ProjectUtil {
|
|
return stringRedisTemplate.opsForValue().get("pod:" + podName + ":node");
|
|
return stringRedisTemplate.opsForValue().get("pod:" + podName + ":node");
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 更改一个名字继续启动
|
|
|
|
+ *
|
|
|
|
+ * @param projectId 项目 id
|
|
|
|
+ * @param nodeName 运行 pod 的节点名称
|
|
|
|
+ * @param lastPodName 即将删除的 pod 名称
|
|
|
|
+ */
|
|
|
|
+ @SneakyThrows
|
|
|
|
+ public void createNextPod(String projectId, String nodeName, String lastPodName) {
|
|
|
|
+ //1 删除上一个 pod 和 redis 键值对
|
|
|
|
+ deletePod(lastPodName);
|
|
|
|
+// String lastPodString = FileUtil.read(podYamlDirectory + lastPodName + ".yaml");
|
|
|
|
+ String lastPodString = FileUtil.read(podYamlDirectory + getPodYamlName(nodeName, lastPodName));
|
|
|
|
+ String nextPodName = getRandomPodName(projectId);
|
|
|
|
+ String nextPodString = lastPodString.replace(lastPodName, nextPodName); // pod 名称包括 projectId 和 随机字符串
|
|
|
|
+ log.info("TaskManager--createNextPod 创建项目 " + projectId + " 的下一个 pod。");
|
|
|
|
+ createPod(nodeName, nextPodName, nextPodString);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
|
|
/**
|
|
/**
|
|
* @param nodeName 节点名称
|
|
* @param nodeName 节点名称
|
|
@@ -121,7 +140,7 @@ public class ProjectUtil {
|
|
@SneakyThrows
|
|
@SneakyThrows
|
|
public void createPod(String nodeName, String podName, String podYamlContent) {
|
|
public void createPod(String nodeName, String podName, String podYamlContent) {
|
|
stringRedisTemplate.opsForValue().set("pod:" + podName + ":node", nodeName); // 将 pod 运行在哪个 node 上记录到 redis
|
|
stringRedisTemplate.opsForValue().set("pod:" + podName + ":node", nodeName); // 将 pod 运行在哪个 node 上记录到 redis
|
|
- String podYamlName = getNodeNameOfPod(podName);
|
|
|
|
|
|
+ String podYamlName = getPodYamlName(nodeName, podName);
|
|
String podYamlPath = podYamlDirectory + podYamlName;
|
|
String podYamlPath = podYamlDirectory + podYamlName;
|
|
FileUtil.writeStringToLocalFile(podYamlContent, podYamlPath);
|
|
FileUtil.writeStringToLocalFile(podYamlContent, podYamlPath);
|
|
KubernetesUtil.createNs(apiClient, kubernetesConfiguration.getNamespace());
|
|
KubernetesUtil.createNs(apiClient, kubernetesConfiguration.getNamespace());
|
|
@@ -132,26 +151,6 @@ public class ProjectUtil {
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * 更改一个名字继续启动
|
|
|
|
- *
|
|
|
|
- * @param projectId 项目 id
|
|
|
|
- * @param nodeName 运行 pod 的节点名称
|
|
|
|
- * @param lastPodName 即将删除的 pod 名称
|
|
|
|
- */
|
|
|
|
- @SneakyThrows
|
|
|
|
- public void createNextPod(String projectId, String nodeName, String lastPodName) {
|
|
|
|
- //1 删除上一个 pod 和 redis 键值对
|
|
|
|
- deletePod(lastPodName);
|
|
|
|
- String lastPodString = FileUtil.read(podYamlDirectory + lastPodName + ".yaml");
|
|
|
|
- String nextPodName = getRandomPodName(projectId);
|
|
|
|
- String nextPodString = lastPodString.replace(lastPodName, nextPodName); // pod 名称包括 projectId 和 随机字符串
|
|
|
|
- log.info("TaskManager--createNextPod 创建项目 " + projectId + " 的下一个 pod。");
|
|
|
|
- createPod(nodeName, nextPodName, nextPodString);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
public String getProjectTypeByProjectId(String projectId) {
|
|
public String getProjectTypeByProjectId(String projectId) {
|
|
String projectType = null;
|
|
String projectType = null;
|
|
ProjectPO manualProjectPO = manualProjectMapper.selectById(projectId);
|
|
ProjectPO manualProjectPO = manualProjectMapper.selectById(projectId);
|