2024年最新利用K8S技术栈打造个人私有云(连载之:K8S资源控制),大厂面试必备技能

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

下面就基于该Clinet讲讲代码级别的实现


K8S资源控制代码实现举例

下面结合代码来阐述一下Fabric8常用的k8s资源控制操作:

  • 创建K8S客户端
String namespace = "default";    // namespace名
String master = "http://XXXX/";  // 配置为你的k8s集群的主节点地址
Config config = new ConfigBuilder().withMasterUrl(master).build();
KubernetesClient client = new DefaultKubernetesClient(config);

接下来对K8S资源的控制、查询等操作基本都靠该client来完成!

  • 创建Pod

我们从一个pod.yaml文件来创建Pod资源:

  List<HasMetadata> resources = client.load(new FileInputStream(fileName)).get(); // fileName为一个外部的pod.yaml文件
  if (resources.isEmpty()) {
    System.err.println("No resources loaded from file: " +fileName);
    return;
  }
  HasMetadata resource = resources.get(0);
  if (resource instanceof Pod){
    Pod pod = (Pod) resource;
    System.out.println("Creating pod in namespace " + namespace);
    NonNamespaceOperation<Pod, PodList, DoneablePod, PodResource<Pod, DoneablePod>> pods = client.pods().inNamespace(namespace);
    Pod result = pods.create(pod); // 此处创建pod资源!!!
    System.out.println("Created pod " + result.getMetadata().getName());
  } else {
    System.err.println("Loaded resource is not a Pod! " + resource);
  }
  • 删除Pod

删除很简单,只要知道Pod所在的namespace和name,一行代码即可搞定

client.pods().inNamespace("namespace名字").withName("pod名").delete();
  • 查询Pod

查询Pod的log日志并于控制台打印:

client.pods().inNamespace("namespace名字").withName("pod名").tailingLines(10).watchLog(System.out))

欲查询Pod的一些其他信息,可以参考创建Pod步骤中的代码:

Pod result = pods.create(pod);  // 此处创建pod资源!!!
System.out.println("Created pod " + result.getMetadata().getName()); // 类似于此处,除了获取Pod的名字外还可以获取很多类似信息
  • 修改Pod配置
Pod updatedPod = client.pods().inNamespace("namespace名字").withName("pod名").edit()
          .editMetadata()
          .addToLabels("server2", "nginx2")
          .and().done();
log("Replaced testPod:", updatedPod);

上文从创建一个K8S客户端开始比较完整地介绍了一个Pod资源的CRUD操作,限于篇幅原因,其他资源如RC、Service、Deployment等等的增删改查操作都类似,只是名字不同而已,其接口稍微类比一下Pod即可写出对应的资源控制代码,此处不再赘述了,举一反三很重要。


后记

作者更多的SpringBt实践文章在此:


如果有兴趣,也可以抽点时间看看作者一些关于容器化、微服务化方面的文章:


长按扫描 下面的 小心心 来订阅 CodeSheep,获取更多 务实、能看懂、可复现的 原创文 ↓↓↓

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!**

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值