Amazon Managed Grafana를 사용한 Amazon EKS 인프라 모니터링 솔루션 - Amazon Managed Grafana

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon Managed Grafana를 사용한 Amazon EKS 인프라 모니터링 솔루션

Amazon Elastic Kubernetes Service 인프라 모니터링은 Amazon Managed Grafana에서 사용되는 가장 일반적인 시나리오 중 하나입니다. 이 페이지에서는이 시나리오에 대한 솔루션을 제공하는 템플릿을 설명합니다. 솔루션은 AWS Cloud Development Kit (AWS CDK) 또는 Terraform을 사용하여 설치할 수 있습니다.

이 솔루션은 다음을 구성합니다.

  • Amazon Managed Service for Prometheus 워크스페이스는 Amazon EKS 클러스터의 지표를 저장하고, 지표를 스크레이프하여 해당 워크스페이스로 푸시하는 관리형 수집기를 생성합니다. 자세한 내용은 AWS 관리형 수집기를 사용하여 지표 수집을 참조하세요.

  • CloudWatch 에이전트를 사용하여 Amazon EKS 클러스터에서 로그 수집 로그는에 저장 CloudWatch되며 Amazon Managed Grafana에서 쿼리합니다. 자세한 내용은 Amazon용 로깅을 참조하세요. EKS

  • Amazon Managed Grafana 워크스페이스는 이러한 로그 및 지표를 가져오고 클러스터를 모니터링하는 데 도움이 되는 대시보드 및 알림을 생성합니다.

이 솔루션을 적용하면 다음과 같은 대시보드 및 알림이 생성됩니다.

  • 전체 Amazon EKS 클러스터 상태를 평가합니다.

  • Amazon EKS 컨트롤 플레인의 상태와 성능을 표시합니다.

  • Amazon EKS 데이터 영역의 상태와 성능을 표시합니다.

  • Kubernetes 네임스페이스 전반의 Amazon EKS 워크로드에 대한 인사이트를 표시합니다.

  • , 메모리CPU, 디스크 및 네트워크 사용량을 포함한 네임스페이스 전반의 리소스 사용량을 표시합니다.

이 솔루션 소개

이 솔루션은 Amazon EKS 클러스터에 대한 지표를 제공하도록 Amazon Managed Grafana 워크스페이스를 구성합니다. 지표는 대시보드 및 알림을 생성하는 데 사용됩니다.

지표는 Kubernetes 제어 및 데이터 영역의 상태와 성능에 대한 인사이트를 제공하여 Amazon EKS 클러스터를 더 효과적으로 운영하는 데 도움이 됩니다. 리소스 사용에 대한 자세한 모니터링을 포함하여 노드 수준에서 포드, Kubernetes 수준까지 Amazon EKS 클러스터를 이해할 수 있습니다.

이 솔루션은 예상 및 수정 기능을 모두 제공합니다.

  • 예상 기능의 특성:

    • 예약 결정을 주도하여 리소스 효율성을 관리합니다. 예를 들어 Amazon EKS 클러스터의 내부 사용자에게 성능과 안정성을 제공하기 위해 과거 사용량 추적SLAs을 기반으로 워크로드에 충분한 CPU 및 메모리 리소스를 할당할 수 있습니다.

    • 사용량 예측: 노드, Amazon에서 지원하는 영구 볼륨 EBS또는 Application Load Balancer와 같은 Amazon EKS 클러스터 리소스의 현재 사용률을 기준으로 수요가 유사한 새 제품 또는 프로젝트에 대해 미리 계획할 수 있습니다.

    • 잠재적 문제 조기에 감지: 예를 들어 Kubernetes 네임스페이스 수준에서 리소스 소비 추세를 분석하여 워크로드 사용량의 계절성을 이해할 수 있습니다.

  • 수정 기능의 특성:

    • 인프라 및 Kubernetes 워크로드 수준에서 문제를 감지하는 데 걸리는 평균 시간(MTTD)을 줄입니다. 예를 들어 문제 해결 대시보드를 보면 무엇이 잘못되었는지에 대한 가설을 빠르게 테스트하고 문제가 되는 요소를 제거할 수 있습니다.

    • 스택에서 문제가 발생하는 위치를 확인합니다. 예를 들어 Amazon EKS 컨트롤 플레인은에서 완벽하게 관리 AWS 되며 API 서버가 과부하되거나 연결에 영향을 받는 경우 Kubernetes 배포 업데이트와 같은 특정 작업이 실패할 수 있습니다.

다음 이미지에서는 솔루션의 대시보드 폴더 샘플을 보여줍니다.

이 솔루션을 사용하여 빌드된 Grafana 대시보드 폴더 예제를 보여주는 이미지.

대시보드를 선택하여 자세한 내용을 볼 수 있습니다. 예를 들어 워크로드에 대한 리소스 계산을 보려고 선택하면 다음 이미지와 같은 대시보드가 표시됩니다.

이 솔루션을 사용하여 구축된 CPU 사용량을 보여주는 Grafana 대시보드의 예를 보여주는 이미지입니다.

지표는 스크레이프 간격 1분으로 스크레이핑됩니다. 대시보드는 특정 지표를 기반으로 1분, 5분 또는 그 이상으로 집계된 지표를 표시합니다.

로그는 대시보드에도 표시되므로 로그를 쿼리하고 분석하여 문제의 근본 원인을 찾을 수 있습니다. 다음 이미지에서는 로그 대시보드를 보여줍니다.

이 솔루션을 사용하여 빌드된 로그가 있는 Grafana 대시보드 예제를 보여주는 이미지.

이 솔루션으로 추적되는 지표 목록은 추적된 지표 목록 섹션을 참조하세요.

솔루션에서 생성된 알림 목록은 생성된 알림 목록 섹션을 참조하세요.

비용

이 솔루션은 워크스페이스에서 리소스를 생성하고 사용합니다. 다음을 포함하여 생성된 리소스의 표준 사용에 대한 요금이 부과됩니다.

  • 사용자의 Amazon Managed Grafana 워크스페이스 액세스. 요금에 대한 자세한 내용은 Amazon Managed Grafana 요금을 참조하세요.

  • Amazon Managed Service for Prometheus의 에이전트 없는 수집기 사용 및 지표 분석(쿼리 샘플 처리)을 포함한 Amazon Managed Service for Prometheus 지표 수집 및 스토리지. 이 솔루션에서 사용하는 지표 수는 Amazon EKS 클러스터 구성 및 사용량에 따라 달라집니다.

    를 사용하여 Amazon Managed Service for Prometheus에서 수집 및 스토리지 지표를 볼 수 있습니다. CloudWatch 자세한 내용은 Amazon Managed Service for Prometheus 사용 설명서CloudWatch 지표를 참조하세요.

    Amazon Managed Service for Prometheus 요금 페이지에서 요금 계산기를 사용하여 비용을 예측할 수 있습니다. 지표 수는 클러스터의 노드 수 및 애플리케이션이 생성하는 지표에 따라 달라집니다.

  • CloudWatch 수집, 저장 및 분석을 로깅합니다. 기본적으로 로그 보존은 만료되지 않도록 설정됩니다. 에서이 값을 조정할 수 있습니다 CloudWatch. 요금에 대한 자세한 내용은 Amazon CloudWatch 요금을 참조하세요.

  • 네트워킹 비용. 교차 가용 영역, 리전 또는 기타 트래픽에 대해 표준 AWS 네트워크 요금이 발생할 수 있습니다.

각 제품의 요금 페이지에서 사용할 수 있는 요금 계산기는 솔루션의 잠재적 비용을 이해하는 데 도움이 될 수 있습니다. 다음 정보는 Amazon EKS 클러스터와 동일한 가용 영역에서 실행되는 솔루션에 대한 기본 비용을 얻는 데 도움이 될 수 있습니다.

제품 계산기 지표

Amazon Managed Service for Prometheus

활성 시리즈

8,000(기본)

15,000(노드당)

평균 수집 간격

60(초)

Amazon Managed Service for Prometheus(관리형 수집기)

수집기 수

1

샘플 수

15(기본)

150(노드당)

규칙 수

161

평균 규칙 추출 간격

60(초)

Amazon Managed Grafana

활성 편집자/관리자 수

1 이상, 사용자 기준

CloudWatch (로그)

표준 로그: 수집된 데이터

24.5GB(기본)

0.5GB(노드당)

로그 스토리지/아카이브(표준 및 벤딩 로그)

예, 로그 저장: 1개월 보존 가정

스캔된 예상 로그 데이터

Grafana의 각 로그 인사이트 쿼리는 지정된 기간 그룹의 모든 로그 콘텐츠를 스캔합니다.

이 숫자는 추가 소프트웨어 EKS 없이 실행되는 솔루션의 기본 번호입니다. 이렇게 하면 기본 비용을 예측할 수 있습니다. 또한 Amazon Managed Grafana 워크스페이스, Amazon Managed Service for Prometheus 워크스페이스 및 Amazon EKS 클러스터가 동일한 가용 영역에 있는지 여부에 따라 달라지는 네트워크 사용 비용 AWS 리전, 및를 제외합니다VPN.

참고

이 테이블의 항목에 리소스당 값(예: (per node)) 및 (base) 값이 포함된 경우 해당 리소스에서 보유한 수에 리소스당 값을 곱한 숫자에 기본 값을 더해야 합니다. 예를 들어 평균 활성 시계열에 숫자(8000 + the number of nodes in your cluster * 15,000)를 입력합니다. 노드가 2개인 경우 38,000(8000 + ( 2 * 15,000 ))을 입력합니다.

사전 조건

이 솔루션을 사용하려면 솔루션을 사용하기 전에 다음을 수행해야 합니다.

  1. 모니터링하려는 Amazon Elastic Kubernetes Service 클러스터가 있거나 생성되어야 하며, 클러스터에는 하나 이상의 노드가 있어야 합니다. 프라이빗 액세스를 포함하려면 클러스터에 API 서버 엔드포인트 액세스가 설정되어 있어야 합니다(퍼블릭 액세스를 허용할 수도 있음).

    인증 모드에는 API 액세스가 포함되어야 합니다( API 또는 로 설정 가능API_AND_CONFIG_MAP). 이 경우 솔루션 배포에서 액세스 항목을 사용할 수 있습니다.

    클러스터에 다음을 설치해야 합니다(콘솔을 통해 클러스터를 생성할 때는 기본적으로 true이지만 또는를 사용하여 클러스터를 AWS API 생성하는 경우 추가해야 함 AWS CLI). AWS CNICoreDNS 및 Kube-proxy AddOns.

    나중에 지정하도록 클러스터 이름을 저장합니다. 이는 Amazon EKS 콘솔의 클러스터 세부 정보에서 찾을 수 있습니다.

    참고

    Amazon EKS 클러스터를 생성하는 방법에 대한 자세한 내용은 Amazon 시작하기를 참조하세요EKS.

  2. Amazon 클러스터와 동일한에서 Amazon Managed Service for Prometheus 워크스페이스를 생성해야 합니다. AWS 계정 EKS 자세한 내용은 Amazon Managed Service for Prometheus 사용 설명서Create a workspace를 참조하세요.

    나중에 지정할 Amazon Managed Service for Prometheus 워크스페이스ARN를 저장합니다.

  3. Amazon EKS 클러스터와 동일한에서 Grafana 버전 9 이상의 Amazon Managed Grafana 워크스페이스를 생성해야 합니다. AWS 리전 새 워크스페이스 생성에 대한 자세한 내용은 Amazon Managed Grafana 워크스페이스 생성 섹션을 참조하세요.

    워크스페이스 역할에는 Amazon Managed Service for Prometheus 및 Amazon CloudWatch 에 액세스할 수 있는 권한이 있어야 합니다APIs. 이렇게 하는 가장 쉬운 방법은 서비스 관리형 권한을 사용하고 Amazon Managed Service for Prometheus 및를 선택하는 것입니다 CloudWatch. 워크스페이스 IAM 역할에 AmazonPrometheusQueryAccessAmazonGrafanaCloudWatchAccess 정책을 수동으로 추가할 수도 있습니다.

    나중에 지정하도록 Amazon Managed Grafana 워크스페이스 ID 및 엔드포인트를 저장합니다. ID는 g-123example 양식입니다. ID 및 엔드포인트는 Amazon Managed Grafana 콘솔에서 찾을 수 있습니다. 엔드포인트는 워크스페이스URL의 이며 ID를 포함합니다. 예: https://g-123example.grafana-workspace.<region>.amazonaws.com/.

  4. Terraform을 사용하여 솔루션을 배포하는 경우 계정에서 액세스할 수 있는 Amazon S3 버킷을 생성해야 합니다. 배포를 위해 Terraform 상태 파일을 저장하는 데 사용됩니다.

    나중에 지정하도록 Amazon S3 버킷 ID를 저장합니다.

  5. Amazon Managed Service for Prometheus 알림 규칙을 보려면 Amazon Managed Grafana 워크스페이스에 대해 Grafana 알림을 활성화해야 합니다.

    또한 Amazon Managed Grafana에는 Prometheus 리소스에 대한 다음과 같은 권한이 있어야 합니다. AWS 데이터 소스에 대한 Amazon Managed Grafana 권한 및 정책에 설명된 서비스 관리형 또는 고객 관리형 정책에 추가해야 합니다.

    • aps:ListRules

    • aps:ListAlertManagerSilences

    • aps:ListAlertManagerAlerts

    • aps:GetAlertManagerStatus

    • aps:ListAlertManagerAlertGroups

    • aps:PutAlertManagerSilences

    • aps:DeleteAlertManagerSilence

참고

솔루션을 설정하는 데 반드시 필요한 것은 아니지만 사용자가 생성된 대시보드에 액세스하기 전에 Amazon Managed Grafana 워크스페이스에서 사용자 인증을 설정해야 합니다. 자세한 내용은 Amazon Managed Grafana 워크스페이스에서 사용자 인증 단원을 참조하십시오.

이 솔루션 사용

이 솔루션은 Amazon EKS 클러스터의 보고 및 모니터링 지표를 지원하도록 AWS 인프라를 구성합니다. AWS Cloud Development Kit (AWS CDK) 또는 Terraform을 사용하여 함께 설치할 수 있습니다.

Using AWS CDK

이 솔루션을 제공하는 한 가지 방법은 AWS CDK 애플리케이션입니다. 사용하려는 리소스에 대한 정보를 제공하면 솔루션이 스크레이퍼, 로그 및 대시보드를 생성합니다.

참고

이 단계에서는 및 AWS CLI와 Node.js AWS CDK및가 모두 NPM 설치된 환경이 있다고 가정합니다. makebrew를 사용하여 빌드 및 기타 일반적인 작업을 간소화합니다.

이 솔루션을 사용하여를 사용하여 Amazon EKS 클러스터를 모니터링하려면 AWS CDK
  1. 모든 사전 조건 단계를 완료했는지 확인하세요.

  2. Amazon S3에서 솔루션의 모든 파일을 다운로드하세요. 파일은 s3://aws-observability-solutions/EKS/OSS/CDK/v3.0.0/iac에 있으며 다음 Amazon S3 명령을 사용하여 다운로드할 수 있습니다. 명령줄 환경의 폴더에서 이 명령을 실행하세요.

    aws s3 sync s3://aws-observability-solutions/EKS/OSS/CDK/v3.0.0/iac/ .

    이러한 파일은 수정하지 않아도 됩니다.

  3. 명령줄 환경의 솔루션 파일을 다운로드한 폴더에서 다음 명령을 실행하세요.

    필요한 환경 변수를 설정하세요. REGION, AMG_ENDPOINT, EKS_CLUSTER,를 AWS 리전 Amazon Managed Grafana 워크스페이스 엔드포인트( 양식 http://g-123example.grafana-workspace.us-east-1.amazonaws.com), Amazon EKS 클러스터 이름, Amazon Managed Service for Prometheus 워크스페이스 AMP_ARN로 바꿉니다ARN.

    export AWS_REGION=REGION export AMG_ENDPOINT=AMG_ENDPOINT export EKS_CLUSTER_NAME=EKS_CLUSTER export AMP_WS_ARN=AMP_ARN
  4. Grafana를 호출하기 위한 ADMIN 액세스 권한이 있는 서비스 계정 토큰HTTP을 생성해야 합니다APIs. 세부 정보는 서비스 계정을 사용하여 Grafana HTTP API에서 인증을 참조하세요. 다음 명령과 AWS CLI 함께를 사용하여 토큰을 생성할 수 있습니다. 를 Grafana 워크스페이스의 IDGRAFANA_ID로 바꿔야 합니다( 형식). g-123example 이 키는 7,200초 또는 2시간 후에 만료됩니다. 필요한 경우 시간(seconds-to-live)을 변경할 수 있습니다. 배포에는 1시간 미만이 소요됩니다.

    GRAFANA_SA_ID=$(aws grafana create-workspace-service-account \ --workspace-id GRAFANA_ID \ --grafana-role ADMIN \ --name grafana-operator-key \ --query 'id' \ --output text) # creates a new token for calling APIs export AMG_API_KEY=$(aws grafana create-workspace-service-account-token \ --workspace-id $managed_grafana_workspace_id \ --name "grafana-operator-key-$(date +%s)" \ --seconds-to-live 7200 \ --service-account-id $GRAFANA_SA_ID \ --query 'serviceAccountToken.key' \ --output text)

    다음 명령을 AWS CDK 사용하여 API 키를에 추가하여에서 키를 사용할 수 AWS Systems Manager 있도록 합니다. 를 솔루션이 실행될 리전( 형식)AWS_REGION으로 바꿉니다us-east-1.

    aws ssm put-parameter --name "/observability-aws-solution-eks-infra/grafana-api-key" \ --type "SecureString" \ --value $AMG_API_KEY \ --region AWS_REGION \ --overwrite
  5. 다음 make 명령을 실행하면 프로젝트에 대한 다른 종속 항목이 설치됩니다.

    make deps
  6. 마지막으로 AWS CDK 프로젝트를 실행합니다.

    make build && make pattern aws-observability-solution-eks-infra-$EKS_CLUSTER_NAME deploy
  7. [선택 사항] 스택 생성이 완료되면 각에 대한 다른 사전 조건(별도의 Amazon Managed Grafana 및 Amazon Managed Service for Prometheus 워크스페이스 포함)을 완료하는 한 동일한 환경을 사용하여 동일한 리전의 다른 Amazon EKS 클러스터에 대한 스택 인스턴스를 더 많이 생성할 수 있습니다. 새 파라미터에서 export 명령을 재정의해야 합니다.

스택 생성이 완료되면 Amazon Managed Grafana 워크스페이스에 Amazon EKS 클러스터에 대한 지표를 보여주는 대시보드가 채워집니다. 스크레이퍼가 지표를 수집하기 시작하면 지표를 표시하는 데 몇 분 정도 걸립니다.

Using Terraform

이 솔루션을 제공하는 한 가지 방법은 Terraform 솔루션입니다. 사용하려는 리소스에 대한 정보를 제공하면 솔루션이 스크레이퍼, 로그 및 대시보드를 생성합니다.

이 솔루션을 사용하여 Terraform으로 Amazon EKS 클러스터를 모니터링하려면
  1. 모든 사전 조건 단계를 완료했는지 확인하세요.

  2. Amazon S3에서 솔루션의 모든 파일을 다운로드하세요. 파일은 s3://aws-observability-solutions/EKS/OSS/Terraform/v3.0.0/에 있으며 다음 Amazon S3 명령을 사용하여 다운로드할 수 있습니다. 명령줄 환경의 폴더에서 이 명령을 실행한 다음, 디렉터리를 배포할 폴더로 변경하세요.

    aws s3 sync s3://aws-observability-solutions/EKS/OSS/Terraform/v3.0.0/ . cd eks-monitoring

    이러한 파일은 수정하지 않아도 됩니다.

  3. 명령줄 환경의 솔루션 파일을 다운로드한 폴더에서 다음 명령을 실행하세요.

    필요한 환경 변수를 설정하세요. REGION, AMG_ENDPOINT, S3_ID, AMP_ARNEKS_CLUSTER를 새 리소스를 배포하려는 AWS 리전 , us-east-1Amazon Managed Grafana 워크스페이스 엔드포인트( 형식http://g-123example.grafana-workspace.us-east-1.amazonaws.com), Amazon EKS 클러스터 이름, Amazon Managed Service for Prometheus 워크스페이스 ARN및 Amazon S3 버킷 ID로 바꿉니다.

    export TF_VAR_aws_region=REGION export TF_VAR_amg_endpoint=AMG_ENDPOINT export TF_VAR_eks_cluster_name=EKS_CLUSTER export TF_VAR_amp_ws_arn=AMP_ARN export TF_VAR_s3_bucket_id=S3_ID
  4. Grafana를 호출하기 위한 ADMIN 액세스 권한이 있는 서비스 계정 토큰HTTP을 생성해야 합니다APIs. 세부 정보는 서비스 계정을 사용하여 Grafana HTTP API에서 인증을 참조하세요. 다음 명령과 AWS CLI 함께를 사용하여 토큰을 생성할 수 있습니다. 를 Grafana 워크스페이스의 IDGRAFANA_ID로 바꿔야 합니다( 형식). g-123example 이 키는 7,200초 또는 2시간 후에 만료됩니다. 필요한 경우 시간(seconds-to-live)을 변경할 수 있습니다. 배포에는 1시간 미만이 소요됩니다.

    GRAFANA_SA_ID=$(aws grafana create-workspace-service-account \ --workspace-id GRAFANA_ID \ --grafana-role ADMIN \ --name grafana-operator-key \ --query 'id' \ --output text) # creates a new token for running Terraform export TF_VAR_grafana_api_key=$(aws grafana create-workspace-service-account-token \ --workspace-id $managed_grafana_workspace_id \ --name "grafana-operator-key-$(date +%s)" \ --seconds-to-live 7200 \ --service-account-id $GRAFANA_SA_ID \ --query 'serviceAccountToken.key' \ --output text)
    참고

    서비스 계정이 이미 있는 경우 위의 첫 번째 단계(워크스페이스에 대한 서비스 계정 생성)는 필요하지 않습니다. 이 경우를 서비스 계정의 ID$GRAFANA_SA_ID로 바꿉니다.

  5. 다음 terraform 명령을 실행하여 솔루션으로 Terraform을 초기화하세요.

    terraform init -reconfigure \ -backend-config="bucket=${TF_VAR_s3_bucket_id}" \ -backend-config="region=${TF_VAR_aws_region}" \ -backend-config="key=state/${TF_VAR_eks_cluster_name}/terraform.tfstate"
  6. 마지막으로 Terraform 프로젝트를 배포하세요.

    terraform apply

솔루션 생성이 완료되면 Amazon Managed Grafana 워크스페이스에 Amazon EKS 클러스터에 대한 지표를 보여주는 대시보드가 채워집니다. 스크레이퍼가 지표를 수집하기 시작하면 지표를 표시하는 데 몇 분 정도 걸립니다.

추적된 지표 목록

이 솔루션은 Amazon EKS 클러스터에서 지표를 수집하는 스크레이퍼를 생성합니다. 이러한 지표는 Amazon Managed Service for Prometheus에 저장된 다음, Amazon Managed Grafana 대시보드에 표시됩니다. 기본적으로 스크레이퍼는 클러스터에서 공개되는 모든 Prometheus 호환 지표를 수집합니다. 더 많은 지표를 생성하는 소프트웨어를 클러스터에 설치하면 수집되는 지표가 증가합니다. 원하는 경우 지표를 필터링하는 구성으로 스크레이퍼를 업데이트하여 지표 수를 줄일 수 있습니다.

다음 지표는 추가 소프트웨어가 설치되지 않은 기본 Amazon EKS 클러스터 구성에서이 솔루션으로 추적됩니다.

지표 설명/목적

aggregator_unavailable_apiservice

APIService 이름별로 분류APIServices되어 사용할 수 없는 것으로 표시된 게이지입니다.

apiserver_admission_webhook_admission_duration_seconds_bucket

이름별로 식별되고 각 작업 및 API 리소스 및 유형에 대해 구분된 몇 초 단위의 입장 Webhook 지연 시간 히스토그램(검증 또는 승인).

apiserver_current_inflight_requests

마지막 순간에 요청 종류당 이 apiserver에서 현재 사용된 이동 중인 요청 제한에 대한 최대 수.

apiserver_envelope_encryption_dek_cache_fill_percent

현재 캐시된가 차지하는 캐시 슬롯의 비율입니다DEKs.

apiserver_flowcontrol_current_executing_requests

API 우선순위 및 공정성 하위 시스템의 초기(의 경우WATCH) 또는 모든(비WATCH) 실행 단계의 요청 수입니다.

apiserver_flowcontrol_rejected_requests_total

거부된 API 우선 순위 및 공정성 하위 시스템의 초기(의 경우WATCH) 또는 모든(비WATCH) 실행 단계의 요청 수입니다.

apiserver_flowcontrol_request_concurrency_limit

각 우선순위 수준에 대해 구성된 공칭 실행 시트 수.

apiserver_flowcontrol_request_execution_seconds_bucket

API 우선순위 및 공정성 하위 시스템에서 요청 실행의 초기 단계(의 경우WATCH) 또는 모든 단계(비WATCH)의 버킷 히스토그램입니다.

apiserver_flowcontrol_request_queue_length_after_enqueue_count

API 우선순위 및 공정성 하위 시스템에서 요청 실행의 초기 단계(의 경우WATCH) 또는 모든 단계(비WATCH)의 수입니다.

apiserver_request

API 서버 요청을 나타냅니다.

apiserver_requested_deprecated_apis

API 그룹, 버전, 리소스, 하위 리소스 및 removed_release별로 요청, 분류된 더 이상 사용되지 APIs 않는 게이지입니다.

apiserver_request_duration_seconds

각 동사, 드라이 런 값, 그룹, 버전, 리소스, 하위 리소스, 범위 및 구성 요소에 대한 응답 지연 시간 분포(초 단위).

apiserver_request_duration_seconds_bucket

각 동사, 드라이 런 값, 그룹, 버전, 리소스, 하위 리소스, 범위 및 구성 요소에 대한 응답 지연 시간 분포의 버킷화된 히스토그램(초 단위).

apiserver_request_slo_duration_seconds

각 동사, 마른 실행 값, 그룹, 버전, 리소스, 하위 리소스, 범위 및 구성 요소에 대한 서비스 수준 목표(SLO) 응답 지연 시간 분포입니다.

apiserver_request_terminations_total

자체 방어로 apiserver에서 종료한 요청 수.

apiserver_request_total

각 동사, 드라이 런 값, 그룹, 버전, 리소스, 범위, 구성 요소 및 HTTP 응답 코드에 대해 구분된 apiserver 요청의 카운터입니다.

container_cpu_usage_seconds_total

누적 CPU 소비 시간.

container_fs_reads_bytes_total

누적 읽기 바이트 수.

container_fs_reads_total

완료된 누적 읽기 수.

container_fs_writes_bytes_total

작성된 누적 바이트 수.

container_fs_writes_total

완료된 누적 쓰기 수.

container_memory_cache

총 페이지 캐시 메모리.

container_memory_rss

의 크기입니다RSS.

container_memory_swap

컨테이너 스왑 사용량.

container_memory_working_set_bytes

현재 작업 중 세트.

container_network_receive_bytes_total

수신된 누적 바이트 수.

container_network_receive_packets_dropped_total

수신 중 삭제된 누적 패킷 수.

container_network_receive_packets_total

수신된 누적 패킷 수.

container_network_transmit_bytes_total

전송된 누적 바이트 수.

container_network_transmit_packets_dropped_total

전송 중 삭제된 누적 패킷 수.

container_network_transmit_packets_total

전송된 누적 패킷 수.

etcd_request_duration_seconds_bucket

각 작업 및 객체 유형에 대한 etcd 요청 지연 시간의 버킷화된 히스토그램(초 단위).

go_goroutines

현재 존재하는 goroutines 수.

go_threads

생성된 OS 스레드 수.

kubelet_cgroup_manager_duration_seconds_bucket

cgroup manager 작업에 대한 버킷화된 히스토그램(초 단위). 메서드에 따라 분류됩니다.

kubelet_cgroup_manager_duration_seconds_count

cgroup manager 작업에 대한 지속 시간(초 단위). 메서드에 따라 분류됩니다.

kubelet_node_config_error

이 지표는 노드에서 구성 관련 오류가 발생하는 경우 참(1)이고, 그렇지 않으면 거짓(0)입니다.

kubelet_node_name

노드의 이름. 수는 항상 1입니다.

kubelet_pleg_relist_duration_seconds_bucket

에서 포드를 다시 나열하기 위한 초 단위의 버킷 히스토그램입니다PLEG.

kubelet_pleg_relist_duration_seconds_count

에서 포드를 다시 나열하기 위한 초 단위의 지속 시간 수입니다PLEG.

kubelet_pleg_relist_interval_seconds_bucket

에서 다시 나열하는 간격의 버킷화된 초 단위 히스토그램입니다PLEG.

kubelet_pod_start_duration_seconds_count

kubelet에서 포드를 처음 확인한 시점부터 포드 실행이 시작된 시점까지의 지속 시간 수(초 단위).

kubelet_pod_worker_duration_seconds_bucket

단일 포드를 동기화하기 위한 버킷화된 히스토그램(초 단위). 작업 유형별(즉, 생성, 업데이트 또는 동기화)로 분류됩니다.

kubelet_pod_worker_duration_seconds_count

단일 포드를 동기화하기 위한 지속 시간 수(초 단위). 작업 유형별(즉, 생성, 업데이트 또는 동기화)로 분류됩니다.

kubelet_running_containers

현재 실행 중인 컨테이너 수.

kubelet_running_pods

실행 중인 포드 샌드박스가 있는 포드 수.

kubelet_runtime_operations_duration_seconds_bucket

런타임 작업에 대한 지속 시간의 버킷화된 히스토그램(초 단위). 작업 유형별로 분류되었습니다.

kubelet_runtime_operations_errors_total

작업 유형별 누적 런타임 작업 오류 수.

kubelet_runtime_operations_total

작업 유형별 누적 런타임 작업 수.

kube_node_status_allocatable

포드에 대해 할당 가능한 리소스의 양(시스템 대몬에 대해 일부 예약 후).

kube_node_status_capacity

노드에 대해 사용 가능한 총 리소스 수.

kube_pod_container_resource_limits (CPU)

컨테이너별로 요청된 제한 리소스 수.

kube_pod_container_resource_limits (Memory)

컨테이너별로 요청된 제한 리소스 수.

kube_pod_container_resource_requests (CPU)

컨테이너별 요청된 요청 리소스 수.

kube_pod_container_resource_requests (Memory)

컨테이너별 요청된 요청 리소스 수.

kube_pod_owner

포드 소유자에 대한 정보.

kube_resourcequota

Kubernetes의 리소스 할당량은 네임스페이스 내의 CPU, 메모리 및 스토리지와 같은 리소스에 사용 제한을 적용합니다.

node_cpu

코어당 CPU 사용량 및 총 사용량을 포함한 노드의 사용량 지표입니다.

node_cpu_seconds_total

각 모드에서 CPUs 소비된의 초입니다.

node_disk_io_time_seconds

노드가 디스크에서 I/O 작업을 수행하는 데 소요한 누적 시간.

node_disk_io_time_seconds_total

노드가 디스크에서 I/O 작업을 수행하는 데 소요한 총 시간.

node_disk_read_bytes_total

노드별로 디스크에서 읽은 총 바이트 수.

node_disk_written_bytes_total

노드별로 디스크에 쓴 총 바이트 수.

node_filesystem_avail_bytes

Kubernetes 클러스터에 있는 노드의 파일 시스템에서 사용 가능한 공간의 바이트 수.

node_filesystem_size_bytes

노드에서 파일 시스템의 총 크기.

node_load1

노드 CPU 사용량의 1분 로드 평균입니다.

node_load15

노드 CPU 사용량의 15분 로드 평균입니다.

node_load5

노드 CPU 사용량의 5분 로드 평균입니다.

node_memory_Buffers_bytes

노드의 운영 체제에서 버퍼 캐싱에 사용되는 메모리의 양.

node_memory_Cached_bytes,

노드의 운영 체제에서 디스크 캐싱에 사용되는 메모리의 양.

node_memory_MemAvailable_bytes

애플리케이션 및 캐시에서 사용 가능한 메모리의 양.

node_memory_MemFree_bytes

호스트에서 사용 가능한 메모리의 양.

node_memory_MemTotal_bytes

노드에서 사용 가능한 총 물리적 메모리의 양.

node_network_receive_bytes_total

포드에서 네트워크를 통해 수신된 총 바이트 수.

node_network_transmit_bytes_total

포드에서 네트워크를 통해 전송된 총 바이트 수.

process_cpu_seconds_total

초 단위의 총 사용자 및 시스템 CPU 시간입니다.

process_resident_memory_bytes

상주 메모리 크기(바이트 단위).

rest_client_requests_total

상태 코드, 메서드 및 호스트로 분할된 HTTP 요청 수입니다.

rest_client_request_duration_seconds_bucket

요청 지연 시간의 버킷화된 히스토그램(초 단위). 동사 및 호스트별로 분류됩니다.

storage_operation_duration_seconds_bucket

스토리지 작업 지속 시간의 버킷화된 히스토그램.

storage_operation_duration_seconds_count

스토리지 작업 지속 시간 수.

storage_operation_errors_total

스토리지 작업 중 누적 오류 수.

up

모니터링된 대상(예: 노드)이 가동 및 실행 중인지 여부를 나타내는 지표.

volume_manager_total_volumes

볼륨 관리자가 관리하는 총 볼륨 수.

workqueue_adds_total

작업 대기열에서 처리한 총 추가 수.

workqueue_depth

현재 작업 대기열 깊이.

workqueue_queue_duration_seconds_bucket

항목이 요청 전에 작업 대기열에 머무는 시간의 버킷화된 히스토그램(초 단위).

workqueue_work_duration_seconds_bucket

작업 대기열에서 항목을 처리하는 데 걸리는 시간의 버킷화된 히스토그램(초 단위).

생성된 알림 목록

다음 표에는 이 솔루션에서 생성된 알림이 나열되어 있습니다. 알림은 Amazon Managed Service for Prometheus에서 규칙으로 생성되며 Amazon Managed Grafana 워크스페이스에 표시됩니다.

Amazon Managed Service for Prometheus 워크스페이스에서 규칙 구성 파일을 편집하여 규칙 추가 또는 삭제를 포함해 규칙을 수정할 수 있습니다.

이 두 알림은 일반적인 알림와 약간 다르게 처리되는 특수 알림입니다. 문제를 알리는 대신 시스템을 모니터링하는 데 사용되는 정보를 제공합니다. 설명에는 이러한 알림을 사용하는 방법에 대한 세부 정보가 포함되어 있습니다.

Alert 설명 및 사용

Watchdog

전체 알림 파이프라인이 작동하는지 확인하기 위한 알림입니다. 이 알림은 항상 실행 중이므로 항상 Alertmanager에서 항상 실행 중이고, 항상 수신기에서 실행되어야 합니다. 알림 메커니즘과 통합하여 이 알림이 실행 중이 아닐 때 알림을 보낼 수 있습니다. 예를 들어에서 DeadMansSnitch 통합을 사용할 수 있습니다 PagerDuty.

InfoInhibitor

정보 알림을 금지하는 데 사용되는 알림입니다. 정보 수준 알림 자체는 매우 번거로울 수 있지만 다른 알림과 결합할 때 관련이 있습니다. 이 알림은 severity=info 알림이 있을 때마다 실행되며 심각도가 warning 또는 critical인 다른 알림이 동일한 네임스페이스에서 실행 중이면 실행을 중지합니다. 이 알림은 null 수신기로 라우팅되고 severity=info를 사용하여 알림을 금지하도록 구성되어야 합니다.

다음 알림은 시스템에 대한 정보 또는 경고를 제공합니다.

Alert 심각도 설명

NodeNetworkInterfaceFlapping

warning

네트워크 인터페이스에서 상태를 변경하는 경우가 많습니다.

NodeFilesystemSpaceFillingUp

warning

파일 시스템에서는 향후 24시간 이내에 공간 부족이 예상됩니다.

NodeFilesystemSpaceFillingUp

critical

파일 시스템에서는 향후 4시간 이내에 공간 부족이 예상됩니다.

NodeFilesystemAlmostOutOfSpace

warning

파일 시스템의 남은 공간이 5% 미만입니다.

NodeFilesystemAlmostOutOfSpace

critical

파일 시스템의 남은 공간이 3% 미만입니다.

NodeFilesystemFilesFillingUp

warning

파일 시스템에서는 향후 24시간 이내에 Inodes 부족이 예상됩니다.

NodeFilesystemFilesFillingUp

critical

파일 시스템에서는 향후 4시간 이내에 Inodes 부족이 예상됩니다.

NodeFilesystemAlmostOutOfFiles

warning

파일 시스템의 남은 Inodes가 5% 미만입니다.

NodeFilesystemAlmostOutOfFiles

critical

파일 시스템의 남은 Inodes가 3% 미만입니다.

NodeNetworkReceiveErrs

warning

네트워크 인터페이스에서 많은 수신 오류를 보고하고 있습니다.

NodeNetworkTransmitErrs

warning

네트워크 인터페이스에서 많은 전송 오류를 보고하고 있습니다.

NodeHighNumberConntrackEntriesUsed

warning

conntrack 항목 수가 제한에 근접하고 있습니다.

NodeTextFileCollectorScrapeError

warning

Node Exporter 텍스트 파일 수집기에서 스크레이핑하지 못했습니다.

NodeClockSkewDetected

warning

시계 왜곡이 감지되었습니다.

NodeClockNotSynchronizzing

warning

시계가 동기화되지 않습니다.

NodeRAIDDegraded

critical

RAID 배열이 저하됨

NodeRAIDDiskFailure

warning

RAID 배열에 실패한 디바이스

NodeFileDescriptorLimit

warning

커널에서 곧 파일 설명자 제한을 소진할 것으로 예상됩니다.

NodeFileDescriptorLimit

critical

커널에서 곧 파일 설명자 제한을 소진할 것으로 예상됩니다.

KubeNodeNotReady

warning

노드가 준비되지 않았습니다.

KubeNodeUnreachable

warning

노드에 연결할 수 없습니다.

KubeletTooManyPods

info

Kubelet에서 용량으로 실행 중입니다.

KubeNodeReadinessFlapping

warning

노드 준비 상태가 플래핑 중입니다.

KubeletPlegDurationHigh

warning

Kubelet 포드 수명 주기 이벤트 생성기에서 다시 나열하는 데 너무 오래 걸립니다.

KubeletPodStartUpLatencyHigh

warning

Kubelet Pod 시작 지연 시간이 너무 깁니다.

KubeletClientCertificateExpiration

warning

Kubelet 클라이언트 인증서가 곧 만료됩니다.

KubeletClientCertificateExpiration

critical

Kubelet 클라이언트 인증서가 곧 만료됩니다.

KubeletServerCertificateExpiration

warning

Kubelet 서버 인증서가 곧 만료됩니다.

KubeletServerCertificateExpiration

critical

Kubelet 서버 인증서가 곧 만료됩니다.

KubeletClientCertificateRenewalErrors

warning

Kubelet에서 클라이언트 인증서를 갱신하지 못했습니다.

KubeletServerCertificateRenewalErrors

warning

Kubelet에서 서버 인증서를 갱신하지 못했습니다.

KubeletDown

critical

Prometheus 대상 검색에서 대상이 사라졌습니다.

KubeVersionMismatch

warning

실행 중인 Kubernetes 구성 요소의 다양한 시맨틱 버전.

KubeClientErrors

warning

Kubernetes API 서버 클라이언트에 오류가 발생했습니다.

KubeClientCertificateExpiration

warning

클라이언트 인증서가 곧 만료됩니다.

KubeClientCertificateExpiration

critical

클라이언트 인증서가 곧 만료됩니다.

KubeAggregatedAPIErrors

warning

집계된 KubernetesAPI에서 오류를 보고했습니다.

KubeAggregatedAPIDown

warning

집계된 KubernetesAPI가 다운되었습니다.

KubeAPIDown

critical

Prometheus 대상 검색에서 대상이 사라졌습니다.

KubeAPITerminatedRequests

warning

kubernetes apiserver가 수신 요청의 {{ $value | humanizePercentage }}를 종료했습니다.

KubePersistentVolumeFillingUp

critical

영구 볼륨이 채워지는 중입니다.

KubePersistentVolumeFillingUp

warning

영구 볼륨이 채워지는 중입니다.

KubePersistentVolumeInodesFillingUp

critical

영구 볼륨 Inodes가 채워지는 중입니다.

KubePersistentVolumeInodesFillingUp

warning

영구 볼륨 Inodes가 채워지는 중입니다.

KubePersistentVolumeErrors

critical

영구 볼륨에 프로비저닝 관련 문제가 있습니다.

KubeCPUOvercommit

warning

클러스터에서 CPU 리소스 요청을 과도하게 커밋했습니다.

KubeMemoryOvercommit

warning

클러스터에 메모리 리소스 요청이 과도하게 커밋되었습니다.

KubeCPUQuotaOvercommit

warning

클러스터에서 CPU 리소스 요청을 과도하게 커밋했습니다.

KubeMemoryQuotaOvercommit

warning

클러스터에 메모리 리소스 요청이 과도하게 커밋되었습니다.

KubeQuotaAlmostFull

info

네임스페이스 할당량이 가득 찰 예정입니다.

KubeQuotaFullyUsed

info

네임스페이스 할당량이 완전히 사용되었습니다.

KubeQuotaExceeded

warning

네임스페이스 할당량이 제한을 초과했습니다.

CPUThrottlingHigh

info

프로세스 조절CPU이 증가합니다.

KubePodCrashLooping

warning

포드에서 충돌 루프가 발생합니다.

KubePodNotReady

warning

포드가 15분 넘게 준비되지 않은 상태입니다.

KubeDeploymentGenerationMismatch

warning

잠재적 롤백으로 인한 배포 생성 불일치

KubeDeploymentReplicasMismatch

warning

배포가 예상 복제본 수와 일치하지 않습니다.

KubeStatefulSetReplicasMismatch

warning

StatefulSet 가 예상 복제본 수와 일치하지 않습니다.

KubeStatefulSetGenerationMismatch

warning

StatefulSet 롤백 가능성으로 인한 생성 불일치

KubeStatefulSetUpdateNotRolledOut

warning

StatefulSet 업데이트가 롤아웃되지 않았습니다.

KubeDaemonSetRolloutStuck

warning

DaemonSet 롤아웃이 중단되었습니다.

KubeContainerWaiting

warning

1시간 넘게 대기 중인 포드 컨테이너

KubeDaemonSetNotScheduled

warning

DaemonSet 포드가 예약되지 않았습니다.

KubeDaemonSetMisScheduled

warning

DaemonSet 포드가 잘못 예약되었습니다.

KubeJobNotCompleted

warning

작업이 제시간에 완료되지 않음

KubeJobFailed

warning

작업을 완료하지 못했습니다.

KubeHpaReplicasMismatch

warning

HPA가 원하는 복제본 수와 일치하지 않습니다.

KubeHpaMaxedOut

warning

HPA가 최대 복제본에서 실행 중입니다.

KubeStateMetricsListErrors

critical

kube-state-metrics 에서 목록 작업에 오류가 발생했습니다.

KubeStateMetricsWatchErrors

critical

kube-state-metrics 에서 감시 작업에 오류가 발생했습니다.

KubeStateMetricsShardingMismatch

critical

kube-state-metrics 샤딩이 잘못 구성되었습니다.

KubeStateMetricsShardsMissing

critical

kube-state-metrics 샤드가 누락되었습니다.

KubeAPIErrorBudgetBurn

critical

API 서버가 너무 많은 오류 예산을 소비하고 있습니다.

KubeAPIErrorBudgetBurn

critical

API 서버가 너무 많은 오류 예산을 소비하고 있습니다.

KubeAPIErrorBudgetBurn

warning

API 서버가 너무 많은 오류 예산을 소비하고 있습니다.

KubeAPIErrorBudgetBurn

warning

API 서버가 너무 많은 오류 예산을 소비하고 있습니다.

TargetDown

warning

하나 이상의 대상이 중단되었습니다.

etcdInsufficientMembers

critical

Etcd 클러스터에 멤버가 부족합니다.

etcdHighNumberOfLeaderChanges

warning

Etcd 클러스터에서 리더 변경 횟수가 많습니다.

etcdNoLeader

critical

Etcd 클러스터에 리더가 없습니다.

etcdHighNumberOfFailedGRPCRequests

warning

Etcd 클러스터 실패한 gRPC 요청 수가 많습니다.

etcdGRPCRequestsSlow

critical

Etcd 클러스터 gRPC 요청은 느립니다.

etcdMemberCommunicationSlow

warning

Etcd 클러스터에서 멤버 통신이 느립니다.

etcdHighNumberOfFailedProposals

warning

Etcd 클러스터에서 실패한 제안 수가 많습니다.

etcdHighFsyncDurations

warning

Etcd 클러스터에서 fsync 지속 시간이 높습니다.

etcdHighCommitDurations

warning

Etcd 클러스터에서 예상 커밋 지속 시간보다 깁니다.

etcdHighNumberOfFailedHTTPRequests

warning

Etcd 클러스터에 HTTP 요청이 실패했습니다.

etcdHighNumberOfFailedHTTPRequests

critical

Etcd 클러스터에 실패한 HTTP 요청 수가 많습니다.

etcdHTTPRequestsSlow

warning

Etcd 클러스터 HTTP 요청은 느립니다.

HostClockNotSynchronizing

warning

호스트 클럭이 동기화되지 않습니다.

HostOomKillDetected

warning

호스트 OOM 종료가 감지되었습니다.

문제 해결

프로젝트 설정이 실패할 수 있는 몇 가지 조건이 있습니다. 다음을 확인해야 합니다.

  • 솔루션을 설치하기 전에 모든 사전 조건을 완료해야 합니다.

  • 솔루션을 생성하거나 지표에 액세스하기 전에 클러스터에 하나 이상의 노드가 있어야 합니다.

  • Amazon EKS 클러스터에는 AWS CNI, CoreDNSkube-proxy 추가 기능이 설치되어 있어야 합니다. 설치되지 않으면 솔루션이 제대로 작동하지 않습니다. 콘솔을 통해 클러스터를 생성할 때 기본적으로 설치됩니다. 클러스터가를 통해 생성된 경우 설치해야 할 수 있습니다 AWS SDK.

  • Amazon EKS 포드 설치 시간이 초과되었습니다. 사용 가능한 노드 용량이 충분하지 않은 경우 발생할 수 있습니다. 이러한 문제의 원인은 다음을 포함하여 여러 가지가 있습니다.

    • Amazon EKS 클러스터가 Amazon 대신 Fargate로 초기화되었습니다EC2. 이 프로젝트에는 Amazon가 필요합니다EC2.

    • 노드가 테인트되어 사용할 수 없습니다.

      kubectl describe node NODENAME | grep Taints를 사용하여 테인트를 확인할 수 있습니다. 그런 다음, kubectl taint node NODENAME TAINT_NAME-을 통해 테인트를 제거합니다. 테인트 이름 뒤에 -를 포함해야 합니다.

    • 노드에서 용량 제한에 도달했습니다. 이 경우 새 노드를 생성하거나 용량을 늘릴 수 있습니다.

  • Grafana에 대시보드가 표시되지 않음: 잘못된 Grafana 워크스페이스 ID 사용.

    다음 명령을 실행하여 노드에 대한 정보를 가져옵니다.

    kubectl describe grafanas external-grafana -n grafana-operator

    올바른 작업 영역에 대한 결과를 확인할 수 있습니다URL. 예상과 다른 경우 올바른 워크스페이스 ID로 다시 배포합니다.

    Spec: External: API Key: Key: GF_SECURITY_ADMIN_APIKEY Name: grafana-admin-credentials URL: https://g-123example.grafana-workspace.aws-region.amazonaws.com Status: Admin URL: https://g-123example.grafana-workspace.aws-region.amazonaws.com Dashboards: ...
  • Grafana에 대시보드가 표시되지 않음: 만료된 API 키를 사용하고 있습니다.

    이 사례를 확인하려면 Grafana 연산자를 가져와 로그에 오류가 있는지 확인해야 합니다. 이 명령을 사용하여 Grafana 연산자의 이름을 가져옵니다.

    kubectl get pods -n grafana-operator

    그러면 연산자 이름을 반환합니다. 예를 들어 다음과 같습니다.

    NAME READY STATUS RESTARTS AGE grafana-operator-1234abcd5678ef90 1/1 Running 0 1h2m

    다음 명령에서 연산자 이름을 사용합니다.

    kubectl logs grafana-operator-1234abcd5678ef90 -n grafana-operator

    다음과 같은 오류 메시지는 만료된 API 키를 나타냅니다.

    ERROR error reconciling datasource {"controller": "grafanadatasource", "controllerGroup": "grafana.integreatly.org", "controllerKind": "GrafanaDatasource", "GrafanaDatasource": {"name":"grafanadatasource-sample-amp","namespace":"grafana-operator"}, "namespace": "grafana-operator", "name": "grafanadatasource-sample-amp", "reconcileID": "72cfd60c-a255-44a1-bfbd-88b0cbc4f90c", "datasource": "grafanadatasource-sample-amp", "grafana": "external-grafana", "error": "status: 401, body: {\"message\":\"Expired API key\"}\n"} github.com/grafana-operator/grafana-operator/controllers.(*GrafanaDatasourceReconciler).Reconcile

    이 경우 새 API 키를 생성하고 솔루션을 다시 배포합니다. 문제가 지속되면 재배포하기 전에 다음 명령을 사용하여 강제 동기화할 수 있습니다.

    kubectl delete externalsecret/external-secrets-sm -n grafana-operator
  • CDK 설치 - SSM 파라미터가 누락되었습니다. 다음과 같은 오류가 표시되면 cdk bootstrap을 실행하고 다시 시도합니다.

    Deployment failed: Error: aws-observability-solution-eks-infra-$EKS_CLUSTER_NAME: SSM parameter /cdk-bootstrap/xxxxxxx/version not found. Has the environment been bootstrapped? Please run 'cdk bootstrap' (see https://docs.aws.amazon.com/cdk/latest/ guide/bootstrapping.html)
  • OIDC 공급자가 이미 있는 경우 배포에 실패할 수 있습니다. 다음과 같은 오류가 표시됩니다(이 경우 CDK 설치의 경우).

    | CREATE_FAILED | Custom::AWSCDKOpenIdConnectProvider | OIDCProvider/Resource/Default Received response status [FAILED] from custom resource. Message returned: EntityAlreadyExistsException: Provider with url https://oidc.eks.REGION.amazonaws.com/id/PROVIDER ID already exists.

    이 경우 IAM 포털로 이동하여 OIDC 공급자를 삭제하고 다시 시도하세요.

  • Terraform installs - cluster-secretstore-sm failed to create kubernetes rest client for update of resourcefailed to create kubernetes rest client for update of resource를 포함하는 오류 메시지가 표시됩니다.

    이 오류는 일반적으로 외부 보안 암호 연산자가 Kubernetes 클러스터에 설치되거나 활성화되지 않았음을 나타냅니다. 이는 솔루션 배포의 일부로 설치되지만 솔루션에 필요할 때 준비되지 않는 경우도 있습니다.

    다음 명령을 사용하여 설치되었는지 확인합니다.

    kubectl get deployments -n external-secrets

    설치한 경우 연산자가 완전히 사용할 준비가 되는 데 시간이 걸릴 수 있습니다. 다음 명령을 실행하여 필요한 사용자 지정 리소스 정의(CRDs)의 상태를 확인할 수 있습니다.

    kubectl get crds|grep external-secrets

    이 명령은 clustersecretstores.external-secrets.io 및를 포함하여 외부 보안 암호 연산자와 CRDs 관련된를 나열해야 합니다externalsecrets.external-secrets.io. 목록에 없는 경우 몇 분 정도 기다렸다가 다시 확인합니다.

    CRDs가 등록되면를 terraform apply 다시 실행하여 솔루션을 배포할 수 있습니다.