使用kubernetes-client/java類庫(kù)沦辙,實(shí)現(xiàn)java對(duì)k8s api的調(diào)用
新建maven項(xiàng)目,引入依賴
我的k8s版本是1.5的治拿,所以引入7.0.0的版本
<dependencies>
<dependency>
<groupId>io.kubernetes</groupId>
<artifactId>client-java</artifactId>
<version>7.0.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
將k8s的config文件復(fù)制到項(xiàng)目下
通過(guò)ftp把~/.kube/config下載下來(lái)放到項(xiàng)目下面抛猖。
新建一個(gè)測(cè)試文件
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.KubeConfig;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class TestClient {
public static void main(String[] args) throws ApiException, IOException, ApiException {
//直接寫config path
String kubeConfigPath = "config";
//加載k8s, config
ApiClient client = ClientBuilder.kubeconfig(KubeConfig.loadKubeConfig(new FileReader(kubeConfigPath))).build();
//將加載config的client設(shè)置為默認(rèn)的client
Configuration.setDefaultApiClient(client);
//創(chuàng)建一個(gè)api
CoreV1Api api = new CoreV1Api();
//打印所有的pod
V1PodList list = api.listPodForAllNamespaces(null,null,null,null,null,null,null,
null,null);
for (V1Pod item : list.getItems()) {
System.out.println(item);
}
}
}