TIL-2020.01.20

TIL-2020.01.20

kubectl

# 사용법
$ kubectl [command] [TYPE] [NAME] [flags]
  • command: 자원에 실행하려는 동작
  • TYPE: 자원 타입
  • NAME: 자원 이름
  • FLAG: 부가적으로 설정할 옵션

deployment

  • kubectl run 명령으로 직접 컨테이너를 실행
  • YAML형식의 템플릿으로 컨테이너를 실행
  • k8s의 자원들은 관련 설정을 정의한 템플릿(manifest)과 kubectl apply 명령을 이용해 선언적 형태로 관리할 것을 권장
  • 템플릿 파일들은 앱 소스 코드와 함께 버전 관리 시스템으로 이력과 변경 사항을 추적하는 것이 좋음

service

  • k8s service를 이용면 쿠버네티스 내부에서 실행한 container를 외부에서 접근이 가능해짐

k8s cluster

  • master와 node로 나눠짐
  • master : cluster 관리
  • node : container 실행
  • master는 보통 서버 3대 정도 구성하여 운영

k8s에서 container 단위가 아닌 pod 단위로 관리하는 이유

container 하나에 여러 개의 역할을 모두 부여할 수 있지만 프로세스마다 일일히 관리해야하므로 컨테이너의 관리 효율이 낮음

부하테스트 도구

https://github.com/tsenart/vegeta

시스템 메트릭

  • CPU, 메모리 사용량 같은 시스템 관련 메트릭

서비스 메트릭

  • 어플리케이션을 모니터링할 때 필요한 메트릭

프로메테우스 컴포넌트

  • prometheus server : 시계열 데이터를 수집해서 저장
  • client libray: 프로메테우스에서 데이터를 수집하도록 만든 라이브러리
  • push gateway: 클라어이언트에서 직접 프로메테우스로 데이터를 보낼 때 받는 역할
  • exporter : 프로메테우스 클라이언트 라이브러리를 내장해서 만들지 않은 어플리캐이션
  • alertmanager : 알람을 어디로 보낼지 관리함

Written by@seongjoojin
Lives and works in Seoul building useful things.

GitHubTwitter