当前位置: 首页 > news >正文

网站建设|百度知道提问首页

网站建设|,百度知道提问首页,wordpress post-type,吴江注册公司一、使用背景KaiwuDB Operator 是一个自动运维部署工具,可以在 Kubernetes 环境上部署 KaiwuDB集群,借助 Operator 可实现无缝运行在公有云厂商提供的 Kubernetes 平台上,让 KaiwuDB 成为真正的 Cloud-Native 数据库。使用传统的自动化工具会…

一、使用背景

KaiwuDB Operator 是一个自动运维部署工具,可以在 Kubernetes 环境上部署 KaiwuDB集群,借助 Operator 可实现无缝运行在公有云厂商提供的 Kubernetes 平台上,让 KaiwuDB 成为真正的 Cloud-Native 数据库。

使用传统的自动化工具会带来了很高的部署和运维成本,部分自动化部署和运维工具如 Puppet/Chef/SaltStack/Ansible,由于缺乏全局状态管理,不能及时对各种异常情况做自动故障转移,并且很难发挥分布式系统的弹性伸缩能力。除外还需要写大量的 DSL ,甚至出现与 Shell 脚本一起混合使用的情况,这将带来可移植性较差,维护成本比较高等问题。

在云时代,各大厂商都会提供托管的 Kubernets 集群,越来越多的应用跑在了 Kubernetes 管理的容器中,传统部署在 Kubernetes 平台的应用可以不用绑定在特定云平台,也能轻松实现在各种云平台之间的迁移,其容器化打包和发布方式也避免了对操作系统环境的依赖。

二、什么是 Operator

Operator 是由 CoreOS 开发的,用来扩展 Kubernetes api,是一个特定的应用程序控制器,它用来创建、配置和管理复杂的有状态应用,如数据库、缓存和监控系统。Operator 基于 Kubernetes 的资源和控制器的概念构建,但同时又涵盖了应用程序特定的领域知识。在 Kubernetes 官方文档中,对 Operator 的定义如下:

Operators are software extensions to Kubernetes that make use of custom resources to manage applications and their components. Operators follow Kubernetes principles, notably the control loop.

简单来说:Operator = 定制资源(CRD) + 控制器。

1. 定制资源(CRD)

Kubernetes 提供了一系列的资源,包括 Statefulset、Service、Configmap 等。但是这些资源并不能完全满足使用需求,例如在 K8s 中部署 Kaiwu 应用时,需定制一个 Kaiwu 应用资源,CRD(Custom Resource Definition)就承担了一个说明书的角色,让 Kubernetes 来认识这个自定义资源 CR。有了 CRD 之后,我们可以自由地增加各种与 Pod 平级的资源。

2. Controller

Controller 的作用就是监听指定对象的新增、删除、修改等变化,并针对这些变化做出相应的响应。

三、如何使用Operator-sdk

Operator-sdk 由 CoreOS 开源,它是用于构建 Kubernetes 原生应用的 SDK,它提供更高级别的 api、抽象和项目脚手架。使用 Kubernetes 中原生的对象来部署和管理复杂的应用程序不是那么容易,尤其是要管理整个应用的生命周期、组件的扩缩容,我们之前通常是编写各种脚本,通过调用 Kubernetes 的命令行工具来管理 Kubernetes 上的应用。

现在可以通过 CRD(CustomResourceDefinition)来自定义这些复杂操作,通过将运维的知识封装在自定义 api 里来减轻运维人员的负担。同时,我们还可以像操作 Kubernetes 的原生资源对象一样,使用 kubectl 来操作 CRD。

1. 初始化项目

operator-sdk init --domain inspur.com --repo github.com/inspur/kaiwu-operator

--domain 表示 api 组的后缀;

--repo 表示本工程的 golang 包名。

生成的目录结构如下:

其中,config 目录下是所有的 yaml 配置文件,Dockerfile 用于生成 docker 镜像,Makefile 是编译控制文件,main.go 是程序入口文件。

2. 添加 CRD 和 Controller

operator-sdk create api --group kaiwu --version v1 --kind KaiwuCluster --resource=true --controller=true

通过脚手架生成一个 CRD 和 Controller 的 api, 生成了一个目录包含 api 的结构体定义和 Controller 代码。在 api/v1 目录下新增了 3 个 go 文件,其中最主要文件是 kaiwucluster_types.go,是对新增 CRD 的定义。

同时增加了一些配置文件和 Controller:

其中,CRD 目录下的文件是对 CRD 的定义,rbac 目录下的文件是新增的角色定义,samples目录下的文件是创建 CR 的示例文件。

在新生成的 controllers 文件夹下,kaiwucluster_controller.go 中定义了主要的业务逻辑,主要实现在 Reconcile 函数中:

开发过程中使用的 api 接口包:

· corev1 “k8s.io/api/core/v1” 核心api,提供核心结构和接口,yaml中常用的 Spec 定义在此。

· metav1 “k8s.io/apimachinery/pkg/apis/meta/v1” yaml 中常用的 metadata 定义,ObjectMeta,LabelSelector 等基本在此。

· appsv1 “k8s.io/api/apps/v1” 常用的创建的 CRD 或者已经存在的rd等都在此,比如 Deployments,Pod,Service 等等。

3. 部署运行

方式一:本地运行,主要用于研发和测试阶段,在项目根目录运行:

make generate && make manifests && make install && make run

方式二:集群部署:

(1)make

$ make generate && make manifests && make install

(2)构建镜像

$ make docker-build IMG=inspur/kaiwu-operator:v1$ docker images |grep kaiwuinspur/kaiwu-operator v1 d15d88ddd113 About a minute ago 965MB

(3)运行

$ make deploy IMG = inspur/kaiwu-operator:v1

(4)CRD 确认

$ kubectl get crdNAME CREATED ATkaiwuclusters.kaiwu.inspur.com 2022-10-25T08:49:35Z

(5)查看状态

$ kubectl get po –n kaiwu-operator-systemNAME READY STATUS RESTARTS AGEkaiwu-operator-controller-manager-6bb7b666f-2v4nq 1/1 Running 012m
http://www.hkea.cn/news/24037/

相关文章:

  • 怎么查询网站所有关键词靠谱的广告联盟
  • 超酷的网站设计磁力搜索引擎
  • 网站建设写程序用什么软件成都疫情最新消息
  • 做网站需要什么资金2022今天刚刚发生地震了
  • 建设网站费用主要包括哪些google商店
  • 专注邯郸建设手机网站贴吧友情链接在哪
  • 网站备案拍照背景志鸿优化网官网
  • 网站百度知道怎么做推广网站搜索引擎优化的方法
  • 网站建设注意哪些问题sem和seo是什么职业岗位
  • 一_建设网站前的市场分析奶茶软文案例300字
  • 做网站智能工具江阴企业网站制作
  • 怎么看网站有没有做推广大数据营销系统多少钱
  • 广东工厂搜索seoseo平台优化服务
  • 网站开发平台 eclipseseo网站推广案例
  • 什么网站做调查能赚钱关键词优化报价推荐
  • 网站开发职业认知小结开发一个app平台大概需要多少钱?
  • 装修公司全包项目seo搜索引擎实训心得体会
  • 爱站网是干什么的长沙关键词排名首页
  • wordpress 教垜四川seo推广公司
  • 东莞市阳光网青岛seo服务
  • 网站弹窗在中间位置企业培训师
  • 整站下载器 安卓版域名解析查询站长工具
  • 跨境自建站模板seo推广是做什么
  • 网站建设与网页设计报告网络营销师报名入口
  • 生成前端页面的网站东莞网络营销全网推广
  • 网站及单位网站建设情况免费男女打扑克的软件
  • 公司有网站有什么好处网上开店如何推广自己的网店
  • 海口网站建设策划关键词排名优化工具有用吗
  • 请问哪里可以做网站汕头seo
  • 访问国外网站速度慢苏州关键词seo排名