Commit a0dc6428 authored by 黎博's avatar 黎博

优化

parent 47dd6cd5
...@@ -129,6 +129,9 @@ public class K8sController { ...@@ -129,6 +129,9 @@ public class K8sController {
case "redis": case "redis":
k8sService.createRedisService(namespace); k8sService.createRedisService(namespace);
break; break;
case "redis-sentinel":
k8sService.createRedisSentinelService(namespace);
break;
case "mongodb": case "mongodb":
k8sService.createMongodbService(namespace); k8sService.createMongodbService(namespace);
break; break;
...@@ -168,6 +171,9 @@ public class K8sController { ...@@ -168,6 +171,9 @@ public class K8sController {
case "redis": case "redis":
k8sService.createRedisDeployment(namespace, image); k8sService.createRedisDeployment(namespace, image);
break; break;
case "redis-sentinel":
k8sService.createRedisSentinelDeployment(namespace, image);
break;
case "mongodb": case "mongodb":
k8sService.createMongoDbDeployment(namespace, image); k8sService.createMongoDbDeployment(namespace, image);
break; break;
......
...@@ -88,6 +88,18 @@ public class K8sService { ...@@ -88,6 +88,18 @@ public class K8sService {
return objectMeta; return objectMeta;
} }
/**
* 构建resources
* @param cpuRequestAmount cpu request大小
* @param cpuRequestFormat cpu request单位
* @param memRequestAmount 内存 request大小
* @param memRequestFormat 内存 request单位
* @param cpuLimitAmount cpu最大限制
* @param cpuLimitFormat cpu最大限制的单位
* @param memLimitAmount 内存最大限制
* @param memLimitFormat 内存最大限制单位
* @return ResourceRequirements对象
*/
public ResourceRequirements buildResourceRequirements(String cpuRequestAmount, String cpuRequestFormat, String memRequestAmount, String memRequestFormat, public ResourceRequirements buildResourceRequirements(String cpuRequestAmount, String cpuRequestFormat, String memRequestAmount, String memRequestFormat,
String cpuLimitAmount, String cpuLimitFormat, String memLimitAmount, String memLimitFormat) { String cpuLimitAmount, String cpuLimitFormat, String memLimitAmount, String memLimitFormat) {
ResourceRequirements resourceRequirements = new ResourceRequirements(); ResourceRequirements resourceRequirements = new ResourceRequirements();
...@@ -272,6 +284,11 @@ public class K8sService { ...@@ -272,6 +284,11 @@ public class K8sService {
} }
/**
* 获取pod列表
* @param namespace
* @return
*/
public List<Map<String, Object>> getPodListNew(String namespace) { public List<Map<String, Object>> getPodListNew(String namespace) {
// 获取Pod列表 // 获取Pod列表
List<Pod> podList = kubernetesClient.pods().inNamespace(namespace).list().getItems(); List<Pod> podList = kubernetesClient.pods().inNamespace(namespace).list().getItems();
...@@ -467,7 +484,7 @@ public class K8sService { ...@@ -467,7 +484,7 @@ public class K8sService {
} }
/** /**
* 部署Java服务 * 创建 Java Service
* @return * @return
*/ */
public Service createJavaService(String namespace, String serviceName, Integer debug) { public Service createJavaService(String namespace, String serviceName, Integer debug) {
...@@ -619,27 +636,12 @@ public class K8sService { ...@@ -619,27 +636,12 @@ public class K8sService {
container.setEnv(envVarList); container.setEnv(envVarList);
// resources // resources
ResourceRequirements resourceRequirements = new ResourceRequirements(); ResourceRequirements resourceRequirements = buildResourceRequirements(
Map<String, Quantity> requests = new HashMap<>(); dockerProject.getCpuRequest(), "m",
Map<String, Quantity> limits = new HashMap<>(); dockerProject.getMemRequest(), "Mi",
Quantity cpuQuantity = new Quantity(); dockerProject.getCpuLimit(), "m",
Quantity memoryQuantity = new Quantity(); dockerProject.getMemLimit(), "Mi");
Quantity cpuLimit = new Quantity();
Quantity memoryLimit = new Quantity();
cpuQuantity.setAmount(dockerProject.getCpuRequest());
cpuQuantity.setFormat("m");
memoryQuantity.setAmount(dockerProject.getMemRequest());
memoryQuantity.setFormat("Mi");
cpuLimit.setAmount(dockerProject.getCpuLimit());
cpuLimit.setFormat("m");
memoryLimit.setAmount(dockerProject.getMemLimit());
memoryLimit.setFormat("Mi");
requests.put("cpu", cpuQuantity);
requests.put("memory", memoryQuantity);
limits.put("cpu", cpuLimit);
limits.put("memory", memoryLimit);
resourceRequirements.setRequests(requests);
resourceRequirements.setLimits(limits);
container.setResources(resourceRequirements); container.setResources(resourceRequirements);
// 需要做健康检查的不创建存活检查和就绪检查 // 需要做健康检查的不创建存活检查和就绪检查
...@@ -989,27 +991,9 @@ public class K8sService { ...@@ -989,27 +991,9 @@ public class K8sService {
container.setCommand(commandList); container.setCommand(commandList);
// resources // resources
ResourceRequirements resourceRequirements = new ResourceRequirements(); ResourceRequirements resourceRequirements = buildResourceRequirements(
Map<String, Quantity> requests = new HashMap<>(); "100", "m", "1000", "Mi",
Map<String, Quantity> limits = new HashMap<>(); "300", "m", "2000", "Mi");
Quantity cpuQuantity = new Quantity();
Quantity memoryQuantity = new Quantity();
Quantity cpuLimit = new Quantity();
Quantity memoryLimit = new Quantity();
cpuQuantity.setAmount("100");
cpuQuantity.setFormat("m");
memoryQuantity.setAmount("100");
memoryQuantity.setFormat("Mi");
cpuLimit.setAmount("300");
cpuLimit.setFormat("m");
memoryLimit.setAmount("300");
memoryLimit.setFormat("Mi");
requests.put("cpu", cpuQuantity);
requests.put("memory", memoryQuantity);
limits.put("cpu", cpuLimit);
limits.put("memory", memoryLimit);
resourceRequirements.setRequests(requests);
resourceRequirements.setLimits(limits);
container.setResources(resourceRequirements); container.setResources(resourceRequirements);
// livenessProbe // livenessProbe
...@@ -1140,7 +1124,7 @@ public class K8sService { ...@@ -1140,7 +1124,7 @@ public class K8sService {
PodSpec podSpec = new PodSpec(); PodSpec podSpec = new PodSpec();
List<Container> containerList = new ArrayList<>(); List<Container> containerList = new ArrayList<>();
Container container = new Container(); Container container = new Container();
container.setImage(image); container.setImage("ccr.ccs.tencentyun.com/" + image);
container.setImagePullPolicy("Always"); container.setImagePullPolicy("Always");
container.setName("redis-sentinel"); container.setName("redis-sentinel");
ResourceRequirements resourceRequirements = buildResourceRequirements("100", "m", ResourceRequirements resourceRequirements = buildResourceRequirements("100", "m",
...@@ -1152,6 +1136,7 @@ public class K8sService { ...@@ -1152,6 +1136,7 @@ public class K8sService {
podSpec.setImagePullSecrets(imagePullSecrets); podSpec.setImagePullSecrets(imagePullSecrets);
podSpec.setRestartPolicy("Always"); podSpec.setRestartPolicy("Always");
podSpec.setTerminationGracePeriodSeconds(30L); podSpec.setTerminationGracePeriodSeconds(30L);
podSpec.setContainers(containerList);
podTemplateSpec.setMetadata(objectMeta); podTemplateSpec.setMetadata(objectMeta);
podTemplateSpec.setSpec(podSpec); podTemplateSpec.setSpec(podSpec);
...@@ -1165,6 +1150,7 @@ public class K8sService { ...@@ -1165,6 +1150,7 @@ public class K8sService {
redisSentinelDeployment.setSpec(deploymentSpec); redisSentinelDeployment.setSpec(deploymentSpec);
redisSentinelDeployment.setStatus(deploymentStatus); redisSentinelDeployment.setStatus(deploymentStatus);
log.info("{}环境创建redis sentinel", namespace);
return kubernetesClient.apps().deployments().inNamespace(namespace).create(redisSentinelDeployment); return kubernetesClient.apps().deployments().inNamespace(namespace).create(redisSentinelDeployment);
} }
...@@ -1328,27 +1314,9 @@ public class K8sService { ...@@ -1328,27 +1314,9 @@ public class K8sService {
container.setName("mysql"); container.setName("mysql");
// resources // resources
ResourceRequirements resourceRequirements = new ResourceRequirements(); ResourceRequirements resourceRequirements = buildResourceRequirements(
Map<String, Quantity> requests = new HashMap<>(); "200", "m", "200", "Mi",
Map<String, Quantity> limits = new HashMap<>(); "2048", "m", "1", "Gi");
Quantity cpuQuantity = new Quantity();
Quantity memoryQuantity = new Quantity();
Quantity cpuLimit = new Quantity();
Quantity memoryLimit = new Quantity();
cpuQuantity.setAmount("200");
cpuQuantity.setFormat("m");
memoryQuantity.setAmount("500");
memoryQuantity.setFormat("Mi");
cpuLimit.setAmount("2");
cpuLimit.setFormat("");
memoryLimit.setAmount("1");
memoryLimit.setFormat("Gi");
requests.put("cpu", cpuQuantity);
requests.put("memory", memoryQuantity);
limits.put("cpu", cpuLimit);
limits.put("memory", memoryLimit);
resourceRequirements.setRequests(requests);
resourceRequirements.setLimits(limits);
container.setResources(resourceRequirements); container.setResources(resourceRequirements);
// env // env
...@@ -1417,13 +1385,7 @@ public class K8sService { ...@@ -1417,13 +1385,7 @@ public class K8sService {
podSpec.setVolumes(volumeList); podSpec.setVolumes(volumeList);
// imagePullSecrets // imagePullSecrets
List<LocalObjectReference> objectReferences = new ArrayList<>(); List<LocalObjectReference> objectReferences = buildImagePullSecrets();
LocalObjectReference objectReference1 = new LocalObjectReference();
objectReference1.setName("qcloudregistrykey");
LocalObjectReference objectReference2 = new LocalObjectReference();
objectReference2.setName("tencenthubkey");
objectReferences.add(objectReference1);
objectReferences.add(objectReference2);
podSpec.setImagePullSecrets(objectReferences); podSpec.setImagePullSecrets(objectReferences);
// restartPolicy // restartPolicy
...@@ -1555,27 +1517,9 @@ public class K8sService { ...@@ -1555,27 +1517,9 @@ public class K8sService {
container.setName("mongodb"); container.setName("mongodb");
// resources // resources
ResourceRequirements resourceRequirements = new ResourceRequirements(); ResourceRequirements resourceRequirements = buildResourceRequirements(
Map<String, Quantity> requests = new HashMap<>(); "256", "m", "256", "Mi",
Map<String, Quantity> limits = new HashMap<>(); "1024", "m", "512", "Mi");
Quantity cpuRequest = new Quantity();
Quantity memoryRequest = new Quantity();
Quantity cpuLimit = new Quantity();
Quantity memoryLimit = new Quantity();
cpuRequest.setAmount("256");
cpuRequest.setFormat("m");
memoryRequest.setAmount("256");
memoryRequest.setFormat("Mi");
cpuLimit.setAmount("1024");
cpuLimit.setFormat("m");
memoryLimit.setAmount("512");
memoryLimit.setFormat("Mi");
requests.put("cpu", cpuRequest);
requests.put("memory", memoryRequest);
limits.put("cpu", cpuLimit);
limits.put("memory", memoryLimit);
resourceRequirements.setRequests(requests);
resourceRequirements.setLimits(limits);
container.setResources(resourceRequirements); container.setResources(resourceRequirements);
// env // env
...@@ -1632,13 +1576,7 @@ public class K8sService { ...@@ -1632,13 +1576,7 @@ public class K8sService {
volumeList.add(volume); volumeList.add(volume);
// imagePullSecrets // imagePullSecrets
List<LocalObjectReference> imagePullSecrets = new ArrayList<>(); List<LocalObjectReference> imagePullSecrets = buildImagePullSecrets();
LocalObjectReference localObjectReference1 = new LocalObjectReference();
localObjectReference1.setName("qcloudregistrykey");
LocalObjectReference localObjectReference2 = new LocalObjectReference();
localObjectReference2.setName("tencenthubkey");
imagePullSecrets.add(localObjectReference1);
imagePullSecrets.add(localObjectReference2);
podSpec.setContainers(containerList); podSpec.setContainers(containerList);
podSpec.setVolumes(volumeList); podSpec.setVolumes(volumeList);
...@@ -1779,27 +1717,9 @@ public class K8sService { ...@@ -1779,27 +1717,9 @@ public class K8sService {
container.setImage("ccr.ccs.tencentyun.com/" + image); container.setImage("ccr.ccs.tencentyun.com/" + image);
container.setImagePullPolicy("Always"); container.setImagePullPolicy("Always");
container.setName("zookeeper"); container.setName("zookeeper");
ResourceRequirements resourceRequirements = new ResourceRequirements(); ResourceRequirements resourceRequirements = buildResourceRequirements(
Map<String, Quantity> requests = new HashMap<>(); "100", "m", "300", "Mi",
Quantity cpuRequest = new Quantity(); "200", "m", "600", "Mi");
Quantity menRequest = new Quantity();
cpuRequest.setAmount("100");
cpuRequest.setFormat("m");
menRequest.setAmount("300");
menRequest.setFormat("Mi");
requests.put("cpu", cpuRequest);
requests.put("memory", menRequest);
Map<String, Quantity> limits = new HashMap<>();
Quantity cpuLimit = new Quantity();
Quantity memLimit = new Quantity();
cpuLimit.setAmount("200");
cpuLimit.setFormat("m");
memLimit.setAmount("300");
memLimit.setFormat("Mi");
limits.put("cpu", cpuLimit);
limits.put("memory", memLimit);
resourceRequirements.setRequests(requests);
resourceRequirements.setLimits(limits);
container.setResources(resourceRequirements); container.setResources(resourceRequirements);
// livenessProbe // livenessProbe
...@@ -1856,18 +1776,13 @@ public class K8sService { ...@@ -1856,18 +1776,13 @@ public class K8sService {
volume.setPersistentVolumeClaim(pvcSource); volume.setPersistentVolumeClaim(pvcSource);
volumes.add(volume); volumes.add(volume);
List<LocalObjectReference> localObjectReferenceList = new ArrayList<>(); // imagePullSecrets
LocalObjectReference localObjectReference1 = new LocalObjectReference(); List<LocalObjectReference> imagePullSecrets = buildImagePullSecrets();
LocalObjectReference localObjectReference2 = new LocalObjectReference();
localObjectReference1.setName("qcloudregistrykey");
localObjectReference2.setName("tencenthubkey");
localObjectReferenceList.add(localObjectReference1);
localObjectReferenceList.add(localObjectReference2);
podSpec.setContainers(containerList); podSpec.setContainers(containerList);
podSpec.setVolumes(volumes); podSpec.setVolumes(volumes);
podSpec.setDnsPolicy("ClusterFirst"); podSpec.setDnsPolicy("ClusterFirst");
podSpec.setImagePullSecrets(localObjectReferenceList); podSpec.setImagePullSecrets(imagePullSecrets);
podSpec.setRestartPolicy("Always"); podSpec.setRestartPolicy("Always");
podSpec.setTerminationGracePeriodSeconds(30L); podSpec.setTerminationGracePeriodSeconds(30L);
...@@ -1994,8 +1909,9 @@ public class K8sService { ...@@ -1994,8 +1909,9 @@ public class K8sService {
DeploymentStrategy deploymentStrategy = new DeploymentStrategy(); DeploymentStrategy deploymentStrategy = new DeploymentStrategy();
deploymentStrategy.setType("Recreate"); deploymentStrategy.setType("Recreate");
ResourceRequirements resourceRequirements = buildResourceRequirements("100", "m", ResourceRequirements resourceRequirements = buildResourceRequirements(
"1500", "Mi", "200", "m", "1500", "Mi"); "100", "m", "500", "Mi",
"200", "m", "1500", "Mi");
List<EnvVar> envVarList = new ArrayList<>(); List<EnvVar> envVarList = new ArrayList<>();
EnvVar envVar1 = new EnvVar(); EnvVar envVar1 = new EnvVar();
...@@ -2039,19 +1955,13 @@ public class K8sService { ...@@ -2039,19 +1955,13 @@ public class K8sService {
List<Volume> volumeList = new ArrayList<>(); List<Volume> volumeList = new ArrayList<>();
// imagePullSecrets // imagePullSecrets
List<LocalObjectReference> localObjectReferenceList = new ArrayList<>(); List<LocalObjectReference> imagePullSecrets = buildImagePullSecrets();
LocalObjectReference localObjectReference1 = new LocalObjectReference();
LocalObjectReference localObjectReference2 = new LocalObjectReference();
localObjectReference1.setName("qcloudregistrykey");
localObjectReference2.setName("tencenthubkey");
localObjectReferenceList.add(localObjectReference1);
localObjectReferenceList.add(localObjectReference2);
PodSpec podSpec = new PodSpec(); PodSpec podSpec = new PodSpec();
podSpec.setHostname("rabbitmq-" + namespace); podSpec.setHostname("rabbitmq-" + namespace);
podSpec.setContainers(containerList); podSpec.setContainers(containerList);
podSpec.setVolumes(volumeList); podSpec.setVolumes(volumeList);
podSpec.setImagePullSecrets(localObjectReferenceList); podSpec.setImagePullSecrets(imagePullSecrets);
podSpec.setRestartPolicy("Always"); podSpec.setRestartPolicy("Always");
podSpec.setTerminationGracePeriodSeconds(30L); podSpec.setTerminationGracePeriodSeconds(30L);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment