public class KubeClientTams extends Object
| 构造器和说明 |
|---|
KubeClientTams()
通过Conf的配置得到client
|
KubeClientTams(io.fabric8.kubernetes.client.KubernetesClient client,
io.kubernetes.client.openapi.ApiClient apiClient) |
KubeClientTams(String pathTypePath)
配置文件路径得到client
|
KubeClientTams(String host,
int port,
String webContext) |
KubeClientTams(String kubeconfigstr,
String confContext)
通过配置文件的内容和context得到client
|
KubeClientTams(URI mastUrl) |
| 限定符和类型 | 方法和说明 |
|---|---|
net.wicp.tams.common.Result |
bindAdminRoleForSa(String namespace,
String bindname,
String... sas)
使用Secret类型是kubernetes.io/service-account-token,用于被serviceaccount引用。
|
net.wicp.tams.common.Result |
bindClusterAdminRoleForSa(String namespace,
String bindname,
String... sas) |
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) |
void |
close() |
InputStream |
copyFileFromPod(String namespace,
String deploymentName,
String podFilePath)
复制文件从pod
|
Boolean |
copyFileToPod(String namespace,
String deploymentName,
InputStream inputStream,
String podFilePath) |
Boolean |
copyFileToPod(String namespace,
String deploymentName,
String osFilepath,
String podFilePath)
复制文件到pod
|
static int |
cpuInfo(String quantityStr) |
io.fabric8.kubernetes.api.model.GenericKubernetesResource |
createCusObject(ICrdDef crdVesion,
String namespace,
InputStream fileInputStream) |
io.fabric8.kubernetes.api.model.GenericKubernetesResource |
createCusObject(ICrdDef crdVesion,
String version,
String namespace,
InputStream fileInputStream) |
io.fabric8.kubernetes.api.model.GenericKubernetesResource |
createCusObject(ICrdDef crdVesion,
String namespace,
String name,
Map<String,String> annotations,
Map<String,String> labels,
Map<String,Object> spec) |
net.wicp.tams.common.Result |
createNamespace(String namespace,
String group) |
net.wicp.tams.common.Result |
createOrUpdateImageRolling(String namespace,
String imageValue,
String rcPath)
创建或更新RC
|
void |
createRc(String namespace,
FileInputStream fileInputStream)
跟据文件创建RC TODO 测试
|
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 TODO 测试
|
void |
createSvc(String namespace,
String filePath) |
io.kubernetes.client.openapi.models.V1Ingress |
createV1Ingress(String namespace,
String ingressName,
Map<String,String> annotations,
String path,
String servicename,
Integer servicePort,
String host,
io.kubernetes.client.openapi.models.V1OwnerReference ref,
io.kubernetes.client.openapi.models.V1IngressTLS tls)
创建k8s Ingress,兼容旧版本需要使用4.9.2版本
|
boolean |
deleteCusObject(ICrdDef crdVesion,
String namespace,
String name) |
boolean |
deleteCusObject(ICrdDef crdVesion,
String version,
String namespace,
String name)
删除自定义的资源
|
boolean |
deleteCusObjectByLabel(ICrdDef crdVesion,
String namespace,
String... labels) |
void |
deleteResource(ResourcesType resouceType,
String namespace,
String name) |
void |
delNamespace(String namespace,
String group)
删除名称空间
|
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,
String initFilePath)
执行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) |
boolean |
existCrd(ICrdDef crdVesion) |
boolean |
exitNamespace(String namespace,
String group) |
io.fabric8.kubernetes.api.model.ServiceAccount |
findCreateSa(String namespace,
String saName)
查找并创建SA,创建sa名称saName,绑定到集群角色cluster-admin
|
List<String> |
getAllNamespace() |
List<String> |
getAllNamespace(String group)
得到所有名称空间
|
io.fabric8.kubernetes.client.KubernetesClient |
getClient() |
io.fabric8.kubernetes.api.model.OwnerReference |
getControllerOf(io.fabric8.kubernetes.api.model.HasMetadata md)
得到资源的owner
|
List<KubernetesResultCol> |
getCrdColDef(ICrdDef crdVesion) |
List<KubernetesResultCol> |
getCrdColDef(String crdName) |
String |
getDefaultNamespace() |
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
|
Set<String> |
getGroups() |
List<io.fabric8.kubernetes.api.model.batch.v1.Job> |
getJobListByIds(String namespace,
Map<String,String> filtermap,
String lable,
String... ids) |
io.fabric8.kubernetes.client.VersionInfo |
getKubernetesVersion() |
io.fabric8.kubernetes.api.model.Namespace |
getNamespace(String namespace,
String group) |
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 |
getPodByName(String namespace,
String podName)
通过pod名拿到pod
|
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
|
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
|
void |
installCrd(InputStream is) |
void |
installCrd(String relaPath,
Class<?> classz) |
io.kubernetes.client.openapi.models.V1Deployment |
installDeploymentByTemp(String namespace,
String context,
Map<String,Object> params)
通过freemark模板和参数部署deployment
|
void |
installResource(ResourcesType resouceType,
String namespace,
Map<String,Object> crd) |
boolean |
isClosed() |
static int |
memInfo(String quantityStr) |
void |
movePod(String namespace,
String podName)
当某个节点出现故障后需要强制迁移某个pod,
|
static int |
numInfo(String quantityStr) |
String |
proKubeConfig(String clusterName,
io.fabric8.kubernetes.api.model.Secret secret)
生成kubeconfig文件,测试通过
|
net.wicp.tams.common.Result |
proKubeConfig(String clusterName,
String namespace,
String accountName,
boolean isCluster)
通过帐号创建配置文件
|
<T extends io.fabric8.kubernetes.api.model.HasMetadata,L extends io.fabric8.kubernetes.api.model.KubernetesResourceList<io.fabric8.kubernetes.api.model.HasMetadata>,R extends io.fabric8.kubernetes.client.dsl.Resource<T>> |
queryAll(io.fabric8.kubernetes.client.dsl.FilterWatchListDeletable<T,L,R> filter) |
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) |
<T extends io.fabric8.kubernetes.api.model.HasMetadata,L extends io.fabric8.kubernetes.api.model.KubernetesResourceList<io.fabric8.kubernetes.api.model.HasMetadata>,R extends io.fabric8.kubernetes.client.dsl.Resource<T>> |
queryResByPage(ResourcesType resourcesType,
SqlParserAssit sqlParserTams,
int pageSize,
int pageNo) |
QuotaBean |
queryResourcequota(String namespace,
String quotasName)
查询命名空间配额
|
void |
scaleDeployment(String namespace,
String deploymentName,
int numberOfReplicas)
更新副本
|
List<io.fabric8.kubernetes.api.model.GenericKubernetesResource> |
selCusObject(ICrdDef crdVesion,
String namespace,
String name) |
List<io.fabric8.kubernetes.api.model.GenericKubernetesResource> |
selCusObjectByLabel(ICrdDef crdVesion,
String namespace,
String... labels) |
List<String> |
selPodNameByLabel(String namespace,
Map<String,String> labelmap)
通过label得到pod
|
List<String> |
selServiceByLabel(String namespace,
Map<String,String> labelmap)
通过label得到service
|
void |
setDefaultNamespace(String namespace) |
List<String[]> |
statementsByPage(ResourcesType resourcesType,
SqlParserAssit sqlParserTams,
int curPage,
long maxSize) |
void |
updateCrd(ICrdDef crdVesion,
String namespace,
String name,
Map<String,Object> updatedSpec) |
net.wicp.tams.common.Result |
updateImageRolling(String namespace,
String rcName,
String imageValue)
滚动更新image TODO 测试
|
void |
updateRcImage(String namespace,
String rcName,
int containerIndex,
String imageValue)
更新容器的image TODO 测试
|
void |
updateResource(ResourcesType resouceType,
String namespace,
String name,
Map<String,Object> crd) |
InputStream |
viewLog(io.fabric8.kubernetes.api.model.Pod pod)
查看日志
|
InputStream |
viewLog(String namespace,
String deploymentName)
通过deploymentName随机查看其中一个pod的日志
|
public KubeClientTams()
public KubeClientTams(String kubeconfigstr, String confContext)
kubeconfigstr - kubeconfig内容confContext - 启用哪个context,传空则为当前contextpublic KubeClientTams(String pathTypePath)
pathTypePath - 配置文件public KubeClientTams(URI mastUrl)
public KubeClientTams(io.fabric8.kubernetes.client.KubernetesClient client,
io.kubernetes.client.openapi.ApiClient apiClient)
public List<KubernetesResultCol> getCrdColDef(String crdName)
crdName - 配置属性common.kubernetes.crd.[crdName]public io.fabric8.kubernetes.client.KubernetesClient getClient()
public io.fabric8.kubernetes.api.model.Namespace getNamespace(String namespace, String group)
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 io.fabric8.kubernetes.api.model.GenericKubernetesResource createCusObject(ICrdDef crdVesion, String version, String namespace, InputStream fileInputStream)
public void updateCrd(ICrdDef crdVesion, String namespace, String name, Map<String,Object> updatedSpec)
public io.fabric8.kubernetes.api.model.GenericKubernetesResource createCusObject(ICrdDef crdVesion, String namespace, InputStream fileInputStream)
public io.fabric8.kubernetes.api.model.GenericKubernetesResource createCusObject(ICrdDef crdVesion, String namespace, String name, Map<String,String> annotations, Map<String,String> labels, Map<String,Object> spec)
public List<KubernetesResultCol> getCrdColDef(ICrdDef crdVesion)
public boolean existCrd(ICrdDef crdVesion)
public void installCrd(InputStream is)
public InputStream viewLog(io.fabric8.kubernetes.api.model.Pod pod)
pod - public InputStream viewLog(String namespace, String deploymentName)
namespace - deploymentName - public Boolean copyFileToPod(String namespace, String deploymentName, String osFilepath, String podFilePath)
namespace - deploymentName - osFilepath - podFilePath - public Boolean copyFileToPod(String namespace, String deploymentName, InputStream inputStream, String podFilePath)
public InputStream copyFileFromPod(String namespace, String deploymentName, String podFilePath)
namespace - deploymentName - podFilePath - public Process execFlinkSqlClient(String namespace, String podname, String shellcmd)
namespace - podname - public Process execFlinkSqlClientTams(String namespace, String podname, String params, String initFilePath)
namespace - podname - params - 初始化文件的参数,如:tenantId:1,operate:2 表示租户为1,用户为2initFilePath - 初始化文件地址public 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 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 boolean deleteCusObjectByLabel(ICrdDef crdVesion, String namespace, String... labels)
public List<io.fabric8.kubernetes.api.model.GenericKubernetesResource> selCusObject(ICrdDef crdVesion, String namespace, String name)
public List<io.fabric8.kubernetes.api.model.GenericKubernetesResource> selCusObjectByLabel(ICrdDef crdVesion, String namespace, String... labels)
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 boolean delService(String serviceName)
public void delNamespace(String namespace, String group)
namespace - group - public boolean delPodByName(String podName)
public io.fabric8.kubernetes.api.model.Pod getPodByDeployment(String namespace, String deploymentName, String... status)
namespace - 名称空间deploymentName - public io.fabric8.kubernetes.api.model.Pod getPodByName(String namespace, String podName)
namespace - podName - public void movePod(String namespace, String podName)
namespace - 名称空间podName - pod名public QuotaBean queryResourcequota(String namespace, String quotasName)
namespace - 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 void scaleDeployment(String namespace, String deploymentName, int numberOfReplicas) throws io.kubernetes.client.openapi.ApiException
namespace - deploymentName - numberOfReplicas - io.kubernetes.client.openapi.ApiExceptionpublic 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 void installResource(ResourcesType resouceType, String namespace, Map<String,Object> crd)
public void updateResource(ResourcesType resouceType, String namespace, String name, Map<String,Object> crd)
public void deleteResource(ResourcesType resouceType, String namespace, String name)
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 net.wicp.tams.common.Result bindClusterAdminRoleForSa(String namespace, String bindname, String... sas)
public io.fabric8.kubernetes.api.model.Secret getSecretAccount(String namespace, String accountName)
namespace - accountName - public net.wicp.tams.common.Result proKubeConfig(String clusterName, String namespace, String accountName, boolean isCluster)
namespace - accountName - isCluster - true:是集群管理员,false:名称空间管理员public String proKubeConfig(String clusterName, io.fabric8.kubernetes.api.model.Secret secret)
secret - clusterName - 集群的名称public io.fabric8.kubernetes.client.VersionInfo getKubernetesVersion()
public io.kubernetes.client.openapi.models.V1Ingress createV1Ingress(String namespace, String ingressName, Map<String,String> annotations, String path, String servicename, Integer servicePort, String host, io.kubernetes.client.openapi.models.V1OwnerReference ref, io.kubernetes.client.openapi.models.V1IngressTLS tls)
namespace - 命名空间ingressName - ingress名称annotations - ingress注解path - 匹配的路径servicename - 路由到的服务名称servicePort - 路由到的服务端口host - 注册的主机ref - 主对象tls - 启用的ssl secretpublic static int numInfo(String quantityStr)
public static int cpuInfo(String quantityStr)
public static int memInfo(String quantityStr)
public <T extends io.fabric8.kubernetes.api.model.HasMetadata,L extends io.fabric8.kubernetes.api.model.KubernetesResourceList<io.fabric8.kubernetes.api.model.HasMetadata>,R extends io.fabric8.kubernetes.client.dsl.Resource<T>> List<T> queryResByPage(ResourcesType resourcesType, SqlParserAssit sqlParserTams, int pageSize, int pageNo)
public <T extends io.fabric8.kubernetes.api.model.HasMetadata,L extends io.fabric8.kubernetes.api.model.KubernetesResourceList<io.fabric8.kubernetes.api.model.HasMetadata>,R extends io.fabric8.kubernetes.client.dsl.Resource<T>> List<T> queryAll(io.fabric8.kubernetes.client.dsl.FilterWatchListDeletable<T,L,R> filter)
public void close()
public List<String[]> statementsByPage(ResourcesType resourcesType, SqlParserAssit sqlParserTams, int curPage, long maxSize)
public boolean isClosed()
public void setDefaultNamespace(String namespace)
public String getDefaultNamespace()
Copyright © 2023–2024. All rights reserved.