10.4. 使用 Red Hat OpenShift Service on AWS CLI 安装日志记录 Operator
要在 AWS 集群上安装和配置日志记录,必须安装额外的 Operator。这可以通过 Red Hat OpenShift Service on AWS CLI 完成。
Red Hat OpenShift Service on AWS Operator 使用自定义资源(CR)来管理应用程序及其组件。高级配置和设置由 CR 中的用户提供。Operator 根据 Operator 逻辑中嵌入的最佳实践,将高级别指令转换为低级操作。自定义资源定义(CRD)定义了一个 CR,并列出 Operator 用户可用的所有配置。安装 Operator 会创建 CRD,然后用于生成 CR。
先决条件
- 支持的对象存储(AWS S3, Google Cloud Storage, Azure, Swift, Minio, OpenShift Data Foundation)
流程
通过创建以下对象来安装
Loki Operator
:使用以下模板创建一个 Subscription 对象 YAML 文件(如
olo-sub.yaml
)为 Loki Operator 订阅命名空间:$ oc create -f <file-name>.yaml
apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: loki-operator namespace: openshift-operators-redhat 1 spec: charsion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: loki-operator namespace: openshift-operators-redhat 2 spec: channel: stable 3 name: loki-operator source: redhat-operators 4 sourceNamespace: openshift-marketplace
创建 LokiStack 实例:
使用以下模板创建实例对象 YAML 文件(如
logging-loki.yaml
):$ oc create -f <file-name>.yaml
apiVersion: loki.grafana.com/v1 kind: LokiStack metadata: name: logging-loki namespace: openshift-logging spec: size: 1x.small 1 storage: schemas: - version: v12 effectiveDate: "2022-06-01" secret: name: logging-loki-s3 2 type: s3 3 storageClassName: <storage_class_name> 4 tenants: mode: openshift-logging
通过创建以下对象来安装
Red Hat OpenShift Logging
Operator:使用以下模板创建 Operator Group 对象 YAML 文件(如
olo-og.yaml
):$ oc create -f <file-name>.yaml
apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: cluster-logging namespace: openshift-logging 1 spec: targetNamespaces: - openshift-logging
- 1
- 您必须指定
openshift-logging
命名空间。
使用以下模板创建一个 Subscription 对象 YAML 文件(如
olo-sub.yaml
)为 Red Hat OpenShift Logging Operator 订阅命名空间:$ oc create -f <file-name>.yaml
apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: cluster-logging namespace: openshift-logging 1 spec: channel: stable 2 name: cluster-logging source: redhat-operators 3 sourceNamespace: openshift-marketplace
验证 Operator 安装。
openshift-logging
命名空间中应该有一个 Red Hat OpenShift Logging Operator。版本号可能与显示的不同。$ oc get csv -n openshift-logging
输出示例
NAME DISPLAY VERSION REPLACES PHASE cluster-logging.v5.7.4 Red Hat OpenShift Logging 5.7.4 cluster-logging.v5.7.3 Succeeded
创建 OpenShift Logging 实例:
使用以下模板创建实例对象 YAML 文件(如
olo-instance.yaml
):$ oc create -f <file-name>.yaml
apiVersion: logging.openshift.io/v1 kind: ClusterLogging metadata: name: instance namespace: openshift-logging spec: logStore: type: lokistack lokistack: name: logging-loki collection: type: vector
通过列出 openshift-logging 项目中的 pod 来验证安装。
对于 Logging subsystem 的组件,应使用多个 pod,类似于以下列表:
$ oc get pods -n openshift-logging
输出示例
$ oc get pods -n openshift-logging NAME READY STATUS RESTARTS AGE cluster-logging-operator-fb7f7cf69-8jsbq 1/1 Running 0 98m collector-222js 2/2 Running 0 18m collector-g9ddv 2/2 Running 0 18m collector-hfqq8 2/2 Running 0 18m collector-sphwg 2/2 Running 0 18m collector-vv7zn 2/2 Running 0 18m collector-wk5zz 2/2 Running 0 18m logging-view-plugin-6f76fbb78f-n2n4n 1/1 Running 0 18m lokistack-sample-compactor-0 1/1 Running 0 42m lokistack-sample-distributor-7d7688bcb9-dvcj8 1/1 Running 0 42m lokistack-sample-gateway-5f6c75f879-bl7k9 2/2 Running 0 42m lokistack-sample-gateway-5f6c75f879-xhq98 2/2 Running 0 42m lokistack-sample-index-gateway-0 1/1 Running 0 42m lokistack-sample-ingester-0 1/1 Running 0 42m lokistack-sample-querier-6b7b56bccc-2v9q4 1/1 Running 0 42m lokistack-sample-query-frontend-84fb57c578-gq2f7 1/1 Running 0 42m