检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 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等 #
容器内日志路径,可填多个,但不允许存在包含关系。 日志内的路径支持目录和文件 目录:扫描此目录下的所有为log,out,trace结尾的日志并对接 文件:只对接指定的文件 在manifests/xxx_csd.yaml文件中增加引用日志能力的配置。 apiVersion: osc.io/v1beta1
r来管理API和Controller。 初始化Manager时,可以指定参数,限制该Operator中所有Controller监听资源的namespace。 Operator作用域 Operator的作用域分namespace级和cluster级,cluster级的operato
行业列表,范围不限,如"education,media" education 否 scenes 部署平台列表,取值列表:{CCE,UCS},分别表示CCE平台和UCS平台,大小写敏感,默认值为CCE。 CCE,UCS 否 父主题: Helm规范
EnvNamespace = "NAMESPACE" EnvInstance = "INSTANCE" EnvPodUid = "POD_UID" EnvPodName = "POD_NAME" EnvPodIp
RBAC权限管理 Operator使用基于角色的访问控制机制对Kubernetes中的资源进行访问,因此,要保证Operator正确的运行,需要使用管理员权限的账号对Operator进行授权,即预先创建对应的role和rolebinding。 在Reconcile()上添加mark
图5 K8S资源对象 Pod数量 预设的设置pod数量控件。 配置示例: - path: advanceTest_podCount description: advanceTest_podCount displayName: advanceTest_podCount
yaml,该文件内容包含Chart.yaml,具体规范参见元数据Metadata。 新增资源目录manifests,根据Chart.yaml的name创建对应的CRD和CSD。 新增自定义资源文件helmrelease_crd.yaml,该文件以下划线命名,由工具生成,无需改动。参见HelmRelease
yaml文件中配置能力插件依赖功能声明,具体参考服务包扩展目录 capabilityRequirements示例 对接原理 开源的Prometheus是目前业界广泛应用的监控指标采集系统,其服务端可作为时间序列数据库,采集客户端应用不同时间周期上报的监控指标数据并存储,还可用来查询数据和图形化展示数据趋势。
自定义服务CSD 在不同业务环境下,服务对平台有着不同的诉求,Kubernetes提供自定义资源CRD的轻量化机制。而在实践过程中,发现对于服务能力如服务依赖、服务访问、服务部署、监控日志等公共能力欠缺。 因此围绕CRD自研CSD,通过声明式配置CRD的能力引用,增强服务治理能力。
示例: /apis/osc.huawei.com/v1/namespaces/*/memcacheds/... *代表所有namespace,可以使用指定namespace名称查询特定namespace下的CR。 父主题: Operator代码示例
member Pods for the etcd cluster. path: size x-descriptors: - 'urn:alm:descriptor:com.tectonic.ui:podCount' 以v1版本的crd.yaml为例:
基于CRD自动生成表单的基础能力控件已经能很好的呈现表单输入,但是为了对用户更友好,更好的表达字段的含义以及隐藏一些非面向用户的字段,因此引入了x-descriptors描述符来定义自定义的控件。 x-descriptors描述符主要用于specDescriptors和statusDescriptors定义自定义控件。
kubernetes.io/zone:创建云硬盘所在的可用区,必须和工作负载规划的可用区保持一致。zone对应的值请参见地区和终端节点。 SFS文件存储:适用于媒体处理、内容管理、大数据分析、分析工作负载等多读多写的场景。 apiVersion: v1 kind: PersistentVolumeClaim
使用Kubebuilder,可通过在API结构的属性上定义Markers,自动生成CRD中的spec.validation.openAPIV3Schema,即基于OpenAPI的校验规则,以便校验用户创建的CR中字段值的合法性。如上述设置size属性的最小值和最大值: // +kubebuil
生成代码和资源描述文件 修改api/v1/memcached_types.go或controller中的markers之后,需要重新生成代码和资源描述文件。 # 生成 api/v1/zz_generated.deepcopy.go make generate # 生成 config/crd/bases
服务支持部署到不同的CPU架构的环境中,包括X86_64和ARM64 支持多CPU架构的服务包含X86_64和ARM64的镜像,您可将已订阅的支持多CPU架构的服务,根据业务需求,部署到X86_64或者ARM64的集群中。 公测 服务订阅和部署 3 服务支持删除、版本升级和回退 服务Operator新增功能:
修改服务包内容 修改lifecycle.yaml文件。该文件包括OSC服务包的生命周期的相关信息,例如:安装方式、安装时需要的集群/命名空间级别权限、日志目录等。 install: clusterPermissions: # 集群级别权限,请按照Kubernetes RABC相关规范填写
前置检查 服务包发布到云市场中,需要提供病毒扫描报告,保证发布上架的服务中不存在任何病毒,并在发布商品时提供给云市场运营人员审核,审核通过后商品方可发布成功。 确保Helm模板中的镜像配置都引用values.yaml中的配置,如果不满足,请参见排查和编辑镜像地址排查和整改。 确保operator包中的镜像配置都引用*