zoukankan      html  css  js  c++  java
  • 如何用IDEA+maven+kubernetes-client访问集群以及其中的资源

    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连接

    https://blog.csdn.net/liwan09/article/details/108022970?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-3.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-3.control

    将虚拟机 中 /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

    
    
    每一个不曾起舞的日子,都是对生命的辜负。
  • 相关阅读:
    【NS2仿真】TCP协议
    【NS2仿真】UDP协议
    windows pip 安装 whl文件
    数据预处理
    记录一次gitbush 在windows上的使用
    记一次Linux向服务器传war过程
    Java 字符串String(一)拆分
    web基础知识(三)关于ajax,Jquery传值最基础东西
    web基础知识(二)关于ajax,Jquery传值最基础东西
    web基础知识(一)关于ajax传值最基础东西
  • 原文地址:https://www.cnblogs.com/randy-lo/p/14340308.html
Copyright © 2011-2022 走看看