10.2. 安装日志存储
您可以使用 OpenShift CLI (oc
)或 OpenShift Container Platform Web 控制台在 OpenShift Container Platform 集群上部署日志存储。
Logging 5.9 发行版本不包含 OpenShift Elasticsearch Operator 的更新版本。如果您目前使用随 Logging 5.8 发布的 OpenShift Elasticsearch Operator,它将继续使用 Logging,直到 Logging 5.8 的 EOL 为止。您可以使用 Loki Operator 作为 OpenShift Elasticsearch Operator 的替代方案来管理默认日志存储。如需有关日志记录生命周期日期的更多信息,请参阅平台 Agnostic Operator。
10.2.1. 部署 Loki 日志存储
您可以使用 Loki Operator 在 OpenShift Container Platform 集群中部署内部 Loki 日志存储。安装 Loki Operator 后,您必须通过创建一个 secret 来配置 Loki 对象存储,并创建一个 LokiStack
自定义资源(CR)。
10.2.1.1. 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 |
使用标尺的 CPU 请求总数 | None | 16 个 vCPU | 42 个 vCPU | 70 个 vCPU |
内存请求总数 | None | 31Gi | 67Gi | 139Gi |
使用规则器的内存请求总数 | None | 35Gi | 83Gi | 171Gi |
磁盘请求总数 | 40Gi | 430Gi | 430Gi | 590Gi |
使用标尺的磁盘请求总数 | 80Gi | 750Gi | 750Gi | 910Gi |
10.2.1.2. 使用 OpenShift Container Platform Web 控制台安装 Loki Operator
要在 OpenShift Container Platform 集群中安装和配置日志记录,必须安装额外的 Operator。这可以通过 web 控制台中的 Operator Hub 完成。
OpenShift Container Platform Operator 使用自定义资源(CR)来管理应用程序及其组件。高级配置和设置由 CR 中的用户提供。Operator 根据 Operator 逻辑中嵌入的最佳实践,将高级别指令转换为低级操作。自定义资源定义(CRD)定义了一个 CR,并列出 Operator 用户可用的所有配置。安装 Operator 会创建 CRD,然后用于生成 CR。
先决条件
- 您可以访问受支持的对象存储 (AWS S3、Google Cloud Storage、Azure、Swift、Minio、OpenShift Data Foundation)。
- 有管理员权限。
- 访问 OpenShift Container Platform web 控制台。
流程
-
在 OpenShift Container Platform Web 控制台 Administrator 视角中,进入 Operators
OperatorHub。 在 Filter by keyword 字段中输入 Loki Operator。点可用 Operator 列表中的 Loki Operator,然后点 Install。
重要红帽不支持 Community Loki Operator。
选择 stable 或 stable-x.y 作为 更新频道。
注意stable 频道只为日志记录的最新版本提供更新。要继续获得之前版本的更新,您必须将订阅频道改为 stable-x.y,其中
x.y
代表您安装的日志记录的主版本和次版本。例如,stable-5.7。Loki Operator 必须部署到全局 operator 组命名空间
openshift-operators-redhat
,因此已选择了 Installation mode 和 Installed Namespace。如果此命名空间不存在,则会为您创建它。选择 Enable operator-recommended cluster monitoring on this namespace。
这个选项在
Namespace
对象中设置openshift.io/cluster-monitoring: "true"
标签。您必须设置这个选项,以确保集群监控提取openshift-operators-redhat
命名空间。对于 Update approval,请选择 Automatic,然后点 Install。
如果订阅中的批准策略被设置为 Automatic,则更新过程会在所选频道中提供新的 Operator 版本时立即启动。如果批准策略设为 Manual,则必须手动批准待处理的更新。
验证
-
进入 Operators
Installed Operators。 - 确保已选中 openshift-logging 项目。
- 在 Status 列中,验证您看到了绿色的对勾标记,并为 InstallSucceeded,文本 Up to date。
Operator 可能会在安装完成前显示 Failed
状态。如果 Operator 安装完成并显示 InstallSucceeded
信息,请刷新页面。
10.2.1.3. 使用 Web 控制台为 Loki 对象存储创建 secret
要配置 Loki 对象存储,您必须创建一个 secret。您可以使用 OpenShift Container Platform Web 控制台创建 secret。
先决条件
- 有管理员权限。
- 访问 OpenShift Container Platform web 控制台。
- 已安装 Loki Operator。
流程
-
在 OpenShift Container Platform Web 控制台的 Administrator 视角中进入 Workloads
Secrets。 - 从 Create 下拉列表中选择 From YAML。
创建一个 secret,它使用
access_key_id
和access_key_secret
字段指定您的凭证和bucketnames
、endpoint
和region
字段来定义对象存储位置。AWS 在以下示例中使用:Secret
对象示例apiVersion: v1 kind: Secret metadata: name: logging-loki-s3 namespace: openshift-logging stringData: access_key_id: AKIAIOSFODNN7EXAMPLE access_key_secret: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY bucketnames: s3-bucket-name endpoint: https://s3.eu-central-1.amazonaws.com region: eu-central-1
其他资源
10.2.1.4. 使用 Web 控制台创建 LokiStack 自定义资源
您可以使用 OpenShift Container Platform Web 控制台创建 LokiStack
自定义资源(CR)。
先决条件
- 有管理员权限。
- 访问 OpenShift Container Platform web 控制台。
- 已安装 Loki Operator。
流程
-
进入 Operators
Installed Operators 页面。点 All instances 选项卡。 - 在 Create new 下拉列表中,选择 LokiStack。
选择 YAML 视图,然后使用以下模板来创建
LokiStack
CR:apiVersion: loki.grafana.com/v1 kind: LokiStack metadata: name: logging-loki 1 namespace: openshift-logging spec: size: 1x.small 2 storage: schemas: - version: v12 effectiveDate: '2022-06-01' secret: name: logging-loki-s3 3 type: s3 4 storageClassName: <storage_class_name> 5 tenants: mode: openshift-logging 6
- 1
- 使用名称
logging-loki
。 - 2
- 指定部署大小。在日志记录 5.8 及更新的版本中,Loki 实例支持的大小选项为
1x.extra-small
、1x.small
或1x.medium
。重要对于部署大小,无法更改
1x
值。 - 3
- 指定用于日志存储的 secret。
- 4
- 指定对应的存储类型。
- 5
- 为临时存储输入存储类的名称。为获得最佳性能,请指定分配块存储的存储类。可以使用
oc get storageclasses
命令列出集群的可用存储类。 - 6
- LokiStack 默认为以多租户模式运行,无法修改。为每个日志类型提供一个租户: audit、infrastructure 和 application logs。这为单个用户和用户组启用对不同的日志流的访问控制。
- 点 Create。
10.2.1.5. 使用 CLI 安装 Loki Operator
要在 OpenShift Container Platform 集群中安装和配置日志记录,必须安装额外的 Operator。这可以通过 OpenShift Container Platform CLI 完成。
OpenShift Container Platform Operator 使用自定义资源(CR)来管理应用程序及其组件。高级配置和设置由 CR 中的用户提供。Operator 根据 Operator 逻辑中嵌入的最佳实践,将高级别指令转换为低级操作。自定义资源定义(CRD)定义了一个 CR,并列出 Operator 用户可用的所有配置。安装 Operator 会创建 CRD,然后用于生成 CR。
先决条件
- 有管理员权限。
-
已安装 OpenShift CLI(
oc
)。 - 您可以访问受支持的对象存储。例如:AWS S3、Google Cloud Storage、Azure、Swift、Minio 或 OpenShift Data Foundation。
流程
创建
Subscription
对象:apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: loki-operator namespace: openshift-operators-redhat 1 spec: channel: stable 2 name: loki-operator source: redhat-operators 3 sourceNamespace: openshift-marketplace
应用
Subscription
对象:$ oc apply -f <filename>.yaml
10.2.1.6. 使用 CLI 为 Loki 对象存储创建 secret
要配置 Loki 对象存储,您必须创建一个 secret。您可以使用 OpenShift CLI (oc
)完成此操作。
先决条件
- 有管理员权限。
- 已安装 Loki Operator。
-
已安装 OpenShift CLI(
oc
)。
流程
运行以下命令,在包含您的证书和密钥文件的目录中创建 secret:
$ oc create secret generic -n openshift-logging <your_secret_name> \ --from-file=tls.key=<your_key_file> --from-file=tls.crt=<your_crt_file> --from-file=ca-bundle.crt=<your_bundle_file> --from-literal=username=<your_username> --from-literal=password=<your_password>
使用通用或 opaque secret 以获得最佳结果。
验证
运行以下命令验证 secret 是否已创建:
$ oc get secrets
其他资源
10.2.1.7. 使用 CLI 创建 LokiStack 自定义资源
您可以使用 OpenShift CLI (oc
)创建 LokiStack
自定义资源(CR)。
先决条件
- 有管理员权限。
- 已安装 Loki Operator。
-
已安装 OpenShift CLI(
oc
)。
流程
创建
LokiStack
CR:LokiStack
CR 示例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 5
- 1
- 指定部署大小。在日志记录 5.8 及更新的版本中,Loki 实例支持的大小选项为
1x.extra-small
、1x.small
或1x.medium
。重要对于部署大小,无法更改
1x
值。 - 2
- 指定日志存储 secret 的名称。
- 3
- 指定日志存储 secret 的类型。
- 4
- 为临时存储指定存储类的名称。为获得最佳性能,请指定分配块存储的存储类。可以使用
oc get storageclasses
命令列出集群的可用存储类。 - 5
- LokiStack 默认为以多租户模式运行,无法修改。为每个日志类型提供一个租户: audit、infrastructure 和 application logs。这为单个用户和用户组启用对不同的日志流的访问控制。
运行以下命令来应用
LokiStack
CR:$ oc apply -f <filename>.yaml
验证
运行以下命令并查看输出,在
openshift-logging
项目中列出 pod 来验证安装:$ oc get pods -n openshift-logging
确认您看到了多个用于日志记录组件的 pod,类似于以下列表:
输出示例
NAME READY STATUS RESTARTS AGE cluster-logging-operator-78fddc697-mnl82 1/1 Running 0 14m collector-6cglq 2/2 Running 0 45s collector-8r664 2/2 Running 0 45s collector-8z7px 2/2 Running 0 45s collector-pdxl9 2/2 Running 0 45s collector-tc9dx 2/2 Running 0 45s collector-xkd76 2/2 Running 0 45s logging-loki-compactor-0 1/1 Running 0 8m2s logging-loki-distributor-b85b7d9fd-25j9g 1/1 Running 0 8m2s logging-loki-distributor-b85b7d9fd-xwjs6 1/1 Running 0 8m2s logging-loki-gateway-7bb86fd855-hjhl4 2/2 Running 0 8m2s logging-loki-gateway-7bb86fd855-qjtlb 2/2 Running 0 8m2s logging-loki-index-gateway-0 1/1 Running 0 8m2s logging-loki-index-gateway-1 1/1 Running 0 7m29s logging-loki-ingester-0 1/1 Running 0 8m2s logging-loki-ingester-1 1/1 Running 0 6m46s logging-loki-querier-f5cf9cb87-9fdjd 1/1 Running 0 8m2s logging-loki-querier-f5cf9cb87-fp9v5 1/1 Running 0 8m2s logging-loki-query-frontend-58c579fcb7-lfvbc 1/1 Running 0 8m2s logging-loki-query-frontend-58c579fcb7-tjf9k 1/1 Running 0 8m2s logging-view-plugin-79448d8df6-ckgmx 1/1 Running 0 46s
10.2.2. Loki 对象存储
Loki Operator 支持 AWS S3,以及 Minio 和 OpenShift Data Foundation 等其他 S3 兼容对象存储。Azure、GCS 和 Swift 也支持。
对于 Loki 存储,推荐的 nomenclature 是 logging-loki-<your_storage_provider>
。
下表显示了每个存储供应商 LokiStack
自定义资源(CR) 中的 type
值。如需更多信息,请参阅存储供应商部分。
存储供应商 | Secret type 值 |
---|---|
AWS | s3 |
Azure | azure |
Google Cloud | gcs |
Minio | s3 |
OpenShift Data Foundation | s3 |
Swift | swift |
10.2.2.1. AWS 存储
先决条件
- 已安装 Loki Operator。
-
已安装 OpenShift CLI(
oc
)。 - 您在 AWS 上创建了存储桶。
- 您创建了 AWS IAM 策略和 IAM 用户。
流程
运行以下命令,创建一个名为
logging-loki-aws
的对象存储 secret:$ oc create secret generic logging-loki-aws \ --from-literal=bucketnames="<bucket_name>" \ --from-literal=endpoint="<aws_bucket_endpoint>" \ --from-literal=access_key_id="<aws_access_key_id>" \ --from-literal=access_key_secret="<aws_access_key_secret>" \ --from-literal=region="<aws_region_of_your_bucket>"
10.2.2.2. Azure 存储
先决条件
- 已安装 Loki Operator。
-
已安装 OpenShift CLI(
oc
)。 - 您在 Azure 上创建了存储桶。
流程
运行以下命令,使用名称
logging-loki-azure
创建对象存储 secret:$ oc create secret generic logging-loki-azure \ --from-literal=container="<azure_container_name>" \ --from-literal=environment="<azure_environment>" \ 1 --from-literal=account_name="<azure_account_name>" \ --from-literal=account_key="<azure_account_key>"
- 1
- 支持的环境值包括
AzureGlobal
、AzureChinaCloud
、AzureGermanCloud
或AzureUSGovernment
。
10.2.2.3. Google Cloud Platform 存储
先决条件
流程
-
将从 GCP 接收的服务帐户凭证复制到名为
key.json
的文件中。 运行以下命令,使用名称
logging-loki-gcs
创建对象存储 secret:$ oc create secret generic logging-loki-gcs \ --from-literal=bucketname="<bucket_name>" \ --from-file=key.json="<path/to/key.json>"
10.2.2.4. Minio 存储
流程
运行以下命令,创建一个名为
logging-loki-minio
的对象存储 secret:$ oc create secret generic logging-loki-minio \ --from-literal=bucketnames="<bucket_name>" \ --from-literal=endpoint="<minio_bucket_endpoint>" \ --from-literal=access_key_id="<minio_access_key_id>" \ --from-literal=access_key_secret="<minio_access_key_secret>"
10.2.2.5. OpenShift Data Foundation 存储
先决条件
- 已安装 Loki Operator。
-
已安装 OpenShift CLI(
oc
)。 - 您已部署了 OpenShift Data Foundation。
- 为对象存储配置了 OpenShift Data Foundation 集群。
流程
在
openshift-logging
命名空间中创建ObjectBucketClaim
自定义资源:apiVersion: objectbucket.io/v1alpha1 kind: ObjectBucketClaim metadata: name: loki-bucket-odf namespace: openshift-logging spec: generateBucketName: loki-bucket-odf storageClassName: openshift-storage.noobaa.io
运行以下命令,从关联的
ConfigMap
对象获取存储桶属性:BUCKET_HOST=$(oc get -n openshift-logging configmap loki-bucket-odf -o jsonpath='{.data.BUCKET_HOST}') BUCKET_NAME=$(oc get -n openshift-logging configmap loki-bucket-odf -o jsonpath='{.data.BUCKET_NAME}') BUCKET_PORT=$(oc get -n openshift-logging configmap loki-bucket-odf -o jsonpath='{.data.BUCKET_PORT}')
运行以下命令,从关联的 secret 获取存储桶访问密钥:
ACCESS_KEY_ID=$(oc get -n openshift-logging secret loki-bucket-odf -o jsonpath='{.data.AWS_ACCESS_KEY_ID}' | base64 -d) SECRET_ACCESS_KEY=$(oc get -n openshift-logging secret loki-bucket-odf -o jsonpath='{.data.AWS_SECRET_ACCESS_KEY}' | base64 -d)
运行以下命令,创建一个名为
logging-loki-odf
的对象存储 secret:$ oc create -n openshift-logging secret generic logging-loki-odf \ --from-literal=access_key_id="<access_key_id>" \ --from-literal=access_key_secret="<secret_access_key>" \ --from-literal=bucketnames="<bucket_name>" \ --from-literal=endpoint="https://<bucket_host>:<bucket_port>"
10.2.2.6. Swift 存储
先决条件
- 已安装 Loki Operator。
-
已安装 OpenShift CLI(
oc
)。 - 您在 Swift 上创建了一个存储桶。
流程
运行以下命令,创建一个名为
logging-loki-swift
的对象存储 secret:$ oc create secret generic logging-loki-swift \ --from-literal=auth_url="<swift_auth_url>" \ --from-literal=username="<swift_usernameclaim>" \ --from-literal=user_domain_name="<swift_user_domain_name>" \ --from-literal=user_domain_id="<swift_user_domain_id>" \ --from-literal=user_id="<swift_user_id>" \ --from-literal=password="<swift_password>" \ --from-literal=domain_id="<swift_domain_id>" \ --from-literal=domain_name="<swift_domain_name>" \ --from-literal=container_name="<swift_container_name>"
您可以通过运行以下命令来提供项目特定数据、区域或两者:
$ oc create secret generic logging-loki-swift \ --from-literal=auth_url="<swift_auth_url>" \ --from-literal=username="<swift_usernameclaim>" \ --from-literal=user_domain_name="<swift_user_domain_name>" \ --from-literal=user_domain_id="<swift_user_domain_id>" \ --from-literal=user_id="<swift_user_id>" \ --from-literal=password="<swift_password>" \ --from-literal=domain_id="<swift_domain_id>" \ --from-literal=domain_name="<swift_domain_name>" \ --from-literal=container_name="<swift_container_name>" \ --from-literal=project_id="<swift_project_id>" \ --from-literal=project_name="<swift_project_name>" \ --from-literal=project_domain_id="<swift_project_domain_id>" \ --from-literal=project_domain_name="<swift_project_domain_name>" \ --from-literal=region="<swift_region>"
10.2.3. 部署 Elasticsearch 日志存储
您可以使用 OpenShift Elasticsearch Operator 在 OpenShift Container Platform 集群上部署内部 Elasticsearch 日志存储。
Logging 5.9 发行版本不包含 OpenShift Elasticsearch Operator 的更新版本。如果您目前使用随 Logging 5.8 发布的 OpenShift Elasticsearch Operator,它将继续使用 Logging,直到 Logging 5.8 的 EOL 为止。您可以使用 Loki Operator 作为 OpenShift Elasticsearch Operator 的替代方案来管理默认日志存储。如需有关日志记录生命周期日期的更多信息,请参阅平台 Agnostic Operator。
10.2.3.1. Elasticsearch 的存储注意事项
每个 Elasticsearch 部署配置都需要一个持久性卷。在 OpenShift Container Platform 中,这使用持久性卷声明(PVC)来实现。
如果将本地卷用于持久性存储,请不要使用原始块卷,这在 LocalVolume
对象中的 volumeMode: block
描述。Elasticsearch 无法使用原始块卷。
OpenShift Elasticsearch Operator 使用 Elasticsearch 资源名称为 PVC 命名。
Fluentd 将 systemd journal 和 /var/log/containers/*.log 的所有日志都传输到 Elasticsearch。
Elasticsearch 需要足够内存来执行大型合并操作。如果没有足够的内存,它将会变得无响应。要避免这个问题,请评估应用程序日志数据的数量,并分配大约两倍的可用存储容量。
默认情况下,当存储容量为 85% 满时,Elasticsearch 会停止向节点分配新数据。90% 时,Elasticsearch 会在可能的情况下将现有分片重新定位到其他节点。但是,如果存储消耗低于 85% 时无节点有可用存储空间,Elasticsearch 会拒绝创建新索引并且变为 RED。
这些高、低水位线值是当前版本中的 Elasticsearch 默认值。您可以修改这些默认值。虽然警报使用相同的默认值,但无法在警报中更改这些值。
10.2.3.2. 使用 Web 控制台安装 OpenShift Elasticsearch Operator
OpenShift Elasticsearch Operator 会创建和管理 OpenShift Logging 使用的 Elasticsearch 集群。
先决条件
Elasticsearch 是内存密集型应用程序。每个 Elasticsearch 节点都需要至少 16GB 内存来满足内存请求和限值的需要,除非
ClusterLogging
自定义资源中另有指定。最初的 OpenShift Container Platform 节点组可能不足以支持 Elasticsearch 集群。您必须在 OpenShift Container Platform 集群中添加额外的节点才能使用推荐或更高的内存运行,每个 Elasticsearch 节点最多可使用 64GB 个内存。
Elasticsearch 节点都可以在较低的内存设置下运行,但在生产环境中不建议这样做。
确保具有 Elasticsearch 所需的持久性存储。注意每个 Elasticsearch 节点都需要自己的存储卷。
注意如果将本地卷用于持久性存储,请不要使用原始块卷,这在
LocalVolume
对象中的volumeMode: block
描述。Elasticsearch 无法使用原始块卷。
流程
-
在 OpenShift Container Platform Web 控制台中,点击 Operators
OperatorHub。 - 从可用的 Operator 列表中选择 OpenShift Elasticsearch Operator,然后点 Install。
- 确保在 Installation mode 下选择了 All namespaces on the cluster。
确定在 Installed Namespace 下选择了 openshift-operators-redhat。
您必须指定
openshift-operators-redhat
命名空间。openshift-operators
命名空间可能会包含社区提供的 operator。这些 operator 不被信任,其发布的 metric 可能与 OpenShift Container Platform metric 的名称相同,从而导致冲突。选择 Enable operator recommended cluster monitoring on this namespace。
这个选项在
Namespace
对象中设置openshift.io/cluster-monitoring: "true"
标签。您必须设置这个选项,以确保集群监控提取openshift-operators-redhat
命名空间。- 选择 stable-5.x 作为 更新频道。
选择一个 更新批准策略:
- Automatic 策略允许 Operator Lifecycle Manager(OLM)在有新版本可用时自动更新 Operator。
- Manual 策略需要拥有适当凭证的用户批准 Operator 更新。
- 点 Install。
验证
-
通过切换到 Operators
Installed Operators 页来验证 OpenShift Elasticsearch Operator 已被安装。 - 确定 OpenShift Elasticsearch Operator 在所有项目中被列出,请 Status 为 Succeeded。
10.2.3.3. 使用 CLI 安装 OpenShift Elasticsearch Operator
您可以使用 OpenShift CLI (oc
)安装 OpenShift Elasticsearch Operator。
先决条件
确保具有 Elasticsearch 所需的持久性存储。注意每个 Elasticsearch 节点都需要自己的存储卷。
注意如果将本地卷用于持久性存储,请不要使用原始块卷,这在
LocalVolume
对象中的volumeMode: block
描述。Elasticsearch 无法使用原始块卷。Elasticsearch 是内存密集型应用程序。默认情况下,OpenShift Container Platform 安装 3 个 Elasticsearch 节点,其内存请求和限制为 16 GB。初始设置的三个 OpenShift Container Platform 节点可能没有足够的内存在集群中运行 Elasticsearch。如果遇到与 Elasticsearch 相关的内存问题,在集群中添加更多 Elasticsearch 节点,而不是增加现有节点上的内存。
- 有管理员权限。
-
已安装 OpenShift CLI(
oc
)。
流程
创建一个
Namespace
对象作为一个 YAML 文件:apiVersion: v1 kind: Namespace metadata: name: openshift-operators-redhat 1 annotations: openshift.io/node-selector: "" labels: openshift.io/cluster-monitoring: "true" 2
- 1
- 您必须指定
openshift-operators-redhat
命名空间。要防止可能与指标冲突,请将 Prometheus Cluster Monitoring 堆栈配置为从openshift-operators-redhat
命名空间中提取指标,而不是从openshift-operators
命名空间中提取。openshift-operators
命名空间可能会包含社区 Operator,这些 Operator 不被信任,并可能会发布与 metric 的名称相同的指标,从而导致冲突。 - 2
- 字符串.您必须按照所示指定该标签,以确保集群监控提取
openshift-operators-redhat
命名空间。
运行以下命令来应用
Namespace
对象:$ oc apply -f <filename>.yaml
以 YAML 文件形式创建
OperatorGroup
对象:apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: openshift-operators-redhat namespace: openshift-operators-redhat 1 spec: {}
- 1
- 您必须指定
openshift-operators-redhat
命名空间。
运行以下命令来应用
OperatorGroup
对象:$ oc apply -f <filename>.yaml
创建一个
Subscription
对象来订阅 OpenShift Elasticsearch Operator 的命名空间:订阅示例
apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: elasticsearch-operator namespace: openshift-operators-redhat 1 spec: channel: stable-x.y 2 installPlanApproval: Automatic 3 source: redhat-operators 4 sourceNamespace: openshift-marketplace name: elasticsearch-operator
- 1
- 您必须指定
openshift-operators-redhat
命名空间。 - 2
- 指定
stable
, 或stable-x.y
作为频道。请参见以下注释。 - 3
Automatic
允许 Operator Lifecycle Manager (OLM) 在有新版本可用时自动更新 Operator。Manual
要求具有适当凭证的用户批准 Operator 更新。- 4
- 指定
redhat-operators
。如果 OpenShift Container Platform 集群安装在受限网络中(也称为断开连接的集群),请指定配置 Operator Lifecycle Manager (OLM)时创建的CatalogSource
对象的名称。
注意指定
stable
安装最新稳定版本的当前版本。使用带有installPlanApproval: "Automatic"
的stable
会自动将 Operator 升级到最新的稳定主版本和次版本。指定
stable-x.y
会安装特定主版本的当前次版本。使用带有installPlanApproval: "Automatic"
的stable-x.y
会自动将 Operator 升级到主发行版本中的最新稳定次版本。运行以下命令来应用订阅:
$ oc apply -f <filename>.yaml
OpenShift Elasticsearch Operator 已安装到
openshift-operators-redhat
命名空间,并复制到集群中的每个项目。
验证
运行以下命令:
$ oc get csv -n --all-namespaces
观察输出,并确认每个命名空间中存在 OpenShift Elasticsearch Operator 的 Pod
输出示例
NAMESPACE NAME DISPLAY VERSION REPLACES PHASE default elasticsearch-operator.v5.8.1 OpenShift Elasticsearch Operator 5.8.1 elasticsearch-operator.v5.8.0 Succeeded kube-node-lease elasticsearch-operator.v5.8.1 OpenShift Elasticsearch Operator 5.8.1 elasticsearch-operator.v5.8.0 Succeeded kube-public elasticsearch-operator.v5.8.1 OpenShift Elasticsearch Operator 5.8.1 elasticsearch-operator.v5.8.0 Succeeded kube-system elasticsearch-operator.v5.8.1 OpenShift Elasticsearch Operator 5.8.1 elasticsearch-operator.v5.8.0 Succeeded non-destructive-test elasticsearch-operator.v5.8.1 OpenShift Elasticsearch Operator 5.8.1 elasticsearch-operator.v5.8.0 Succeeded openshift-apiserver-operator elasticsearch-operator.v5.8.1 OpenShift Elasticsearch Operator 5.8.1 elasticsearch-operator.v5.8.0 Succeeded openshift-apiserver elasticsearch-operator.v5.8.1 OpenShift Elasticsearch Operator 5.8.1 elasticsearch-operator.v5.8.0 Succeeded ...
10.2.4. 配置日志存储
您可以通过修改 ClusterLogging
自定义资源(CR)来配置日志使用的日志存储类型。
先决条件
- 有管理员权限。
-
已安装 OpenShift CLI(
oc
)。 - 已安装 Red Hat OpenShift Logging Operator 和一个内部日志存储,它是 LokiStack 或 Elasticsearch。
-
您已创建了
ClusterLogging
CR。
Logging 5.9 发行版本不包含 OpenShift Elasticsearch Operator 的更新版本。如果您目前使用随 Logging 5.8 发布的 OpenShift Elasticsearch Operator,它将继续使用 Logging,直到 Logging 5.8 的 EOL 为止。您可以使用 Loki Operator 作为 OpenShift Elasticsearch Operator 的替代方案来管理默认日志存储。如需有关日志记录生命周期日期的更多信息,请参阅平台 Agnostic Operator。
流程
修改
ClusterLogging
CRlogStore
规格:ClusterLogging
CR 示例apiVersion: logging.openshift.io/v1 kind: ClusterLogging metadata: # ... spec: # ... logStore: type: <log_store_type> 1 elasticsearch: 2 nodeCount: <integer> resources: {} storage: {} redundancyPolicy: <redundancy_type> 3 lokistack: 4 name: {} # ...
将 LokiStack 指定为日志存储的
ClusterLogging
CR 示例apiVersion: logging.openshift.io/v1 kind: ClusterLogging metadata: name: instance namespace: openshift-logging spec: managementState: Managed logStore: type: lokistack lokistack: name: logging-loki # ...
运行以下命令来应用
ClusterLogging
CR:$ oc apply -f <filename>.yaml