1.2. 使用 CLI 安装


以下小节介绍了使用 CLI 安装 Loki Operator 和 Red Hat OpenShift Logging Operator。

1.2.1. 使用 CLI 安装 Loki Operator

在 OpenShift Container Platform 集群上安装 Loki Operator,以使用 OpenShift Container Platform 命令行界面(CLI)管理日志存储 Loki。您可以通过与 Loki Operator 协调资源 LokiStack 来部署和配置 Loki 日志存储。

先决条件

  • 有管理员权限。
  • 已安装 OpenShift CLI(oc)。
  • 您可以访问受支持的对象存储。例如:AWS S3、Google Cloud Storage、Azure、Swift、Minio 或 OpenShift Data Foundation。

流程

  1. 为 Loki Operator 创建一个 Namespace 对象:

    Namespace 对象示例

    apiVersion: v1
    kind: Namespace
    metadata:
      name: openshift-operators-redhat 
    1
    
      labels:
        openshift.io/cluster-monitoring: "true" 
    2
    Copy to Clipboard Toggle word wrap

    1
    您必须将 openshift-operators-redhat 指定为命名空间。要为 Operator 启用监控,请将 Cluster Monitoring Operator 配置为从 openshift-operators-redhat 命名空间中提取指标,而不是从 openshift-operators 命名空间中提取指标。openshift-operators 命名空间可能会包含社区 operator,这些 operator 不被信任,并可能会发布与 OpenShift Container Platform 指标相同的名称,从而导致冲突。
    2
    指定所示的标签的字符串值,以确保集群监控提取 openshift-operators-redhat 命名空间。
  2. 运行以下命令来应用 Namespace 对象:

    $ oc apply -f <filename>.yaml
    Copy to Clipboard Toggle word wrap
  3. 创建 OperatorGroup 对象。

    OperatorGroup 对象示例

    apiVersion: operators.coreos.com/v1
    kind: OperatorGroup
    metadata:
      name: loki-operator
      namespace: openshift-operators-redhat 
    1
    
    spec:
      upgradeStrategy: Default
    Copy to Clipboard Toggle word wrap

    1
    您必须将 openshift-operators-redhat 指定为命名空间。
  4. 运行以下命令来应用 OperatorGroup 对象:

    $ oc apply -f <filename>.yaml
    Copy to Clipboard Toggle word wrap
  5. 为 Loki Operator 创建一个 Subscription 对象:

    Subscription 对象示例

    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      name: loki-operator
      namespace: openshift-operators-redhat 
    1
    
    spec:
      channel: stable-6.<y> 
    2
    
      installPlanApproval: Automatic 
    3
    
      name: loki-operator
      source: redhat-operators 
    4
    
      sourceNamespace: openshift-marketplace
    Copy to Clipboard Toggle word wrap

    1
    您必须将 openshift-operators-redhat 指定为命名空间。
    2
    指定 stable-6.<y > 作为频道。
    3
    如果订阅中的批准策略被设置为 Automatic,则更新过程会在所选频道中提供新的 Operator 版本时立即启动。如果批准策略设为 Manual,则必须手动批准待处理的更新。
    4
    指定 redhat-operators 作为值。如果 OpenShift Container Platform 集群安装在受限网络中(也称为断开连接的集群),请指定配置 Operator Lifecycle Manager (OLM)时创建的 CatalogSource 对象的名称。
  6. 运行以下命令来应用 Subscription 对象:

    $ oc apply -f <filename>.yaml
    Copy to Clipboard Toggle word wrap
  7. 创建用于部署 LokiStack 的命名空间 对象:

    namespace 对象示例

    apiVersion: v1
    kind: Namespace
    metadata:
      name: openshift-logging 
    1
    
      labels:
        openshift.io/cluster-monitoring: "true" 
    2
    Copy to Clipboard Toggle word wrap

    1
    openshift-logging 命名空间适用于所有日志记录工作负载。
    2
    指定标签的字符串值,以确保集群监控提取 openshift-logging 命名空间。
  8. 运行以下命令来应用 namespace 对象:

    $ oc apply -f <filename>.yaml
    Copy to Clipboard Toggle word wrap
  9. 使用凭据创建 secret 以访问对象存储。例如,创建一个 secret 以访问 Amazon Web Services (AWS) s3。

    Secret 对象示例

    apiVersion: v1
    kind: Secret
    metadata:
      name: logging-loki-s3 
    1
    
      namespace: openshift-logging
    stringData: 
    2
    
      access_key_id: <access_key_id>
      access_key_secret: <access_secret>
      bucketnames: s3-bucket-name
      endpoint: https://s3.eu-central-1.amazonaws.com
      region: eu-central-1
    Copy to Clipboard Toggle word wrap

    1
    使用名称 logging-loki-s3 与 LokiStack 中使用的名称匹配。
    2
    有关 secret 的内容,请参阅 Loki 对象存储部分。
    重要

    如果没有在 s3 存储桶或 LokiStack 自定义资源 (CR) 中定义保留周期,则不会修剪日志,它们会永久保留在 s3 存储桶中,这可能会填满 s3 存储。

  10. 运行以下命令来应用 Secret 对象:

    $ oc apply -f <filename>.yaml
    Copy to Clipboard Toggle word wrap
  11. 创建 LokiStack CR:

    LokiStack CR 示例

    apiVersion: loki.grafana.com/v1
    kind: LokiStack
    metadata:
      name: logging-loki 
    1
    
      namespace: openshift-logging 
    2
    
    spec:
      size: 1x.small 
    3
    
      storage:
        schemas:
        - version: v13
          effectiveDate: "<yyyy>-<mm>-<dd>" 
    4
    
        secret:
          name: logging-loki-s3 
    5
    
          type: s3 
    6
    
      storageClassName: <storage_class_name> 
    7
    
      tenants:
        mode: openshift-logging 
    8
    Copy to Clipboard Toggle word wrap

    1
    使用名称 logging-loki
    2
    您必须将 openshift-logging 指定为命名空间。
    3
    指定部署大小。Loki 生产实例支持的大小选项为 1x.extra-small1x.small1x.medium。另外,从 logging 6.1 开始支持 1x.pico
    4
    对于新安装,这个日期应设置为 "yesterday",因为这是 schema 生效的日期。
    5
    指定日志存储 secret 的名称。
    6
    指定对应的存储类型。
    7
    为临时存储指定存储类的名称。为获得最佳性能,请指定分配块存储的存储类。您可以使用 oc get storageclasses 命令列出集群的可用存储类。
    8
    openshift-logging 模式是默认租期模式,其中为日志类型创建一个租户,如 audit、infrastructure 和 application。这为单个用户和用户组启用对不同的日志流的访问控制。
  12. 运行以下命令来应用 LokiStack CR 对象:

    $ oc apply -f <filename>.yaml
    Copy to Clipboard Toggle word wrap

验证

  • 运行以下命令来验证安装。

    $ oc get pods -n openshift-logging
    Copy to Clipboard Toggle word wrap

    输出示例

    $ oc get pods -n openshift-logging
    NAME                                               READY   STATUS    RESTARTS   AGE
    logging-loki-compactor-0                           1/1     Running   0          42m
    logging-loki-distributor-7d7688bcb9-dvcj8          1/1     Running   0          42m
    logging-loki-gateway-5f6c75f879-bl7k9              2/2     Running   0          42m
    logging-loki-gateway-5f6c75f879-xhq98              2/2     Running   0          42m
    logging-loki-index-gateway-0                       1/1     Running   0          42m
    logging-loki-ingester-0                            1/1     Running   0          42m
    logging-loki-querier-6b7b56bccc-2v9q4              1/1     Running   0          42m
    logging-loki-query-frontend-84fb57c578-gq2f7       1/1     Running   0          42m
    Copy to Clipboard Toggle word wrap

1.2.2. 使用 CLI 安装 Red Hat OpenShift Logging Operator

在 OpenShift Container Platform 集群上安装 Red Hat OpenShift Logging Operator,以使用 OpenShift CLI (oc)收集日志并将日志转发到日志存储。

先决条件

  • 有管理员权限。
  • 已安装 OpenShift CLI(oc)。
  • 已安装并配置了 Loki Operator。
  • 您已创建了 openshift-logging 命名空间。

流程

  1. 创建一个 OperatorGroup 对象:

    OperatorGroup 对象示例

    apiVersion: operators.coreos.com/v1
    kind: OperatorGroup
    metadata:
      name: cluster-logging
      namespace: openshift-logging 
    1
    
    spec:
      upgradeStrategy: Default
    Copy to Clipboard Toggle word wrap

    1
    您必须将 openshift-logging 指定为命名空间。
  2. 运行以下命令来应用 OperatorGroup 对象:

    $ oc apply -f <filename>.yaml
    Copy to Clipboard Toggle word wrap
  3. 为 Red Hat OpenShift Logging Operator 创建 Subscription 对象:

    Subscription 对象示例

    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      name: cluster-logging
      namespace: openshift-logging 
    1
    
    spec:
      channel: stable-6.<y> 
    2
    
      installPlanApproval: Automatic 
    3
    
      name: cluster-logging
      source: redhat-operators 
    4
    
      sourceNamespace: openshift-marketplace
    Copy to Clipboard Toggle word wrap

    1
    您必须将 openshift-logging 指定为命名空间。
    2
    指定 stable-6.<y > 作为频道。
    3
    如果订阅中的批准策略被设置为 Automatic,则更新过程会在所选频道中提供新的 Operator 版本时立即启动。如果批准策略设为 Manual,则必须手动批准待处理的更新。
    4
    指定 redhat-operators 作为值。如果 OpenShift Container Platform 集群安装在受限网络中(也称为断开连接的集群),请指定配置 Operator Lifecycle Manager (OLM)时创建的 CatalogSource 对象的名称。
  4. 运行以下命令来应用 Subscription 对象:

    $ oc apply -f <filename>.yaml
    Copy to Clipboard Toggle word wrap
  5. 创建日志收集器要使用的服务帐户:

    $ oc create sa logging-collector -n openshift-logging
    Copy to Clipboard Toggle word wrap
  6. 为收集器的服务帐户分配所需的权限,以便能够收集和转发日志。在本例中,收集器提供从基础架构和应用程序日志收集日志的权限。

    $ oc adm policy add-cluster-role-to-user logging-collector-logs-writer -z logging-collector -n openshift-logging
    $ oc adm policy add-cluster-role-to-user collect-application-logs -z logging-collector -n openshift-logging
    $ oc adm policy add-cluster-role-to-user collect-infrastructure-logs -z logging-collector -n openshift-logging
    Copy to Clipboard Toggle word wrap
  7. 创建 ClusterLogForwarder CR:

    ClusterLogForwarder CR 示例

    apiVersion: observability.openshift.io/v1
    kind: ClusterLogForwarder
    metadata:
      name: instance
      namespace: openshift-logging 
    1
    
    spec:
      serviceAccount:
        name: logging-collector 
    2
    
      outputs:
      - name: lokistack-out
        type: lokiStack 
    3
    
        lokiStack:
          target: 
    4
    
            name: logging-loki
            namespace: openshift-logging
          authentication:
            token:
              from: serviceAccount
        tls:
          ca:
            key: service-ca.crt
            configMapName: openshift-service-ca.crt
      pipelines:
      - name: infra-app-logs
        inputRefs: 
    5
    
        - application
        - infrastructure
        outputRefs:
        - lokistack-out
    Copy to Clipboard Toggle word wrap

    1
    您必须指定 openshift-logging 命名空间。
    2
    指定之前创建的服务帐户的名称。
    3
    选择 lokiStack 输出类型,将日志发送到 LokiStack 实例。
    4
    ClusterLogForwarder 指向之前创建的 LokiStack 实例。
    5
    选择您要发送到 LokiStack 实例的日志输出类型。
  8. 运行以下命令来应用 ClusterLogForwarder CR 对象:

    $ oc apply -f <filename>.yaml
    Copy to Clipboard Toggle word wrap

验证

  1. 运行以下命令来验证安装。

    $ oc get pods -n openshift-logging
    Copy to Clipboard Toggle word wrap

    输出示例

    $ oc get pods -n openshift-logging
    NAME                                               READY   STATUS    RESTARTS   AGE
    cluster-logging-operator-fb7f7cf69-8jsbq           1/1     Running   0          98m
    instance-222js                                     2/2     Running   0          18m
    instance-g9ddv                                     2/2     Running   0          18m
    instance-hfqq8                                     2/2     Running   0          18m
    instance-sphwg                                     2/2     Running   0          18m
    instance-vv7zn                                     2/2     Running   0          18m
    instance-wk5zz                                     2/2     Running   0          18m
    logging-loki-compactor-0                           1/1     Running   0          42m
    logging-loki-distributor-7d7688bcb9-dvcj8          1/1     Running   0          42m
    logging-loki-gateway-5f6c75f879-bl7k9              2/2     Running   0          42m
    logging-loki-gateway-5f6c75f879-xhq98              2/2     Running   0          42m
    logging-loki-index-gateway-0                       1/1     Running   0          42m
    logging-loki-ingester-0                            1/1     Running   0          42m
    logging-loki-querier-6b7b56bccc-2v9q4              1/1     Running   0          42m
    logging-loki-query-frontend-84fb57c578-gq2f7       1/1     Running   0          42m
    Copy to Clipboard Toggle word wrap

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat