|
@@ -88,6 +88,22 @@ public class ProjectUtil {
|
|
log.info("ProjectUtil--deletePod 删除 pod 并删除 redis 键值对:" + key);
|
|
log.info("ProjectUtil--deletePod 删除 pod 并删除 redis 键值对:" + key);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @SneakyThrows
|
|
|
|
+ public void deletePodAndAddOneParallelismToNode(String podName, String nodeName) {
|
|
|
|
+ String key = "pod:" + podName + ":node";
|
|
|
|
+ // 先删除 redis key
|
|
|
|
+ RedisUtil.deleteByKey(stringRedisTemplate, "pod:" + podName + ":node");
|
|
|
|
+ try {
|
|
|
|
+ KubernetesUtil.deletePod(apiClient, kubernetesConfiguration.getNamespace(), podName);
|
|
|
|
+ // 节点并行度加一
|
|
|
|
+ addOneParallelismToNode(nodeName);
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ log.info("ProjectUtil--deletePod pod " + podName + " 不存在。");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ log.info("ProjectUtil--deletePod 删除 pod 并删除 redis 键值对:" + key);
|
|
|
|
+ }
|
|
|
|
+
|
|
public String getNodeNameOfPod(String podName) {
|
|
public String getNodeNameOfPod(String podName) {
|
|
return stringRedisTemplate.opsForValue().get("pod:" + podName + ":node");
|
|
return stringRedisTemplate.opsForValue().get("pod:" + podName + ":node");
|
|
}
|
|
}
|
|
@@ -196,14 +212,13 @@ public class ProjectUtil {
|
|
for (KubernetesNodeTO kubernetesNodeSource : initialNodeList) {
|
|
for (KubernetesNodeTO kubernetesNodeSource : initialNodeList) {
|
|
KubernetesNodeTO kubernetesNodeCopy = kubernetesNodeSource.clone();
|
|
KubernetesNodeTO kubernetesNodeCopy = kubernetesNodeSource.clone();
|
|
String nodeName = kubernetesNodeCopy.getName(); // 节点名称
|
|
String nodeName = kubernetesNodeCopy.getName(); // 节点名称
|
|
- String restParallelismKey = "node:" + nodeName + ":parallelism"; // 获取节点剩余并行度的 key
|
|
|
|
int maxParallelism = kubernetesNodeCopy.getMaxParallelism();
|
|
int maxParallelism = kubernetesNodeCopy.getMaxParallelism();
|
|
- String restParallelismString = stringRedisTemplate.opsForValue().get(restParallelismKey);
|
|
|
|
|
|
+ String restParallelismString = stringRedisTemplate.opsForValue().get("node:" + nodeName + ":parallelism");// 获取节点剩余并行度的 key
|
|
// -------------------------------- Comment --------------------------------
|
|
// -------------------------------- Comment --------------------------------
|
|
int restParallelism;
|
|
int restParallelism;
|
|
if (restParallelismString == null) { // 如果剩余可用并行度没有值,说明是第一次查询,则重置成最大并行度的预设值
|
|
if (restParallelismString == null) { // 如果剩余可用并行度没有值,说明是第一次查询,则重置成最大并行度的预设值
|
|
restParallelism = maxParallelism;
|
|
restParallelism = maxParallelism;
|
|
- stringRedisTemplate.opsForValue().set(restParallelismKey, restParallelism + "");
|
|
|
|
|
|
+ stringRedisTemplate.opsForValue().set("node:" + nodeName + ":parallelism", restParallelism + "");
|
|
} else {
|
|
} else {
|
|
restParallelism = Integer.parseInt(restParallelismString);
|
|
restParallelism = Integer.parseInt(restParallelismString);
|
|
kubernetesNodeCopy.setMaxParallelism(restParallelism);
|
|
kubernetesNodeCopy.setMaxParallelism(restParallelism);
|