관리 메뉴

피터의 개발이야기

[kubernetes] Events 보는 방법 본문

Kubernetes/Logging & Monitoring

[kubernetes] Events 보는 방법

기록하는 백앤드개발자 2022. 9. 23. 08:14
반응형

[kubernetes] 쿠버네티스 목차

[kubernetes] 모니터링 방법 정리

ㅁ 개요

 ㅇ 현재 EKS 업그레이드 작업을 진행 중에 Describe를 통해 개별 Event를 확인하기는 번거로움이 있었다.

 ㅇ 그래서 업그레이드 과정에서 이상이 발생한 pod들 전체  event를 볼 수 있는 방법에 대해 정리하였다.

 

 

ㅁ 테스트용 Pod 실행

$ kubectl run centos --image=centos:7 --port=8081
pod/centos created

 

 

ㅁ Pod Event 확인

 ㅇ kubectl describe po centos 명령어를 통해 하단의 Events를 확인할 수 있다.

 

 

ㅁ 전체 이벤트 확인

$ kubectl get events
LAST SEEN   TYPE      REASON      OBJECT       MESSAGE
33s         Normal    Scheduled   pod/centos   Successfully assigned default/centos to docker-desktop
32s         Normal    Pulling     pod/centos   Pulling image "centos:7"
13s         Normal    Pulled      pod/centos   Successfully pulled image "centos:7" in 18.973354259s
12s         Normal    Created     pod/centos   Created container centos
12s         Normal    Started     pod/centos   Started container centos
12s         Normal    Pulled      pod/centos   Container image "centos:7" already present on machine
10s         Warning   BackOff     pod/centos   Back-off restarting failed container

 ㅇ Object별 이벤트를 확인 할 수 있다.

 

 

ㅁ 조건에 따른 이벤트 확인방법

# Warning 타입만 조회
kubectl get events --field-selector type=Warning

# Pod events를 제외한 다른 events 조회
kubectl get events --field-selector involvedObject.kind!=Pod

# minikube 라는 이름의 node에서 발생한 events만 조회
kubectl get events --field-selector involvedObject.kind=Node,involvedObject.name=minikube

 

 

ㅁ 쿠버네티스 API를 사용하여 Event 확인 방법

# 클러스터 proxy 연결
$ kubectl proxy
Starting to serve on 127.0.0.1:8001

# curl를 이용한 이벤트 확인
$ curl -s http://127.0.0.1:8001/apis/events.k8s.io/v1/events
{
  "kind": "EventList",
  "apiVersion": "events.k8s.io/v1",
  "metadata": {
    "resourceVersion": "1105254"
  },
  "items": [
    {
      "metadata": {
        "name": "centos.1717538a7e9503c8",
        "namespace": "default",
        "uid": "9b9a38a3-c523-4214-ad87-2c17273d12da",
        "resourceVersion": "1104404",
        "creationTimestamp": "2022-09-22T23:47:21Z",
        "managedFields": [
          {
            "manager": "kube-scheduler",
            "operation": "Update",
            "apiVersion": "events.k8s.io/v1",
            "time": "2022-09-22T23:47:21Z",
            "fieldsType": "FieldsV1",
            "fieldsV1": {"f:action":{},"f:eventTime":{},"f:note":{},"f:reason":{},"f:regarding":{},"f:reportingController":{},"f:reportingInstance":{},"f:type":{}}
          }
        ]
      }
  ]
}

 ㅇ 클러스터 API를 직접 연동하여 이벤트를 확인할 수 있다.

 ㅇ API를 호출하여 슬랙에 연동할 수 있는 프로그램을 만들어 내부 이벤트에 대한 알람을 받을 수도 있다.

 ㅇ 관련 글은 여기

 

 

ㅁ 함께 보면 좋은 사이트

 

Kubernetes Events 에 대하여

Kubernetes Events는 하나의 Kubernetes 리소스 타입으로서 Kubernetes 리소스들의 state 변화, 에러 또는 시스템에 특정 메세지를 전파해야할 때 자동으로 만들어집니다. 이러한 Kubernetes Events 리소스는 Kube..

binux.tistory.com

 ㅇ Kubernetes Events 에 대하여
 

 

쿠버네티스 API를 사용하여 클러스터에 접근하기

이 페이지는 쿠버네티스 API를 사용하여 클러스터에 접근하는 방법을 보여준다. 시작하기 전에 쿠버네티스 클러스터가 필요하고, kubectl 커맨드-라인 툴이 클러스터와 통신할 수 있도록 설정되어

kubernetes.io

ㅇ 쿠버네티스 API를 사용하여 클러스터에 접근하기(Event를 api로 직접 호출할 수 있음)

 

 

쿠버네티스에서 노드가 추가될 때마다 슬랙 알람 쏘기

나만의 Kubernetes event watcher 만들기

tech.scatterlab.co.kr

 쿠버네티스에서 노드가 추가될 때마다 슬랙 알람 쏘기

반응형
Comments