이 문서에서는 Cluster Services for OpenShift Telemetry 연산자 를 설치하고 Compute Engine 인스턴스에서 실행되는 OpenShift 클러스터와 연결하도록 구성하는 방법을 설명합니다.
이 원격 분석 연산자는 설치 및 구성 후 클러스터 상태와 클러스터 구성을 지속적으로 모니터링하는 호스트 네트워크 원격 분석 데몬을 배포합니다. 연산자는 수집된 측정항목을 워크로드 관리자로 보냅니다. 그런 다음 워크로드 관리자 평가 를 사용하여 OpenShift 클러스터의 권장사항에서 벗어난 클러스터에서 실행되는 워크로드를 검사할 수 있습니다.
시작하기 전에
원격 분석 연산자를 설치하고 구성하기 전에 다음 기본 요건이 충족되는지 확인해야 합니다.
- Red Hat OpenShift 컨테이너 플랫폼 버전 4.18 이상을 사용하고 있습니다.
- 하나 이상의 컴퓨팅 인스턴스에 OpenShift 클러스터를 배포했습니다.
- 관리자가 Red Hat OpenShift 컨테이너 플랫폼에서 클러스터에 대한 ClusterAdmin 역할을 부여했습니다.
- 터미널에서 Google Cloud CLI를 다운로드하고 설치했습니다. Cloud Shell을 사용하는 경우 이 기본 요건을 건너뛸 수 있습니다.
- 클러스터에 OpenShift CLI (
oc)를 설치했습니다. 이 CLI를 설치하는 방법은 Red Hat 문서 OpenShift CLI 설치를 참조하세요. - Cloud Credentials Operator (
ccoctl) 유틸리티를 설치했습니다. 이 유틸리티를 설치하는 방법은 Red Hat 문서 OpenShift 4용ccoctl도구를 가져오는 방법을 참조하세요. - 워크로드 관리자 평가를 만들 수 있는 지원되는 리전 을 검토했습니다.
- 관리자가 워크로드 관리자 평가를 만들고 실행하는 데 필요한 IAM 역할을 부여했습니다.
- Cloud API에 대한 액세스를 사용 설정했습니다.
Cloud API에 대한 액세스 사용 설정
Compute Engine은 모든 Cloud API에 대한 전체 액세스 범위를 허용하도록 인스턴스를 구성하고, 인스턴스 서비스 계정의 IAM 권한만 사용하여 리소스에 대한 액세스를 제어할 것을 권장합니다. Google Cloud 자세한 내용은 사용자 관리형 서비스 계정을 사용하는 VM 만들기를 참고하세요.
Cloud API에 대한 액세스를 제한하는 경우 Cluster Services for OpenShift Telemetry 연산자에는 호스트 컴퓨팅 인스턴스에 최소한 다음과 같은 Cloud API 액세스 범위가 필요합니다.
https://www.googleapis.com/auth/cloud-platform
자세한 내용은 범위 권장사항을 참조하세요.
외부 IP 주소가 없는 컴퓨팅 인스턴스에서 OpenShift 클러스터를 실행하는 경우 Cluster Services for OpenShift Telemetry 연산자가 Google API 및 서비스에 액세스할 수 있도록 인스턴스의 서브넷에서 비공개 Google 액세스를 사용 설정해야 합니다. 비공개 Google 액세스를 사용 설정하는 방법은 비공개 Google 액세스 구성을 참조하세요.
OpenShift 클러스터에 사용자 인증
관리 작업을 수행하려면 사용자 또는 사용자가 OpenShift CLI를 사용하여 OpenShift 클러스터에 인증되어야 합니다. OpenShift 클러스터에 사용자를 인증하려면 다음 옵션 중에서 선택하면 됩니다.
다음 명령어를 실행하고 메시지를 따릅니다.
oc login "https://api.CLUSTER_DOMAIN:6443" -u kubeadmin또는
oc바이너리와 함께 사용할 세션 인증 토큰을 가져옵니다. 이 토큰을 가져오려면 웹브라우저에서 다음 URL을 엽니다.https://oauth-openshift.apps.CLUSTER_DOMAIN/oauth/token/request
CLUSTER_DOMAIN을 OpenShift 클러스터의 도메인으로 바꿉니다. 예를 들면 mycluster.google.com입니다.
연산자를 인증합니다. Google Cloud
원격 분석 연산자가 자체 인증하고 리소스에 액세스 Google Cloud 하도록 하려면 프로젝트에서 서비스 계정을 만들어야 합니다. Google Cloud
다음 옵션을 사용하여 원격 분석 연산자를 서비스 계정으로 인증할 수 있습니다.
워크로드 아이덴티티 제휴를 사용하여 연산자 인증
워크로드 아이덴티티 제휴를 사용하여 원격 분석 연산자를 서비스 계정으로 인증하려면 다음 단계를 완료하세요.
터미널에서 원격 분석 연산자 번들에서
CredentialsRequest매니페스트를 로컬 디렉터리로 추출합니다.mkdir -p credrequests oc image extract us-docker.pkg.dev/workload-agent-products/cluster-services-for-openshift-telemetry/bundle:VERSION --path /manifests/:./credrequests --confirmVERSION을 OperatorHub에서 원격 분석 연산자에 대해 구독한 버전 번호로 바꿉니다. Red Hat Ecosystem Catalog에서 원격 분석 연산자의 인증된 버전 번호 목록을 확인할 수 있습니다.ccoctl유틸리티를 사용하여 추출된CredentialsRequest매니페스트를 처리하고 Google Cloud Identity and Access Management (IAM) 결합 및 사용자 인증 정보를 프로비저닝합니다.ccoctl gcp create-all \ --name=cso-telemetry \ --region=REGION \ --project=PROJECT_ID \ --credentials-requests-dir=./credrequests \ --output-dir=./ccoctl-out다음을 바꿉니다.
REGION: OpenShift 클러스터가 실행되는 Compute Engine 리전PROJECT_ID: OpenShift 클러스터가 실행되는 프로젝트의 프로젝트 ID Google Cloud
생성된 OpenID Connect (OIDC) 제공업체, IAM 역할, 보안 비밀 매니페스트를 클러스터에 적용합니다.
oc apply -f ./ccoctl-out/manifests/
이전 단계에서는 프로젝트에서 서비스 계정을 만들고 다음 IAM 역할을 할당합니다. Google Cloud
- 컴퓨팅 인스턴스에서 측정항목을 수집하려면
Compute Viewer (
roles/compute.viewer) - 워크로드 관리자 데이터 웨어하우스에 데이터를 쓰려면
워크로드 관리자 통계 작성자 (
roles/workloadmanager.insightWriter) - Cloud Logging에 연산자 로그를 보내려면:
로그 작성자 (
roles/logging.logWriter)
서비스 계정 키를 사용하여 연산자 인증
조직에서 인증 목적으로 워크로드 아이덴티티 제휴 사용을 지원하지 않는 경우 서비스 계정 키를 사용하여 원격 분석 연산자를 인증할 수 있습니다.
서비스 계정 키를 사용하여 원격 분석 연산자를 서비스 계정으로 인증하려면 다음 단계를 완료하세요.
터미널에서 원격 분석 연산자 번들에서
CredentialsRequest매니페스트를 로컬 디렉터리로 추출합니다.mkdir -p credrequests oc image extract us-docker.pkg.dev/workload-agent-products/cluster-services-for-openshift-telemetry/bundle:VERSION --path /manifests/:./credrequests --confirm프로젝트에서 원격 분석 연산자의 서비스 계정을 만듭니다. Google Cloud
gcloud iam service-accounts create cso-telemetry-agent \ --description="Service account for OpenShift Telemetry Operator" \ --display-name="CSO Telemetry Agent" \ --project=PROJECT_IDPROJECT_ID를 Google Cloud OpenShift 클러스터가 실행되는 프로젝트의 ID로 바꿉니다.서비스 계정이 리소스에 액세스하도록 하려면 서비스 계정에 매니페스트에 정의된 IAM 역할을 부여합니다. Google Cloud
CredentialsRequest이 매니페스트에는 연산자에 필요한 최소 IAM 역할 집합이 포함되어 있습니다.- 컴퓨팅 인스턴스에서 측정항목을 수집하려면
Compute Viewer (
roles/compute.viewer) - 워크로드 관리자 데이터 웨어하우스에 데이터를 쓰려면
워크로드 관리자 통계 작성자 (
roles/workloadmanager.insightWriter) - Cloud Logging에 연산자 로그를 보내려면:
로그 작성자 (
roles/logging.logWriter)
이 매니페스트에 정의된 각 IAM 역할에 대해 다음 명령어를 실행합니다.
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:cso-telemetry-agent@PROJECT_ID.iam.gserviceaccount.com" \ --role="IAM_ROLE"IAM_ROLE을 서비스 계정에 부여할 IAM 역할로 바꿉니다.- 컴퓨팅 인스턴스에서 측정항목을 수집하려면
Compute Viewer (
서비스 계정의 비공개 키를 만들고 다운로드합니다.
gcloud iam service-accounts keys create ./sa_key.json \ --iam-account=cso-telemetry-agent@PROJECT_ID.iam.gserviceaccount.com \ --project=PROJECT_IDopenshift-operators네임스페이스에서 만든 서비스 계정 키의 보안 비밀telemetry-agent-sa를 만듭니다.oc create secret generic telemetry-agent-sa \ --from-file=workload_agent_sa_key.json=./sa_key.json \ -n openshift-operators
Cluster Services for OpenShift Telemetry 연산자 설치
Red Hat OpenShift 컨테이너 플랫폼 웹 콘솔 또는 선언적 구독 YAML 매니페스트를 사용하여 Cluster Services for OpenShift Telemetry 연산자를 설치할 수 있습니다. 이러한 옵션에 대한 자세한 내용은 Red Hat 문서 클러스터에 연산자 추가를 참조하세요.
OpenShift 웹 콘솔
OpenShift 컨테이너 플랫폼 웹 콘솔을 사용하여 OpenShift 클러스터에 원격 분석 연산자를 설치하려면 다음 단계를 완료하세요.
- Red Hat OpenShift 웹 콘솔에 로그인합니다.
- 관리자 관점에 있는지 확인합니다.
- 왼쪽 탐색에서 연산자 섹션을 펼치고 OperatorHub 를 클릭합니다.
모든 항목 아래의 검색창에 Cluster Services for OpenShift Telemetry를 입력합니다.
또는 Google 을 입력하여 검색할 수 있습니다. 이렇게 하면 Cluster Services for OpenShift Telemetry 연산자를 포함하여 Google에서 제공하는 연산자가 필터링됩니다.
Cluster Services for OpenShift Telemetry 라는 카드를 클릭합니다.
Cluster Services for OpenShift Telemetry 창에서 설치 를 클릭합니다.
연산자 설치 페이지에서 다음 단계를 완료하세요.
- 업데이트 채널 필드에서 stable 을 선택합니다.
- 설치 모드 필드에서 클러스터의 특정 네임스페이스 를 선택합니다.
- 설치된 네임스페이스 필드에서 openshift-operators 프로젝트를 선택하거나 커스텀 모니터링 네임스페이스를 만듭니다.
- 승인 전략 필드에서 자동 또는 수동 을 선택합니다.
- 설치 를 클릭합니다.
연산자가 성공적으로 설치되었는지 확인하려면 다음 단계를 완료하세요.
- **연산자**> **설치된 연산자**로 이동합니다.
- 연산자 목록에서 Cluster Services for OpenShift Telemetry 연산자가 있는지 검색하고 확인합니다.
- 상태 열에 성공 또는 최신 값이 표시되는지 확인합니다.
- 원하는 경우 연산자를 클릭하여 세부정보를 확인합니다.
OpenShift CLI
OpenShift CLI 및 선언적 Subscription YAML 매니페스트를 사용하여 OpenShift 클러스터에 원격 분석 연산자를 설치하려면 다음 단계를 완료하세요.
다음 구성으로
subscription.yaml이라는Subscription커스텀 리소스 매니페스트를 만듭니다.apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: google-cloud-cluster-services-for-openshift-telemetry namespace: openshift-operators spec: channel: stable installPlanApproval: Automatic name: google-cloud-cluster-services-for-openshift-telemetry source: certified-operators sourceNamespace: openshift-marketplace클러스터에 구독을 적용합니다.
oc apply -f subscription.yamlClusterServiceVersion의 상태를 확인하여 원격 분석 연산자가 성공적으로 설치되었는지 확인합니다.oc get csv -n openshift-operators출력에서
cluster-services-for-openshift-telemetry의PHASE열 값이Succeeded인지 확인합니다.
측정항목 수집 사용 설정
연산자가 OpenShift 클러스터에서 측정항목을 수집하도록 하려면 TelemetryConfig 커스텀 리소스를 적용해야 합니다. 이 리소스는 컴퓨팅 워크로드용 에이전트의 데몬 포드를 클러스터 노드에 배포합니다.
연산자가 OpenShift 클러스터에서 측정항목을 수집하도록 하려면 다음 단계를 완료하세요.
telemetryconfig.yaml이라는TelemetryConfig커스텀 리소스 매니페스트를 만듭니다.워크로드 아이덴티티 제휴를 사용하여 원격 분석 연산자의 인증을 설정한 경우 다음 최소 커스텀 리소스를 사용합니다. 이 커스텀 리소스는
google-cloud-cluster-services-telemetry-agent-wif-secret보안 비밀에 저장된 사용자 인증 정보를 자동으로 가져옵니다.apiVersion: cluster-services-openshift.cloud.google.com/v1alpha1 kind: TelemetryConfig metadata: name: telemetryconfig namespace: openshift-operators spec: enabled: true서비스 계정 키를 사용하여 원격 분석 연산자의 인증을 설정한 경우 다음 커스텀 리소스를 사용합니다.
apiVersion: cluster-services-openshift.cloud.google.com/v1alpha1 kind: TelemetryConfig metadata: name: telemetryconfig namespace: openshift-operators spec: enabled: true serviceAccountCredentialsSecretName: telemetry-agent-sa serviceAccountCredentialsPath: SERVICE_ACCOUNT_KEY_PATHSERVICE_ACCOUNT_KEY_PATH를 서비스 계정 키를 마운트한 경로로 바꿉니다. 마운트 이름은 서비스 계정 키 JSON 파일과 일치해야 합니다. 예를 들면/var/run/secrets/google/workload_agent_sa_key.json입니다.
클러스터에 커스텀 리소스를 적용합니다.
oc apply -f telemetryconfig.yaml원격 분석 에이전트 포드의 상태가 실행 중인지 확인합니다.
oc get pods -n openshift-operators -l app.kubernetes.io/name=workloadagent-operator포드의 로그를 검사하여 측정항목 수집을 확인할 수도 있습니다.
"openshiftmetrics/openshiftmetrics.go:126","msg":"Metric payload after collection","pid":5,"context":"OpenShiftMetricCollection","payload":"version:\"v0.1.0-pre\" agent_version:\"1.3\"
Cloud Logging에서 연산자 로그 보기
기본적으로 Cluster Services for OpenShift Telemetry 연산자의 로그는 Cloud Logging으로 전송됩니다. Logging에서 이러한 로그를 볼 수 있습니다. Logging에서 연산자 로그를 보려면 다음 단계를 완료하세요.
콘솔에서 로그 탐색기 페이지로 이동합니다. Google Cloud
쿼리 창에 쿼리를 입력합니다.
프로젝트의 로그를 필터링하려면 다음 쿼리를 사용합니다. Google Cloud
logName="projects/PROJECT_ID/logs/google-cloud-workload-agent"
PROJECT_ID를 OpenShift 클러스터가 실행되는 프로젝트의 Google Cloud 프로젝트 ID로 바꿉니다.프로젝트에서 여러 클러스터를 실행하고 특정 클러스터의 로그를 필터링하려면 다음 쿼리를 사용합니다. Google Cloud
resource.labels.instance_id=("COMPUTE_INSTANCE_ID_1" OR "COMPUTE_INSTANCE_ID_2" OR "COMPUTE_INSTANCE_ID_3")COMPUTE_INSTANCE_ID를 OpenShift 클러스터를 실행하는 Compute Engine 인스턴스의 인스턴스 ID 로 바꿉니다. 컴퓨팅 인스턴스 ID를 찾는 방법은 VM 세부정보 보기를 참조하세요.
쿼리 실행 을 클릭합니다.
로그 기반 알림 정책 설정
기본적으로 원격 분석 연산자의 로그는 Cloud Logging으로 전송됩니다. 로그에 특정 메시지가 표시될 때 알림을 보내는 원격 분석 연산자 로그를 기반으로 알림 정책을 구성하는 것이 좋습니다. 이러한 알림은 연산자의 작동을 모니터링하고 문제를 해결하는 데 도움이 됩니다.
원격 분석 연산자가 생성한 로그를 기반으로 알림 정책을 구성하려면 다음 단계를 완료하세요.
로그 기반 알림 정책 구성의 "시작하기 전에" 섹션에 설명된 기본 요건을 충족하는지 확인합니다.
콘솔에서 로그 탐색기 페이지로 이동합니다. Google Cloud
쿼리 창에 필요한 쿼리를 입력합니다.
logName="projects/PROJECT_ID/logs/google-cloud-workload-agent" severity=SEVERITY_LEVEL
SEVERITY_LEVEL을 지원되는 심각도 수준 값으로 바꿉니다. 여기에는DEBUG,INFO,WARNING,ERROR가 포함됩니다.ERROR또는 더 높은 로그 수준 값을 사용하는 것이 좋습니다.쿼리 실행 을 클릭하여 쿼리를 실행합니다.
로그 알림을 만듭니다.
이 알림을 만드는 방법은 로그 탐색기를 사용하여 로그 기반 알림 정책 만들기에 설명된 절차의 3단계를 참조하세요.
선택사항: 프로덕션별 평가 사용 설정
워크로드 관리자가 OpenShift 클러스터에 지원하는 권장사항 중 일부는 프로덕션 환경에만 적용됩니다.
워크로드 관리자는 클러스터, 배포 또는 포드에서 environment 라벨을 확인하여 이 구분을 만듭니다. 이 라벨과 연결된 값이 production이면 워크로드 관리자는 해당 리소스를 프로덕션 리소스로 간주합니다.
클러스터가 프로덕션 환경에 속함을 워크로드 관리자에게 알리려면 다음 단계를 완료하세요.
workloadmanager네임스페이스를 만듭니다.oc create namespace workloadmanager다음 구성을 사용하여
workloadmanager네임스페이스에서ConfigMap을 만듭니다.apiVersion: v1 kind: ConfigMap metadata: name: wlm-cluster-environment namespace: workloadmanager data: # Options: "production" or "non-production" environment: "production"
배포 또는 포드가 프로덕션 환경에 속함을 워크로드 관리자에게 알리려면 다음 옵션 중 하나를 사용하여 리소스 정의에 environment라는 라벨을 추가합니다.
다음 구성을 수동으로 적용합니다.
apiVersion: apps/v1 kind: Deployment metadata: name: my-app labels: # Options: "production" or "non-production" environment: "production" spec: ...다음 명령어를 실행합니다.
oc label --overwrite deployments DEPLOYMENT_NAME environment=productionDEPLOYMENT_NAME을 배포 이름으로 바꿉니다.
OpenShift 클러스터와 클러스터에서 실행되는 배포 또는 포드에 environment 라벨을 적용하면 워크로드 관리자는 클러스터에 설정된 라벨 값보다 배포 또는 포드에 설정된 라벨 값을 우선시합니다.
선택사항: 측정항목 수집 트리거
OpenShift 클러스터에서 Cluster Services for OpenShift Telemetry 연산자를 성공적으로 설정하면 연산자는 클러스터에서 측정항목을 수집하여 30분마다 워크로드 관리자로 보냅니다.
원하는 경우 측정항목의 예약된 수집을 위해 30분 동안 기다리는 대신 연산자를 수동으로 트리거하여 측정항목을 수집하고 워크로드 관리자로 보낼 수 있습니다.
측정항목 수집을 위해 연산자를 수동으로 트리거하려면 다음 단계를 완료하세요.
터미널을 엽니다.
실행 중인 포드의 이름을 찾습니다.
POD_NAME=$(oc get pods -l app.kubernetes.io/name=workloadagent-operator --field-selector=status.phase=Running -o=name)연산자를 트리거하여 측정항목을 수집하고 전송합니다.
oc debug -t $POD_NAME -- /openshift-docker-entrypoint.sh
다음 단계
- 평가 만들기 및 실행
- OpenShift용 워크로드 관리자 권장사항 알아보기