4.2. 安装 Loki Operator
从软件目录中安装支持的 Loki Operator 版本以启用安全 LokiStack 实例,它为网络可观察性提供自动集群身份验证和授权。
Loki Operator 版本 6.0+ 是 Network Observability 支持的 Loki Operator 版本。这些版本提供了使用 openshift-network 租户配置模式创建 LokiStack 实例的功能,并为 Network Observability 提供完全自动的、集群身份验证和授权支持。
先决条件
- 有管理员权限。
- 访问 OpenShift Container Platform web 控制台。
- 您可以访问受支持的对象存储。例如:AWS S3、Google Cloud Storage、Azure、Swift、Minio 或 OpenShift Data Foundation。
流程
-
在 OpenShift Container Platform Web 控制台中,点 Ecosystem
Software Catalog。 - 从可用的 Operator 列表中选择 Loki Operator,然后点 Install。
- 在 Installation Mode 下,选择 All namespaces on the cluster。
验证
-
验证您安装了 Loki Operator。访问 Ecosystem
Installed Operators 页,并查找 Loki Operator。 - 验证 Loki Operator 是否在所有项目中 Status 为 Succeeded。
要卸载 Loki,请参考与用来安装 Loki 的方法相关的卸载过程。您可能会有剩余的 ClusterRole 和 ClusterRoleBindings、存储在对象存储中的数据,以及需要被删除的持久性卷。
4.2.1. 为 Loki 存储创建 secret 复制链接链接已复制到粘贴板!
使用云存储凭证(如 Amazon Web Services (AWS))创建 secret,以允许 Loki Operator 访问日志持久性所需的对象存储。
Loki Operator 支持几个日志存储选项,如 AWS S3、Google Cloud Storage、Azure、Swift、Minio、OpenShift Data Foundation。以下示例演示了如何为 AWS S3 存储创建 secret。本例中创建的 secret loki-s3 在"Creating a LokiStack custom resource"中引用。您可以通过 web 控制台或 CLI 中创建此 secret。
流程
-
使用 Web 控制台,进入到 Project
All Projects 下拉菜单,再选择 Create Project。 -
将项目命名为
netobserv,再点 Create。 使用右上角的 Import 图标 +。将 YAML 文件粘贴到编辑器中。
下面显示了一个 S3 存储的 secret YAML 文件示例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 本文档中的安装示例在所有组件中使用相同的命名空间
netobserv。您可以选择将不同的命名空间用于不同的组件
验证
-
创建 secret 后,您可以查看 web 控制台中的 Workloads
Secrets 下列出的 secret。
4.2.2. 创建 LokiStack 自定义资源 复制链接链接已复制到粘贴板!
使用 Web 控制台或 OpenShift CLI (oc) 部署 LokiStack 自定义资源,确保为 Loki 对象存储配置正确的命名空间、部署大小和 secret 名称。
您可以部署 LokiStack 自定义资源 (CR) 来创建命名空间或新项目。
流程
-
进入到 Ecosystem
Installed Operators,从 Project 下拉菜单中选择 All projects。 - 查找 Loki Operator。在详情的 Provided APIs 下,选择 LokiStack。
- 点 Create LokiStack。
确保在 Form View 或 YAML 视图中指定以下字段:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 点 Create。
4.2.3. 为 cluster-admin 用户角色创建新组 复制链接链接已复制到粘贴板!
以 cluster-admin 用户身份查询多个命名空间的应用程序日志,其中集群中所有命名空间的字符总和大于 5120,会导致错误 Parse error: input size too long (XXXX > 5120)。为了更好地控制 LokiStack 中日志的访问,请使 cluster-admin 用户成为 cluster-admin 组的成员。如果 cluster-admin 组不存在,请创建它并将所需的用户添加到其中。
使用以下步骤为具有 cluster-admin 权限的用户创建新组。
流程
输入以下命令创建新组:
oc adm groups new cluster-admin
$ oc adm groups new cluster-adminCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令将所需的用户添加到
cluster-admin组中:oc adm groups add-users cluster-admin <username>
$ oc adm groups add-users cluster-admin <username>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令在组中添加
cluster-admin用户角色:oc adm policy add-cluster-role-to-group cluster-admin cluster-admin
$ oc adm policy add-cluster-role-to-group cluster-admin cluster-adminCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.2.4. 自定义 admin 组访问 复制链接链接已复制到粘贴板!
如果您需要看到集群范围的日志,而不一定是管理员,或者已经定义了想要使用的组,您可以使用 adminGroup 字段指定自定义组。属于 LokiStack 自定义资源(CR) 的 adminGroups 字段中指定的组成员的用户,具有与管理员相同的读取访问权限。
如果管理员还分配了 cluster-logging-application-view 角色,则管理员用户可以访问所有命名空间中的所有应用程序日志。
管理员用户有权访问整个集群中的所有网络日志。
LokiStack CR 示例
4.2.5. Loki 部署大小 复制链接链接已复制到粘贴板!
Loki 的大小使用 1x.<size> 格式,其中值 1x 是实例数量,<size> 指定性能功能。
对于部署大小,无法更改 1x 值。
| 1x.demo | 1x.extra-small | 1x.small | 1x.medium | |
|---|---|---|---|---|
| 数据传输 | 仅用于演示 | 100GB/day | 500GB/day | 2TB/day |
| 每秒查询数 (QPS) | 仅用于演示 | 1-25 QPS at 200ms | 25-50 QPS at 200ms | 25-75 QPS at 200ms |
| 复制因子 | None | 2 | 2 | 2 |
| 总 CPU 请求 | None | 14 个 vCPU | 34 个 vCPU | 54 个 vCPU |
| 内存请求总数 | None | 31Gi | 67Gi | 139Gi |
| 磁盘请求总数 | 40Gi | 430Gi | 430Gi | 590Gi |
4.2.6. LokiStack ingestion 限制和健康警报 复制链接链接已复制到粘贴板!
LokiStack 实例包括默认的 ingestion 和查询限制,管理员可覆盖这些限制来管理性能并防止系统警报或错误。
如果您在 Console 插件中或 flowlogs-pipeline 日志中收到 Loki 错误,则可能需要更新 ingestion 和查询限制。
以下是配置的限制示例:
有关这些设置的更多信息,请参阅 LokiStack API 参考。