检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
挂载存储 在Kubernetes中,通过PersistentVolume(PV)方式挂载存储,典型的步骤如下: 创建PV,为集群提供存储服务。 apiVersion: v1 kind: PersistentVolume metadata: name: mypv1 annotations:
段,因此引入了x-descriptors描述符来定义自定义的控件。 x-descriptors描述符主要用于specDescriptors和statusDescriptors定义自定义控件。 specDescriptors: password(密码输入框):支持密码类型字段输入。
创建服务包模板 通过OSC提供的oscctl工具创建服务包模板,oscctl工具使用详情请参见oscctl工具使用。 使用oscctl工具创建服务包模板。 # 使用oscctl工具,创建服务包 $ oscctl create -o ./hwfka-operator-package
生成服务包 最终的服务目录结构如下: $ tree hwfka-operator-package hwfka-operator-package ├── lifecycle.yaml ├── manifests │ ├─ hwfka_crd.yaml │ └─ hwfka_csd
CRD典型格式 以v1版本为例: apiVersion: apiextensions.k8s.io/v1 # 创建 CRD kind: CustomResourceDefinition metadata: # 名称必须采用复数 <plural-name>.<group>.<domain>
如何从零开始开发Operator 开发Operator 制作镜像 制作服务包 父主题: 附录
yaml,该文件内容包含Chart.yaml,具体规范参见元数据Metadata。 新增资源目录manifests,根据Chart.yaml的name创建对应的CRD和CSD。 新增自定义资源文件helmrelease_crd.yaml,该文件以下划线命名,由工具生成,无需改动。参见HelmRelease CRD示例。
Controller实现 修改controllers/hwfka_controller.go文件为如下内容: func (r *HwfkaReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result
资源集合Manifests 资源集合 自定义资源CRD 自定义服务CSD vendor目录 父主题: 服务包规范
vendor目录 公共能力目录:{OSC-Package}/manifests/vendor,用于存放平台提供的能力配置文件,用于manifests目录中的CRD引用。 公共能力目录结构: {OSC-Package}/ ├─ metadata.yaml ├─ manifests/
制作镜像 制作实例镜像 制作Operator镜像 父主题: 如何从零开始开发Operator
资源集合 {OSC-Package}/manifests,用于存放自定义资源文件以及公共能力配置,不同资源用目录进行划分。 资源集合结构: {OSC-Package}/ ├─ metadata.yaml ├─ manifests/ #【必选】资源集合
制作服务包 创建服务包模板 修改服务包内容 生成服务包 父主题: 如何从零开始开发Operator
服务包扩展目录 运维能力是在OSC服务规范基础上产生的能力,因此如果需要对接运维能力,需要先确保服务包的格式转换为OSC自身的规范才行,默认的开源规范当前只支持安装部署等基本功能。 运维能力扩展 为了保证适用OSC的服务规范,将使用oscctl工具作为创建、转换OSC服务包,并且统一服务包格式。使用oscctl
表单控件 基础控件 自定义控件 父主题: 配置表单控件
definitions(CRDs)构建Kubernetes APIs的框架,有如下两种安装方法 。 安装方法一:根据kubebuilder官网提供的go语言版本和节点系统架构下载。 # go env GOOS -- 获取操作系统类型,例如:linux等 # go env GOARCH -- 获取系统架构,例如:arm或amd64等
对接实例升级能力 修改csd.yaml,声明实例版本定义信息。新增配置如下: # 支持升级的镜像版本 versionDefinition: mode: url path: spec.image tags: - 0.0.1 - 0.0.2
开发Operator 开发原理 在本章节以Kafka为例,构建Kafka-Operator进行Kafka实例的管理,同时Kafka实例将以三节点集群的形式对外提供服务。对于Kafka实例/集群而言,需要依托于zookeeper进行构建,zookeeper用作Kafka集群的元数据
基础控件 OSC console依据crd.yaml文件可以自动生成Operator的创建表单。crd.yaml文件中的properties(openAPIV3Schema.properties.spec.properties)对象会自动映射到对应的UI组件。 目前提供的基础类型
进行授权,即预先创建对应的role和rolebinding。 在Reconcile()上添加markers,增加Operator对于Service、StatefulSet、Deployment、Pod的管理权限,SDK即可自动生成对应的role和rolebinding等资源描述文件。