检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
为服务的一个实例,一个服务可以拥有多个实例。 集群 集群指容器运行所需要的云资源组合,关联了若干云服务器节点、负载均衡等云资源。您可以理解为集群是“同一个子网中一个或多个弹性云服务器(又称:节点)”通过相关技术组合而成的计算机群体,为容器运行提供了计算资源池。 命名空间 命名空间
OSC服务规范介绍 简介 云原生服务中心(Operator Service Center,OSC)服务规范旨在给出一种与云平台解耦的云原生服务的标准定义,可描述云原生服务在分布式云的部署和治理。 部署:云原生服务中心联合华为云分布式服务UCS,能够将应用部署到华为云集群、多云集群
API创建资源,可参考Kubernetes API Reference。 设置关联:为创建的Kubernetes资源设置ownerReferences,以便其能在CR删除时被级联删除,可参考如下代码。 // 为指定命名空间和名称的 secret 设置 owner,返回 secret func (k *K8sClient)
自定义服务CSD 在不同业务环境下,服务对平台有着不同的诉求,Kubernetes提供自定义资源CRD的轻量化机制。而在实践过程中,发现对于服务能力如服务依赖、服务访问、服务部署、监控日志等公共能力欠缺。 因此围绕CRD自研CSD,通过声明式配置CRD的能力引用,增强服务治理能力。
ec.validation.openAPIV3Schema,即基于OpenAPI的校验规则,以便校验用户创建的CR中字段值的合法性。如上述设置size属性的最小值和最大值: // +kubebuilder:validation:Minimum=1 // +kubebuilder:
什么是云原生服务中心 云原生服务中心(Operator Service Center,OSC)是面向服务提供商和服务使用者的云原生服务生命周期治理平台,提供大量开箱即用的云原生服务,支持服务的开发、发布、订阅、部署、升级、更新等,帮助您简化云原生服务的生命周期管理。 功能介绍 云
Operator服务接入OSC平台 前置条件 阅读本章节前,用户需要拥有一个符合Operator规范的服务包,Operator服务规范可以参考Operator规范,下面以Operator开源服务datadog-operator为例进行详细说明。 接入流程 用户参考附录oscctl
served: false # 需要卸载该版本时,先标记为 non-serving storage: false # 再将 storage 设置到可用的版本 - name: v1 served: true storage: true # 基于 openAPIV3Schema
case ResourceDeployment: rs = &appsv1.Deployment{} } // 设置其 owner 为实例 CR if err = ctrl.SetControllerReference(instance, obj,
15集群使用的csi关联的storage class名称是csi-disk。 accessModes: 指定读写模式,v1.15集群版本只支持非共享卷,此字段设置为ReadWriteOnce。 storage:存储容量,单位为Gi。 另外需要指定: everest.io/disk-volume-ty
该层级的聚合参数 string 否 如果填写,则自动在expr中注入根据该labelkey+占位符的筛选条件。 说明: 对于聚合条件为pod的,需要设置为pod。 selectedMetrics 指标数组 string数组 否 与groupLabel配套,用于确认groupLabel指定的
实现Operator 定义API 实现Controller 生成代码和资源描述文件 父主题: 开发Operator
创建Operator项目 背景 Operator是Kubernetes的扩展软件,通过定制资源管理应用和其他组件,实现一定自动运维能力。可以在不改动Kubernetes源码的情况下,通过一个或多个Operator来扩展集群能力,遵照自身业务需求、场景等灵活开发,节省运维成本。流程
构建Operator CRD介绍 创建Operator项目 创建API和Controller 父主题: 开发Operator
创建API和Controller 根据以上设计的CR,在项目工程中创建对应的CRD类型: $ kubebuilder create api --group osctest --version v1 --kind Hwfka Create Resource [y/n] y Create
安装Kubebuilder 环境准备 已安装go v1.16+。 已安装make。 已安装docker 17.03+。 已安装Kubernetes v1.15.0+ 。 已安装kustomize,安装方法请参见安装 kustomize。 已安装controller-gen,安装方
生成代码和资源描述文件 修改api/v1/memcached_types.go或controller中的markers之后,需要重新生成代码和资源描述文件。 # 生成 api/v1/zz_generated.deepcopy.go make generate # 生成 config/crd/bases
开发Operator 开发原理 在本章节以Kafka为例,构建Kafka-Operator进行Kafka实例的管理,同时Kafka实例将以三节点集群的形式对外提供服务。对于Kafka实例/集群而言,需要依托于zookeeper进行构建,zookeeper用作Kafka集群的元数据
CRD介绍 CRD(CustomResourceDefinition)是一种自定义的Kubernetes资源,在定义CRD后,可通过在集群内创建对应 CR(CustomResource)对应用进行统一管理。格式示例请参见CRD典型格式。 OpenAPI校验 在定义CRD时,需同时
安装Controller 安装 kustomize 基于模板生成YAML文件,下载kustomize二进制压缩包:https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize/v3.8.1/kustomize_v3