内容简介:添加 Controller Runtime 依赖:①③ 创建 Manager 并启动,Manager 内部维护了 Client、Cache 和 Schema 等;
kubernetes-sigs/controller-runtime 是 kubernetes-sigs/kubebuilder 子项目,构建在 kubernetes/client-go 基础之上,实现 Controller。
准备
添加 Controller Runtime 依赖:
go get sigs.k8s.io/controller-runtime
代码
Controller Manager
import ( "context" "os" appsv1 "k8s.io/api/apps/v1" corev1 "k8s.io/api/core/v1" "sigs.k8s.io/controller-runtime/pkg/builder" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/client/config" "sigs.k8s.io/controller-runtime/pkg/manager" "sigs.k8s.io/controller-runtime/pkg/manager/signals" "sigs.k8s.io/controller-runtime/pkg/reconcile" ) func main() { // ① mgr, err := manager.New(config.GetConfigOrDie(), manager.Options{}) if err != nil { os.Exit(1) } // ② err = builder. ControllerManagedBy(mgr). For(&appsv1.ReplicaSet{}). Owns(&corev1.Pod{}). Complete(&DemoReconcile{}) if err != nil { os.Exit(1) } // ③ if err := mgr.Start(signals.SetupSignalHandler()); err != nil { os.Exit(1) } }
①③ 创建 Manager 并启动,Manager 内部维护了 Client、Cache 和 Schema 等;
② 使用 Builder 模式创建 Controller,并指定 watch 的资源和对应的 Reconcile。
Reconcile
type DemoReconcile struct { client.Client // ① } // ② func (r *DemoReconcile) Reconcile(req reconcile.Request) (reconcile.Result, error) { rs := &appsv1.ReplicaSet{} if err := r.Get(context.TODO(), req.NamespacedName, rs); err != nil { return reconcile.Result{}, err } // TODO 逻辑代码 return reconcile.Result{}, nil } // ③ func (r *DemoReconcile) InjectClient(c client.Client) error { r.Client = c return nil }
①③ 定义 Client 字段,并自动注入;
② Reconcile 方法,内部实现具体的回调逻辑。
参考
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 一文读懂监督学习、无监督学习、半监督学习、强化学习这四种深度学习方式
- 学习:人工智能-机器学习-深度学习概念的区别
- 统计学习,机器学习与深度学习概念的关联与区别
- 混合学习环境下基于学习行为数据的学习预警系统设计与实现
- 学习如何学习
- 深度学习的学习历程
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
JavaScript: The Definitive Guide, 5th Edition
David Flanagan / O'Reilly Media / 2006-08-01 / USD 49.99
This Fifth Edition is completely revised and expanded to cover JavaScript as it is used in today's Web 2.0 applications. This book is both an example-driven programmer's guide and a keep-on-your-desk ......一起来看看 《JavaScript: The Definitive Guide, 5th Edition》 这本书的介绍吧!