public class KubeClientTams extends Object
| 构造器和说明 |
|---|
KubeClientTams()
通过Conf的配置得到client
|
KubeClientTams(io.fabric8.kubernetes.client.DefaultKubernetesClient client,
io.kubernetes.client.openapi.ApiClient apiClient) |
KubeClientTams(String pathTypePath)
配置文件路径得到client
|
KubeClientTams(String kubeconfigstr,
String context)
通过配置文件的内容和context得到client
|
| 限定符和类型 | 方法和说明 |
|---|---|
net.wicp.tams.common.Result |
bindAdminRoleForSa(String namespace,
String bindname,
String... sas)
使用Secret类型是kubernetes.io/service-account-token,用于被serviceaccount引用。
|
String |
callRestServiceToResult(boolean isLocalCluser,
Integer port,
String namespace,
String serviceName,
String relaUrl)
调用服务的restfull接口,如果是非本地集群,那么要求被调用方安装curl
|
net.wicp.tams.common.http.HttpResult |
callRestServiceToResult(Integer port,
String namespace,
String serviceName,
String relaUrl,
String... params) |
String |
callRestServiceToResultForExecGet(io.fabric8.kubernetes.api.model.Pod pod,
Integer port,
String namespace,
String serviceName,
String relaUrl,
String... params) |
String |
callRestServiceToResultForExecPatch(io.fabric8.kubernetes.api.model.Pod pod,
Integer port,
String namespace,
String serviceName,
String relaUrl,
String... params) |
Map<String,Object> |
createCusObject(ICrdDef crdVesion,
String namespace,
InputStream fileInputStream) |
Map<String,Object> |
createCusObject(ICrdDef crdVesion,
String version,
String namespace,
InputStream fileInputStream) |
net.wicp.tams.common.Result |
createNamespace(String namespace) |
net.wicp.tams.common.Result |
createOrUpdateImageRolling(String namespace,
String imageValue,
String rcPath)
创建或更新RC
|
void |
createRc(String namespace,
FileInputStream fileInputStream)
跟据文件创建RC
|
void |
createRc(String namespace,
String filePath) |
void |
createResourcequota(String namespace,
int minCpu,
int minMemory,
int maxCpu,
int maxMemory,
int pods)
创建命名空间配额
|
void |
createSvc(String namespace,
FileInputStream fileInputStream)
创建Service
|
void |
createSvc(String namespace,
String filePath) |
boolean |
deleteCusObject(ICrdDef crdVesion,
String namespace,
String name) |
boolean |
deleteCusObject(ICrdDef crdVesion,
String version,
String namespace,
String name)
删除自定义的资源
|
net.wicp.tams.common.Result |
delNamespace(String namespace) |
boolean |
delPodByLabel(String key,
String value) |
boolean |
delPodByLabel(String namespace,
String key,
String value) |
boolean |
delPodByName(String podName) |
boolean |
delPodByName(String namespace,
String podName) |
boolean |
delRc(String namespace,
String rcName) |
void |
delResourcequota(String namespace)
删除命名空间配额
|
boolean |
delService(String serviceName) |
boolean |
delService(String namespace,
String serviceName) |
boolean |
delSvc(String namespace,
String svcName)
删除svc
|
Process |
execFlinkSqlClient(String namespace,
String podname,
String shellcmd)
执行flink sql程序
|
Process |
execFlinkSqlClientTams(String namespace,
String podname,
String params)
执行tams定制的sqlclient
|
Process |
execPod(String namespace,
String podname)
登陆pod(没有成功)
|
Process |
execshell(String namespace,
String podname,
String... cmdargs) |
void |
execShellToCallback(Process proc,
net.wicp.tams.common.callback.IProcess callback,
String... cmdargs) |
String |
execShellToResult(String namespace,
String podname,
boolean needError,
String cmd)
执行shell命令,并反回结果
|
String |
execShellToResult(String namespace,
String podname,
String cmd) |
void |
execShellToSystemIO(String namespace,
String podname,
String... cmdargs) |
io.fabric8.kubernetes.api.model.ServiceAccount |
findCreateSa(String namespace,
String saName)
查找并创建SA,创建sa名称saName,绑定到集群角色cluster-admin
|
io.fabric8.kubernetes.client.DefaultKubernetesClient |
getClient() |
io.fabric8.kubernetes.api.model.OwnerReference |
getControllerOf(io.fabric8.kubernetes.api.model.HasMetadata md)
得到资源的owner
|
io.fabric8.kubernetes.api.model.apps.DeploymentList |
getDeploymentByLabel(String namespace,
String label) |
io.fabric8.kubernetes.api.model.apps.DeploymentList |
getDeploymentByLabel(String namespace,
String label,
String value) |
io.fabric8.kubernetes.api.model.apps.Deployment |
getDeploymentByLabelOne(String namespace,
String label,
String value)
通过label查找惟一的deployment
|
io.fabric8.kubernetes.api.model.apps.Deployment |
getDeploymentByName(String namespace,
String name)
得到deploymentName
|
List<io.fabric8.kubernetes.api.model.batch.v1.Job> |
getJobListByIds(String namespace,
Map<String,String> filtermap,
String lable,
String... ids) |
io.fabric8.kubernetes.api.model.Namespace |
getNamespace(String namespace) |
io.fabric8.kubernetes.api.model.Pod |
getPodByDeployment(String namespace,
String deploymentName,
String... status)
拿到deployment对应的某个pod
|
io.fabric8.kubernetes.api.model.Pod |
getPodByJob(String namespace,
String jobName,
String... status) |
io.fabric8.kubernetes.api.model.Pod |
getPodByService(String namespace,
String serviceName)
通过service拿到pod
|
List<io.fabric8.kubernetes.api.model.Pod> |
getPodListByDeployment(String namespace,
String deploymentName,
String... status) |
List<io.fabric8.kubernetes.api.model.Pod> |
getPodListByIds(String namespace,
Map<String,String> filtermap,
String lable,
String... ids)
查询pod,跟据过滤条件
|
List<io.fabric8.kubernetes.api.model.Pod> |
getPodListByJob(String namespace,
String jobName,
String... status) |
List<io.fabric8.kubernetes.api.model.Pod> |
getPodListByService(String namespace,
String serviceName) |
io.fabric8.kubernetes.api.model.ReplicationController |
getRC(String rcName) |
io.fabric8.kubernetes.api.model.ReplicationController |
getRC(String namespace,
String rcName)
通过名字得到RC
|
String |
getRCYaml(String namespace,
String rcName)
得到RC对应的yaml文件
|
io.fabric8.kubernetes.api.model.Secret |
getSecretAccount(String namespace,
String accountName)
通过它可以拿到 data.ca.crt 和 data.token(base加密后的密文),通过 kubectl describe得到的token才是原文.
|
io.fabric8.kubernetes.api.model.Service |
getService(String serviceName) |
io.fabric8.kubernetes.api.model.Service |
getService(String namespace,
String serviceName) |
io.fabric8.kubernetes.api.model.ServiceList |
getServices() |
io.fabric8.kubernetes.api.model.ServiceList |
getServices(String namespace) |
io.fabric8.kubernetes.api.model.Service |
getSVC(String namespace,
String rcName)
得到service
|
io.kubernetes.client.openapi.models.V1Deployment |
installDeploymentByTemp(String namespace,
String context,
Map<String,Object> params)
通过freemark模板和参数部署deployment
|
String |
proKubeConfig(io.fabric8.kubernetes.api.model.Secret secret)
生成kubeconfig文件,测试通过
|
net.wicp.tams.common.Result |
proKubeConfig(String namespace,
String accountName)
通过帐号创建配置文件
|
List<org.apache.commons.lang3.tuple.Pair<String,PodPhase>> |
queryJobStatus(String namespace,
Map<String,String> filtermap,
String lable,
String[] lableNames) |
List<org.apache.commons.lang3.tuple.Pair<String,PodPhase>> |
queryPodStatus(String namespace,
Map<String,String> filtermap,
String lable,
String[] lableNames) |
Map<String,Object> |
selCusObject(ICrdDef crdVesion,
String version,
String namespace,
String name)
查询用户自定义的资源
|
List<String> |
selPodNameByLabel(String namespace,
Map<String,String> labelmap)
通过label得到pod
|
List<String> |
selServiceByLabel(String namespace,
Map<String,String> labelmap)
通过label得到service
|
net.wicp.tams.common.Result |
updateImageRolling(String namespace,
String rcName,
String imageValue)
滚动更新image
|
void |
updateRcImage(String namespace,
String rcName,
int containerIndex,
String imageValue)
更新容器的image
|
InputStream |
viewLog(io.fabric8.kubernetes.api.model.Pod pod)
查看日志
|
InputStream |
viewLog(String namespace,
String deploymentName)
通过deploymentName随机查看其中一个pod的日志
|
public KubeClientTams()
public KubeClientTams(String kubeconfigstr, String context)
kubeconfigstr - kubeconfig内容context - 启用哪个context,传空则为当前contextpublic KubeClientTams(String pathTypePath)
pathTypePath - 配置文件public KubeClientTams(io.fabric8.kubernetes.client.DefaultKubernetesClient client,
io.kubernetes.client.openapi.ApiClient apiClient)
public io.fabric8.kubernetes.client.DefaultKubernetesClient getClient()
public io.fabric8.kubernetes.api.model.Namespace getNamespace(String namespace)
public io.fabric8.kubernetes.api.model.ServiceList getServices(String namespace)
public io.fabric8.kubernetes.api.model.ServiceList getServices()
public io.fabric8.kubernetes.api.model.Service getService(String namespace, String serviceName)
public Map<String,Object> createCusObject(ICrdDef crdVesion, String version, String namespace, InputStream fileInputStream)
public Map<String,Object> createCusObject(ICrdDef crdVesion, String namespace, InputStream fileInputStream)
public InputStream viewLog(io.fabric8.kubernetes.api.model.Pod pod)
pod - public InputStream viewLog(String namespace, String deploymentName)
namespace - deploymentName - public Process execFlinkSqlClient(String namespace, String podname, String shellcmd)
namespace - podname - public Process execFlinkSqlClientTams(String namespace, String podname, String params)
namespace - podname - params - 初始化文件的参数,如:tenantId:1,operate:2 表示租户为1,用户为2public Process execPod(String namespace, String podname)
namespace - podname - public void execShellToSystemIO(String namespace, String podname, String... cmdargs)
public String execShellToResult(String namespace, String podname, boolean needError, String cmd)
namespace - k8spodname - 容器名needError - 是否需要告警和错误信息cmd - 执行的命令public String callRestServiceToResult(boolean isLocalCluser, Integer port, String namespace, String serviceName, String relaUrl)
isLocalCluser - 是否本地k8s集群(用户方与被调用方在同一个集群),port - 端口,默认端口,本地集群是server的默认端口80,非本地就是port里面的服务默认端口8080namespace - 名称空间serviceName - 服务名relaUrl - 相对地址public net.wicp.tams.common.http.HttpResult callRestServiceToResult(Integer port, String namespace, String serviceName, String relaUrl, String... params)
public String callRestServiceToResultForExecGet(io.fabric8.kubernetes.api.model.Pod pod, Integer port, String namespace, String serviceName, String relaUrl, String... params)
public String callRestServiceToResultForExecPatch(io.fabric8.kubernetes.api.model.Pod pod, Integer port, String namespace, String serviceName, String relaUrl, String... params)
public void execShellToCallback(Process proc, net.wicp.tams.common.callback.IProcess callback, String... cmdargs)
public boolean deleteCusObject(ICrdDef crdVesion, String version, String namespace, String name)
crdVesion - version - 版本namespace - name - public Map<String,Object> selCusObject(ICrdDef crdVesion, String version, String namespace, String name)
crdVesion - version - 版本namespace - name - public io.fabric8.kubernetes.api.model.Service getService(String serviceName)
public io.fabric8.kubernetes.api.model.ReplicationController getRC(String namespace, String rcName)
namespace - rcName - public io.fabric8.kubernetes.api.model.ReplicationController getRC(String rcName)
public io.fabric8.kubernetes.api.model.Service getSVC(String namespace, String rcName)
namespace - rcName - public String getRCYaml(String namespace, String rcName) throws com.fasterxml.jackson.core.JsonProcessingException
namespace - rcName - com.fasterxml.jackson.core.JsonProcessingExceptionpublic boolean delService(String serviceName)
public net.wicp.tams.common.Result createNamespace(String namespace)
public net.wicp.tams.common.Result delNamespace(String namespace)
public boolean delPodByName(String podName)
public io.fabric8.kubernetes.api.model.Pod getPodByDeployment(String namespace, String deploymentName, String... status)
namespace - 名称空间deploymentName - public List<io.fabric8.kubernetes.api.model.Pod> getPodListByDeployment(String namespace, String deploymentName, String... status)
public io.fabric8.kubernetes.api.model.Pod getPodByJob(String namespace, String jobName, String... status)
public List<io.fabric8.kubernetes.api.model.Pod> getPodListByJob(String namespace, String jobName, String... status)
public io.fabric8.kubernetes.api.model.Pod getPodByService(String namespace, String serviceName)
namespace - serviceName - public List<io.fabric8.kubernetes.api.model.Pod> getPodListByService(String namespace, String serviceName)
public List<io.fabric8.kubernetes.api.model.Pod> getPodListByIds(String namespace, Map<String,String> filtermap, String lable, String... ids)
namespace - filtermap - lable - ids - public List<io.fabric8.kubernetes.api.model.batch.v1.Job> getJobListByIds(String namespace, Map<String,String> filtermap, String lable, String... ids)
namespace - filtermap - lable - ids - public List<org.apache.commons.lang3.tuple.Pair<String,PodPhase>> queryPodStatus(String namespace, Map<String,String> filtermap, String lable, String[] lableNames)
public List<org.apache.commons.lang3.tuple.Pair<String,PodPhase>> queryJobStatus(String namespace, Map<String,String> filtermap, String lable, String[] lableNames)
public List<String> selPodNameByLabel(String namespace, Map<String,String> labelmap)
namespace - labelmap - public List<String> selServiceByLabel(String namespace, Map<String,String> labelmap)
namespace - labelmap - public void createRc(String namespace, String filePath) throws net.wicp.tams.common.exception.ProjectException
net.wicp.tams.common.exception.ProjectExceptionpublic void createRc(String namespace, FileInputStream fileInputStream) throws net.wicp.tams.common.exception.ProjectException
fileInputStream - 输入流net.wicp.tams.common.exception.ProjectExceptionpublic void createSvc(String namespace, FileInputStream fileInputStream) throws net.wicp.tams.common.exception.ProjectException
namespace - fileInputStream - net.wicp.tams.common.exception.ProjectExceptionpublic void createSvc(String namespace, String filePath) throws net.wicp.tams.common.exception.ProjectException
net.wicp.tams.common.exception.ProjectExceptionpublic void createResourcequota(String namespace, int minCpu, int minMemory, int maxCpu, int maxMemory, int pods)
namespace - minCpu - minMemory - maxCpu - maxMemory - pods - public void delResourcequota(String namespace)
namespace - public void updateRcImage(String namespace, String rcName, int containerIndex, String imageValue)
namespace - rcName - containerIndex - 这个pod的第几个容器imageValue - public net.wicp.tams.common.Result updateImageRolling(String namespace, String rcName, String imageValue)
namespace - rcName - imageValue - public net.wicp.tams.common.Result createOrUpdateImageRolling(String namespace, String imageValue, String rcPath)
namespace - 命名空间imageValue - image值rcPath - rc的文件路径public io.fabric8.kubernetes.api.model.apps.Deployment getDeploymentByName(String namespace, String name)
public io.fabric8.kubernetes.api.model.apps.Deployment getDeploymentByLabelOne(String namespace, String label, String value)
namespace - label - value - public io.fabric8.kubernetes.api.model.apps.DeploymentList getDeploymentByLabel(String namespace, String label, String value)
public io.fabric8.kubernetes.api.model.apps.DeploymentList getDeploymentByLabel(String namespace, String label)
public io.kubernetes.client.openapi.models.V1Deployment installDeploymentByTemp(String namespace, String context, Map<String,Object> params)
namespace - context - params - public io.fabric8.kubernetes.api.model.OwnerReference getControllerOf(io.fabric8.kubernetes.api.model.HasMetadata md)
md - 资源,如pod等public io.fabric8.kubernetes.api.model.ServiceAccount findCreateSa(String namespace, String saName)
namespace - saName - public net.wicp.tams.common.Result bindAdminRoleForSa(String namespace, String bindname, String... sas)
namespace - bindname - sas - public io.fabric8.kubernetes.api.model.Secret getSecretAccount(String namespace, String accountName)
namespace - accountName - public net.wicp.tams.common.Result proKubeConfig(String namespace, String accountName)
namespace - accountName - public String proKubeConfig(io.fabric8.kubernetes.api.model.Secret secret)
secret - Copyright © 2023. All rights reserved.