检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
Operator服务接入OSC平台 前置条件 阅读本章节前,用户需要拥有一个符合Operator规范的服务包,Operator服务规范可以参考Operator规范,下面以Operator开源服务datadog-operator为例进行详细说明。 接入流程 用户参考附录oscctl工具使用中的链接下载
Helm服务接入OSC平台 前置条件 阅读本章节前,用户需要拥有一个符合Helm规范的服务包,Helm服务规范可以参考Helm规范,下面以helm开源服务grafana为例进行详细说明。 接入流程 用户参考附录oscctl工具使用中的链接下载oscctl工具oscctl-22.8.18
开发Operator 开发原理 在本章节以Kafka为例,构建Kafka-Operator进行Kafka实例的管理,同时Kafka实例将以三节点集群的形式对外提供服务。对于Kafka实例/集群而言,需要依托于zookeeper进行构建,zookeeper用作Kafka集群的元数据管理
安装Kubebuilder 环境准备 已安装go v1.16+。 已安装make。 已安装docker 17.03+。 已安装Kubernetes v1.15.0+ 。 已安装kustomize,安装方法请参见安装 kustomize。 已安装controller-gen,安装方法请参见安装
构建Operator CRD介绍 创建Operator项目 创建API和Controller 父主题: 开发Operator
Operator规范 Operator包含三类核心文件: 软件包清单:package.yaml 集群服务版本:csv.yaml 自定义资源:crd.yaml # Opeartor结构 {Operator-Package} ├─ xxx.package.yaml
实现Operator 定义API 实现Controller 生成代码和资源描述文件 父主题: 开发Operator
安装Controller 安装 kustomize 基于模板生成YAML文件,下载kustomize二进制压缩包:https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize/v3.8.1/kustomize_v3.8.1
Controller实现 修改controllers/hwfka_controller.go文件为如下内容: func (r *HwfkaReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result
实现Controller Controller实现背景 在创建Kafka实例时,Kafka-Operator需要创建的Kubernetes资源如下: 1个StatefulSet,包含3个Pod分别启动ZooKeeper; 1个Service,用来暴露ZooKeeper访问地址; 1
创建Operator项目 背景 Operator是Kubernetes的扩展软件,通过定制资源管理应用和其他组件,实现一定自动运维能力。可以在不改动Kubernetes源码的情况下,通过一个或多个Operator来扩展集群能力,遵照自身业务需求、场景等灵活开发,节省运维成本。流程包括安装
Operator代码示例 CRD典型格式 Controller实现 挂载存储 创建存储 父主题: 附录
制作Operator镜像 修改hwfka-operator/Dockerfile内容如下: FROM centos:latest COPY bin/manager / RUN chmod ug+x /manager WORKDIR / 构建容器镜像命令如下: $ make && make
创建API和Controller 根据以上设计的CR,在项目工程中创建对应的CRD类型: $ kubebuilder create api --group osctest --version v1 --kind Hwfka Create Resource [y/n] y Create
specDescriptors specDescriptors用于描述自定义资源中规范字段的属性。每个字段应包含以下内容: displayName -字段的用户友好名称。 description -字段表示内容的简单描述信息。 path -对象中字段以点分隔的路径。 restriction
CRD介绍 CRD(CustomResourceDefinition)是一种自定义的Kubernetes资源,在定义CRD后,可通过在集群内创建对应 CR(CustomResource)对应用进行统一管理。格式示例请参见CRD典型格式。 OpenAPI校验 在定义CRD时,需同时定义基于
定义API 在设计的CR spec中,包含size、image、storage属性,因此需要修改api/v1/hwfka_types.go中HwfkaSpec和HwfkaStatus部分,为应用定义参数和状态属性。 package v1 import ( corev1 "k8s.io
服务包目录结构约束 OSC作为一个服务生命周期管理平台,有自定义的服务模型,服务需满足目录格式要求才能被OSC解析,发布到OSC上。 {ServiceName}-{Version}.zip #【必选】服务包 └─{ServiceName}/
如何从零开始开发Operator 开发Operator 制作镜像 制作服务包 父主题: 附录
生成代码和资源描述文件 修改api/v1/memcached_types.go或controller中的markers之后,需要重新生成代码和资源描述文件。 # 生成 api/v1/zz_generated.deepcopy.go make generate # 生成 config