1.安裝IDEA,不在贅述
2.安裝git,官網安裝,不在贅述
2.安裝maven
maven是一種包管理工具,很方便就可以管理資源的版本以及下載依賴等
安裝maven最好配置一下本地倉庫(常用的jar包下載到本地倉庫中,之后就不要到遠程倉庫中拉取,效率++)
測試maven是否安裝成功,即觀察maven的版本
3.git bash 如下指令
如下指令將kubernetes-client所需要的所有jar包載入本地倉庫中
以下操作執行時間比較長,耐心等待,弄完之后就可以通過在pom.xml文件中直接申明dependencies調用本地倉庫中的jar包
git clone --recursive https://github.com/kubernetes-client/java cd java mvn install
4.在maven項目中的pom.xml文件中添加如下依賴,便可以將接口導入到項目中
<dependency> <groupId>io.kubernetes</groupId> <artifactId>client-java</artifactId> <version>10.0.0</version> </dependency>
導入之后的結果大概是下面這個樣子(這個過程需要幾秒鍾)
5.創建一個java類,測試一下example:
import io.kubernetes.client.openapi.ApiClient; import io.kubernetes.client.openapi.ApiException; import io.kubernetes.client.openapi.Configuration; import io.kubernetes.client.openapi.apis.CoreV1Api; import io.kubernetes.client.openapi.models.V1Pod; import io.kubernetes.client.openapi.models.V1PodList; import io.kubernetes.client.util.Config; import java.io.IOException; public class test { public static void main(String[] args) throws IOException, ApiException{ ApiClient client = Config.defaultClient(); Configuration.setDefaultApiClient(client); CoreV1Api api = new CoreV1Api(); V1PodList list = api.listPodForAllNamespaces(null, null, null, null, null, null, null, null, null); for (V1Pod item : list.getItems()) { System.out.println(item.getMetadata().getName()); } } }
然后就掛了:
6.上面的問題是集群的配置文件沒有導出到windows系統里面
7.安裝xshell7,然后按照下面的博客建立ssh連接
將虛擬機 中 /root/.kube/config這個文件通過ssh連接傳送到Windows系統下
我是將這個文件先通過下面的指令送到主目錄下面然后再通過ssh連接傳送到windows系統
cp /root/.kube/config /home/randylo/config
然后home目錄下看到這個文件,將這個文件通過sz config 傳遞到windows系統中
將這個文件放在 C:根目錄下,此時的config文件目錄是C:/config
8.構建一個像這樣子的maven項目,然后其中pom.xml中添加如下的dependencies:
<dependency> <groupId>io.kubernetes</groupId> <artifactId>client-java</artifactId> <version>10.0.0</version> </dependency>
9.運行一個example,創建java類,然后代碼如下,這個代碼是用來獲取所有的pod的(在這之前保證集群都是Ready的狀態)
package test; import io.kubernetes.client.openapi.ApiClient; import io.kubernetes.client.openapi.ApiException; import io.kubernetes.client.openapi.Configuration; import io.kubernetes.client.openapi.apis.CoreV1Api; import io.kubernetes.client.openapi.models.V1Pod; import io.kubernetes.client.openapi.models.V1PodList; import io.kubernetes.client.util.ClientBuilder; import io.kubernetes.client.util.Config; import io.kubernetes.client.util.KubeConfig; import java.io.FileReader; import java.io.IOException; public class test2 { public static ApiClient client=null; public static void main(String[] args) throws IOException, ApiException{ String kubeConfigPath = "C:\\config"; client = ClientBuilder.kubeconfig(KubeConfig.loadKubeConfig(new FileReader(kubeConfigPath))).build(); Configuration.setDefaultApiClient(client); CoreV1Api api = new CoreV1Api(); 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-1 kube-apiserver-kube-1 kube-controller-manager-kube-1 kube-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,其中也包括很多使用實例
https://github.com/kubernetes-client/java/wiki