4.21. 클러스터 로깅 구성
클러스터 로깅은 기본적으로 자동으로 배포되도록 설정되지 않습니다. 클러스터 설치 중에 클러스터 로깅을 활성화하려면 다음을 설정합니다.
[OSEv3:vars] openshift_logging_install_logging=true
클러스터 로깅을 설치할 때 Ansible 인벤토리 파일에서 openshift_logging_es_nodeselector={"node-role.kubernetes.io/infra": "true"}
와 같은 노드 선택기를 지정해야 합니다.
사용 가능한 클러스터 로깅 변수에 대한 자세한 내용은 로깅 Ansible 변수 지정을 참조하십시오.
4.21.1. 로깅 스토리지 구성
로깅에 영구 스토리지를 사용하려면 openshift_logging_es_pvc_dynamic
변수를 설정해야 합니다. openshift_logging_es_pvc_dynamic
이 설정되지 않은 경우 클러스터 로깅 데이터는 emptyDir
볼륨에 저장되며 Elasticsearch Pod가 종료될 때 삭제됩니다.
테스트 결과, RHEL NFS 서버를 컨테이너 이미지 레지스트리의 스토리지 백엔드로 사용하는 데 문제가 있는 것으로 표시됩니다. 여기에는 로깅 스토리지를 위한 ElasticSearch가 포함됩니다. 따라서 RHEL NFS 서버를 사용하여 핵심 서비스에서 사용하는 PV를 백업하는 것은 권장되지 않습니다.
ElasticSearch로 인해 사용자 정의 deletionPolicy를 구현하지 않기 때문에 NFS 스토리지를 볼륨 또는 영구 볼륨으로 사용하지 않는 것은 Lucene 및 기본 deletionPolicy는 NFS가 제공하지 않는 파일 시스템 동작에 따라 Elasticsearch 스토리지에서 지원되지 않습니다. 데이터 손상 및 기타 문제가 발생할 수 있습니다.
마켓플레이스의 NFS 구현에는 이러한 문제가 발생하지 않을 수 있습니다. 이러한 OpenShift 핵심 구성 요소에 대해 수행한 테스트에 대한 자세한 내용은 개별 NFS 구현 공급업체에 문의하십시오.
클러스터 설치 중에 클러스터 로깅 스토리지를 활성화하는 방법은 다음 세 가지가 있습니다.
옵션 A: Dynamic
OpenShift Container Platform 환경에 동적 볼륨 프로비저닝이 있는 경우 클라우드 공급자 또는 독립 스토리지 공급자를 통해 구성할 수 있습니다. 예를 들어 클라우드 공급자는 GCE에서 provisioner kubernetes.io/gce-pd
를 사용하는 StorageClass를 가질 수 있으며 GlusterFS와 같은 독립 스토리지 제공에는 provisioner kubernetes.io/glusterfs
가 있는 StorageClass
가 있을 수 있습니다. 두 경우 모두 다음 변수를 사용합니다.
[OSEv3:vars] openshift_logging_es_pvc_dynamic=true
동적 프로비저닝에 대한 자세한 내용은 동적 프로비저닝 및 스토리지 클래스 생성을 참조하십시오.
gluster-storage 및 glusterfs-storage-block과 같이 동적으로 프로비저닝된 여러 볼륨 유형이 있는 경우 변수별로 프로비저닝된 볼륨 유형을 지정할 수 있습니다. 다음 변수를 사용합니다.
[OSEv3:vars] openshift_logging_elasticsearch_storage_type=pvc openshift_logging_es_pvc_storage_class_name=glusterfs-storage-block
DynamicProvisioningEnabled
를 사용하여 동적 프로비저닝을 활성화하거나 비활성화하는 방법에 대한 자세한 내용은 볼륨 구성을 확인합니다.
옵션 B: NFS 호스트 그룹
다음 변수가 설정되면 [nfs]
호스트 그룹의 호스트에서 < nfs_directory>/<volume_name > 경로를 사용하여 클러스터 설치 중에 NFS 볼륨이 생성됩니다. 예를 들어 이러한 옵션을 사용하는 볼륨 경로는 /exports/logging 입니다.
[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_logging_storage_kind=nfs openshift_logging_storage_access_modes=['ReadWriteOnce'] openshift_logging_storage_nfs_directory=/exports 1 openshift_logging_storage_nfs_options='*(rw,root_squash)' 2 openshift_logging_storage_volume_name=logging 3 openshift_logging_storage_volume_size=10Gi openshift_enable_unsupported_configurations=true openshift_logging_elasticsearch_storage_type=pvc openshift_logging_es_pvc_size=10Gi openshift_logging_es_pvc_storage_class_name='' openshift_logging_es_pvc_dynamic=true openshift_logging_es_pvc_prefix=logging
옵션 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_logging_storage_kind=nfs openshift_logging_storage_access_modes=['ReadWriteOnce'] openshift_logging_storage_host=nfs.example.com 1 openshift_logging_storage_nfs_directory=/exports 2 openshift_logging_storage_volume_name=logging 3 openshift_logging_storage_volume_size=10Gi openshift_enable_unsupported_configurations=true openshift_logging_elasticsearch_storage_type=pvc openshift_logging_es_pvc_size=10Gi openshift_logging_es_pvc_storage_class_name='' openshift_logging_es_pvc_dynamic=true openshift_logging_es_pvc_prefix=logging
다음 옵션을 사용하는 원격 볼륨 경로는 nfs.example.com:/exports/logging 입니다.
NFS를 사용하여 OpenShift Container Platform 업그레이드 또는 설치
NFS(및 NFS 프로토콜)는 OpenShift Container Platform 인프라를 구성하는 애플리케이션에 필요한 적절한 일관성을 제공하지 않으므로 핵심 OpenShift Container Platform 구성 요소에 NFS를 사용하는 것은 권장되지 않습니다.
결과적으로 설치 프로그램 및 업데이트 플레이북에 핵심 인프라 구성 요소가 있는 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