检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
metadata: name: mypv1 annotations: # 访问控制: 使用 group ID(GID) 配置的存储仅允许 Pod 使用相同的 GID 进行写入。 pv.beta.kubernetes.io/gid: "1234" spec:
提供开箱即用的云原生服务,可以通过OSC部署到任意基础设施,包括华为云CCE集群、第三方集群等场景。服务提供商在发布服务时需要提供服务包,服务包中包含部署需要的配置文件以及镜像,并按照OSC可识别的路径放置,保证服务发布中用户可以一键部署。 图1 商品服务生命周期
然后启动Kafka三个节点实例(即broker实例)进行服务的提供,同时启动一个KafkaManager用作可视化管理。整体结构如下: 安装Kubebuilder 构建Operator 实现Operator 父主题: 如何从零开始开发Operator
服务包镜像名称约束 镜像目录存放部署目录中需要使用到的镜像文件,镜像文件以tar格式存储。镜像文件命名规范只允许包含大小写字母、数字、下划线、中划线及点,且不能以下划线、中划线及点结尾。 images目录下存放服务运行所需的容器镜像,根据服务实际情况确定支持单CPU架构还是多CPU架构:
升级服务实例 服务实例部署时会在容器集群内部创建一个服务插件,由服务插件来管理服务实例,服务插件可以管理多个版本的实例。 如果存在新的服务实例版本,则可以在实例详情界面,单击“升级”按钮,选择所需要升级到的版本。如果升级失败则可以单击“回退”按钮,回退到升级前的版本。 注意事项
必选 监控配置文件 monitor_config.yaml 对接平台的指标采集能力,可配置指标采集的维度,指标名称,指标聚合规则等,详情参考如何配置监控。 文件 否 日志配置文件 log_config.yaml 对接平台的日志采集能力,可配置日志采集路径,详情参考对接配置日志。 文件
实现Operator 定义API 实现Controller 生成代码和资源描述文件 父主题: 开发Operator
实现Controller Controller实现背景 在创建Kafka实例时,Kafka-Operator需要创建的Kubernetes资源如下: 1个StatefulSet,包含3个Pod分别启动ZooKeeper; 1个Service,用来暴露ZooKeeper访问地址;
构建Operator CRD介绍 创建Operator项目 创建API和Controller 父主题: 开发Operator
私有服务上传和部署 前提条件 已购买容器镜像服务的企业版实例,且实例可以正常运行。 准备好待上传的zip或tgz格式的helm/operator-framework/osc规范压缩包以及部署时需要运行的镜像。 服务部署流程 选择对应的仓库存储源,将服务包和镜像包分别上传到OSC以及SWR仓库中,进行部署即可。
集群中服务Operator CR被误删后,页面删除实例失败时应如何处理? 使用场景 用户在OSC平台上架了一个服务,并且成功发布服务以及通过服务安装了一个服务实例,然后用户在集群控制节点上手动删除了服务Operator CR,后续用户在OSC服务实例页面想要删除服务实例时,发现实例删除报错,报错信息“timeout
生成代码和资源描述文件 修改api/v1/memcached_types.go或controller中的markers之后,需要重新生成代码和资源描述文件。 # 生成 api/v1/zz_generated.deepcopy.go make generate # 生成 config/crd/bases
5五个版本,其中0.0.2配置replaces: 0.0.1,0.0.5配置replace: 0.0.1及skips: 0.0.2。 0.0.2和0.0.5版本都配置基线版本为0.0.1,所以已经部署的0.0.1版本可以升级到0.0.2和0.0.5版本。 0.0.5版本因为配置了跳过0.0.2版本并且基线版本为0
storageClassName: local-pv-immediate volumeMode: Filesystem 使用华为云存储,需要CCE集群中预先安装everest插件。 上述资源可通过Go语言在Reconcile协调逻辑中实现,具体请参见Kubernetes API Reference。
SC直接部署到用户的云容器引擎、华为云UCS。 扩展开源,赋予服务平台高级能力 提供动态UI控件,支持表单方式创建实例。 动态UI指根据服务包相关配置,动态渲染出表单,用户可以编辑表单创建服务实例。 动态UI控件支持实例运行时状态显示。 服务已配置动态UI控件,部署服务实例后,实
至OSC的“我的服务->服务订阅”界面。 部署服务。 在“我的服务->我的订阅”界面查找已订阅目标服务,单击“创建实例”。 根据业务诉求,选择需要的服务版本。 根据业务诉求,选择实例的部署场景、区域、容器集群、命名空间,再选择所需要部署的服务实体。勾选左下角“我已知晓”复选框。
制作Operator镜像 修改hwfka-operator/Dockerfile内容如下: FROM centos:latest COPY bin/manager / RUN chmod ug+x /manager WORKDIR / 构建容器镜像命令如下: $ make && make
Operator规范 Operator包含三类核心文件: 软件包清单:package.yaml 集群服务版本:csv.yaml 自定义资源:crd.yaml # Opeartor结构 {Operator-Package} ├─ xxx.package.yaml
用户在云原生服务中心中部署Operator类型或Helm类型服务包时,可能因为在部署前刚删除同名服务包后立即部署,导致Kubernetes集群正在处理删除中的组件。因为新部署的服务或服务实例与Kubernetes待删除的组件是同名的,所以可能产生云原生服务中心界面显示部署成功(因为Kub
Operator代码示例 CRD典型格式 Controller实现 挂载存储 创建存储 父主题: 附录