k8s operator redis-operator实例

1.创建

operator-sdk new redis-operator-test

2.添加api

operator-sdk add api --api-version=app.example.com/v1alpha1 --kind=RedisService

3.添加controller

operator-sdk add controller --api-version=app.example.com/v1alpha1 --kind=RedisService

4.调度器生成代码

operator-sdk generate k8s

5.添加api部分自定义资源
k8s operator redis-operator实例_第1张图片

6.自定义资源(deployment和service)
k8s operator redis-operator实例_第2张图片
k8s operator redis-operator实例_第3张图片

7.逻辑代码部分

7.1 检查自定义资源是否存在,不存在删除下面资源,保证资源可控

7.2 创建资源

7.3 检查lebal变化更新资源

k8s operator redis-operator实例_第4张图片

8.封装自定义资源的接口

封装cr的增删改查接口,方便paas集成,通过http操作资源

k8s operator redis-operator实例_第5张图片

链接:

http://gitlab.shein.com:8088/caihuayang/redis-operator-test.git

https://blog.gmem.cc/extend-kubernetes-with-custom-resources

https://github.com/kubernetes/client-go/blob/master/kubernetes/typed/core/v1/pod.go

https://github.com/martin-helmich/kubernetes-crd-example/blob/master/main.go

你可能感兴趣的:(k8s,go,paas)