检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
创建API和Controller 根据以上设计的CR,在项目工程中创建对应的CRD类型: $ kubebuilder create api --group osctest --version v1 --kind Hwfka Create Resource [y/n] y Create
Operator代码示例 CRD典型格式 Controller实现 挂载存储 创建存储 父主题: 附录
"k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) // HwfkaSpec defines the desired
schema: openAPIV3Schema: description: HelmRelease is the Schema for the helmreleases API properties: apiVersion:
capabilityRequirements: - apiVersion: osc.io/v1 kind: MonitorConfig defaultPath: vendor/monitor_config.yaml - apiVersion: osc.io/v1
# 基于 openAPIV3Schema 的校验规则 validation: openAPIV3Schema: description: Memcached is the Schema for the Memcacheds API properties:
生成代码和资源描述文件 修改api/v1/memcached_types.go或controller中的markers之后,需要重新生成代码和资源描述文件。 # 生成 api/v1/zz_generated.deepcopy.go make generate # 生成 config/crd/bases
k)服务支持自定义配置服务场景、支持架构等配置,其描述说明定义在clusterserviceversion.yaml中,具体样例如下: apiVersion: operators.coreos.com/v1alpha1 kind: ClusterServiceVersion metadata:
"strconv" appsv1 "k8s.io/api/apps/v1" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime/schema"
yaml文件中增加引用日志能力的配置。 apiVersion: osc.io/v1beta1 kind: CustomServiceDefinition metadata: name: helmrelease-csd spec: CRDRef: apiVersion: apiextensions
一般场景的数字输入,支持设置数值的大小范围。 配置示例: type: number title: Number of replicas description: Number of replicas to deploy 图2 number控件 boolean控件 boolean类型字段输入。 配置示例: type:
上述资源可通过Go语言在Reconcile协调逻辑中实现,具体请参见Kubernetes API Reference。 更多类型的存储可参见云容器引擎CCE:存储管理。 父主题: Operator代码示例
yaml中修改了服务包名、版本等内容,需要同步修改raw内的helm包中Chart.yaml内容。 HelmRelease CRD示例(crd.yaml) apiVersion: apiextensions.k8s.io/v1 # 默认创建v1版本的CRD kind: CustomResourceDefinition
console提供了自动生成表单的能力。 在Kubernetes 1.8中,CRD定义基于OpenAPI v3的验证模式的能力。基于OpenAPI v3能力,可用于自动生成用于创建实例的表单。 控件类型 表单控件 表单控件配置组合示例 父主题: 服务接入
实例,如果可以,则修改versionDefinition后重新上传服务包,否则需要删除不兼容的实例后再升级。 示例:csd.yaml完整示例,以kafka为例。 apiVersion: osc.io/v1beta1 kind: CustomServiceDefinition metadata:
CR(CustomResource)对应用进行统一管理。格式示例请参见CRD典型格式。 OpenAPI校验 在定义CRD时,需同时定义基于OpenAPI的校验规则,其中包含创建CR时的字段及取值范围,以便校验用户创建的CR中字段值的合法性。使用Kubebuilder,可通过在API中定义Marker,自动生成spec
附录 如何从零开始开发Operator OSC扩展说明 Operator代码示例 安装Controller
挂载存储 在Kubernetes中,通过PersistentVolume(PV)方式挂载存储,典型的步骤如下: 创建PV,为集群提供存储服务。 apiVersion: v1 kind: PersistentVolume metadata: name: mypv1 annotations:
yaml文件中增加引用监控能力的配置。 apiVersion: osc.io/v1beta1 kind: CustomServiceDefinition metadata: name: helmrelease-csd spec: CRDRef: apiVersion: apiextensions
"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"