3.2. Loki Operator 설치
Loki Operator 버전 5.7+ 는 Network Observabilty에서 지원되는 Loki Operator 버전입니다. 이러한 버전은 openshift-network
테넌트 구성 모드를 사용하여 LokiStack
인스턴스를 생성하고 네트워크 Observability에 대해 완전 자동 인증 및 권한 부여 지원을 제공하는 기능을 제공합니다. Loki를 설치하는 방법은 여러 가지가 있습니다. 한 가지 방법은 OpenShift Container Platform 웹 콘솔 Operator Hub를 사용하는 것입니다.
사전 요구 사항
- 지원되는 Log Store (AWS S3, Google Cloud Storage, Azure, Swift, Minio, OpenShift Data Foundation)
- OpenShift Container Platform 4.10+
- Linux Kernel 4.18+
프로세스
-
OpenShift Container Platform 웹 콘솔에서 Operator
OperatorHub를 클릭합니다. - 사용 가능한 Operator 목록에서 Loki Operator 를 선택하고 설치를 클릭합니다.
- 설치 모드에서 클러스터의 모든 네임스페이스를 선택합니다.
검증
-
Loki Operator를 설치했는지 확인합니다. Operator
설치된 Operator 페이지를 방문하여 Loki Operator 를 찾습니다. - Loki Operator 가 모든 프로젝트에 Succeeded 로 나열되어 있는지 확인합니다.
Loki를 설치 제거하려면 Loki를 설치하는 데 사용한 방법과 일치하는 제거 프로세스를 참조하십시오. 나머지 ClusterRoles
및 ClusterRoleBindings
, 오브젝트 저장소에 저장된 데이터 및 제거해야 하는 영구 볼륨이 있을 수 있습니다.
3.2.1. Loki 스토리지의 시크릿 생성
Loki Operator는 AWS S3, Google Cloud Storage, Azure, Swift, Minio, OpenShift Data Foundation과 같은 몇 가지 로그 스토리지 옵션을 지원합니다. 다음 예제에서는 AWS S3 스토리지에 대한 보안을 생성하는 방법을 보여줍니다. 이 예에서 loki-s3
에서 생성된 보안은 " LokiStack 리소스 생성"에서 참조됩니다. 웹 콘솔 또는 CLI에서 이 시크릿을 생성할 수 있습니다.
-
웹 콘솔을 사용하여 프로젝트
모든 프로젝트 드롭다운으로 이동하여 프로젝트 생성 을 선택합니다. 프로젝트 이름을 netobserv
로 지정하고 생성 을 클릭합니다. 오른쪽 상단에 있는 가져오기 아이콘 + 로 이동합니다. YAML 파일을 편집기에 붙여넣습니다.
다음은 S3 스토리지에 대한 시크릿 YAML 파일의 예입니다.
apiVersion: v1 kind: Secret metadata: name: loki-s3 namespace: netobserv 1 stringData: access_key_id: QUtJQUlPU0ZPRE5ON0VYQU1QTEUK access_key_secret: d0phbHJYVXRuRkVNSS9LN01ERU5HL2JQeFJmaUNZRVhBTVBMRUtFWQo= bucketnames: s3-bucket-name endpoint: https://s3.eu-central-1.amazonaws.com region: eu-central-1
- 1
- 이 설명서의 설치 예제에서는 모든 구성 요소에서 동일한 네임스페이스
netobserv
를 사용합니다. 선택적으로 다른 구성 요소에 다른 네임스페이스를 사용할 수 있습니다.
검증
-
시크릿을 생성하면 웹 콘솔에 워크로드
시크릿 아래에 표시되어야 합니다.
3.2.2. LokiStack 사용자 정의 리소스 생성
웹 콘솔 또는 CLI를 사용하여 LokiStack을 배포하여 네임스페이스 또는 새 프로젝트를 생성할 수 있습니다.
프로세스
-
Operator
설치된 Operator 로 이동하여 프로젝트 드롭다운에서 모든 프로젝트를 확인합니다. - Loki Operator 를 찾습니다. 세부 정보에서 제공된 API에서 LokiStack 을 선택합니다.
- LokiStack 생성을 클릭합니다.
다음 필드가 양식 보기 또는 YAML 보기에 지정되었는지 확인합니다.
apiVersion: loki.grafana.com/v1 kind: LokiStack metadata: name: loki namespace: netobserv 1 spec: size: 1x.small storage: schemas: - version: v12 effectiveDate: '2022-06-01' secret: name: loki-s3 type: s3 storageClassName: gp3 2 tenants: mode: openshift-network
중요클러스터 로깅에 사용되는 동일한
LokiStack
을 재사용해서는 안 됩니다.- 생성을 클릭합니다.
3.2.3. cluster-admin 사용자 역할의 새 그룹 생성
cluster-admin
사용자로 여러 네임스페이스에 대한 애플리케이션 로그를 쿼리합니다. 여기서 클러스터의 모든 네임스페이스 합계는 5120보다 큰 오류입니다: 입력 크기가 너무 긴 (XXXX > 5120)
오류가 발생했습니다. LokiStack의 로그에 대한 액세스를 보다 효과적으로 제어하려면 cluster-admin
사용자를 cluster-admin
그룹의 멤버로 설정합니다. cluster-admin
그룹이 없는 경우 해당 그룹을 생성하고 원하는 사용자를 추가합니다.
다음 절차에 따라 cluster-admin
권한이 있는 사용자를 위한 새 그룹을 생성합니다.
프로세스
다음 명령을 입력하여 새 그룹을 생성합니다.
$ oc adm groups new cluster-admin
다음 명령을 입력하여 원하는 사용자를
cluster-admin
그룹에 추가합니다.$ oc adm groups add-users cluster-admin <username>
다음 명령을 입력하여
cluster-admin
사용자 역할을 그룹에 추가합니다.$ oc adm policy add-cluster-role-to-group cluster-admin cluster-admin
3.2.4. 사용자 정의 관리자 그룹 액세스
광범위한 권한이 필요한 사용자가 많은 대규모 배포가 있는 경우 adminGroup
필드를 사용하여 사용자 지정 그룹을 생성할 수 있습니다. LokiStack
CR의 adminGroups
필드에 지정된 그룹의 멤버인 사용자는 관리자로 간주됩니다. admin 사용자는 cluster-logging-application-view
역할도 할당한 경우 모든 네임스페이스의 모든 애플리케이션 로그에 액세스할 수 있습니다.
LokiStack CR의 예
apiVersion: loki.grafana.com/v1 kind: LokiStack metadata: name: logging-loki namespace: openshift-logging spec: tenants: mode: openshift-network 1 openshift: adminGroups: 2 - cluster-admin - custom-admin-group 3
3.2.5. Loki 배포 크기 조정
Loki의 크기 조정은 < N>x.<size
> 형식을 따릅니다. 여기서 < N
> 값은 인스턴스 수이고 < size
>는 성능 기능을 지정합니다.
1x.demo | 1x.extra-windows | 1x.small | 1x.medium | |
---|---|---|---|---|
데이터 전송 | 데모만 사용 | 100GB/일 | 500GB/일 | 2TB/일 |
초당 쿼리(QPS) | 데모만 사용 | 200ms에서 1-25 QPS | 25-50 QPS (200ms) | 25-75 QPS (200ms) |
복제 요인 | 없음 | 2 | 2 | 2 |
총 CPU 요청 | 없음 | 14개의 vCPU | 34 vCPU | 54 vCPU |
총 메모리 요청 | 없음 | 31Gi | 67Gi | 139Gi |
총 디스크 요청 | 40Gi | 430Gi | 430Gi | 590Gi |
3.2.6. LokiStack 수집 제한 및 상태 경고
LokiStack 인스턴스는 구성된 크기에 따라 기본 설정과 함께 제공됩니다. 수집 및 쿼리 제한과 같은 일부 설정을 재정의할 수 있습니다. Loki 오류가 콘솔 플러그인에 표시되는 경우 또는 flowlogs-pipeline
로그에 업데이트할 수 있습니다. 웹 콘솔의 자동 경고는 이러한 제한에 도달할 때 이를 알려줍니다.
다음은 구성된 제한의 예입니다.
spec: limits: global: ingestion: ingestionBurstSize: 40 ingestionRate: 20 maxGlobalStreamsPerTenant: 25000 queries: maxChunksPerQuery: 2000000 maxEntriesLimitPerQuery: 10000 maxQuerySeries: 3000
이러한 설정에 대한 자세한 내용은 LokiStack API 참조를 참조하십시오.
3.2.7. 네트워크 Observability에서 멀티 테넌시 활성화
Network Observability Operator의 멀티 테넌시를 사용하면 개별 사용자 액세스 또는 그룹 액세스를 Loki에 저장된 흐름에 대해 허용하고 제한할 수 있습니다. 프로젝트 관리자에 대한 액세스 권한이 활성화됩니다. 일부 네임스페이스에 대한 액세스 권한이 제한된 프로젝트 관리자는 해당 네임스페이스의 흐름에만 액세스할 수 있습니다.
사전 요구 사항
- Loki Operator 버전 5.7이상이 설치되어 있어야 합니다.
- 프로젝트 관리자로 로그인해야 합니다.
프로세스
다음 명령을 실행하여
user1
에 읽기 권한을 부여합니다.$ oc adm policy add-cluster-role-to-user netobserv-reader user1
이제 데이터는 허용된 사용자 네임스페이스로 제한됩니다. 예를 들어 단일 네임스페이스에 액세스할 수 있는 사용자는 이 네임스페이스 내부 및 이 네임스페이스로 이동하는 모든 흐름을 볼 수 있습니다. 프로젝트 관리자는 OpenShift Container Platform 콘솔의 관리자 화면에 액세스하여 네트워크 흐름 트래픽 페이지에 액세스할 수 있습니다.