Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

4.20. 配置集群指标

集群指标(metrics)不会被设置为自动部署。将以下内容设置为在集群安装过程中启用集群指标:

[OSEv3:vars]

openshift_metrics_install_metrics=true

指标公共 URL 可以在集群安装过程中使用 openshift_metrics_hawkular_hostname Ansible 变量设置,默认值为:

https://hawkular-metrics.{{openshift_master_default_subdomain}}/hawkular/metrics

如果更改了这个变量,请确保主机名可以通过路由器访问。

openshift_metrics_hawkular_hostname=hawkular-metrics.{{openshift_master_default_subdomain}}

重要

根据上游 Kubernetes 规则,指标只能从 eth0 的默认接口收集。

注意

您必须设置 openshift_master_default_subdomain 值才能部署指标。

4.20.1. 配置 Metrics 存储

必须设置 openshift_metrics_cassandra_storage_type 变量才能将持久性存储用于指标数据。如果没有设置 openshift_metrics_cassandra_storage_type,则集群指标数据将存储在 emptyDir 卷中,该卷将在 Cassandra pod 终止时被删除。

重要

测试显示,使用 RHEL NFS 服务器作为容器镜像 registry 的存储后端会出现问题。这包括用于 metrics 存储的 Cassandra。因此,不建议使用 RHEL NFS 服务器来备份核心服务使用的 PV。

Cassandra 旨在通过多个独立实例提供冗余性。因此,在数据目录中使用 NFS 或 SAN 是一个反模式,我们不推荐这样做。

然而,市场中的其他 NFS/SAN 实现可能没有这个问题。如需了解更多与此问题相关的信息,请联络相关的 NFS/SAN 厂商。

在集群安装过程中启用集群指标存储有三个选项:

选项 A:动态

如果您的 OpenShift Container Platform 环境支持为云供应商进行 动态卷置备,请使用以下变量:

[OSEv3:vars]

openshift_metrics_cassandra_storage_type=dynamic

如果有多个默认动态置备的卷类型,如 gluster-storage 和 glusterfs-storage-block,您可以根据变量指定置备的卷类型。使用以下变量:

[OSEv3:vars]

openshift_metrics_cassandra_storage_type=pv
openshift_metrics_cassandra_pvc_storage_class_name=glusterfs-storage-block

有关使用 DynamicProvisioningEnabled 来启用或禁用动态置备的详情,请查看 卷配置

选项 B:NFS 主机组

当设置以下变量时,会在集群安装过程中在 [nfs]主机组中的主机上创建一个 NFS 卷(路径为 <nfs_directory>/<volume_name>)例如,使用这些选项的卷路径是 /exports/metrics:

[OSEv3:vars]

# nfs_directory must conform to DNS-1123 subdomain must consist of lower case
# alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character

openshift_metrics_storage_kind=nfs
openshift_metrics_storage_access_modes=['ReadWriteOnce']
openshift_metrics_storage_nfs_directory=/exports
openshift_metrics_storage_nfs_options='*(rw,root_squash)'
openshift_metrics_storage_volume_name=metrics
openshift_metrics_storage_volume_size=10Gi
选项 C:外部 NFS 主机

要使用外部 NFS 卷,必须在存储主机上有 <nfs_directory>/<volume_name> 路径。

[OSEv3:vars]

# nfs_directory must conform to DNS-1123 subdomain must consist of lower case
# alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character

openshift_metrics_storage_kind=nfs
openshift_metrics_storage_access_modes=['ReadWriteOnce']
openshift_metrics_storage_host=nfs.example.com
openshift_metrics_storage_nfs_directory=/exports
openshift_metrics_storage_volume_name=metrics
openshift_metrics_storage_volume_size=10Gi

使用以下选项的远程卷路径是 nfs.example.com:/exports/metrics

升级或安装带有 NFS 的 OpenShift Container Platform

不建议将 NFS 用于 OpenShift Container Platform 核心组件,因为 NFS(和 NFS 协议)没有提供组成 OpenShift Container Platform 基础架构的应用程序所需的一致性。

因此,安装程序和更新 playbook 需要一个选项来启用使用带核心基础架构组件的 NFS。

# Enable unsupported configurations, things that will yield a partially
# functioning cluster but would not be supported for production use
#openshift_enable_unsupported_configurations=false

如果您在升级或安装集群时看到以下信息,则需要额外的步骤。

TASK [Run variable sanity checks] **********************************************
fatal: [host.example.com]: FAILED! => {"failed": true, "msg": "last_checked_host: host.example.com, last_checked_var: openshift_hosted_registry_storage_kind;nfs is an unsupported type for openshift_hosted_registry_storage_kind. openshift_enable_unsupported_configurations=True mustbe specified to continue with this configuration."}

在 Ansible 清单文件中指定以下参数:

[OSEv3:vars]
openshift_enable_unsupported_configurations=True