检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
图1 服务部署流程 操作步骤 查找服务。 登录OSC控制台,可以使用服务目录页面顶部的搜索框,按照服务名称查询所需的服务。 如果不确定服务名,在服务目录页面单击“更多服务”,按照服务类型、应用场景等条件来筛选。OSC提供以下筛选条件,帮助用户快速获取所需服务。 表1 筛选条件
修改服务包内容 修改lifecycle.yaml文件。该文件包括OSC服务包的生命周期的相关信息,例如:安装方式、安装时需要的集群/命名空间级别权限、日志目录等。 install: clusterPermissions: # 集群级别权限,请按照Kubernetes RABC相关规范填写
服务能力介绍 简介 云原生服务中心(Operator Service Center,OSC)能够提供大量开箱即用的云原生服务,支持服务的开发、发布、订阅、部署、升级、更新等,其面向对象包括服务开发者、服务使用者和服务提供商。本文旨在帮助开发者如何接入OSC平台并使用OSC能力。 优势
基础控件 OSC console依据crd.yaml文件可以自动生成Operator的创建表单。crd.yaml文件中的properties(openAPIV3Schema.properties.spec.properties)对象会自动映射到对应的UI组件。 目前提供的基础类型
服务包镜像名称约束 镜像目录存放部署目录中需要使用到的镜像文件,镜像文件以tar格式存储。镜像文件命名规范只允许包含大小写字母、数字、下划线、中划线及点,且不能以下划线、中划线及点结尾。 images目录下存放服务运行所需的容器镜像,根据服务实际情况确定支持单CPU架构还是多CPU架构:
如何确保容器镜像仓库允许创建至少一个组织? 使用场景 用户在上传私有服务时,云原生服务中心将会在容器镜像仓库新建一个独立的组织用于存储上传的数据包。因此用户使用此仓库时需要确保容器镜像仓库允许创建至少一个组织,以避免上传服务包失败。 操作步骤 登录容器镜像服务SWR控制台,在左侧导航栏单击“组织管理”。
服务包规范 本规范主要面向对象为初次开发的服务以及想要使用OSC平台提供的附加能力进行规范转换的服务。 如果开发者已有或仅想使用Helm/Operator-Framework规范的服务,可以直接参考章节开源服务包规范。 OSC服务包介绍 元数据Metadata 资源集合Manifests
即可。 图1 服务部署流程 操作步骤 登录OSC控制台,在左侧导航栏选择"我的服务",在私有服务页面单击“上传服务”。 选择所需要的服务包仓库存储类型。 选择"容器镜像仓库",用户可直接上传服务包。上传到"容器镜像仓库"的服务包,可登录上海一Region容器镜像服务 SWR进行查
specDescriptors specDescriptors用于描述自定义资源中规范字段的属性。每个字段应包含以下内容: displayName -字段的用户友好名称。 description -字段表示内容的简单描述信息。 path -对象中字段以点分隔的路径。 restriction(可选):指定控件使用场景。
配置名 string 否 监控配置默认名称 须知: 目前对于monitor_config.yaml文件,一个服务包内有且仅有一个,目前该名字没有实际业务意义。在服务包下发时会根据服务包名称等,由OSC自动生成一个在Kubernetes集群该Namespace下面唯一的名字。 labelSelector
服务包没有限定数量。用户需要先创建企业仓库实例,重新关联仓库实例后,即可正常使用上传功能。 操作步骤 登录云原生服务中心控制台。 在左侧导航栏选择“我的服务”。 选择“私有服务”页签,单击“上传服务”,显示两种类型的仓库,单击"容器镜像仓库(企业版)"。 在未配置后端仓库实例的存
Operator代码示例 CRD典型格式 Controller实现 挂载存储 创建存储 父主题: 附录
自定义控件 基于CRD自动生成表单的基础能力控件已经能很好的呈现表单输入,但是为了对用户更友好,更好的表达字段的含义以及隐藏一些非面向用户的字段,因此引入了x-descriptors描述符来定义自定义的控件。 x-descriptors描述符主要用于specDescriptors
服务使用者通过已订阅服务创建服务实例。 服务使用者可对服务实例进行编辑、升级、监控等治理操作。 服务使用者可针对不需要的服务实例进行销毁。 图2 商品服务生命周期 私有服务生命周期 华为云租户将服务包上传为私有服务。 华为云租户使用私有服务创建服务实例。 华为云租户可对服务实例进行编辑、升级、监控等治理操作。
CRD典型格式 以v1版本为例: apiVersion: apiextensions.k8s.io/v1 # 创建 CRD kind: CustomResourceDefinition metadata: # 名称必须采用复数 <plural-name>.<group>.<domain>
自定义服务CSD 在不同业务环境下,服务对平台有着不同的诉求,Kubernetes提供自定义资源CRD的轻量化机制。而在实践过程中,发现对于服务能力如服务依赖、服务访问、服务部署、监控日志等公共能力欠缺。 因此围绕CRD自研CSD,通过声明式配置CRD的能力引用,增强服务治理能力。
开发原理 在本章节以Kafka为例,构建Kafka-Operator进行Kafka实例的管理,同时Kafka实例将以三节点集群的形式对外提供服务。对于Kafka实例/集群而言,需要依托于zookeeper进行构建,zookeeper用作Kafka集群的元数据管理,每个Kafka实例
生成服务包 最终的服务目录结构如下: $ tree hwfka-operator-package hwfka-operator-package ├── lifecycle.yaml ├── manifests │ ├─ hwfka_crd.yaml │ └─ hwfka_csd
实现Controller Controller实现背景 在创建Kafka实例时,Kafka-Operator需要创建的Kubernetes资源如下: 1个StatefulSet,包含3个Pod分别启动ZooKeeper; 1个Service,用来暴露ZooKeeper访问地址;
存放兼容的第三方文件,如Helm/Operator-Framework。 否 生命周期文件 lifecycle.yaml 存放服务包的安装部署、升级等生命周期相关信息。 是 服务包约束 命名规则:只允许包含大小写字母、数字、下划线、中划线及点,且不能以下划线、中划线及点结尾。{service