java操作k8s api

使用kubernetes-client/java類庫,實現java對k8s api的調用

新建maven項目,引入依賴

我的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文件複製到項目下

通過ftp把~/.kube/config下載下來放到項目下面。
ftp
config

新建一個測試文件

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設置爲默認的client
        Configuration.setDefaultApiClient(client);

        //創建一個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);
        }
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章