3.3. Loki의 안정성 및 성능 향상
다음 구성을 사용하여 프로덕션 환경에서 Loki의 안정성과 효율성을 보장합니다.
3.3.1. Loki Pod 배치 링크 복사링크가 클립보드에 복사되었습니다!
Pod의 허용 오차 또는 노드 선택기를 사용하여 Loki Pod가 실행되는 노드를 제어하고 다른 워크로드가 해당 노드를 사용하지 못하도록 할 수 있습니다.
LokiStack CR(사용자 정의 리소스)을 사용하여 로그 저장소 Pod에 허용 오차를 적용하고 노드 사양이 있는 노드에 taint를 적용할 수 있습니다. 노드의 테인트는 해당 테인트를 허용하지 않는 모든 Pod를 거절하도록 노드에 지시하는 키:값 쌍입니다. 다른 Pod에 없는 특정 키:값 쌍을 사용하면 해당 노드에서 로그 저장소 Pod만 실행할 수 있습니다.
노드 선택기가 있는 LokiStack의 예
노드 선택기 및 허용 오차가 있는 LokiStack CR의 예
LokiStack(CR)의 nodeSelector 및 허용 오차 필드를 구성하려면 oc explain 명령을 사용하여 특정 리소스에 대한 설명 및 필드를 볼 수 있습니다.
oc explain lokistack.spec.template
$ oc explain lokistack.spec.template
출력 예
자세한 내용은 특정 필드를 추가할 수 있습니다.
oc explain lokistack.spec.template.compactor
$ oc explain lokistack.spec.template.compactor
출력 예
3.3.2. 노드 장애를 허용하도록 Loki 구성 링크 복사링크가 클립보드에 복사되었습니다!
로깅 5.8 이상 버전에서 Loki Operator는 Pod 유사성 방지 규칙 설정을 지원하여 동일한 구성 요소의 Pod가 클러스터의 다른 사용 가능한 노드에 예약되도록 요청합니다.
유사성은 예약할 노드를 제어하는 Pod의 속성입니다. 유사성 방지는 Pod가 노드에서 예약되지 않도록 하는 Pod의 속성입니다.
OpenShift Container Platform에서 Pod 유사성 및 Pod 유사성 방지를 사용하면 다른 Pod의 키 값 라벨에 따라 Pod를 예약할 수 있는 노드를 제한할 수 있습니다.
Operator는 compactor,distributor,gateway,indexGateway,ingester,querier,queryFrontend 및 ruler 구성 요소를 포함하는 모든 Loki 구성 요소에 대해 기본 기본 podAntiAffinity 규칙을 설정합니다.
requiredDuringSchedulingIgnoredDuringExecution 필드에서 필요한 설정을 구성하여 Loki 구성 요소의 기본 podAntiAffinity 설정을 덮어쓸 수 있습니다.
ingester 구성 요소에 대한 사용자 설정 예
3.3.3. Loki를 사용하여 스트림 기반 보존 활성화 링크 복사링크가 클립보드에 복사되었습니다!
로그 스트림을 기반으로 보존 정책을 구성할 수 있습니다. 이러한 규칙에 대한 규칙은 전역적으로, 테넌트별로 또는 둘 다 설정할 수 있습니다. 둘 다 구성하는 경우 테넌트 규칙이 글로벌 규칙 앞에 적용됩니다.
s3 버킷 또는 LokiStack 사용자 정의 리소스(CR)에 정의된 보존 기간이 없으면 로그가 정리되지 않고 s3 스토리지를 채울 수 있습니다.
스키마 v13이 권장됩니다.
프로세스
LokiStackCR을 생성합니다.다음 예와 같이 스트림 기반 보존을 전역적으로 활성화합니다.
AWS에 대한 글로벌 스트림 기반 보존의 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 예와 같이 테넌트별로 스트림 기반 보존을 활성화합니다.
AWS에 대한 테넌트별 스트림 기반 보존 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
LokiStackCR을 적용합니다.oc apply -f <filename>.yaml
$ oc apply -f <filename>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.3.4. 멤버 목록 생성 실패를 허용하도록 Loki 구성 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Container Platform 클러스터에서 관리자는 일반적으로 개인 IP 네트워크 범위를 사용합니다. 결과적으로 LokiStack 멤버 목록 구성은 기본적으로 개인 IP 네트워크만 사용하므로 실패합니다.
관리자는 memberlist 구성에 대한 Pod 네트워크를 선택할 수 있습니다. hashRing 사양에서 podIP 주소를 사용하도록 LokiStack CR(사용자 정의 리소스)을 수정할 수 있습니다. LokiStack CR을 구성하려면 다음 명령을 사용합니다.
oc patch LokiStack logging-loki -n openshift-logging --type=merge -p '{"spec": {"hashRing":{"memberlist":{"instanceAddrType":"podIP"},"type":"memberlist"}}}'
$ oc patch LokiStack logging-loki -n openshift-logging --type=merge -p '{"spec": {"hashRing":{"memberlist":{"instanceAddrType":"podIP"},"type":"memberlist"}}}'
podIP를 포함하는 LokiStack의 예
3.3.5. 클러스터를 다시 시작하는 동안 LokiStack 동작 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Container Platform 클러스터가 다시 시작되면 LokiStack 수집 및 쿼리 경로가 노드에 사용 가능한 사용 가능한 CPU 및 메모리 리소스 내에서 계속 작동합니다. 즉, OpenShift Container Platform 클러스터 업데이트 중에 LokiStack에 대한 다운 타임이 없습니다. 이 동작은 PodDisruptionBudget 리소스를 사용하여 수행됩니다. Loki Operator는 특정 조건에서 정상적인 작업을 보장하기 위해 구성 요소별로 사용 가능한 최소 Pod 수를 결정하는 Loki의 PodDisruptionBudget 리소스를 프로비저닝합니다.