通过OperatorHub部署 Prometurbo
您可以在 Red Hat OpenShift OperatorHub 中使用经过认证的 Prometurbo 操作员,并配置可创建单个 Prometurbo 实例的自定义资源,从而部署 Prometurbo。
部署需求
查看 常规需求。
任务概述
要在 Red Hat OpenShiftOperatorHub 用户界面中,请执行以下操作:
在 Red Hat OpenShift 集群中创建一个项目,并在其中部署Prometurbo。
设置Prometurbo的密码和证书。
启用Prometurbo操作员。
使用表单或YAML方法创建实例。
验证部署。
在集群中创建项目 Red Hat OpenShift 集群中
使用集群管理员权限在 Red Hat OpenShift 集群中创建一个项目,并在其中部署Prometurbo。
登录到 Red Hat OpenShift 控制台,然后浏览到 主页> 项目。
单击创建项目。
请指定项目名称。 可选,请指定显示名称和描述。
以下示例创建了一个名为
turbo的项目。apiVersion: v1 kind: Namespace metadata: name: turbo单击创建。
设置Prometurbo的密码和证书
Prometurbo使用 OAuth 2.0 clientId 和 clientSecret 连接到 Turbonomic ,并以 Base64 格式将这些凭证存储在一个秘密中。
在您将要部署 Prometurbo 的命名空间或项目中,检查
turbonomic-credentials密钥是否存在。kubectl -n turbo get secret turbonomic-credentials如果存在秘密,请找回OAuth 2.0 凭证。
运行以下命令:
kubectl -n turbo get secret turbonomic-credentials -o yaml | grep "^data:$" -A2在输出中,记录
clientid和clientSecret凭证,然后继续下一步。
如果秘密不存在,请先创建OAuth 2.0 凭证。
使用 Turbonomic API 创建和管理 OAuth 2.0 客户端凭据。 这些凭据比从 Turbonomic用户界面创建的本地账户凭据更安全。
要创建OAuth 2.0 客户端凭证,请执行以下步骤:
登录您的 Turbonomic 实例。
在浏览器的地址栏中,将 URL 改为
https://{your_instance_address}/swagger/#/Authorization/createClient。例如,将 URL 改为
https://my-instance.com/swagger/#/Authorization/createClient。单击 " 试用 "。
在车身部分 ,用以下请求替换示例请求。 此请求包含生成OAuth 2.0 凭证所需的所有参数。
注:您可以为
"clientName"指定一个不同的值,以便轻松识别凭据,但其他值应保持不变。{ "clientName": "turbo", "grantTypes": [ "client_credentials" ], "clientAuthenticationMethods": [ "client_secret_post" ], "scopes": [ "role:PROBE_ADMIN" ], "tokenSettings": { "accessToken": { "ttlSeconds": 600 } } }点击 “执行 ”,然后滚动到 “服务器响应 ”部分。 如果凭证生成成功,将显示
200的响应。在回复中找到并记录
clientID和clientSecret的凭据。 关闭API后,这些凭证将无法找回,因此请务必记录下来。
在您之前任务中创建的项目中,导航到 “工作负载”>“机密 ”。
点击创建并选择密钥/值密文。
配置以下设置:
私钥名称
指定默认名称
turbonomic-credentials。重要提示: 建议您使用默认名称,因为其他Prometurbo资源中也指定了相同的名称。 使用不同的名称可能会导致部署问题。键/值对
clientID键
请指定客户编号。
值
请发送邮件至
clientID。 Red Hat OpenShift 在您创建密码后,会自动将数值转换为 Base64。
键/值对
clientSecret键
请输入客户密码。
值
请发送邮件至
clientSecret。 Red Hat OpenShift 在您创建密码后,会自动将数值转换为 Base64。
单击创建。
从 OperatorHub
导航至运营商 > OperatorHub。
在搜索栏中搜索“Prometurbo Operator”。
选择Prometurbo Operator 的认证版本 ,并确认您要使用的图像版本。
Prometurbo使用基于Go的运算符,以实现Prometurbo部署的自动更改。 该操作员无需手动更新或删除资源。
注:请勿使用社区版。
单击安装。 基本安装是操作员唯一可用的选项。
配置以下设置:
安装方式
选择集群上的特定命名空间。
已安装的命名空间
选择您在上一任务中为Prometurbo创建的项目。
核准策略
选择自动更新 ,以便在发布新的 Turbonomic 版本时自动更新Prometurbo。 否则请选择 “手动 ”。
注:如果您选择 “手动 ”,请在收到 OperatorHub 的提示时更新操作员。
注:稳定通道是普遍可用产品。 测试版频道是候选发布版本,除非得到指示,否则不应使用。
操作员负责安装。 请耐心等待安装完成。
安装完成后,请检查以下内容:
以下资源已创建。
名称 种类 状态 API 版本 prometurbo-operator.vx.x.xClusterServiceVersion创建时间 operators.coreos.com/v1alpha1prometurbos.charts.helm.k8s.ioCustomResourceDefinition已存在 apiextensions.k8s.io/v1prometurbo-operatorServiceAccount已存在 core/v1prometurbo-operator.vx.x.x-xxxxxxxxClusterRole创建时间 rbac.authorization.k8s.io/v1prometurbo-operator.vx.x.x-xxxxxxxxClusterRoleBinding创建时间 rbac.authorization.k8s.io/v1以下导航选项卡可供选择 ——详情 、YAML、 订阅 、活动 、Prometurbo运算符。
点击 “查看操作员” 创建实例。 这个实例是Prometurbo代理,将被部署到指定的集群中。
注:将为
prometurbo-operator创建集群角色,以授予其为 Prometurbo 实例创建必需集群角色的许可权。
创建实例
在“Prometurbo 操作员”页面中,打开 “详细信息”选项卡 ,然后点击 “创建实例 ”。
选择表单视图或 YAML视图 ,然后指定后续步骤中描述的最低要求参数。
提示:使用 YAML视图进行完全编辑控制。
请指定您的 Turbonomic 实例的地址,例如
https://10.1.1.1或https://myinstance.com。YAML 视图 表格视图 serverMeta: turboServer: {your_instance_address}部分并更新 serverMeta 部分并更新 turboServer 字段。 指定将在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(可选)如果您需要调整或指定其他参数,请参阅本主题最后一部分“Prometurbo自定义资源值”。
单击创建。
验证部署
验证
prometurbopod 是否已启动并正在运行。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打开 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 |
指定 IfNotPresent 或 Always。 |
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 绑定到 clusterrole 的 clusterrolebinding 的名称 |
prometurbo-binding |
roleName |
clusterrole 绑定到 serviceAccount。 如果您更改了默认值,则系统会提示您输入现有的 clusterRole 。 |
prometurbo |
sdkProtocolConfig.registrationTimeoutSec |
等待 Turbonomic 注册响应的时间(以秒为单位) | 300 |
sdkProtocolConfig.restartOnRegistrationTimeout |
注册超时时重启探测容器。 |
false |
serverMeta.turboServer |
潮汐工程学 URL | {your_instance_address}, such as |
serverMeta.version |
涡轮工程学 版本 | 默认值会自动匹配操作员版本,例如 8.18.0。 |
serviceAccountName |
prometurbo pod 使用的 serviceAccount 的名称 |
prometurbo |
targetAddress |
(可选)注册目标地址 | http://127.0.0.1:8081/metrics |
targetName |
标识此目标的唯一名称 | Prometheus |