通过OperatorHub部署 Prometurbo

您可以在 Red Hat OpenShift OperatorHub 中使用经过认证的 Prometurbo 操作员,并配置可创建单个 Prometurbo 实例的自定义资源,从而部署 Prometurbo。

部署需求

查看 常规需求

任务概述

要在 Red Hat OpenShiftOperatorHub 用户界面中,请执行以下操作:

  1. Red Hat OpenShift 集群中创建一个项目,并在其中部署Prometurbo。

  2. 设置Prometurbo的密码和证书。

  3. 启用Prometurbo操作员。

  4. 使用表单或YAML方法创建实例。

  5. 验证部署。

在集群中创建项目 Red Hat OpenShift 集群中

使用集群管理员权限在 Red Hat OpenShift 集群中创建一个项目,并在其中部署Prometurbo。

  1. 登录到 Red Hat OpenShift 控制台,然后浏览到 主页> 项目

  2. 单击创建项目

  3. 请指定项目名称。 可选,请指定显示名称和描述。

    以下示例创建了一个名为 turbo 的项目。

    apiVersion: v1
    kind: Namespace
    metadata:
      name: turbo
  4. 单击创建

设置Prometurbo的密码和证书

Prometurbo使用 OAuth 2.0 clientIdclientSecret 连接到 Turbonomic ,并以 Base64 格式将这些凭证存储在一个秘密中。

  1. 在您将要部署 Prometurbo 的命名空间或项目中,检查 turbonomic-credentials 密钥是否存在。

    kubectl -n turbo get secret turbonomic-credentials
  2. 如果存在秘密,请找回OAuth 2.0 凭证。

    1. 运行以下命令:

      kubectl -n turbo get secret turbonomic-credentials -o yaml | grep "^data:$" -A2
    2. 在输出中,记录 clientidclientSecret 凭证,然后继续下一步。

    如果秘密不存在,请先创建OAuth 2.0 凭证。

    使用 Turbonomic API 创建和管理 OAuth 2.0 客户端凭据。 这些凭据比从 Turbonomic用户界面创建的本地账户凭据更安全。

    要创建OAuth 2.0 客户端凭证,请执行以下步骤:

    1. 登录您的 Turbonomic 实例。

    2. 在浏览器的地址栏中,将 URL 改为 https://{your_instance_address}/swagger/#/Authorization/createClient

      例如,将 URL 改为 https://my-instance.com/swagger/#/Authorization/createClient

    3. 单击 " 试用 "。

    4. 车身部分 ,用以下请求替换示例请求。 此请求包含生成OAuth 2.0 凭证所需的所有参数。

      注:

      您可以为 "clientName" 指定一个不同的值,以便轻松识别凭据,但其他值应保持不变。

      {
        "clientName": "turbo",
        "grantTypes": [
          "client_credentials"
        ],
        "clientAuthenticationMethods": [
          "client_secret_post"
        ],
        "scopes": [
          "role:PROBE_ADMIN"
        ],
        "tokenSettings": {
          "accessToken": {
            "ttlSeconds": 600
          }
        }
      }
    5. 点击 “执行 ”,然后滚动到 “服务器响应 ”部分。 如果凭证生成成功,将显示 200 的响应。

    6. 在回复中找到并记录 clientIDclientSecret 的凭据。 关闭API后,这些凭证将无法找回,因此请务必记录下来。

  3. 在您之前任务中创建的项目中,导航到 “工作负载”>“机密 ”。

  4. 点击创建并选择密钥/值密文

  5. 配置以下设置:

    • 私钥名称

      指定默认名称 turbonomic-credentials

      重要提示: 建议您使用默认名称,因为其他Prometurbo资源中也指定了相同的名称。 使用不同的名称可能会导致部署问题。
    • 键/值对 clientID

      • 请指定客户编号

      • 请发送邮件至 clientIDRed Hat OpenShift 在您创建密码后,会自动将数值转换为 Base64。

    • 键/值对 clientSecret

      • 请输入客户密码

      • 请发送邮件至 clientSecretRed Hat OpenShift 在您创建密码后,会自动将数值转换为 Base64。

  6. 单击创建

从 OperatorHub

  1. 导航至运营商 > OperatorHub

  2. 在搜索栏中搜索“Prometurbo Operator”。

  3. 选择Prometurbo Operator 的认证版本 ,并确认您要使用的图像版本。

    Prometurbo使用基于Go的运算符,以实现Prometurbo部署的自动更改。 该操作员无需手动更新或删除资源。

    注:

    请勿使用社区版

  4. 单击安装。 基本安装是操作员唯一可用的选项。

  5. 配置以下设置:

    • 安装方式

      选择集群上的特定命名空间

    • 已安装的命名空间

      选择您在上一任务中为Prometurbo创建的项目。

    • 核准策略

      选择自动更新 ,以便在发布新的 Turbonomic 版本时自动更新Prometurbo。 否则请选择 “手动 ”。

      注:

      如果您选择 “手动 ”,请在收到 OperatorHub 的提示时更新操作员。

    注:

    稳定通道是普遍可用产品。 测试版频道是候选发布版本,除非得到指示,否则不应使用。

    操作员负责安装。 请耐心等待安装完成。

  6. 安装完成后,请检查以下内容:

    • 以下资源已创建。

      名称 种类 状态 API 版本
      prometurbo-operator.vx.x.x ClusterServiceVersion 创建时间 operators.coreos.com/v1alpha1
      prometurbos.charts.helm.k8s.io CustomResourceDefinition 已存在 apiextensions.k8s.io/v1
      prometurbo-operator ServiceAccount 已存在 core/v1
      prometurbo-operator.vx.x.x-xxxxxxxx ClusterRole 创建时间 rbac.authorization.k8s.io/v1
      prometurbo-operator.vx.x.x-xxxxxxxx ClusterRoleBinding 创建时间 rbac.authorization.k8s.io/v1
    • 以下导航选项卡可供选择 ——详情 、YAML订阅 、活动 、Prometurbo运算符

  7. 点击 “查看操作员” 创建实例。 这个实例是Prometurbo代理,将被部署到指定的集群中。

    注:

    将为 prometurbo-operator 创建集群角色,以授予其为 Prometurbo 实例创建必需集群角色的许可权。

创建实例

  1. 在“Prometurbo 操作员”页面中,打开 “详细信息”选项卡 ,然后点击 “创建实例 ”。

  2. 选择表单视图YAML视图 ,然后指定后续步骤中描述的最低要求参数。

    提示:

    使用 YAML视图进行完全编辑控制。

  3. 请指定您的 Turbonomic 实例的地址,例如 https://10.1.1.1https://myinstance.com

    YAML 视图 表格视图
      serverMeta:
        turboServer: {your_instance_address}
    部分并更新 serverMeta 部分并更新 turboServer 字段。
  4. 指定将在Turbonomic用户界面中显示的集群名称。 不允许使用空格。

    YAML 视图 表格视图
      targetName: {your_cluster_name}
    部分并更新 targetConfig 部分并更新 targetName 字段。

    以下示例显示了具有 Prometurbo 参数的 YAML 资源。

    apiVersion: charts.helm.k8s.io/v1
    kind: Prometurbo
    metadata:
      name: prometurbo-release
      namespace: turbo
    spec:
      image:
        prometurboTag: 8.18.0
        turbodifTag: 8.18.0
        pullPolicy: Always
      restAPIConfig:
        turbonomicCredentialsSecretName: turbonomic-credentials
      roleBinding: prometurbo-binding
      roleName: prometurbo
      serverMeta:
        turboServer: 'https://10.1.1.1'
        version: 8.18.0
      serviceAccountName: prometurbo
      targetName: my_cluster_name
  5. (可选)如果您需要调整或指定其他参数,请参阅本主题最后一部分“Prometurbo自定义资源值”。

  6. 单击创建

验证部署

  1. 验证 prometurbo pod 是否已启动并正在运行。

    oc -n turbo get po | grep prometurbo

    以下示例结果指示 pod 已部署且当前正在运行。

    prometurbo-operator-6ffc566f4c-lwbcn       1/1     Running   0          5d23h
    prometurbo-release-744947bb94-kqc2b        2/2     Running   0          5d20h
  2. 打开 Turbonomic 用户界面,导航至设置 > 目标配置。 如果部署成功,那么会在列表中显示新的 Prometheus 目标。

Prometurbo自定义资源值

下表描述了在Prometurbo自定义资源中可以指定的值,用于配置您的部署。

有关模式,请参阅 Prometurbo CRD

参数 描述 缺省值
args.discoveryIntervalSec

发现间隔(以秒为单位)

600
args.ignoreCommodityIfPresent 指定当 Turbonomic中已存在相同类型的商品时,是否忽略合并商品。 false
args.logginglevel prometurbo 的日志记录级别 2
image.prometurboRepository prometurbo 容器映像存储库 icr.io/cpopen/turbonomic/prometurbo
image.prometurboTag prometurbo 容器映像标记 默认值会自动匹配操作员版本,例如 8.18.0
image.pullPolicy 指定 IfNotPresentAlways IfNotPresent
image.imagePullSecret

用于向容器镜像注册表验证的密钥

image.turbodifRepository turbodif 容器映像存储库 icr.io/cpopen/turbonomic/turbodif
image.turbodifTag turbodif 容器映像标记 默认值会自动匹配操作员版本,例如 8.18.0
logging.level 记录级别。 高于默认值的数值会增加日志记录。 更改数值无需重启Prometurbo,但需要一分钟左右的时间生效。 2
restAPIConfig.opsManagerPassword 用于登录到 Turbonomic的密码。 如果不使用私钥,那么需要密码。
restAPIConfig.opsManagerUserName 用于登录到 Turbonomic的用户名。 如果不使用私钥,那么用户名是必需的。
restAPIConfig.turbonomicCredentialsSecretName Kubernetes 密码,包含 Turbonomic 证书。 turbonomic-credentials
roleBinding serviceAccount 绑定到 clusterroleclusterrolebinding 的名称 prometurbo-binding
roleName clusterrole 绑定到 serviceAccount。 如果您更改了默认值,则系统会提示您输入现有的 clusterRole prometurbo
sdkProtocolConfig.registrationTimeoutSec 等待 Turbonomic 注册响应的时间(以秒为单位) 300
sdkProtocolConfig.restartOnRegistrationTimeout

注册超时时重启探测容器。

false
serverMeta.turboServer 潮汐工程学 URL {your_instance_address}, such as https://10.1.1.1 or https://myinstance.com
serverMeta.version 涡轮工程学 版本 默认值会自动匹配操作员版本,例如 8.18.0
serviceAccountName prometurbo pod 使用的 serviceAccount 的名称 prometurbo
targetAddress (可选)注册目标地址 http://127.0.0.1:8081/metrics
targetName 标识此目标的唯一名称 Prometheus