检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
自定义服务CSD 在不同业务环境下,服务对平台有着不同的诉求,Kubernetes提供自定义资源CRD的轻量化机制。而在实践过程中,发现对于服务能力如服务依赖、服务访问、服务部署、监控日志等公共能力欠缺。 因此围绕CRD自研CSD,通过声明式配置CRD的能力引用,增强服务治理能力。
表单。crd.yaml文件中的properties(openAPIV3Schema.properties.spec.properties)对象会自动映射到对应的UI组件。 目前提供的基础类型控件分别有string、number、boolean、object、array类型。 string控件:满足一般的文本输入。
"urn:alm:descriptor:com.tectonic.ui:imagePullPolicy" 图4 镜像拉取策略控件 K8S资源对象 支持控件查询指定资源对象,目前支持configmap和secret。 配置示例: - path: k8sResource_secret description:
需要卸载该版本时,先标记为 non-serving storage: false # 再将 storage 设置到可用的版本 - name: v1 served: true storage: true # 基于 openAPIV3Schema 的校验规则
生成服务包 最终的服务目录结构如下: $ tree hwfka-operator-package hwfka-operator-package ├── lifecycle.yaml ├── manifests │ ├─ hwfka_crd.yaml │ └─ hwfka_csd
存放兼容的第三方文件,如Helm/Operator-Framework。 否 生命周期文件 lifecycle.yaml 存放服务包的安装部署、升级等生命周期相关信息。 是 服务包约束 命名规则:只允许包含大小写字母、数字、下划线、中划线及点,且不能以下划线、中划线及点结尾。{service
使用说明文件:{OSC-Package}/README.md,描述该服务包的功能介绍、使用说明等信息。按照下面一级目录编写。 <!--Markdown格式,按照以下目录结构--> # 介绍 # 功能 # 版本列表 # 服务架构 # 快速上手 <!-- 可提供链接 或者 文字-->
升级服务实例 服务实例部署时会在容器集群内部创建一个服务插件,由服务插件来管理服务实例,服务插件可以管理多个版本的实例。 如果存在新的服务实例版本,则可以在实例详情界面,单击“升级”按钮,选择所需要升级到的版本。如果升级失败则可以单击“回退”按钮,回退到升级前的版本。 注意事项
制作服务包目录 新建一个文件夹,可任意命名,以etcd服务为例,暂定命名为etcd,在etcd文件夹下创建两个子目录,分别命名为package,images。 etcd | --- package | --- images 父主题: 制作流程
对于lifecycle文件中配置了upgrade字段的服务包,需要确保该服务operator能够管理的实例版本(由CSD文件中的versionDefinition字段规定)与被升级的operator所能管理的实例版本相兼容,否则会导致上传服务包或升级服务operator失败。具体规则请参见versionDefinition。
查看服务实例日志 服务提供商可以根据自身业务情况,配置所需要采集的业务日志,以便进行问题定位定界。如服务对接了日志采集功能,则在云原生服务中心实例详情界面会展示“日志”页签。用户单击“日志”页签可以查看日志内容。 查看服务实例日志功能仅支持CCE集群。 父主题: 服务实例日常操作
创建服务 使用ISV账号登录OSC控制台,单击左侧导航栏“服务发布”,查看右侧服务发布流程。 单击“创建服务”按钮,在“创建服务”弹框页面填写“名称”、“描述”,并选择模板仓库和镜像仓库的后端地址。 名称:填写需要上传的服务包中的名称。 描述:用于描述此服务的相关功能描述等。 模
表1 资源集合结构 目录或文件名称 描述 必选 xxx_crd.yaml 服务包的资源,例如kafka、redis,一个服务包可以包含一个或者多个具体资源目录。 是,至少一个 xxx_csd.yaml 自定义服务文件,每个csd文件对应于一个crd文件。 否 公共能力目录 公共能力目
服务包镜像名称约束 镜像目录存放部署目录中需要使用到的镜像文件,镜像文件以tar格式存储。镜像文件命名规范只允许包含大小写字母、数字、下划线、中划线及点,且不能以下划线、中划线及点结尾。 images目录下存放服务运行所需的容器镜像,根据服务实际情况确定支持单CPU架构还是多CPU架构:
维护服务插件 登录OSC控制台。 单击"服务插件"导航栏,进入“服务插件”详情页,单击选择“系统插件”页签,选择对应的区域,可查看当前区域下所有的运维插件,也可以查看指定容器集群下的运维插件。 系统插件状态异常时,鼠标移动至异常状态上,可展示插件状态异常的原因。单击“日志”和“事
管理服务插件 登录OSC控制台。 进入“我的服务->我的订阅”页面,卡片模式下会展示当前所有服务的实例个数,单击某一服务查看服务详情。 单击“服务管理”页签,可查看当前服务管理插件的状态,包括插件所在的区域和容器集群。 服务插件状态异常时,可单击操作栏“事件”和“日志”选项,根据
制作实例镜像 下载依赖包 下载JRE:https://download.java.net/openjdk/jdk11/ri/openjdk-11+28_linux-x64_bin.tar.gz。 下载Apache Kafka二进制包:https://archive.apache.org/dist/kafka/2
前置检查 服务包发布到云市场中,需要提供病毒扫描报告,保证发布上架的服务中不存在任何病毒,并在发布商品时提供给云市场运营人员审核,审核通过后商品方可发布成功。 确保Helm模板中的镜像配置都引用values.yaml中的配置,如果不满足,请参见排查和编辑镜像地址排查和整改。 确保operator包中的镜像配置都引用*
自定义资源CRD 自定义资源CRD是Kubernetes服务遵循,一个自定义资源对应一个目录,遵循Kubernetes CRD规范,详细介绍参考官方CustomResourceDefinition。 父主题: 资源集合Manifests
上架服务新版本 服务发布上架后,将会对外提供服务。当用户的服务需要上线新特性时,则需要上架新的版本服务包,服务新版本上架流程具体步骤如下: 使用ISV账号登录OSC控制台,单击左侧导航栏"服务发布"进入服务发布页面。 重复执行新增版本到注册资产步骤,执行完成后,服务将会自动发布成功。