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
ef25ec83
Commit
ef25ec83
authored
Aug 18, 2021
by
黎博
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新增清空redis接口
parent
99ac67b7
Changes
3
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
179 additions
and
50 deletions
+179
-50
K8sController.java
src/main/java/cn/qg/holmes/controller/k8s/K8sController.java
+76
-40
K8sService.java
src/main/java/cn/qg/holmes/service/k8s/K8sService.java
+73
-10
RedisService.java
src/main/java/cn/qg/holmes/service/k8s/RedisService.java
+30
-0
No files found.
src/main/java/cn/qg/holmes/controller/k8s/K8sController.java
View file @
ef25ec83
This diff is collapsed.
Click to expand it.
src/main/java/cn/qg/holmes/service/k8s/
Tke
Service.java
→
src/main/java/cn/qg/holmes/service/k8s/
K8s
Service.java
View file @
ef25ec83
...
@@ -2,8 +2,6 @@ package cn.qg.holmes.service.k8s;
...
@@ -2,8 +2,6 @@ package cn.qg.holmes.service.k8s;
import
cn.qg.holmes.entity.k8s.DockerProject
;
import
cn.qg.holmes.entity.k8s.DockerProject
;
import
cn.qg.holmes.entity.k8s.ServiceCreateVo
;
import
cn.qg.holmes.entity.k8s.ServiceCreateVo
;
import
com.alibaba.fastjson.JSON
;
import
com.jayway.jsonpath.JsonPath
;
import
io.fabric8.kubernetes.api.model.*
;
import
io.fabric8.kubernetes.api.model.*
;
import
io.fabric8.kubernetes.api.model.apps.Deployment
;
import
io.fabric8.kubernetes.api.model.apps.Deployment
;
import
io.fabric8.kubernetes.api.model.apps.DeploymentSpec
;
import
io.fabric8.kubernetes.api.model.apps.DeploymentSpec
;
...
@@ -28,11 +26,11 @@ import java.util.Map;
...
@@ -28,11 +26,11 @@ import java.util.Map;
@Slf4j
@Slf4j
@Component
@Component
public
class
Tke
Service
{
public
class
K8s
Service
{
private
KubernetesClient
kubernetesClient
;
private
KubernetesClient
kubernetesClient
;
public
Tke
Service
()
{
public
K8s
Service
()
{
try
{
try
{
String
configYAML
=
String
.
join
(
"\n"
,
readConfigFile
(
"kube-config.yml"
));
String
configYAML
=
String
.
join
(
"\n"
,
readConfigFile
(
"kube-config.yml"
));
Config
config
=
Config
.
fromKubeconfig
(
configYAML
);
Config
config
=
Config
.
fromKubeconfig
(
configYAML
);
...
@@ -1830,12 +1828,77 @@ public class TkeService {
...
@@ -1830,12 +1828,77 @@ public class TkeService {
return
kubernetesClient
.
extensions
().
ingresses
().
inNamespace
(
namespace
).
withName
(
serviceName
).
get
()
!=
null
;
return
kubernetesClient
.
extensions
().
ingresses
().
inNamespace
(
namespace
).
withName
(
serviceName
).
get
()
!=
null
;
}
}
/**
* 获取Service详情
* @param namespace 环境
* @param serviceName service名称
* @return
*/
public
Service
getServiceDetail
(
String
namespace
,
String
serviceName
)
{
return
kubernetesClient
.
services
().
inNamespace
(
namespace
).
withName
(
serviceName
).
get
();
}
public
Pod
getPodDetail
(
String
namespace
,
String
serviceType
,
String
serviceName
)
{
LabelSelector
labelSelector
=
new
LabelSelector
();
Map
<
String
,
String
>
labelMap
=
new
HashMap
<>();
labelMap
.
put
(
"type"
,
serviceType
);
labelMap
.
put
(
"qcloud-app"
,
serviceName
);
labelSelector
.
setMatchLabels
(
labelMap
);
return
kubernetesClient
.
pods
().
inNamespace
(
namespace
).
withLabelSelector
(
labelSelector
).
list
().
getItems
().
get
(
0
);
}
/**
* 获取pod和service的一些信息
* @param namespace
* @param serviceType
* @param serviceName
* @return
*/
public
Map
<
String
,
Object
>
getPodAndServiceInfo
(
String
namespace
,
String
serviceType
,
String
serviceName
)
{
Service
service
=
getServiceDetail
(
namespace
,
serviceName
);
Pod
pod
=
getPodDetail
(
namespace
,
serviceType
,
serviceName
);
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
if
(
pod
.
getStatus
().
getPhase
().
equals
(
"Running"
))
{
// 端口映射
List
<
Map
<
String
,
Object
>>
portMappingList
=
new
ArrayList
<>();
ObjectMeta
podMetadata
=
pod
.
getMetadata
();
if
(
service
!=
null
)
{
List
<
ServicePort
>
servicePortList
=
service
.
getSpec
().
getPorts
();
if
(
servicePortList
.
size
()
>
0
)
{
for
(
ServicePort
servicePort
:
servicePortList
)
{
if
(
servicePort
.
getNodePort
()
!=
null
)
{
map
.
put
(
"port_"
+
servicePort
.
getName
(),
servicePort
.
getNodePort
());
}
Map
<
String
,
Object
>
portMap
=
new
HashMap
<>();
portMap
.
put
(
"name"
,
servicePort
.
getName
());
portMap
.
put
(
"nodePort"
,
servicePort
.
getNodePort
());
portMap
.
put
(
"port"
,
servicePort
.
getPort
());
portMap
.
put
(
"protocol"
,
servicePort
.
getProtocol
());
portMap
.
put
(
"targetPort"
,
servicePort
.
getTargetPort
());
portMappingList
.
add
(
portMap
);
}
}
if
(
portMappingList
.
size
()
>
0
)
{
map
.
put
(
"portMappings"
,
portMappingList
);
}
}
map
.
put
(
"createdAt"
,
podMetadata
.
getCreationTimestamp
());
map
.
put
(
"serviceName"
,
serviceName
);
map
.
put
(
"podName"
,
podMetadata
.
getName
());
map
.
put
(
"labels"
,
podMetadata
.
getLabels
());
List
<
ContainerStatus
>
containerStatuses
=
pod
.
getStatus
().
getContainerStatuses
();
map
.
put
(
"image"
,
pod
.
getStatus
().
getContainerStatuses
().
get
(
0
).
getImage
());
map
.
put
(
"imageId"
,
pod
.
getStatus
().
getContainerStatuses
().
get
(
0
).
getImageID
());
map
.
put
(
"lanIp"
,
pod
.
getStatus
().
getHostIP
());
map
.
put
(
"podIp"
,
pod
.
getStatus
().
getPodIP
());
map
.
put
(
"startTime"
,
pod
.
getStatus
().
getStartTime
());
map
.
put
(
"status"
,
containerStatuses
.
get
(
0
).
getReady
());
}
return
map
;
}
public
static
void
main
(
String
[]
args
)
{
public
static
void
main
(
String
[]
args
)
{
TkeService
tkeService
=
new
TkeService
();
K8sService
k8sService
=
new
K8sService
();
// tkeService.updateDeployment("k8s", "qa-platform", "qa-test/qa-platform:master-20210729112805284");
System
.
out
.
println
(
k8sService
.
getPodDetail
(
"k8s"
,
"base"
,
"redis"
));
// tkeService.createIngress("fe", "qa-platform-ui", "qa-platform-ui");
// tkeService.createUIAndNodeService("fe", "qa-platform-ui", "ui", "ui");
// System.out.println(tkeService.queryIfIngressExistByName("k8s", "qa-platform"));
// System.out.println(tkeService.queryIfIngressExistByName("namespace", "qa-platform-ui"));
}
}
}
}
src/main/java/cn/qg/holmes/service/k8s/RedisService.java
0 → 100644
View file @
ef25ec83
package
cn
.
qg
.
holmes
.
service
.
k8s
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Component
;
import
redis.clients.jedis.Jedis
;
@Slf4j
@Component
public
class
RedisService
{
/**
* 清空redis
* @param redisHost redis host
* @param redisPort redis port
* @return
*/
public
boolean
flushRedis
(
String
redisHost
,
Integer
redisPort
)
{
try
{
Jedis
jedis
=
new
Jedis
(
redisHost
,
redisPort
);
jedis
.
flushAll
();
jedis
.
quit
();
jedis
.
close
();
return
true
;
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
false
;
}
}
}
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