Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
H
holmes
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
QA
holmes
Commits
f5daa84e
Commit
f5daa84e
authored
Jul 17, 2021
by
黎博
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update
parent
ef3d157d
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
105 additions
and
8 deletions
+105
-8
TkeService.java
src/main/java/cn/qg/holmes/service/k8s/TkeService.java
+105
-8
No files found.
src/main/java/cn/qg/holmes/service/k8s/TkeService.java
View file @
f5daa84e
...
...
@@ -88,7 +88,8 @@ public class TkeService {
* @param namespace 环境
* @return
*/
public
List
<
Map
<
String
,
Object
>>
getPodList
(
String
namespace
)
{
public
List
<
Map
<
String
,
Object
>>
getPodList
(
String
namespace
)
{
List
<
Pod
>
podList
=
kubernetesClient
.
pods
().
inNamespace
(
namespace
).
list
().
getItems
();
List
<
Map
<
String
,
Object
>>
result
=
new
ArrayList
<>();
for
(
Pod
pod:
podList
)
{
...
...
@@ -182,20 +183,22 @@ public class TkeService {
Map
<
String
,
String
>
labels
=
new
HashMap
<>();
labels
.
put
(
"type"
,
label
);
labels
.
put
(
"qcloud-app"
,
serviceName
);
objectMeta
.
setName
(
serviceName
);
objectMeta
.
setNamespace
(
namespace
);
objectMeta
.
setLabels
(
labels
);
// 设置spec
List
<
ServicePort
>
portList
=
new
ArrayList
<>();
ServicePort
servicePort1
=
new
ServicePort
();
servicePort1
.
setName
(
"80"
);
servicePort1
.
setPort
(
80
);
ServicePort
servicePort2
=
new
ServicePort
();
servicePort
1
.
setName
(
"5005"
);
servicePort
1
.
setPort
(
5005
);
servicePort
2
.
setName
(
"5005"
);
servicePort
2
.
setPort
(
5005
);
ServicePort
servicePort3
=
new
ServicePort
();
servicePort
1
.
setName
(
"20880"
);
servicePort
1
.
setPort
(
20880
);
servicePort
3
.
setName
(
"20880"
);
servicePort
3
.
setPort
(
20880
);
portList
.
add
(
servicePort1
);
portList
.
add
(
servicePort2
);
portList
.
add
(
servicePort3
);
...
...
@@ -673,7 +676,14 @@ public class TkeService {
return
kubernetesClient
.
services
().
inNamespace
(
namespace
).
create
(
redisService
);
}
/**
* 创建redis container
* @param image 镜像名
* @param port 端口号
* @return
*/
public
Container
createRedisContainer
(
String
image
,
String
port
)
{
// TODO: 2021/7/13 cpu和内存控制
Container
container
=
new
Container
();
container
.
setName
(
"redis-"
+
port
);
container
.
setImage
(
"ccr.ccs.tencentyun.com/"
+
image
);
...
...
@@ -826,6 +836,87 @@ public class TkeService {
return
kubernetesClient
.
apps
().
deployments
().
inNamespace
(
namespace
).
create
(
redisDeployment
);
}
/**
* 创建mysql service
* @param namespace 环境
* @return
*/
public
Service
createMysqlService
(
String
namespace
)
{
Service
mysqlService
=
new
Service
();
// 创建metadata
ObjectMeta
objectMeta
=
new
ObjectMeta
();
Map
<
String
,
String
>
labelMap
=
new
HashMap
<>();
labelMap
.
put
(
"type"
,
"base"
);
labelMap
.
put
(
"qcloud-app"
,
"mysql"
);
objectMeta
.
setLabels
(
labelMap
);
objectMeta
.
setName
(
"mysql"
);
objectMeta
.
setNamespace
(
namespace
);
// 创建spec
ServiceSpec
serviceSpec
=
new
ServiceSpec
();
List
<
ServicePort
>
servicePortList
=
new
ArrayList
<>();
ServicePort
servicePort1
=
new
ServicePort
();
servicePort1
.
setPort
(
3306
);
servicePortList
.
add
(
servicePort1
);
Map
<
String
,
String
>
selectorMap
=
new
HashMap
<>();
selectorMap
.
put
(
"qcloud-app"
,
"mysql"
);
serviceSpec
.
setType
(
"NodePort"
);
serviceSpec
.
setPorts
(
servicePortList
);
serviceSpec
.
setSelector
(
selectorMap
);
// 设置service
mysqlService
.
setApiVersion
(
"v1"
);
mysqlService
.
setKind
(
"Service"
);
mysqlService
.
setMetadata
(
objectMeta
);
mysqlService
.
setSpec
(
serviceSpec
);
return
kubernetesClient
.
services
().
inNamespace
(
namespace
).
create
(
mysqlService
);
}
/**
* 创建mysql pvc
* @param namespace 环境
*/
public
PersistentVolumeClaim
createMysqlPvc
(
String
namespace
)
{
PersistentVolumeClaim
mysqlPvc
=
new
PersistentVolumeClaim
();
// 设置metadata
ObjectMeta
objectMeta
=
new
ObjectMeta
();
objectMeta
.
setName
(
"mysql-"
+
namespace
);
objectMeta
.
setNamespace
(
namespace
);
// 设置spec
PersistentVolumeClaimSpec
pvcSpec
=
new
PersistentVolumeClaimSpec
();
List
<
String
>
accessModeList
=
new
ArrayList
<>();
accessModeList
.
add
(
"ReadWriteOnce"
);
ResourceRequirements
resourceRequirements
=
new
ResourceRequirements
();
Map
<
String
,
Quantity
>
requests
=
new
HashMap
<>();
Quantity
quantity
=
new
Quantity
();
quantity
.
setAmount
(
"20"
);
quantity
.
setFormat
(
"Gi"
);
requests
.
put
(
"storage"
,
quantity
);
resourceRequirements
.
setRequests
(
requests
);
pvcSpec
.
setAccessModes
(
accessModeList
);
pvcSpec
.
setResources
(
resourceRequirements
);
mysqlPvc
.
setApiVersion
(
"v1"
);
mysqlPvc
.
setKind
(
"PersistentVolumeClaim"
);
mysqlPvc
.
setMetadata
(
objectMeta
);
mysqlPvc
.
setSpec
(
pvcSpec
);
return
kubernetesClient
.
persistentVolumeClaims
().
inNamespace
(
namespace
).
create
(
mysqlPvc
);
}
/**
*
*/
public
Deployment
createMysqlDeployment
(
String
namespace
)
{
return
null
;
}
/**
* 更新部署pod
* @param namespace 环境
...
...
@@ -862,23 +953,29 @@ public class TkeService {
// System.out.println(k8sService.resetPod("fe", "acm-ui-58864499d9-h47rl"));
// tkeService.deleteService("fe", "kdsp");
//创建deployment
// ServiceCreateVo serviceCreateVo = new ServiceCreateVo();
// serviceCreateVo.setServiceName("gu-bei");
// serviceCreateVo.setNamespace("
fe
");
// serviceCreateVo.setNamespace("
test1
");
// serviceCreateVo.setCluster("qa");
// serviceCreateVo.setMock(
0
);
// serviceCreateVo.setMock(
1
);
// serviceCreateVo.setDebug(0);
// serviceCreateVo.setLabel("java");
// serviceCreateVo.setImage("qa-test/gu-bei:master-20210707165716636");
// DockerProject dockerProject = new DockerProject();
// dockerProject.setCpuRequest("200");
// dockerProject.setMe
n
Request("500");
// dockerProject.setMe
m
Request("500");
// dockerProject.setCpuLimit("2000");
// dockerProject.setMemLimit("1000");
// tkeService.createJavaDeployment(serviceCreateVo, dockerProject);
// tkeService.updateDeployment("fe", "mo-clotho", "qa-test/mo-clotho:master-20210707143546990");
// tkeService.createRedisService("fe", "redis");
// tkeService.createRedisDeployment("fe", "base", "redis", "redis", "qa-base/redis:3");
// tkeService.createJavaService("test1", "gu-bei", "NodePort", "java");
// tkeService.createUIAndNodeService("tob", "new-op-optimized-ui", "ClusterIP", "ui");
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment