📑Object 종류
Service
- pod한테 트래픽을 연결시켜 주는 것
- 한 namespace 안에는 이름이 중복되면 안됨(정확히는 같은 objcet끼리 이름이 같으면 안됨)
ConfigMap
- pod의 환경변수 값을 제공하는 역할
- metadata 3세트랑 data
Secret
- 파드에 좀 더 중요한 값을 제공
- data가 아니라 stringData가 있고 이 내용들을 가진 파일이 파드 안에 만들어짐
PersistentVolumeClaim -> PVC
- 파드에서 PV를 지정할 때 사용
- 저장공간과 저장공간 accessMode는 필수 작성
PersistentVolume -> PV
- 실제 volume을 지정하는 역할
- 여기에는 namespace가 없음(namespace도 cluster 안에 속해 있는 object)
- local/path : 이 path를 volume으로 사용
- 위의 대상 노드는 nodeAffinity에서 상세 작성
namespace랑 volume은 클러스터 level의 object
Deployment랑 service들은 Namespace Level의 object
HPA
- 부하에 따라 pod를 늘려주고 줄여주는 스케일링 역할
- 스케일링 대상으로 Deployment를 지정
- metrics 설정 -> 평균 40%가 늘어나면 스케일 아웃을 하라는 설정 가능
- behavior 설정 -> 몇초 안에 pod를 추가적으로 생성하지 않게 하는 설정 가능
namespace를 삭제하면 이 안으로 만든 모든 object가 같이 삭제됨
pv는 별도로 한번 더 삭제 해야함
☀️Prometheus에서는?
part-of
- 전체 서비스를 대표하는 이름
component
- 이 서비스를 구성하고 있는 각각의 분리된 기능
- ex) prometheus -> 메트릭 수집/ 성능 API 제공
name
- 어플리케이션의 실제 이름
instance
- instance 식별자를 다르게 주면 여러 prometheus들을 구분 지을 수 있음
- 위의 상황에서는 kube-prometheus 새로 설치를 했을 때 인스턴스 식별자가 달라짐
version
- 앱 버전이 변경되면 같이 수정을 해야함
⭐naming 방식
쿠버네티스에서 권고하는 naming이 따로 있지는 않음
namespace
- namespace에 들어가는 앱들에 대한 범위를 나타내는 이름이 필요
instance
- 어플리케이션 이름에 식별자를 추가하는 예시가 많음
configmap
- pod에는 여러 개의 configmap을 붙일 수 있음
- 외부에서 앱에 전달하는 모든 데이터들을 confing 맵에 담을 수 있음
- ex) 프로메테우스에는 config 맵에 성능 정보에 대한 계산 공식들이 들어있음. 그리고 이걸 프로메테우스가 기동할 때 초기 데이터로 사용하기 때문에 이 목적에 맞는 rule 이라는 단어를 붙임
Managed-by
- k8s 권고 라벨링
- 어떤 도구로 배포 됐는지에 대한 툴 이름을 적는 것
- 이 object를 생성하고 관리하는 주체가 누군지 알 수 있는 정보
💻쿠버네티스 어나더클래스에서는?
Deployment
- 파드를 만들고 업데이트하는 방법을 제공
- strategy, replicas 설정 ex) RollingUpdate, 2
ReplicaSet
- pod 복제본 관리
- k8s가 이 deployment를 보고 replicaset이라는 object 생성
Pod
- ReplicaSet의 replicas 수만큼 pod를 만듦
- pod 하나를 삭제하려고 해도 유지 시켜줌
service
- pod에는 서비스를 여러 개 덧붙일 수 있음
- 클러스터 내부에서만 사용할 용도로 internal 붙이거나
- 외부에서 접속해 오는 걸 목적으로 한 서비스를 만들면 external이라는 이름을 만들기도 함
🔎쿠버네티스 object 간 연결
1. labels <-> selector
- label은 App 정보를 파악하기 위한 용도로만 사용되는게 아니라
- selecter와 매칭이 돼서 두 object를 연결하는데 사용
- ReplicaSet의 selceter에 있는 label 내용 전체가 pod에 포함되어있다면 매칭이 됨
2. object내에서 대상을 연결하는 속성
- HPA 내에 deployment 이름을 지정하는 속성이 있음
- configmap, secret, PVC 도 마찬가지로 pod에서 직접 연결하는 속성이 있음
label
- 정보만, 정보 + 기능성
prefix
- k8s 문서에 있는 yaml 파일들에서 이런 예제들을 많이 볼 수 있으며, 이건 도메인을 가리킴
label에 추가적으로 의미있는 정보들을 넣어주면 좋음
selector 마다 사용방법이 다름
출처
[인프런] 쿠버네티스 어나더 클래스 (지상편) - Sprint 1, 2
저자 : 일프로
'k8s' 카테고리의 다른 글
Private Cloud에서 k8s 설치하기 (0) | 2024.04.15 |
---|---|
[1-5] Application 기능으로 이해하기 - probe (1) | 2024.04.13 |
[1-3] 쿠버네티스가 정말 편한 이유 (0) | 2024.04.10 |
[1-2] 깊이있는 쿠버네티스 설치 (0) | 2024.04.01 |
[1-1] 컨테이너 한방정리 (0) | 2024.03.25 |