k8s二次开发 operator编写(一)

本文探讨了kubernetes的扩展性,重点关注Operator的编写,包括k8s控制层、client-go库的使用以及控制器的工作逻辑。介绍了如何利用client-go与api server交互,通过informer和listers获取资源信息,并讨论了controller如何实现资源状态的同步。

代码所在位置

https://github.com/mafa1993/kubernetes-learn/tree/main/operator/client-go

k8s可以扩展的地方

  1. kubectl

  2. api server , 阻止请求、编辑请求、删除请求等

  3. 利用label和annotate来进行k8s资源的修改

  4. crd,自定义资源

  5. scheduler

  6. kubelet,CSI CNI CRI

  7. controller manager  控制器集合

  8. custom controller

  9. client go

k8s controler

  1. 一般推荐一个controller追踪至少一种k8s资源

  2. 将status达到spec定义的状态

  3. 不同控制器可以相互配合实现复杂任务

  4. 使用client go和api server进行交互

client go

  1. 源码地址 https://github.com/kubernetes/client-go

  2. client-go目录讲解

    • kubernetes 保存了所有k8s api访问的client

    • informer

    • listers 读取缓存中k8s的资源信息

    • discovery  用于发现api server支持的api

      <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值