java 操作k8s 这里使用的是 fabric8

1:添加maven ,引入依赖

io.fabric8

kubernetes-client

3.1.12

/**

* 生成kubernetes client实体

*

* @return

*/

2:public KubernetesClient getClient() {

List list = clusterService.get();

String clusterIp = "http://" + clusterIp;

Config config = new ConfigBuilder().withMasterUrl(masterURL).build();

return new DefaultKubernetesClient(config);

}

3:然后可以通过getClient()点出来好多东西

也可以查看api信息。获取不同的操作

4:根据fabric8提供的这些操就可以创建删除对应的组件了

来个例子吧 创建Deployment

// Deployment

public Deployment createDeployment(String namespace, Deployment deployment) {

return getClient().extensions().deployments().inNamespace(namespace).create(deployment);

}

关键就是组装Deployment 数据

巧妙的是fabric8 提供了构建方法如下

createDeployment(namespace, new DeploymentBuilder().withKind("Deployment")

.withApiVersion("extensions/v1beta1")

.withNewMetadata()

.withName(ku8Deployment.getName())

.withNamespace(namespace)

.withLabels(label)

.endMetadata()

.withNewSpec()

.withReplicas(replica)

.withSelector(selector)

.withNewTemplate()

.withNewMetadata()

.withLabels(podSelector)

.endMetadata()

.withNewSpec()

.withHostNetwork(ku8Deployment.isHostNetwork())

.withVolumes(f8Volumes)

.withContainers(f8Containers)

.endSpec()

.endTemplate()

.endSpec().build());

是不是一头雾水呀,这数据怎么来搞呀,谁的后面跟谁呀。别急 听我慢慢说

其实格式很简单 登录k8s 集群,查看一下 deployment

[root@localhost ~]# kg deployment

NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE

api-getway 1 1 1 1 1d

kube-dns 1 1 1 1 1d

traefik-ingress-controller 1 1 1 1 1d

然后干什么呢,随便找一个deployment 这里只是个我集群上的deployment例子 执行如下

[root@localhost ~]# kg deploymentapi-getway -o yaml

apiVersion: extensions/v1beta1

kind: Deployment

metadata:

annotations:

deployment.kubernetes.io/revision: "1"

creationTimestamp: 2018-05-28T15:29:02Z

generation: 1

labels:

k8s-app: api-getway

task: monitoring

name: api-getway

namespace: kube-system

resourceVersion: "94687"

selfLink: /apis/extensions/v1beta1/namespaces/kube-system/deployments/api-getway

uid: d990741b-628b-11e8-86b9-000c2938aca0

spec:

replicas: 1

selector:

matchLabels:

k8s-app: api-getway

task: monitoring

strategy:

rollingUpdate:

maxSurge: 1

maxUnavailable: 1

type: RollingUpdate

template:

metadata:

creationTimestamp: null

labels:

k8s-app: api-getway

task: monitoring

spec:

containers:

- image: muhaifeng/api-getway

imagePullPolicy: Always

name: api-getway

resources: {}

terminationMessagePath: /dev/termination-log

terminationMessagePolicy: File

dnsPolicy: ClusterFirst

restartPolicy: Always

schedulerName: default-scheduler

securityContext: {}

terminationGracePeriodSeconds: 30

status:

availableReplicas: 1

conditions:

- lastTransitionTime: 2018-05-28T15:29:02Z

lastUpdateTime: 2018-05-28T15:29:02Z

message: Deployment has minimum availability.

reason: MinimumReplicasAvailable

status: "True"

type: Available

observedGeneration: 1

readyReplicas: 1

replicas: 1

updatedReplicas: 1

好了格式出来了。不要怂就是干,

new DeploymentBuilder().withKind("Deployment")

.withApiVersion("extensions/v1beta1")

.withNewMetadata()

.withName(ku8Deployment.getName())

.withNamespace(namespace)

.withLabels(label)

.endMetadata()

.withNewSpec()

.withReplicas(replica)

.withSelector(selector)

.withNewTemplate()

.withNewMetadata()

.withLabels(podSelector)

.endMetadata()

.withNewSpec()

.withHostNetwork(ku8Deployment.isHostNetwork())

.withVolumes(f8Volumes)

.withContainers(f8Containers)

.endSpec()

.endTemplate()

.endSpec().build());

这个格式就是上面集群中那个格式,照着上面的那个集群中查到的格式往下拼。 就可以了。

拼完之后。跑一下程序,在集群中查看一下就出来了。

同样的,根据fabric8 提供的接口,基本都能实现 操作k8s集群。

Java连接K8s_6-java操作k8s相关推荐

  1. Java连接Redis及操作(二)

    前言 上一节我们学习了java连接Redis,并且连接Redis成功,今天博主带领大家进行简单的操作Redis.要想对Redis进行Java的操作,必须先了解Redis API(点击这里),可看到AP ...

  2. Java连接Redis及操作(一)

    Redis简介 Redis是一个开源的使用ANSI c语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.它是一种非关系性的数据库.它是以key-val ...

  3. java连接couchdb,Java CouchDB连接详细实现步骤

    我们可以使用Java编程语言连接到CouchDB.为了进行连接, 我们使用Ektorp库, 该库在CouchDB的顶部提供了一个持久层. 在这里, 我们将说明一个示例, 其中我们正在连接, 创建数据库 ...

  4. java 连接 sql2005,java与sql server2005 连接有关问题

    当前位置:我的异常网» Eclipse » java与sql server2005 连接有关问题 java与sql server2005 连接有关问题 www.myexceptions.net  网友 ...

  5. java 连接 2008,java连接SqlServer2008R2连接异常

    java连接SqlServer2008R2连接异常 java连接SqlServer2008R2连接异常 新装的sqlserver2008R2数据库,连接数据库,控制台报了下面的错误...... The ...

  6. java 连接SSH工具操作服务器 (构建者模式+Util类) 分享

    需求 因为需要以java 远程操作服务器, 比如进行文件下载/上传操作, 或者执行一些服务器常用命令ls cat grep 等等. 调研发现比较好用的SSH 工具有: ganymed-ssh2 jsc ...

  7. 使用java连接JanusGraph进行操作,hbase报错信息为:Caused by: org.apache.hbase.thirdparty.io.netty.channel.AbstractCh

    背景是我用windows上的idea去连接已经配好的虚拟机操作JanusGraph 报错部分截图如下: 报错很奇怪显示的是127.0.0.1即本地的地址我明明连的是虚拟机的环境 部分代码截图如下: 然 ...

  8. JAVA 连接MYSQL数据库操作

    String strCon = "jdbc:mysql://122.114.147.148:3306/ddd"; //连接字符串String strUser = "数据库 ...

  9. java连接mysql(java连接mysql的jar包)

    mysql与apache怎么连接呀??? 设置 my.ini 就 OK 了 在windows文件夹下. java与mysql做的毕业设计 你说的我不是很明白哦.不过我想你的意思是不是说:"通 ...

  10. java 连接hive2,java jdbc连接hiveserver2

    1 首先修改 hive-site.xml配置端口(默认就是10000) hive.server2.thrift.port 10000 hive.server2.thrift.bind.host loc ...

最新文章

  1. 2022年全球及中国面粉加工机械行业竞争现状与发展前景规模分析报告
  2. 开始学习Solaris
  3. 论文公式编号右对齐_论文不会写?最详细的论文排版技巧
  4. String方法(一)
  5. [转]git merge 与 git rebase的区别
  6. MangataのACM模板
  7. Python中如何获取类属性的列表
  8. 检索计算机中word文件的词,电脑word搜索工具
  9. linux下安装杰奇2.4,实现关关采集器远程采集详细教程
  10. 腾讯确认QQ大规模盗号
  11. Python面试简历技能点写法总结
  12. 大话操作系统(11)进程间通信
  13. c++实现高速缓存Cache
  14. 上线 之 App Store审核指南
  15. iOS小技能:SKU视图搭建
  16. Navicate管理工具的使用
  17. 回忆过去,痛苦的相思忘不了
  18. android手机密码忘了哪个电话打开,安卓手机锁屏密码忘了怎么办 解决锁屏密码六种方法介绍...
  19. 如何把图片上的文字转换成word?
  20. 未来智能手机摄像技术发展趋势:硬件

热门文章

  1. ipad mini android平板,iPad mini Retina系统是什么?iPad mini2能升级安卓4.3吗?
  2. python 享元模式_Python与设计模式之享元模式
  3. 【Hive】大数据的排序和拼接
  4. 哪家软件公司的表单设计器好?
  5. 央视看上绿色P2P网站
  6. hbuilder与php链接,教程|夜神模拟器与HBuilder连接的方法
  7. tabBar的简单使用,以及扩展
  8. 一个狱警当上Oracle中国总经理
  9. 2020年如何在VC++的MFC中使用CDao*库
  10. mac鼠标和触控板方向相同