4.5.2. 보고 API 노출

OpenShift Container Platform에서 기본 미터링 설치는 경로를 자동으로 노출하여 보고 API를 사용할 수 있습니다. 이는 다음 기능을 제공합니다.

  • 자동 DNS
  • 클러스터 CA 기반 자동 TLS

또한 기본 설치를 통해 인증서를 제공하여 TLS로 보고 API를 보호하는 데 OpenShift 서비스를 사용할 수 있습니다. OpenShift OAuth 프록시는 보고 API를 인증으로 보안하기 위한 Reporting Operator의 사이드카 컨테이너로 배포됩니다.

4.5.2.1. OpenShift 인증 사용

기본적으로 보고 API는 TLS 및 인증으로 보호됩니다. 이는 Reporting Operator의 컨테이너와 OpenShift 인증 프록시를 실행하는 사이드카 컨테이너 모두를 포함하는 Pod를 배포하도록 Reporting Operator를 구성하여 수행됩니다.

보고 API에 액세스하기 위해 Metering Operator가 경로를 노출합니다. 해당 경로가 설치되면 다음 명령을 실행하여 경로의 호스트 이름을 얻을 수 있습니다.

$ METERING_ROUTE_HOSTNAME=$(oc -n openshift-metering get routes metering -o json | jq -r '.status.ingress[].host')

다음으로 사용자 이름 및 암호와 함께 서비스 계정 토큰 또는 기본 인증을 사용하여 인증을 설정합니다.

4.5.2.1.1. 서비스 계정 토큰을 사용하여 인증

이 방법을 사용하여 Reporting Operator의 서비스 계정에서 토큰을 사용하고 다음 명령에서 해당 전달자 토큰을 인증 헤더에 전달합니다.

$ TOKEN=$(oc -n openshift-metering serviceaccounts get-token reporting-operator)
curl -H "Authorization: Bearer $TOKEN" -k "https://$METERING_ROUTE_HOSTNAME/api/v1/reports/get?name=[Report Name]&namespace=openshift-metering&format=[Format]"

위 URL에서 name=[Report Name]format=[Format] 매개변수를 바꿔야 합니다. format 매개변수는 json, csv 또는 tabular일 수 있습니다.

4.5.2.1.2. 사용자 이름과 암호를 사용하여 인증

미터링은 htpasswd 파일의 콘텐츠에 지정된 사용자 이름 및 암호 조합을 사용하여 기본 인증 구성을 지원합니다. 기본적으로 빈 htpasswd 데이터를 포함하는 시크릿을 생성합니다. 그러나 이 방법을 사용하기 위해 reporting-operator.spec.authProxy.htpasswd.datareporting-operator.spec.authProxy.htpasswd.createSecret 키를 구성할 수 있습니다.

MeteringConfig 리소스에서 위를 지정하면 다음 명령을 실행할 수 있습니다.

$ curl -u testuser:password123 -k "https://$METERING_ROUTE_HOSTNAME/api/v1/reports/get?name=[Report Name]&namespace=openshift-metering&format=[Format]"

testuser:password123을 유효한 사용자 이름 및 암호 조합으로 바꿉니다.