k8s api(官方api)调用(java版)

获取API

在GitHub上找到该项目 https://github.com/kubernetes-client/java/

下载到Maven仓库

在maven仓库的文件夹里面执行下面代码

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

这样在maven就可以直接导入给项目(可以在在maven仓库的java文件下面查看是否安装成功)
在pom文件中添加相关依赖


    io.kubernetes
    client-java
    5.0.0
    compile

获取K8S集群认证

K8S 需要获取相关认证才能通过api访问,这个认证在K8S集群初始化的时候自动创建。在根目录下面
~/.kube

然后可以用 sz config 命令
把文件拷贝下来 
这个就是访问K8S集群的认证 里面有关于K8S集群的配置认证
现在把配置文件放到java 项目中

编写简单测试代码

import io.kubernetes.client.ApiClient;
import io.kubernetes.client.ApiException;
import io.kubernetes.client.Configuration;
import io.kubernetes.client.apis.CoreV1Api;
import io.kubernetes.client.models.V1Pod;
import io.kubernetes.client.models.V1PodList;
import io.kubernetes.client.util.ClientBuilder;
import io.kubernetes.client.util.KubeConfig;

import java.io.FileReader;
import java.io.IOException;

public class apiClient {
    public static void main(String[] args) throws IOException, ApiException {
        //读取k8s集群配置文件
        String kubeConfigPath = "config";

        //加载k8s,confg
        //加载群集内配置,包括:
        //    1.服务帐户CA.
       //    2. service-account bearer-token
       //    3.服务帐户命名空间
       //    4.来自预设环境变量的主端点(ip,端口)
        ApiClient client =
                ClientBuilder.kubeconfig(KubeConfig.loadKubeConfig(new FileReader(kubeConfigPath))).build();

        //将加载confi的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.getMetadata().getName());

        }

    }

}

运行结果

k8s api(官方api)调用(java版)_第1张图片
这样一个简单的api调用就完成了。但是通过api调用的时候,权限比较高。调用不规范,请rm -rf /*

你可能感兴趣的:(Kubernetes学习笔记)