美文网首页
java操作k8s api

java操作k8s api

作者: 一叶舟遥 | 来源:发表于2019-12-19 16:36 被阅读0次

    使用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);
            }
        }
    }
    

    相关文章

      网友评论

          本文标题:java操作k8s api

          本文链接:https://www.haomeiwen.com/subject/ogtvnctx.html