4.4. 로깅 배포 수정
4.4.1. 웹 콘솔을 사용하여 Red Hat OpenShift Logging Operator 배포
OpenShift Container Platform 웹 콘솔을 사용하여 Red Hat OpenShift Logging Operator를 배포할 수 있습니다.
Red Hat OpenShift의 로깅 하위 시스템은 핵심 OpenShift Container Platform과는 별도의 릴리스 사이클과 함께 설치 가능한 구성 요소로 제공됩니다. Red Hat OpenShift Container Platform 라이프 사이클 정책은 릴리스 호환성에 대해 간략하게 설명합니다.
절차
OpenShift Container Platform 웹 콘솔을 사용하여 Red Hat OpenShift Logging Operator를 배포하려면 다음을 수행합니다.
Red Hat OpenShift Logging Operator를 설치합니다.
-
OpenShift Container Platform 웹 콘솔에서 Operator
OperatorHub를 클릭합니다. - 키워드로 필터링 필드에 Logging 을 입력합니다.
- 사용 가능한 Operator 목록에서 Red Hat OpenShift Logging을 선택한 다음 설치를 클릭합니다.
stable 또는 stable-5.y 를 업데이트 채널로 선택합니다.
참고stable
채널은 최신 로깅 릴리스에 대한 업데이트만 제공합니다. 이전 릴리스에 대한 업데이트를 계속 받으려면 서브스크립션 채널을stable-X
로 변경해야 합니다. 여기서X
는 설치한 로깅 버전입니다.- 설치 모드에서 클러스터의 특정 네임스페이스 가 선택되어 있는지 확인합니다.
- 설치된 네임스페이스에서 Operator 권장 네임스페이스가 openshift-logging인지 확인하십시오.
- 이 네임스페이스에서 Operator 권장 클러스터 모니터링 사용을 선택합니다.
업데이트 승인을 위해 옵션을 선택합니다.
- 자동 옵션을 사용하면 새 버전이 제공되면 OLM(Operator Lifecycle Manager)에서 Operator를 자동으로 업데이트할 수 있습니다.
- 수동 옵션을 사용하려면 적절한 자격 증명을 가진 사용자가 Operator 업데이트를 승인해야 합니다.
- Console 플러그인에 대해 Enable 또는 Disable 을 선택합니다.
- 설치를 클릭합니다.
-
OpenShift Container Platform 웹 콘솔에서 Operator
Operator
설치된 Operator 페이지로 전환하여 Red Hat OpenShift Logging Operator 가 설치되었는지 확인합니다. - Red Hat OpenShift Logging이 openshift-logging 프로젝트에 성공 상태로 나열되어 있는지 확인합니다.
ClusterLogging 인스턴스를 생성합니다.
참고웹 콘솔의 양식 보기에 사용 가능한 모든 옵션이 포함되지는 않습니다. 설정을 완료하려면 YAML 보기 를 사용하는 것이 좋습니다.
컬렉션 섹션에서 수집기 구현을 선택합니다.
참고로깅 버전 5.6 Fluentd는 더 이상 사용되지 않으며 향후 릴리스에서 제거될 예정입니다. Red Hat은 현재 릴리스 라이프사이클 동안 이 기능에 대한 버그 수정 및 지원을 제공하지만 이 기능은 더 이상 개선 사항을 받지 않으며 제거됩니다. Fluentd 대신 Vector를 사용할 수 있습니다.
logStore 섹션에서 유형을 선택합니다.
참고로깅 버전 5.4.3부터 Elasticsearch Operator는 더 이상 사용되지 않으며 향후 릴리스에서 제거될 예정입니다. Red Hat은 현재 릴리스 라이프사이클 동안 이 기능에 대한 버그 수정 및 지원을 제공하지만 이 기능은 더 이상 개선 사항을 받지 않으며 제거됩니다. Elasticsearch Operator를 사용하여 기본 로그 스토리지를 관리하는 대신 Loki Operator를 사용할 수 있습니다.
- 생성을 클릭합니다.
4.4.2. 웹 콘솔을 사용하여 test Operator 배포
OpenShift Container Platform 웹 콘솔을 사용하여 Loki Operator를 설치할 수 있습니다.
사전 요구 사항
- 지원되는 로그 저장소(AWS S3, Google Cloud Storage, Azure, Swift, Minio, OpenShift Data Foundation)
절차
OpenShift Container Platform 웹 콘솔을 사용하여 Loki Operator를 설치하려면 다음을 수행합니다.
-
OpenShift Container Platform 웹 콘솔에서 Operator
OperatorHub를 클릭합니다. 키워드로 필터링 필드에 태그를 입력합니다.
- 사용 가능한 Operator 목록에서or Operator를 선택하고 설치를 클릭합니다.
stable 또는 stable-5.y 를 업데이트 채널로 선택합니다.
참고stable
채널은 최신 로깅 릴리스에 대한 업데이트만 제공합니다. 이전 릴리스에 대한 업데이트를 계속 받으려면 서브스크립션 채널을stable-X
로 변경해야 합니다. 여기서X
는 설치한 로깅 버전입니다.- 설치 모드에서 클러스터의 모든 네임스페이스 가 선택되어 있는지 확인합니다.
- 설치된 네임스페이스에서 openshift-operators-redhat이 선택되어 있는지 확인합니다.
이 네임스페이스에서 Operator 권장 클러스터 모니터링 사용을 선택합니다.
이 옵션은 네임스페이스 오브젝트에서
openshift.io/cluster-monitoring: "true"
레이블을 설정합니다. 클러스터 모니터링이openshift-operators-redhat
네임스페이스를 스크랩하도록 하려면 이 옵션을 선택해야 합니다.업데이트 승인을 위해 옵션을 선택합니다.
- 자동 옵션을 사용하면 새 버전이 제공되면 OLM(Operator Lifecycle Manager)에서 Operator를 자동으로 업데이트할 수 있습니다.
- 수동 옵션을 사용하려면 적절한 자격 증명을 가진 사용자가 Operator 업데이트를 승인해야 합니다.
- 설치를 클릭합니다.
Operator
설치된 Operator 페이지로 전환하여 iPXE Operator 가 설치되었는지 확인합니다. - 모든 프로젝트에서 Status 가 Succeeded 로 나열되어 있는지 확인합니다.
access_key_id
및access_key_secret
필드를 사용하여 자격 증명과버킷 이름
,끝점
,리전
을 사용하여 오브젝트 스토리지 위치를 정의하는Secret
YAML 파일을 생성합니다. AWS는 다음 예에서 사용됩니다.apiVersion: v1 kind: Secret metadata: name: logging-loki-s3 namespace: openshift-logging stringData: access_key_id: AKIAIOSFODNN7EXAMPLE access_key_secret: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY bucketnames: s3-bucket-name endpoint: https://s3.eu-central-1.amazonaws.com region: eu-central-1
세부 정보 탭에서 Create instance Stack을 선택합니다. 그런 다음 YAML 보기 를 선택합니다. 다음 템플릿에 붙여넣고 적절한 값을 지정합니다.
apiVersion: loki.grafana.com/v1 kind: LokiStack metadata: name: logging-loki 1 namespace: openshift-logging spec: size: 1x.small 2 storage: schemas: - version: v12 effectiveDate: '2022-06-01' secret: name: logging-loki-s3 3 type: s3 4 storageClassName: <storage_class_name> 5 tenants: mode: openshift-logging
ClusterLogging
CR을 생성하거나 편집합니다.apiVersion: logging.openshift.io/v1 kind: ClusterLogging metadata: name: instance namespace: openshift-logging spec: managementState: Managed logStore: type: lokistack lokistack: name: logging-loki collection: type: vector
설정을 적용합니다.
oc apply -f cr-lokistack.yaml
4.4.3. CLI를 사용하여 OperatorHub에서 설치
OpenShift Container Platform 웹 콘솔을 사용하는 대신 CLI를 사용하여 OperatorHub에서 Operator를 설치할 수 있습니다. oc
명령을 사용하여 Subscription
개체를 만들거나 업데이트합니다.
사전 요구 사항
-
cluster-admin
권한이 있는 계정을 사용하여 OpenShift Container Platform 클러스터에 액세스할 수 있습니다. -
로컬 시스템에
oc
명령을 설치합니다.
절차
OperatorHub에서 클러스터에 사용 가능한 Operator의 목록을 표시합니다.
$ oc get packagemanifests -n openshift-marketplace
출력 예
NAME CATALOG AGE 3scale-operator Red Hat Operators 91m advanced-cluster-management Red Hat Operators 91m amq7-cert-manager Red Hat Operators 91m ... couchbase-enterprise-certified Certified Operators 91m crunchy-postgres-operator Certified Operators 91m mongodb-enterprise Certified Operators 91m ... etcd Community Operators 91m jaeger Community Operators 91m kubefed Community Operators 91m ...
필요한 Operator의 카탈로그를 기록해 둡니다.
필요한 Operator를 검사하여 지원되는 설치 모드 및 사용 가능한 채널을 확인합니다.
$ oc describe packagemanifests <operator_name> -n openshift-marketplace
OperatorGroup
오브젝트로 정의되는 Operator group에서 Operator group과 동일한 네임스페이스에 있는 모든 Operator에 대해 필요한 RBAC 액세스 권한을 생성할 대상 네임스페이스를 선택합니다.Operator를 서브스크립션하는 네임스페이스에는 Operator의 설치 모드, 즉
AllNamespaces
또는SingleNamespace
모드와 일치하는 Operator group이 있어야 합니다. 설치하려는 Operator에서AllNamespaces
를 사용하는 경우openshift-operators
네임스페이스에 적절한 Operator group이 이미 있습니다.그러나 Operator에서
SingleNamespace
모드를 사용하고 적절한 Operator group이 없는 경우 이를 생성해야 합니다.참고이 프로세스의 웹 콘솔 버전에서는
SingleNamespace
모드를 선택할 때 자동으로OperatorGroup
및Subscription
개체 생성을 자동으로 처리합니다.OperatorGroup
개체 YAML 파일을 만듭니다 (예:operatorgroup.yaml)
.OperatorGroup
오브젝트의 예apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: <operatorgroup_name> namespace: <namespace> spec: targetNamespaces: - <namespace>
OperatorGroup
개체를 생성합니다.$ oc apply -f operatorgroup.yaml
Subscription
개체 YAML 파일을 생성하여 OpenShift Pipelines Operator에 네임스페이스를 등록합니다(예:sub.yaml)
.Subscription
개체 예apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: <subscription_name> namespace: openshift-operators 1 spec: channel: <channel_name> 2 name: <operator_name> 3 source: redhat-operators 4 sourceNamespace: openshift-marketplace 5 config: env: 6 - name: ARGS value: "-v=10" envFrom: 7 - secretRef: name: license-secret volumes: 8 - name: <volume_name> configMap: name: <configmap_name> volumeMounts: 9 - mountPath: <directory_name> name: <volume_name> tolerations: 10 - operator: "Exists" resources: 11 requests: memory: "64Mi" cpu: "250m" limits: memory: "128Mi" cpu: "500m" nodeSelector: 12 foo: bar
- 1
AllNamespaces
설치 모드를 사용하려면openshift-operators
네임스페이스를 지정합니다. 그 외에는SingleNamespace
설치 모드를 사용하도록 관련 단일 네임스페이스를 지정합니다.- 2
- 등록할 채널의 이름입니다.
- 3
- 등록할 Operator의 이름입니다.
- 4
- Operator를 제공하는 카탈로그 소스의 이름입니다.
- 5
- 카탈로그 소스의 네임스페이스입니다. 기본 OperatorHub 카탈로그 소스에는
openshift-marketplace
를 사용합니다. - 6
env
매개변수는 OLM에서 생성한 포드의 모든 컨테이너에 있어야 하는 환경 변수 목록을 정의합니다.- 7
envFrom
매개변수는 컨테이너에서 환경 변수를 채울 소스 목록을 정의합니다.- 8
volumes
매개변수는 OLM에서 생성한 Pod에 있어야 하는 볼륨 목록을 정의합니다.- 9
volumeMounts
매개변수는 OLM에서 생성한 Pod의 모든 컨테이너에 있어야 하는 VolumeMounts 목록을 정의합니다.volumeMount
가 존재하지 않는볼륨을
참조하는 경우 OLM에서 Operator를 배포하지 못합니다.- 10
tolerations
매개변수는 OLM에서 생성한 Pod의 Tolerations 목록을 정의합니다.- 11
resources
매개변수는 OLM에서 생성한 Pod의 모든 컨테이너에 대한 리소스 제약 조건을 정의합니다.- 12
nodeSelector
매개변수는 OLM에서 생성한 Pod에 대한NodeSelector
를 정의합니다.
Subscription
오브젝트를 생성합니다.$ oc apply -f sub.yaml
이 시점에서 OLM은 이제 선택한 Operator를 인식합니다. Operator의 CSV(클러스터 서비스 버전)가 대상 네임스페이스에 표시되고 Operator에서 제공하는 API를 생성에 사용할 수 있어야 합니다.
4.4.4. 웹 콘솔을 사용하여 클러스터에서 Operator 삭제
클러스터 관리자는 웹 콘솔을 사용하여 선택한 네임스페이스에서 설치된 Operator를 삭제할 수 있습니다.
사전 요구 사항
-
cluster-admin
권한이 있는 계정을 사용하여 OpenShift Container Platform 클러스터 웹 콘솔에 액세스할 수 있습니다.
절차
-
Operator
설치된 Operator 페이지로 이동합니다. - 제거하려는 Operator를 찾으려면 이름으로 필터링 필드에 키워드를 스크롤하거나 입력합니다. 그런 다음 해당 Operator를 클릭합니다.
Operator 세부 정보 페이지 오른쪽에 있는 작업 목록에서 Operator 제거를 선택합니다.
Operator를 설치 제거하시겠습니까? 대화 상자가 표시됩니다.
설치 제거를 선택하여 Operator, Operator 배포 및 Pod를 제거합니다. 이 작업 후에 Operator는 실행을 중지하고 더 이상 업데이트가 수신되지 않습니다.
참고이 작업은 CRD(사용자 정의 리소스 정의) 및 CR(사용자 정의 리소스)을 포함하여 Operator에서 관리하는 리소스를 제거하지 않습니다. 웹 콘솔에서 활성화된 대시보드 및 탐색 항목과 계속 실행되는 클러스터 외부 리소스는 수동 정리가 필요할 수 있습니다. Operator를 설치 제거한 후 해당 항목을 제거하려면 Operator CRD를 수동으로 삭제해야 할 수 있습니다.
4.4.5. CLI를 사용하여 클러스터에서 Operator 삭제
클러스터 관리자는 CLI를 사용하여 선택한 네임스페이스에서 설치된 Operator를 삭제할 수 있습니다.
사전 요구 사항
-
cluster-admin
권한이 있는 계정을 사용하여 OpenShift Container Platform 클러스터에 액세스할 수 있습니다. -
oc
명령이 워크스테이션에 설치되어 있습니다.
절차
currentCSV
필드에서 구독한 Operator(예:jaeger
)의 현재 버전을 확인합니다.$ oc get subscription jaeger -n openshift-operators -o yaml | grep currentCSV
출력 예
currentCSV: jaeger-operator.v1.8.2
서브스크립션을 삭제합니다(예:
jaeger
).$ oc delete subscription jaeger -n openshift-operators
출력 예
subscription.operators.coreos.com "jaeger" deleted
이전 단계의
currentCSV
값을 사용하여 대상 네임스페이스에서 Operator의 CSV를 삭제합니다.$ oc delete clusterserviceversion jaeger-operator.v1.8.2 -n openshift-operators
출력 예
clusterserviceversion.operators.coreos.com "jaeger-operator.v1.8.2" deleted