python-operator 介绍以及使用文档

python-operator 介绍以及使用文档

operator简介:

Operator用于扩展Kubernetes API,特定的应用进程控制器,它用来创建、配置和管理复杂的有状态应用,如数据库、缓存和监控系统。Operator基于 Kubernetes 的资源和控制器概念之上构建,但同时又包含了应用进程特定的领域知识。创建Operator 的关键是CRD(自定义资源)的设计。Kubernetes 1.7 版本以来就引入了自定义控制器的概念,该功能可以让开发人员扩展添加新功能,更新现有的功能,并且可以自动执行一些管理任务,这些自定义的控制器就像 Kubernetes 原生的组件一样。

开发operator的两个必要条件

1.自研控制器(也就是这个项目中的python-operator程序,使用kopf模块开发)

2.crd 以及rbac权限文件(由运维人员提供李雷or张安宁,开发operator控制器人员不需要管理)

kopf开发过程以及模块使用文档

1.安装python3环境,安装pip3工具,搭建本地python环境

参考python官网https://www.python.org/
建议使用python 3.7.x版本

2.安装kopf kubernetes 等模块

sudo pip3 install kopf
sudo pip3 install kubernetes

3.kopf模块中装饰器的使用

1.创建编排的装饰器

@kopf.on.create("demo.crd.autohome.com","v1","TestDemo")
def create_fn(body,spec,**kwargs):
@kopf.on.create 装饰器为固定写法,demo.crd.autohome.com 为扩展api的路径,v1是版本号,TestDemo为自定义的CRD名字
def create_fn 为这个装饰器下的方法,固定名字body spec **kwargs 为可以使用的参数,除此之外还有name namespace 等,从body kwargs 可以获取整个crd yaml参数,spec获取spec一下内容

2.删除编排的装饰器

@kopf.on.delete("demo.crd.autohome.com","v1","TestDemo")
def delete(body, **kwargs):
@kopf.on.delete 删除装饰器,以及装饰器下面的固定方法名def delete(body, **kwargs):

3.监听装饰器

@kopf.timer("demo.crd.autohome.com", "v1", "TestDemo", interval=5, initial_delay=10 )
def monitor_key(body,spec, **kwargs):
@kopf.timer 为监听装饰器固定写法,固定方法def monitor_key,interval 为间隔多长时间执行一次监听方法,initial_delay为服务启动后延迟多少,开始执行监听方法

4.更新编排装饰器

@kopf.on.update("demo.crd.autohome.com","v1","TestDemo")
def update_fn(body, **kwargs):
@kopf.on.update 为监听装饰器固定写法,固定方法def update_fn

5.更多的kopf使用方式可以参看官网https://kopf.readthedocs.io/en/stable/

4.kubernetes模块介绍以及使用

kubernetes模块是谷歌官方提供的python版本的sdk,方便使用python来调用k8s api接口,集成了所有k8s编排的创建,更新,删除工作,有一定的学习成本,同时对k8s需要有一定的了解,以下是部分代码的说明

api_core = kubernetes.client.CoreV1Api() 获取CoreV1Api对象,可以操作CoreV1Api编排下(例如service)的各种方法

api_apps = kubernetes.client.AppsV1Api() 获取CoreV1Api对象,可以操作CoreV1Api编排下(例如deployment statefulset)的各种方法

kubernetes模块下的各种对象以及方法参照谷歌官方https://github.com/kubernetes-client/python

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容