본문 바로가기
devops/k8s

[쿠버네티스 어나더 클래스] 27. object 그려보면서 이해하기

by gnobaaaar 2025. 7. 13.

Traffic Routing

파드는 서비스를 통해 트래픽을 받는다

 

 

App에 지속적으로 트래픽 보내기
트래픽을 한 파드에 넣어서 테스트를 진행

  • 트래픽 알고리즘 : 현재 iptalbes 모드로 작동하기 때문에 Random으로 Pod에 트래픽이 분산
while true; do curl http://192.168.56.30:31221/hostname; sleep 2; echo ''; done;

위 명령어로 서비스의 노드포트(31221)로 보내면 아래 두 파드가 균등하게 트래픽을 받는다

 

 

App에 Memory Leak 나게 하기 (Self-Healing 테스트)

curl 192.168.56.30:31221/memory-leak

메모리 누수난 파드가 죽고 다시 재시작 된것을 확인가능

 

App에 부하주기 (AutoScaling 테스트)

curl 192.168.56.30:31221/cpu-load

HPA 를 통해 오토스케일링이 동작한다

 

 

object 그려보면서 이해하기

 

 

네임스페이스 : 오브제트들을 그룹핑해준다
디플로이먼트의 metadata.name : 네임스페이스 내 에서 이름중복 안됨 (같은종류 오브젝트)

startupProbe - 기동체크(실패:재기동) -> readinessProbe/LivenessProve

  • readinessProbe : 앱에 트래픽을 연결할지 결정하는 속성 (실패:연결해제)
  • LivenessProve : 앱이 비정상일 경우 재시작을 시킬건지 판단하는 속성 (실패:재기동)
    resource : 파드내 자원량 설정
    VoulmeMounts의 name과 vloumes의 name이 매칭이 된다

secret :

  • StringData : 파일생성

object에 라벨링이 중요하다

프로메테우스
part-of : 어플리케이션의 전체이름
components : 각각의 분리된 기능

  • prometheus : 메트릭 수집/ 성능 API 제공
  • exporter : 메트릭 제공
  • grafana : 성능정보 시각화
  • kube-state-metics : k8s 클러스터 성능
  • node-exporter : 노드 vm 성능

네임스페이스 : namespace에 담을 app의 범위