Label은 필요에 따라 object를 분류하고 여과하기 위한 수단이며,
Selector는 Label에 따라 필터링하는 속성이다
•
각 Object에 app, function 등 필요에 따라 라벨 부착
•
어떤 object를 필터링할 것인지 조건 명시
•
Label은 metadata의 labels를 생성하여 지정
◦
labels는 key:value 포맷을 가지며, 그 수는 상관 없음
•
selector 조건을 통해 특정 앱만 조회 가능
◦
kubectl get pods --selector app=App1
# replicaset-definition.yaml
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: simple-webapp
labels: # RS의 label
app: App1
function: front-end
spec:
replicas: 3
selector: # Pod 식별
matchLabels:
app: App1
template:
metadata:
labels: # Pod의 label
app: App1
function: front-end
containers:
- name: simple-webapp
image: simple-webapp
YAML
복사
•
metadata.labels: replicaset의 라벨
•
spec.selector.matchLabels: resplicaset과 연결되는 Pod 식별 selector
•
spec.template.metadata.labels: Pod의 라벨
# service-definition.yaml
apiVersion: v1
kind: Service
metadata:
name: my-services
spec:
selector: # Pod 식별
app: App1
ports:
- protocol: TCP
port: 80
targetPort: 9376
YAML
복사
•
spec.selector: 서비스와 연결되는 Pod를 식별하는 selector
Annotations
정보 수집 목적으로 세부 사항을 기록하는데 사용
•
이름, 버전, 빌드 정보 같은 툴 세부정보를 기록
•
연락처, 이메일 같은 정보를 통합 목적으로 사용
# replicaset-definition.yaml
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: simple-webapp
labels:
app: App1
function: front-end
annotations:
buildversion: 1.34 # 빌드 버전 등의 세부 사항을 기록
spec:
replicas: 3
selector:
matchLabels:
app: App1
template:
metadata:
labels:
app: App1
function: front-end
containers:
- name: simple-webapp
image: simple-webapp
YAML
복사