이 라인은 OpenSearch 대시보드 파일의 경로를 OPENSEARCH_DASHBOARD_FILE 환경 변수에 할당합니다.
대시보드 파일은 로컬 시스템에서 지정된 경로에 있어야 합니다.
미리 생성된 OpenSearch 대시보드를 로드하여 Kubernetes 이벤트와 파드 로그를 표시
대시보드는 opensearch-dashboards.ndjson 에서 사용
이 NDJSON 파일에는 Kubernetes 이벤트와 파드 로그에 대한 OpenSearch 인덱스 패턴, 시각화 및 대시보드가 포함
검색한 OpenSearch 서버 좌표 및 자격 증명을 보고 OpenSearch 대시보드에 액세스
글로벌 테넌트를 선택
OpenSearch의 테넌트는 인덱스 패턴, 시각화 및 대시보드와 같은 리소스를 안전하게 공유하는 데 사용
이전 단계에서 로드한 두 개의 대시보드(Kubernetes 이벤트 및 포드 로그용)가 표시
OpenSearch에 아직 데이터가 없기 때문에 대시보드는 현재 비어 있음
💠Kubernetes events
Kubernetes 이벤트 내보내기를 배포하여 이벤트를 OpenSearch로 전달하고, 테스트 워크로드를 생성하여 추가 Kubernetes 이벤트를 생성하고, OpenSearch Kubernetes 이벤트 대시보드를 탐색하고, 문제를 식별하고, 선택적으로 Kubernetes 클러스터 내의 이벤트를 탐색
Kubernetes 이벤트는 애플리케이션과 클러스터 상태를 모니터링하고, 장애에 대응하고, 진단을 수행하는 데 사용
이벤트는 일반적으로 일부 상태 변화 표시
각 이벤트에는 실패의 성공을 나타내는 정상 또는 경고로 설정된 유형 필드가 포함
Kubernetes 이벤트는 지속적으로 생성되지만 클러스터 내에서 한 시간 동안만 유지
이 보존 기간은 60분이라는 Kubernetes 업스트림 기본 이벤트 TTL(Time-to-Live)과 일치
OpenSearch는 이러한 이벤트의 수집, 분석 및 시각화를 간소화하는 내구성 있는 저장소를 제공
kubernetes-events-exporter는 이벤트를 OpenSearch 도메인으로 전달하기 위해 opensearch-exporter 네임스페이스에 배포
이벤트는 OpenSearch의 eks-kubernetes-events 인덱스에 저장
앞서 로드한 OpenSearch 대시보드는 이벤트를 시각화하는 데 사용
Kubernetes events exporter 를 배포하고 OpenSearch 도메인으로 이벤트를 전송하도록 구성 (기본구성정보링크)
앞서 검색한 OpenSearch credentials(자격 증명) 이 내보내기를 구성하는 데 사용
Kubernetes 이벤트 포드가 실행 중인지 확인
테스트 네임스페이스 내에서 시나리오-a, 시나리오-b, 시나리오-c로 레이블이 지정된 세 개의 배포를 시작하여 정상 및 경고 이벤트를 시연함으로써 추가 Kubernetes 이벤트를 생성
각 배포에는 의도적으로 오류가 포함됩니다.
Kubernetes 이벤트 내보내기는 지난 1시간 동안의 이벤트와 새로운 이벤트를 OpenSearch로 보냅니다. 따라서 다음 명령을 실행하고 OpenSearch 대시보드를 검사할 때 표시되는 정확한 이벤트 목록은 지난 한 시간 동안의 EKS 클러스터 활동에 따라 달라집니다.
이전 페이지에서 사용했던 OpenSearch 대시보드로 돌아가서 OpenSearch Kubernetes 이벤트 대시보드를 탐색
각 이벤트 옆의 '>'를 클릭하면 새 섹션이 열립니다.
전체 이벤트 문서는 테이블 또는 JSON 형식
쿠버네티스 이벤트 내의 데이터 필드에 대한 설명은 kubernetes.io에서 또는 kubectl explain events를 실행하여 확인
Kubernetes 이벤트 대시보드를 사용하여 세 가지 배포(시나리오-a, 시나리오-b, 시나리오-c)에서 문제가 발생하는 이유를 파악할 수 있습니다. 앞서 배포한 모든 파드는 테스트 네임스페이스에 있습니다.
시나리오-a:
대시보드에서 시나리오-a의 FailedMount 이유와 MountVolume.SetUp failed for volume "secret-volume" : secret "misspelt-secret-name" not found 에 대한 마운트 실패 메시지가 표시
시나리오-b:
Failed to pull image "wrong-mage": rpc error: code = Unknown desc = failed to pull and unpack image "docker.io/library/wrong-image:latest": failed to resolve reference "docker.io/library/wrong-image:latest": pull access denied, repository does not exist or may require authorization: server message: insufficient_scope: authorization failed
시나리오-C:
0/3 nodes are available: 3 Insufficient cpu. preemption: 0/3 nodes are available: 3 No preemption victims found for incoming pod
문제를 해결하고 OpenSearch 대시보드를 다시 방문하여 변경 사항을 확인
OpenSearch 대시보드로 돌아가서 이전 문제가 해결된 것을 확인합니다. 업데이트된 배포는 성공한 새 파드를 시작하고 이전에 생성된 (오류와 함께) 파드는 삭제
선택적으로 EKS 클러스터 내에서 Kubernetes 이벤트를 탐색
OpenSearch 대시보드 내에서 탐색하던 이벤트는 클러스터 내에서 사용할 수 있는 정보를 반영
클러스터에서 가장 최근 이벤트 5개를 검색합니다
경고 또는 실패 상태의 이벤트를 확인
가장 최근의 이벤트(모든 네임스페이스에 걸쳐)를 JSON 형식으로 확인
출력 결과가 OpenSearch 인덱스에 있는 세부 정보와 매우 유사 (오픈서치 문서에는 오픈서치 내에서 색인을 용이하게 하기 위한 추가 필드가 있습니다).