`
m635674608
  • 浏览: 5030904 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

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

二、使用说明

  1. 准备好相关的jar包

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

    代码参见三

  3. 操作kubernates的各项资源

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

    Nodes

    Namespaces

    Services

    Replicationcontrollers

    Pods

    Events

    Resourcequotas

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

三、具体代码实现

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();

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

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

A创建租户

Namespace ns = new NamespaceBuilder().withNewMetadata()
     .withName(tenant.getAccount()).endMetadata().build();
   // 属性设置
   ObjectMeta metadata = https://my.oschina.net/u/3233222/blog/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创建结果

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

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

5.删除租户示例代码

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

 

 

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

 

http://www.07net01.com/2017/01/1789937.html

http://hao.jobbole.com/fabric8/

分享到:
评论

相关推荐

    基于fabric8io的kubernetes Java 依赖包

    基于fabric8io的kubernetes Java 依赖包,jar包列表: fabric-utils-2.0.47.jar httpclient-4.5.3.jar kubernetes-client-3.0.3.jar kubernetes-model-2.0.8.jar log4j-1.2.15.jar log4j-over-slf4j-1.7.25.jar slf4...

    linux-基于Fabric8模拟Kubernetes的Deployment实现一个CRD

    在这个特定的案例中,"linux-基于Fabric8模拟Kubernetes的Deployment实现一个CRD"意味着我们要使用Fabric8来模仿Kubernetes的Deployment行为,并创建一个自定义资源类型。 CRD是Kubernetes的一个强大特性,它允许...

    使用 Java 操作 Kubernetes API

    kubernetes-client/java和fabric8io/kubernetes-client对比 kubernetes-client/java的使用 REST API kubectl api-versions REST API 实例:  API Object 整体划分图 (红星符号代表常用资源) kubernetes-client/java...

    Kubernetes-client-java客户端,它可以支持所有基于 Kubernetes 的系统,并最大限度地减少额外的开发

    Kubernetes-client-java Java 客户端。灵活性。它可以支持所有基于 Kubernetes 的系统,并最大限度地减少额外的开发,例如 Openshift、istio 等。可用性。开发人员只需要学习从 Kubernetes 文档中编写 json/yaml...

    istio-java-api:受Fabric8的kubernetes模型启发而生成Istio描述符的Java API

    istio-java-api 一个为... 您还可以查看项目,该项目演示了使用Fabric8 OpenShift适配器和此API将Istio工件发送到正在运行的OpenShift集群的端到端方案配置在哪个Istio上进行设置。 从此API的1.7.7开始,Fabric8 Kubern

    k8s-kotlin-dsl,用于kubernetes配置的kotlin dsl.zip

    - **Fabric8库**:一个强大的Java客户端库,用于与Kubernetes和OpenShift集群交互。它提供了丰富的API,简化了资源操作,如创建、更新、删除和查询。 - **OpenShift集成**:除了Kubernetes API,Fabric8还支持...

    kube-api:用于Clojure的kubernetes API客户端

    就是说,fabric8的实现是实现棘手的IO时我的主要参考。 模组 该模块捆绑了所有模块(如下所述),以易于使用。 这实现了基本的REST和websocket客户端代码以与Kubernetes API进行通信。 它使用远程K

    fabric8-cxf-2.2.41.zip

    Fabric8是一款基于Kubernetes的开源平台,它提供了一套完整的工具集,用于简化和加速Java和Kubernetes的应用开发。通过提供服务发现、配置管理、监控和日志等能力,Fabric8使开发者能够轻松地构建、部署和管理微服务...

    popular-movie-store:一个非常基本的购物车应用程序,用于使用Spring Boot和Infinispan显示Kubernetes上的状态Canary部署

    infinispan-cloud使用KUBE_PING来查询Kube API中需要添加权限的节点,吊舱和标签,因此与部署相关联的服务帐户需要添加所需角色,以允许infinispan查询kubernetes API。 此应用程序使用一个名为Popular-Movie-store...

    从DevOps工程师的角度学习Python.zip

    Jenkins插件通常由Java编写,但Python的jenkins库提供了与Jenkins API交互的能力,方便自定义构建步骤。GitLab CI/CD也可通过Python脚本实现自动化流程。 7. **Python与监控和日志** 使用Python可以创建自定义...

    Windows Azure Platform

    - **Azure Kubernetes Service (AKS)**:托管的Kubernetes服务,简化了Docker容器的部署和管理。 - **Azure Container Instances (ACI)**:快速启动独立的容器实例。 9. **大数据与分析:** - **Azure Data Lake...

    palo.bar:我的鸡尾酒笔记!

    这可能通过集成像Crashlytics或Fabric等服务实现。 总结来说,"palo.bar:我的鸡尾酒笔记!"这款应用的开发涵盖了前端与后端技术、数据库管理、移动平台开发、用户体验设计、测试、部署等多个IT领域,每个环节都需要...

    Serwery

    7. **容器化**:Python应用可以轻松地被Docker打包,部署在Kubernetes或Docker Swarm等容器编排系统上,实现灵活的扩展和部署。 8. **日志和监控**:Python可以整合如Loguru、Sentry等工具进行日志记录和错误跟踪,...

    39:运行Web服务器的39种方法

    8. **SignalR**:实现实时双向通信,如聊天应用或实时更新的数据展示。 9. **Self-hosting**:通过编程方式启动和管理服务器,例如ASP.NET Core的`UseUrls`方法。 10. **IIS Express**:轻量级版本的IIS,用于开发...

    为云开发...在云中

    8. **Azure Kubernetes Service (AKS)**: 管理的Kubernetes服务,简化了容器编排,支持Docker和Kubernetes应用。 9. **Azure SQL Database**: 在云中的托管关系数据库服务,兼容SQL Server。 10. **Cosmos DB**: ...

    azure-compute

    它支持多种编程语言(如 .NET、Java、Python 和 Node.js),并自动处理缩放、高可用性和安全更新。 六、Azure Service Fabric Service Fabric 是一个分布式系统平台,用于构建可伸缩、可靠且易于管理的服务。它...

    elasticsearch:该存储库已存档

    - **azure** 和 **AzureJava**:利用Azure的Java SDK或API与Elasticsearch交互,实现自动化管理和运维。 总之,Elasticsearch在Azure的部署涉及多个层面,包括选择适当的部署模型、优化性能、监控运行状况以及遵循...

Global site tag (gtag.js) - Google Analytics