检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 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
Kubebuilder是基于custom resource definitions(CRDs)构建Kubernetes APIs的框架,有如下两种安装方法 。 安装方法一:根据kubebuilder官网提供的go语言版本和节点系统架构下载。 # go env GOOS -- 获取操作系统类型,例如:linux等 #
r来管理API和Controller。 初始化Manager时,可以指定参数,限制该Operator中所有Controller监听资源的namespace。 Operator作用域 Operator的作用域分namespace级和cluster级,cluster级的operato
示CCE平台和UCS平台,大小写敏感,默认值为CCE。 CCE,UCS 否 父主题: Helm规范
RBAC权限管理 Operator使用基于角色的访问控制机制对Kubernetes中的资源进行访问,因此,要保证Operator正确的运行,需要使用管理员权限的账号对Operator进行授权,即预先创建对应的role和rolebinding。 在Reconcile()上添加mark
yaml的name创建对应的CRD和CSD。 新增自定义资源文件helmrelease_crd.yaml,该文件以下划线命名,由工具生成,无需改动。参见HelmRelease CRD示例。 新增自定义服务文件helmrelease_csd.yaml,可按需配置相关服务能力。 特别说明
如果需要对接日志系统,需要确保服务容器内部有输出日志文件,OSC服务会将日志文件挂载到外部供AOM采集上报,从而达到对接的效果。 对接流程 获取OSC规范开发的服务包,如果只有原生的helm或OperatorFramework包,可以参考章节服务包转换进行转换。 在目录mani
示例: /apis/osc.huawei.com/v1/namespaces/*/memcacheds/... *代表所有namespace,可以使用指定namespace名称查询特定namespace下的CR。 父主题: Operator代码示例
使用Kubebuilder,可通过在API结构的属性上定义Markers,自动生成CRD中的spec.validation.openAPIV3Schema,即基于OpenAPI的校验规则,以便校验用户创建的CR中字段值的合法性。如上述设置size属性的最小值和最大值: // +kubebuil
EnvNamespace = "NAMESPACE" EnvInstance = "INSTANCE" EnvPodUid = "POD_UID" EnvPodName = "POD_NAME" EnvPodIp
图5 K8S资源对象 Pod数量 预设的设置pod数量控件。 配置示例: - path: advanceTest_podCount description: advanceTest_podCount displayName: advanceTest_podCount
基于CRD自动生成表单的基础能力控件已经能很好的呈现表单输入,但是为了对用户更友好,更好的表达字段的含义以及隐藏一些非面向用户的字段,因此引入了x-descriptors描述符来定义自定义的控件。 x-descriptors描述符主要用于specDescriptors和statusDescriptors定义自定义控件。
的划分,但从实际的功能属性上来说,很容易识别出,不同CRD所处的层级和使用场景并不相同,以etcd为例,可能定义有代表服务主体本身的etcd CRD,以及表示etcd备份的backup CRD,两者客观上存在从属和依赖关系。所以,平铺的定义方式并不能很好的体现这种资源的层级和保证
capabilityRequirements示例 对接原理 开源的Prometheus是目前业界广泛应用的监控指标采集系统,其服务端可作为时间序列数据库,采集客户端应用不同时间周期上报的监控指标数据并存储,还可用来查询数据和图形化展示数据趋势。其针对不同的应用,提供了多种客户端exporter实现,
member Pods for the etcd cluster. path: size x-descriptors: - 'urn:alm:descriptor:com.tectonic.ui:podCount' 以v1版本的crd.yaml为例:
kubernetes.io/zone:创建云硬盘所在的可用区,必须和工作负载规划的可用区保持一致。zone对应的值请参见地区和终端节点。 SFS文件存储:适用于媒体处理、内容管理、大数据分析、分析工作负载等多读多写的场景。 apiVersion: v1 kind: PersistentVolumeClaim
放置镜像到images目录 images目录下存放服务部署时需要的所有镜像。以etcd为例,etcd服务包含x86和ARM两种CPU架构的镜像,分别叫etcd-3.5.0-x86_64.tar,etcd-3.5.0-aarch64.tar,那么目录结构为: etcd/ |
调整OSC商品模型,使云商店的商品和OSC的商品一一对应 服务目录和商品一一对应: 支持服务多版本部署能力 公测 私有服务上传和部署 2022年12月 序号 功能名称 功能描述 阶段 相关文档 1 OSC支持UCS本地集群和附着集群的应用服务部署和查看 服务实例安装和展示新增本地集群和附着集群:
生成代码和资源描述文件 修改api/v1/memcached_types.go或controller中的markers之后,需要重新生成代码和资源描述文件。 # 生成 api/v1/zz_generated.deepcopy.go make generate # 生成 config/crd/bases
修改服务包内容 修改lifecycle.yaml文件。该文件包括OSC服务包的生命周期的相关信息,例如:安装方式、安装时需要的集群/命名空间级别权限、日志目录等。 install: clusterPermissions: # 集群级别权限,请按照Kubernetes RABC相关规范填写