41.3. 启动第一个 Operator


本节介绍了如何使用 Couchbase Operator 来创建新的 Couchbase 集群。

先决条件

  • 启用了技术预览 OLM 的 OpenShift Container Platform 3.11
  • 使用具有 cluster-admin 权限的账户访问该集群
  • Couchbase Operator 加载到 Operator 目录(默认为以技术预览 OLM 加载)

流程

  1. 作为集群管理员(具有 cluster-admin 角色的用户),在 OpenShift Container Platform Web 控制台中为此流程创建一个新项目。本例使用名为 couchbase-test 的项目。
  2. 在项目内安装 Operator 通过 Subscription 对象来完成,集群管理员可在整个集群中创建并管理。要查看可用的 Subscriptions,请从下拉菜单中选择 Cluster Console,然后进入左侧导航中的 Operators Catalog Sources 屏幕。

    注意

    如果要启用其他用户查看、创建和管理项目中的订阅,则必须具有该项目的 adminview 角色,以及 operator-lifecycle-manager 项目的 view 角色。集群管理员可以使用以下命令添加这些角色:

    $ oc policy add-role-to-user admin <user> -n <target_project>
    $ oc policy add-role-to-user view <user> -n <target_project>
    $ oc policy add-role-to-user view <user> -n operator-lifecycle-manager
    Copy to Clipboard Toggle word wrap

    以后的 OLM 版本中会简化这一体验。

  3. 从 Web 控制台或 CLI 将所需的项目订阅到 Couchbase 目录源。

    选择以下任一方法:

    • 对于 Web 控制台方法,请确保您正在查看所需项目,然后从此屏幕中,对一个 Operator 点 Create Subscription,将它安装到项目中。
    • 对于 CLI 方法,使用以下定义创建 YAML 文件:

      Couchbase-subscription.yaml 文件

      apiVersion: operators.coreos.com/v1alpha1
      kind: Subscription
      metadata:
        generateName: couchbase-enterprise-
        namespace: couchbase-test 
      1
      
      spec:
        source: certified-operators
        name: couchbase-enterprise
        startingCSV: couchbase-operator.v1.0.0
        channel: preview
      Copy to Clipboard Toggle word wrap

      1
      确保 metadata 部分中的 namespace 字段设置为所需的项目。

      然后,使用 CLI 创建订阅:

      $ oc create -f couchbase-subscription.yaml
      Copy to Clipboard Toggle word wrap
  4. 创建订阅后,Operator 会出现在 Cluster Service Versions 屏幕中,目录用户可以使用它来启动 Operator 提供的软件。点击 Couchbase Operator 查看此 Operator 功能的更多详情:

    图 41.3. Couchbase Operator 概述

  5. 在创建 Couchbase 集群之前,请使用 Web 控制台或 CLI 创建含有超级用户帐户凭证的 Web 控制台或 CLI 的 secret。Operator 会在启动时读取它,并使用以下详情配置数据库:

    Couchbase secret

    apiVersion: v1
    kind: Secret
    metadata:
      name: couchbase-admin-creds
      namespace: couchbase-test 
    1
    
    type: Opaque
    stringData:
      username: admin
      password: password
    Copy to Clipboard Toggle word wrap

    1
    确保 metadata 部分中的 namespace 字段设置为所需的项目。

    选择以下任一方法:

    • 对于 Web 控制台方法,从左侧导航中点 Workloads Secrets,然后点 Create,然后从 YAML 选择 Secret 以进入 secret 定义。
    • 对于 CLI 方法,将 secret 定义保存到 YAML 文件(例如: couchbase-secret.yaml)并使用 CLI 在所需项目中创建:

      $ oc create -f couchbase-secret.yaml
      Copy to Clipboard Toggle word wrap
  6. 创建新的 Couchbase 集群。

    注意

    给定项目中具有 edit 角色的所有用户均可创建、管理和删除应用程序实例(本例中为 Couchbase 集群),由项目中已安装的 Operator 以自助服务方式管理,就像云服务一样。如果要启用具有此功能的其他用户,集群管理员可以使用以下命令添加角色:

    $ oc policy add-role-to-user edit <user> -n <target_project>
    Copy to Clipboard Toggle word wrap
    1. 在 Web 控制台的 Cluster Service Versions 部分中,从 Operator 的 Overview 屏幕中单击 Create Couchbase Operator,以开始创建新的 CouchbaseCluster 对象。此对象是集群中 Operator 提供的新类型。对象的工作方式类似于内置的 DeploymentReplicaSet 对象,但包含特定于管理 Couchbase 的逻辑。

      提示

      单击 Create Couchbase Operator 按钮时,您第一次可能会收到 404 错误。这是一个已知问题;作为临时解决方案,请刷新此页面以继续。(BZ#1609731)

      Web 控制台包含一个最小的起始模板,但您可以参阅 Operator 支持的所有功能的 Couchbase 文档

      图 41.4. 创建 Couchbase 集群

    2. 确保配置包含 admin 凭证的 secret 名称:

      apiVersion: couchbase.com/v1
      kind: CouchbaseCluster
      metadata:
        name: cb-example
        namespace: couchbase-test
      spec:
        authSecret: couchbase-admin-creds
        baseImage: registry.connect.redhat.com/couchbase/server
        [...]
      Copy to Clipboard Toggle word wrap
    3. 完成对象定义后,点 web 控制台中的 Create (或使用 CLI)创建对象。这会触发 Operator 启动 pod、服务和 Couchbase 集群的其他组件。
  7. 您的项目现在包含很多由 Operator 自动创建和配置的资源:

    图 41.5. Couchbase 集群详情

    Resources 选项卡,以验证已创建了支持您从项目中的其他 pod 访问数据库的 Kubernetes 服务。

    使用 cb-example 服务,您可以使用 secret 中保存的凭据来连接数据库。其他应用容器集可以挂载并使用此 secret 并与服务进行通信。

现在,您有容错安装 Couchbase,它会对故障做出反应并重新平衡数据,因为 pod 变得不健康,或在集群中的节点之间迁移。最重要的是,集群管理员或开发人员可以通过提供高级别配置来轻松获取此数据库集群;不需要深入了解 Couchbase 集群或故障转移的细微知识。

参阅 官方 Couchbase 文档,了解更多有关 Couchbase Autonomous Operator 的功能。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat