检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
其中UCS FullAccess系统策略包含OSC所有接口的使用权限,UCS ReadOnlyAccess系统策略包含OSC所有Read、List接口的使用权限。授予子用户某个系统策略的操作步骤与单租户下多IAM用户使用企业仓库场景如何配置权限?的操作步骤相同,只需在6勾选两个系统策略之一即可:
Center,OSC)是面向服务提供商和服务使用者的云原生服务生命周期治理平台,提供大量开箱即用的云原生服务,支持服务的开发、发布、订阅、部署、升级、更新等,帮助您简化云原生服务的生命周期管理。 功能介绍 云原生服务中心OSC的有两大用户角色:服务提供商和服务使用者。提供商在云市场完成服务发布后,使用者可订阅和使用服务。
Operator规范 Operator包含三类核心文件: 软件包清单:package.yaml 集群服务版本:csv.yaml 自定义资源:crd.yaml # Opeartor结构 {Operator-Package} ├─ xxx.package.yaml
实现Operator 定义API 实现Controller 生成代码和资源描述文件 父主题: 开发Operator
BuildDate:2020-07-16T00:58:46Z GoOs:linux GoArch:amd64} 安装controller-gen 构建控制器所使用的Go语言controller-runtime库。 下载源码controller-tools-0.3.0。 构建二进制并安装。 $ unzip
开发Operator 开发原理 在本章节以Kafka为例,构建Kafka-Operator进行Kafka实例的管理,同时Kafka实例将以三节点集群的形式对外提供服务。对于Kafka实例/集群而言,需要依托于zookeeper进行构建,zookeeper用作Kafka集群的元数据
构建Operator CRD介绍 创建Operator项目 创建API和Controller 父主题: 开发Operator
括后续使用Makefile去编译operator的二进制文件及打包镜像时,都可能会重复下载使用controller-gen二进制文件,建议提前安装controller-gen二进制,并修改Makefile中有关这个命令为使用系统命令,而非每次通过go get下载并编译后使用。 该命令主要执行以下动作:
Operator代码示例 CRD典型格式 Controller实现 挂载存储 创建存储 父主题: 附录
配置表单控件 创建实例应用时,往往涉及大量的参数配置,为方便用户使用,OSC console提供了自动生成表单的能力。 在Kubernetes 1.8中,CRD定义基于OpenAPI v3的验证模式的能力。基于OpenAPI v3能力,可用于自动生成用于创建实例的表单。 控件类型
oncile()方法。需要在Reconcile()方法中实现协调逻辑,创建Service、StatefulSet等资源,并更新应用实例状态,实现的过程中,可以参考: 查询资源:控制器使用controller-runtime库中的Client实现对Kubernetes资源的增查改删
如何从零开始开发Operator 开发Operator 制作镜像 制作服务包 父主题: 附录
omitempty"` // Hwfka 访问地址 } 使用Kubebuilder,可通过在API结构的属性上定义Markers,自动生成CRD中的spec.validation.openAPIV3Schema,即基于OpenAPI的校验规则,以便校验用户创建的CR中字段值的合法性。如上述设置size属性的最小值和最大值:
因操作系统类型、系统架构输入错误导致 # kubebuilder二进制文件因操作系统和系统架构导致错误导致的无法使用。同时,通过git操作避免 # 在使用curl过程中需要对开发环境进行证书配置等操作 $ git clone https://github.com/kubernetes-sigs/kubebuilder
创建服务包模板 通过OSC提供的oscctl工具创建服务包模板,oscctl工具使用详情请参见oscctl工具使用。 使用oscctl工具创建服务包模板。 # 使用oscctl工具,创建服务包 $ oscctl create -o ./hwfka-operator-package
mkdir -p $GOPATH/src/hwfka-operator $ cd $GOPATH/src/hwfka-operator # 使用kubebuilder初始化脚手架框架,并设定域名为huawei.com $ kubebuilder init --domain huawei
在定义CRD时,需同时定义基于OpenAPI的校验规则,其中包含创建CR时的字段及取值范围,以便校验用户创建的CR中字段值的合法性。使用Kubebuilder,可通过在API中定义Marker,自动生成spec.validation.openAPIV3Schema。 CRD字段说明 g
制作镜像 制作实例镜像 制作Operator镜像 父主题: 如何从零开始开发Operator
制作服务包 创建服务包模板 修改服务包内容 生成服务包 父主题: 如何从零开始开发Operator
annotations: # 访问控制: 使用 group ID(GID) 配置的存储仅允许 Pod 使用相同的 GID 进行写入。 pv.beta.kubernetes.io/gid: "1234" spec: capacity: