11.6. Red Hat OpenShift용 외부 시크릿 Operator 모니터링
기본적으로 Red Hat OpenShift의 External Secrets Operator는 Operator 및 피연산자에 대한 지표를 표시합니다. Prometheus Operator 형식을 사용하여 이러한 지표를 수집하도록 OpenShift 모니터링을 구성할 수 있습니다.
11.6.1. 사용자 워크로드 모니터링 활성화 링크 복사링크가 클립보드에 복사되었습니다!
클러스터에서 사용자 워크로드 모니터링을 구성하여 사용자 정의 프로젝트에 대한 모니터링을 활성화할 수 있습니다. 자세한 내용은 "사용자 정의 프로젝트에 대한 메트릭 컬렉션 설정"을 참조하십시오.
사전 요구 사항
-
cluster-admin역할의 사용자로 클러스터에 액세스할 수 있어야 합니다.
프로세스
cluster-monitoring-config.yamlYAML 파일을 생성합니다.apiVersion: v1 kind: ConfigMap metadata: name: cluster-monitoring-config namespace: openshift-monitoring data: config.yaml: | enableUserWorkload: true다음 명령을 실행하여
ConfigMap을 적용합니다.$ oc apply -f cluster-monitoring-config.yaml
검증
다음 명령을 실행하여 사용자 워크로드에 대한 모니터링 구성 요소가
openshift-user-workload-monitoring네임스페이스에서 실행되고 있는지 확인합니다.$ oc -n openshift-user-workload-monitoring get pod출력 예
NAME READY STATUS RESTARTS AGE prometheus-operator-5f79cff9c9-67pjb 2/2 Running 0 25h prometheus-user-workload-0 6/6 Running 0 25h thanos-ruler-user-workload-0 4/4 Running 0 25hprometheus-operator,prometheus-user-workload,thanos-ruler-user-workload와 같은 Pod의 상태는Running이어야 합니다.
11.6.2. ServiceMonitor를 사용하여 Red Hat OpenShift용 외부 시크릿 Operator에 대한 메트릭 컬렉션 구성 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat OpenShift용 External Secrets Operator는 기본적으로 /metrics 서비스 끝점의 포트 8443 에 지표를 노출합니다. ServiceMonitor CR(사용자 정의 리소스)을 생성하여 Prometheus Operator가 사용자 정의 지표를 수집할 수 있도록 Operator에 대한 메트릭 컬렉션을 구성할 수 있습니다. 자세한 내용은 "사용자 워크로드 모니터링 구성"을 참조하십시오.
사전 요구 사항
-
cluster-admin역할의 사용자로 클러스터에 액세스할 수 있어야 합니다. - Red Hat OpenShift용 External Secrets Operator가 설치되어 있습니다.
- 사용자 워크로드 모니터링을 활성화했습니다.
프로세스
메트릭 서버에
HTTP를 사용하도록 Operator를 구성합니다.HTTPS는 기본적으로 활성화되어 있습니다.다음 명령을 실행하여 Red Hat OpenShift용 외부 Secrets Operator에 대한 서브스크립션 오브젝트를 업데이트하여
HTTP프로토콜을 구성합니다.$ oc -n external-secrets-operator patch subscription openshift-external-secrets-operator --type='merge' -p '{"spec":{"config":{"env":[{"name":"METRICS_BIND_ADDRESS","value":":8080"}, {"name": "METRICS_SECURE", "value": "false"}]}}}'External Secrets Operator Pod가 재배포되고
METRICS_BIND_ADDRESS및METRICS_SECURE에 대해 구성된 값이 업데이트되었는지 확인하려면 다음 명령을 실행합니다.$ oc set env --list deployment/external-secrets-operator-controller-manager -n external-secrets-operator | grep -e METRICS_BIND_ADDRESS -e METRICS_SECURE -e container다음 예제에서는
METRICS_BIND_ADDRESS및METRICS_SECURE가 업데이트되었음을 보여줍니다.# deployments/external-secrets-operator-controller-manager, container manager METRICS_BIND_ADDRESS=:8080 METRICS_SECURE=false
kubernetes.io/service-account.name주석을 사용하여Secret리소스를 생성하여 지표 서버로 인증하는 데 필요한 토큰을 삽입합니다.secret-external-secrets-operator.yamlYAML 파일을 생성합니다.apiVersion: v1 kind: Secret metadata: labels: app: external-secrets-operator name: external-secrets-operator-metrics-auth namespace: external-secrets-operator annotations: kubernetes.io/service-account.name: external-secrets-operator-controller-manager type: kubernetes.io/service-account-token다음 명령을 실행하여
Secret리소스를 생성합니다.$ oc apply -f secret-external-secrets-operator.yaml
메트릭에 액세스 권한을 부여하는 데 필요한
ClusterRoleBinding리소스를 생성합니다.clusterrolebinding-external-secrets.yamlYAML 파일을 생성합니다.다음 예제에서는
cluserrolebinding-external-secrets.yaml파일을 보여줍니다.apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: labels: app: external-secrets-operator name: external-secrets-allow-metrics-access roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: external-secrets-operator-metrics-reader subjects: - kind: ServiceAccount name: external-secrets-operator-controller-manager namespace: external-secrets-operator다음 명령을 실행하여
ClusterRoldeBinding사용자 정의 리소스를 생성합니다.$ oc apply -f clusterrolebinding-external-secrets.yaml
기본
HTTPS를 사용하는 경우ServiceMonitorCR을 생성합니다.servicemonitor-external-secrets-operator-https.yamlYAML 파일을 생성합니다.apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: labels: app: external-secrets-operator name: external-secrets-operator-metrics-monitor namespace: external-secrets-operator spec: endpoints: - authorization: credentials: name: external-secrets-operator-metrics-auth key: token type: Bearer interval: 60s path: /metrics port: metrics-https scheme: https scrapeTimeout: 30s tlsConfig: ca: configMap: name: openshift-service-ca.crt key: service-ca.crt serverName: external-secrets-operator-controller-manager-metrics-service.external-secrets-operator.svc.cluster.local namespaceSelector: matchNames: - external-secrets-operator selector: matchLabels: app: external-secrets-operator svc: external-secrets-operator-controller-manager-metrics-service다음 명령을 실행하여
ServiceMonitorCR을 생성합니다.$ oc apply -f servicemonitor-external-secrets-operator-https.yaml
HTTP를 사용하도록 구성된 경우ServiceMonitorCR을 생성합니다.servicemonitor-external-secrets-operator-http.yamlYAML 파일을 생성합니다.apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: labels: app: external-secrets-operator name: external-secrets-operator-metrics-monitor namespace: external-secrets-operator spec: endpoints: - authorization: credentials: name: external-secrets-operator-metrics-auth key: token type: Bearer interval: 60s path: /metrics port: metrics-http scheme: http scrapeTimeout: 30s namespaceSelector: matchNames: - external-secrets-operator selector: matchLabels: app: external-secrets-operator svc: external-secrets-operator-controller-manager-metrics-service다음 명령을 실행하여
ServiceMonitorCR을 생성합니다.$ oc apply -f servicemonitor-external-secrets-operator-http.yamlServiceMonitorCR이 생성되면 사용자 워크로드 Prometheus 인스턴스는 Operator에서 메트릭 수집을 시작합니다. 수집된 지표는job="external-secrets-operator-controller-manager-metrics-service"로 레이블이 지정됩니다.
검증
-
OpenShift Container Platform 웹 콘솔에서 모니터링
대상으로 이동합니다. 라벨 필터 필드에 다음 레이블을 입력하여 각 피연산자의 메트릭 대상을 필터링합니다.
$ service=external-secrets-operator-controller-manager-metrics-service-
external-secrets-operator의 Status 열에Up이 표시되는지 확인합니다.
11.6.3. Red Hat OpenShift용 External Secrets Operator의 메트릭 쿼리 링크 복사링크가 클립보드에 복사되었습니다!
클러스터 관리자 또는 모든 네임스페이스에 대한 보기 액세스 권한이 있는 사용자는 OpenShift Container Platform 웹 콘솔 또는 CLI(명령줄 인터페이스)를 사용하여 Operator 지표를 쿼리할 수 있습니다. 자세한 내용은 " metrics 액세스"를 참조하십시오.
사전 요구 사항
-
cluster-admin역할의 사용자로 클러스터에 액세스할 수 있어야 합니다. - Red Hat OpenShift용 External Secrets Operator가 설치되어 있습니다.
-
ServiceMonitor오브젝트를 생성하여 모니터링 및 메트릭 컬렉션을 활성화했습니다.
프로세스
-
OpenShift Container Platform 웹 콘솔에서 모니터링
메트릭 으로 이동합니다. 쿼리 필드에 다음 PromQL 표현식을 입력하여 External Secrets Operator for Red Hat OpenShift 메트릭을 쿼리합니다.
{job="external-secrets-operator-controller-manager-metrics-service"}
11.6.4. ServiceMonitor를 사용하여 Red Hat OpenShift 피연산자에 대한 외부 시크릿 Operator에 대한 메트릭 컬렉션 구성 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat OpenShift 피연산자용 External Secrets Operator는 세 가지 구성 요소( external-secrets ,external-secrets-cert-controll,external- )에 대해 secrets-webhook/metrics 서비스 끝점의 포트 8080 에 기본적으로 지표를 노출합니다. ServiceMonitor CR(사용자 정의 리소스)을 생성하여 external-secrets 피연산자에 대한 메트릭 컬렉션을 구성하여 Prometheus Operator에서 사용자 정의 지표를 수집할 수 있습니다. 자세한 내용은 "사용자 워크로드 모니터링 구성"을 참조하십시오.
사전 요구 사항
-
cluster-admin역할의 사용자로 클러스터에 액세스할 수 있어야 합니다. - Red Hat OpenShift용 External Secrets Operator가 설치되어 있습니다.
- 사용자 워크로드 모니터링을 활성화했습니다.
프로세스
메트릭에 액세스 권한을 부여하는 데 필요한
ClusterRoleBinding리소스를 생성합니다.clusterrolebinding-external-secrets.yamlYAML 파일을 생성합니다.다음 예제에서는
cluserrolebinding-external-secrets.yaml파일을 보여줍니다.apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: labels: app: external-secrets name: external-secrets-allow-metrics-access roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: external-secrets-operator-metrics-reader subjects: - kind: ServiceAccount name: external-secrets namespace: external-secrets - kind: ServiceAccount name: external-secrets-cert-controller namespace: external-secrets - kind: ServiceAccount name: external-secrets-webhook namespace: external-secrets다음 명령을 실행하여
ClusterRoldeBinding사용자 정의 리소스를 생성합니다.$ oc apply -f clusterrolebinding-external-secrets.yaml
ServiceMonitorCR을 생성합니다.servicemonitor-external-secrets.yamlYAML 파일을 생성합니다.apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: labels: app: external-secrets name: external-secrets-metrics-monitor namespace: external-secrets spec: endpoints: - interval: 60s path: /metrics port: metrics scheme: http scrapeTimeout: 30s namespaceSelector: matchNames: - external-secrets selector: matchExpressions: - key: app.kubernetes.io/name operator: In values: - external-secrets - external-secrets-cert-controller - external-secrets-webhook - key: app.kubernetes.io/instance operator: In values: - external-secrets - key: app.kubernetes.io/managed-by operator: In values: - external-secrets-operator다음 명령을 실행하여
ServiceMonitorCR을 생성합니다.$ oc apply -f servicemonitor-external-secrets.yamlServiceMonitorCR이 생성되면 사용자 워크로드 Prometheus 인스턴스는 Red Hat OpenShift 피연산자용 External Secrets Operator에서 메트릭 수집을 시작합니다. 수집된 지표는job="external-secrets",job="external-secrets-cainjector"및job="external-secrets-webhook"로 레이블이 지정됩니다.
검증
-
OpenShift Container Platform 웹 콘솔에서 모니터링
대상으로 이동합니다. 라벨 필터 필드에 다음 레이블을 입력하여 각 피연산자의 메트릭 대상을 필터링합니다.
$ service=external-secrets$ service=external-secrets-cert-controller-metrics$ service=external-secrets-webhook-
Status 열에 external-secrets ,
external-secrets-cert-controller 및에 대한external-secrets-webhookUp이 표시되는지 확인합니다.
11.6.5. external-secrets 피연산자의 메트릭 쿼리 링크 복사링크가 클립보드에 복사되었습니다!
클러스터 관리자는 또는 모든 네임스페이스에 대한 보기 액세스 권한이 있는 사용자로 OpenShift Container Platform 웹 콘솔 또는 CLI(명령줄 인터페이스)를 사용하여 external-secrets 피연산자 메트릭을 쿼리할 수 있습니다. 자세한 내용은 " metrics 액세스"를 참조하십시오.
사전 요구 사항
-
cluster-admin역할의 사용자로 클러스터에 액세스할 수 있어야 합니다. - Red Hat OpenShift용 External Secrets Operator가 설치되어 있습니다.
-
ServiceMonitor오브젝트를 생성하여 모니터링 및 메트릭 컬렉션을 활성화했습니다.
프로세스
-
OpenShift Container Platform 웹 콘솔에서 모니터링
메트릭 으로 이동합니다. 쿼리 필드에 다음 PromQL 표현식을 입력하여 각 피연산자의 외부 Secrets Operator를 쿼리합니다.
{job="external-secrets"}{job="external-secrets-webhook"}{job="external-secrets-cert-controller-metrics"}