6.3. CLI를 사용하여 Logging 및 Loki Operator 설치
OpenShift Container Platform 클러스터에 로깅을 설치하고 구성하려면 로그 스토리지용 Loki Operator와 같은 Operator를 먼저 설치해야 합니다. 이 작업은 OpenShift Container Platform CLI에서 수행할 수 있습니다.
사전 요구 사항
- 관리자 권한이 있습니다.
-
OpenShift CLI(
oc)를 설치합니다. - 지원되는 오브젝트 저장소에 액세스할 수 있습니다. 예를 들어 AWS S3, Google Cloud Storage, Azure, Swift, Minio 또는 OpenShift Data Foundation입니다.
stable 채널은 최신 로깅 릴리스에 대한 업데이트만 제공합니다. 이전 릴리스에 대한 업데이트를 계속 받으려면 서브스크립션 채널을 stable-x.y 로 변경해야 합니다. 여기서 x.y 는 설치한 로깅 및 마이너 버전을 나타냅니다. 예를 들면 stable-5.7 입니다.
Loki Operator의
Namespace오브젝트를 생성합니다.Namespace오브젝트의 예apiVersion: v1 kind: Namespace metadata: name: openshift-operators-redhat1 annotations: openshift.io/node-selector: "" labels: openshift.io/cluster-monitoring: "true"2 - 1
openshift-operators-redhat네임스페이스를 지정해야 합니다. 지표의 충돌을 방지하려면openshift-operators네임스페이스가 아니라openshift-operators-redhat네임스페이스에서 지표를 스크랩하도록 Prometheus 클러스터 모니터링 스택을 구성해야 합니다.openshift-operators네임스페이스에 신뢰할 수 없는 Community Operator가 포함될 수 있고, 여기에서 OpenShift Container Platform 지표와 동일한 이름의 지표를 게시하면 충돌이 발생합니다.- 2
- 클러스터 모니터링이
openshift-operators-redhat네임스페이스를 스크랩하도록 하기 위해 표시된 대로 라벨을 지정하는 문자열 값입니다.
다음 명령을 실행하여
Namespace오브젝트를 적용합니다.$ oc apply -f <filename>.yamlLoki Operator에 대한
Subscription오브젝트를 생성합니다.Subscription개체 예apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: loki-operator namespace: openshift-operators-redhat1 spec: channel: stable2 name: loki-operator source: redhat-operators3 sourceNamespace: openshift-marketplace다음 명령을 실행하여
Subscription오브젝트를 적용합니다.$ oc apply -f <filename>.yamlRed Hat OpenShift Logging Operator의
네임스페이스오브젝트를 생성합니다.네임스페이스오브젝트의 예apiVersion: v1 kind: Namespace metadata: name: openshift-logging1 annotations: openshift.io/node-selector: "" labels: openshift.io/cluster-logging: "true" openshift.io/cluster-monitoring: "true"2 다음 명령을 실행하여
namespace오브젝트를 적용합니다.$ oc apply -f <filename>.yamlOperatorGroup오브젝트 생성OperatorGroup오브젝트의 예apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: cluster-logging namespace: openshift-logging1 spec: targetNamespaces: - openshift-logging- 1
openshift-logging네임스페이스를 지정해야 합니다.
다음 명령을 실행하여
OperatorGroup오브젝트를 적용합니다.$ oc apply -f <filename>.yamlSubscription오브젝트를 생성합니다.apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: cluster-logging namespace: openshift-logging1 spec: channel: stable2 name: cluster-logging source: redhat-operators3 sourceNamespace: openshift-marketplace다음 명령을 실행하여
Subscription오브젝트를 적용합니다.$ oc apply -f <filename>.yamlLokiStackCR을 생성합니다.LokiStackCR의 예apiVersion: loki.grafana.com/v1 kind: LokiStack metadata: name: logging-loki1 namespace: openshift-logging2 spec: size: 1x.small3 storage: schemas: - version: v13 effectiveDate: "<yyyy>-<mm>-<dd>" secret: name: logging-loki-s34 type: s35 credentialMode:6 storageClassName: <storage_class_name>7 tenants: mode: openshift-logging8 - 1
logging-loki라는 이름을 사용합니다.- 2
openshift-logging네임스페이스를 지정해야 합니다.- 3
- 배포 크기를 지정합니다. 로깅 5.8 이상 버전에서 Loki의 프로덕션 인스턴스에 지원되는 크기 옵션은
1x.extra-#159 ,1x.windows 또는1x.medium입니다. - 4
- 로그 저장소 시크릿의 이름을 지정합니다.
- 5
- 해당 스토리지 유형을 지정합니다.
- 6
- 선택적 필드, 로깅 5.9 이상 지원되는 사용자 구성 값은 다음과 같습니다.
static은 Secret에 저장된 인증 정보를 사용하여 지원되는 모든 오브젝트 스토리지 유형에 사용할 수 있는 기본 인증 모드입니다. 인증 정보 소스에서 검색된 단기토큰에대한 토큰입니다. 이 모드에서 정적 구성에는 오브젝트 스토리지에 필요한 인증 정보가 포함되어 있지 않습니다. 대신 서비스를 사용하여 런타임 중에 생성되므로 더 짧은 자격 증명과 훨씬 더 세분화된 제어가 가능합니다. 이 인증 모드는 모든 오브젝트 스토리지 유형에서 지원되지 않습니다.token-cco는 Loki가 관리 STS 모드에서 실행되고 STS/WIF 클러스터에서 CCO를 사용할 때 기본값입니다. - 7
- 임시 스토리지의 스토리지 클래스 이름을 지정합니다. 최상의 성능을 위해서는 블록 스토리지를 할당하는 스토리지 클래스를 지정합니다.
oc get storageclasses명령을 사용하여 클러스터에 사용 가능한 스토리지 클래스를 나열할 수 있습니다. - 8
- LokiStack은 기본적으로 다중 테넌트 모드에서 실행되며 수정할 수 없습니다. 각 로그 유형( audit, infrastructure, application logs)에 대해 하나의 테넌트가 제공됩니다. 이를 통해 개별 사용자 및 사용자 그룹에 대한 액세스 제어를 다른 로그 스트림에 사용할 수 있습니다.
다음 명령을 실행하여
LokiStack CR오브젝트를 적용합니다.$ oc apply -f <filename>.yamlClusterLoggingCR 오브젝트를 생성합니다.ClusterLogging CR 오브젝트의 예
apiVersion: logging.openshift.io/v1 kind: ClusterLogging metadata: name: instance1 namespace: openshift-logging2 spec: collection: type: vector logStore: lokistack: name: logging-loki type: lokistack visualization: type: ocp-console ocpConsole: logsLimit: 15 managementState: Managed다음 명령을 실행하여
ClusterLogging CR오브젝트를 적용합니다.$ oc apply -f <filename>.yaml다음 명령을 실행하여 설치를 확인합니다.
$ oc get pods -n openshift-logging출력 예
$ oc get pods -n openshift-logging NAME READY STATUS RESTARTS AGE cluster-logging-operator-fb7f7cf69-8jsbq 1/1 Running 0 98m collector-222js 2/2 Running 0 18m collector-g9ddv 2/2 Running 0 18m collector-hfqq8 2/2 Running 0 18m collector-sphwg 2/2 Running 0 18m collector-vv7zn 2/2 Running 0 18m collector-wk5zz 2/2 Running 0 18m logging-view-plugin-6f76fbb78f-n2n4n 1/1 Running 0 18m lokistack-sample-compactor-0 1/1 Running 0 42m lokistack-sample-distributor-7d7688bcb9-dvcj8 1/1 Running 0 42m lokistack-sample-gateway-5f6c75f879-bl7k9 2/2 Running 0 42m lokistack-sample-gateway-5f6c75f879-xhq98 2/2 Running 0 42m lokistack-sample-index-gateway-0 1/1 Running 0 42m lokistack-sample-ingester-0 1/1 Running 0 42m lokistack-sample-querier-6b7b56bccc-2v9q4 1/1 Running 0 42m lokistack-sample-query-frontend-84fb57c578-gq2f7 1/1 Running 0 42m