温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java怎么实现kubernates的api访问Fabric8

发布时间:2021-11-15 23:30:44 来源:亿速云 阅读:247 作者:柒染 栏目:云计算

这篇文章给大家介绍java怎么实现kubernates的api访问Fabric8,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

一、前言

java访问kubernates API的方式有很多,用java语言开发的有两种,一个是基于Jersey的,一个是基于Fabric8。因为Kubernates API Server就是RESRFul Web Service,而Jersey是一个方便简化开发RESRFul Web Service的框架所以采用jersey会比较省力,但还是需要开发者自己做很多工作。Fabric8中的kubernates-client-1.3.83.jar,kubernates-model-1.0.12.jar等工具包包对kubernates api做了很好的封装,访问代码比较简单。

二、使用说明

  1. 准备好相关的jar包

  2. java怎么实现kubernates的api访问Fabric8

  3. 创建访问API Server的客户端

    代码参见三

  4. 操作kubernates的各项资源

    常用的资源(资源解释后续会加上):

    Nodes

    Namespaces

    Services

    Replicationcontrollers

    Pods

    Events

    Resourcequotas

    可以通过api对以上资源做增删改查各种操作。

    java怎么实现kubernates的api访问Fabric8

三、具体代码实现

1.创建访问k8s API server的客户端代码示例

Config config = new ConfigBuilder().withMasterUrl("http://10.45.32.153:8080/").build();
KubernetesClient client = new DefaultKubernetesClient(config); 

// http://10.45.32.153:8080/ 是API Server的地址

2.查询k8s资源的代码示例(每种资源的查询方式大同小异)

几乎所有的资源都可以查,现在我们以查询namesapce为例进行讲解。

A 查询所有的namespace列表

List<Namespace> nameSpaceList =client.namespaces().list().getItems();

B 根据条件查询namespace

Namespace space = client.namespaces().withName(tenant.getAccount()).get();

可以根据很多种条件进行过滤

java怎么实现kubernates的api访问Fabric8

3.创建资源示例代码(这是最核心的部分,每种资源的创建方式不同)

A创建租户

Namespace ns = new NamespaceBuilder().withNewMetadata()
     .withName(tenant.getAccount()).endMetadata().build();
   // 属性设置
   ObjectMeta metadata = new ObjectMeta();
   Map<String,String> labels = new HashMap<String, String>();
   labels.put("label1", tenant.getAccount());
   metadata.setLabels(labels);
   metadata.setNamespace(tenant.getAccount());
   metadata.setName(tenant.getAccount());
   ns.setMetadata(metadata);
   // 执行创建操作
   client.namespaces().create(ns);

B创建结果

java怎么实现kubernates的api访问Fabric8

注释:该代码没有给namespace设置quotas

4.修改租户配额示例代码

java怎么实现kubernates的api访问Fabric8

5.删除租户示例代码

client.namespaces().withName(tenant.getAccount()).delete();

关于java怎么实现kubernates的api访问Fabric8就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI