java 调用 k8s api_java实现kubernates的api访问—Fabric8

此文仅供了解kubernates的开发人员写api接口时参考。

一、前言

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做了很好的封装,访问代码比较简单。

二、使用说明

准备好相关的jar包

a2ec62ebec75e0c8d5a3c23408b731b7.png

创建访问API Server的客户端

代码参见三

操作kubernates的各项资源

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

Nodes

Namespaces

Services

Replicationcontrollers

Pods

Events

Resourcequotas

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

1bbd747c040bae211d89d9eb85d10b53.png

三、具体代码实现

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

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

KubernetesClient client = new DefaultKubernetesClient(config);

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

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

A 查询所有的namespace列表

List nameSpaceList =client.namespaces().list().getItems();

B 根据条件查询namespace

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

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

6e37f11d1c4b6f3fdcfa8ef994815034.png

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

A创建租户

Namespace ns = new NamespaceBuilder().withNewMetadata()

.withName(tenant.getAccount()).endMetadata().build();

// 属性设置

ObjectMeta metadata = new ObjectMeta();

Map labels = new HashMap();

labels.put("label1", tenant.getAccount());

metadata.setLabels(labels);

metadata.setNamespace(tenant.getAccount());

metadata.setName(tenant.getAccount());

ns.setMetadata(metadata);

// 执行创建操作

client.namespaces().create(ns);

B创建结果

d1f820f193c0808f3101ecb2bcd058ac.png

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

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

82893d5e3c1b770bf002be9f4d0b23a7.png

5.删除租户示例代码

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

后续会对namespace,service,rc,pod等的增删改查代码做出详细的描述,敬请关注!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值