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 : 알람을 어디로 보낼지 관리함