云原生服务中心 OSC-实现Controller:Controller实现背景

时间:2023-11-01 16:15:34

Controller实现背景

在创建Kafka实例时,Kafka-Operator需要创建的Kubernetes资源如下:

  • 1个StatefulSet,包含3个Pod分别启动ZooKeeper;
  • 1个Service,用来暴露ZooKeeper访问地址;
  • 1个StatefulSet,包含3个Pod分别启动Hwfka broker;
  • 1个Service,用来暴露Hwfka访问地址;
  • 1个Deployment,包含1个Pod启动KafkaManager;
  • 1个Service,用来暴露KafkaManager访问地址。

在创建API的时候,SDK已自动创建controllers/hwfka_controller.go,为SetupWithManager添加对Service、StatefulSet、Deployment的监听和管理。

import ("context""fmt""github.com/go-logr/logr"appsv1 "k8s.io/api/apps/v1"corev1 "k8s.io/api/core/v1""k8s.io/apimachinery/pkg/api/errors""k8s.io/apimachinery/pkg/runtime""k8s.io/apimachinery/pkg/types"ctrl "sigs.k8s.io/controller-runtime""sigs.k8s.io/controller-runtime/pkg/client"osctestv1 "hwfka-operator/api/v1")func (r *HwfkaReconciler) SetupWithManager(mgr ctrl.Manager) error {return ctrl.NewControllerManagedBy(mgr).For(&osctestv1.Hwfka{}).Owns(&corev1.Service{}).Owns(&appsv1.StatefulSet{}).Owns(&appsv1.Deployment{}).Complete(r)}
support.huaweicloud.com/devg-osc/osc_ss_0027.html