java client maven_如何用IDEA+maven+kubernetes-client访问集群以及其中的资源

1.安装IDEA,不在赘述

2.安装git,官网安装,不在赘述

2.安装maven

maven是一种包管理工具,很方便就可以管理资源的版本以及下载依赖等

安装maven最好配置一下本地仓库(常用的jar包下载到本地仓库中,之后就不要到远程仓库中拉取,效率++)

测试maven是否安装成功,即观察maven的版本

b2c4fbcd46f6d84360253a06ea2371ff.png

3.git bash 如下指令

如下指令将kubernetes-client所需要的所有jar包载入本地仓库中

以下操作执行时间比较长,耐心等待,弄完之后就可以通过在pom.xml文件中直接申明dependencies调用本地仓库中的jar包

git clone --recursive https://github.com/kubernetes-client/java

cd java

mvninstall

c477de5628fb01280b5422e77bcee4df.png

4.在maven项目中的pom.xml文件中添加如下依赖,便可以将接口导入到项目中

io.kubernetes

client-java

10.0.0

导入之后的结果大概是下面这个样子(这个过程需要几秒钟)

d110a6f92e23673fdb05d4db332e3dad.png

5.创建一个java类,测试一下example:

importio.kubernetes.client.openapi.ApiClient;importio.kubernetes.client.openapi.ApiException;importio.kubernetes.client.openapi.Configuration;importio.kubernetes.client.openapi.apis.CoreV1Api;importio.kubernetes.client.openapi.models.V1Pod;importio.kubernetes.client.openapi.models.V1PodList;importio.kubernetes.client.util.Config;importjava.io.IOException;public classtest {public static void main(String[] args) throwsIOException, ApiException{

ApiClient client=Config.defaultClient();

Configuration.setDefaultApiClient(client);

CoreV1Api api= newCoreV1Api();

V1PodList list= api.listPodForAllNamespaces(null, null, null, null, null, null, null, null, null);for(V1Pod item : list.getItems()) {

System.out.println(item.getMetadata().getName());

}

}

}

然后就挂了:

308aef6efa9b4aa14ba2eb57c38d8036.png

6.上面的问题是集群的配置文件没有导出到windows系统里面

7.安装xshell7,然后按照下面的博客建立ssh连接

将虚拟机 中 /root/.kube/config这个文件通过ssh连接传送到Windows系统下

我是将这个文件先通过下面的指令送到主目录下面然后再通过ssh连接传送到windows系统

cp /root/.kube/config /home/randylo/config

然后home目录下看到这个文件,将这个文件通过sz config 传递到windows系统中

0f0a94f3b4e103678f5bbc8b609f570c.png

将这个文件放在 C:根目录下,此时的config文件目录是C:/config

8.构建一个像这样子的maven项目,然后其中pom.xml中添加如下的dependencies:

io.kubernetes

client-java

10.0.0

9.运行一个example,创建java类,然后代码如下,这个代码是用来获取所有的pod的(在这之前保证集群都是Ready的状态)

packagetest;importio.kubernetes.client.openapi.ApiClient;importio.kubernetes.client.openapi.ApiException;importio.kubernetes.client.openapi.Configuration;importio.kubernetes.client.openapi.apis.CoreV1Api;importio.kubernetes.client.openapi.models.V1Pod;importio.kubernetes.client.openapi.models.V1PodList;importio.kubernetes.client.util.ClientBuilder;importio.kubernetes.client.util.Config;importio.kubernetes.client.util.KubeConfig;importjava.io.FileReader;importjava.io.IOException;public classtest2 {public static ApiClient client=null;public static void main(String[] args) throwsIOException, ApiException{

String kubeConfigPath= "C:\\config";

client= ClientBuilder.kubeconfig(KubeConfig.loadKubeConfig(newFileReader(kubeConfigPath))).build();

Configuration.setDefaultApiClient(client);

CoreV1Api api= newCoreV1Api();

V1PodList list= api.listPodForAllNamespaces(null, null, null, null, null, null, null, null, null);for(V1Pod item : list.getItems()) {

System.out.println(item.getMetadata().getName());

}

}

}

然后run,就可以得到如下的结果,可以看到获得了当前所有的pod名称

coredns-7ff77c879f-84bzc

coredns-7ff77c879f-l8tmp

etcd-kube-1kube-apiserver-kube-1kube-controller-manager-kube-1kube-flannel-ds-amd64-6sw87

kube-flannel-ds-amd64-bxzwl

kube-flannel-ds-amd64-vcczr

kube-proxy-lp8c7

kube-proxy-pc52q

kube-proxy-vp2nn

kube-scheduler-kube-1

10.如果想要测试其他接口可以参考kubernetes-client的wiki-example,其中也包括很多使用实例

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值