객체를 그룹화해서 관리/사용하기 위한 방법
k8s에는 수많은 객체가 존재한다. 이 객체를 여러 기준에 따라 필터링하고 그룹화할 수 있어야 한다.
이것을 위해 가장 좋은 방법은 라벨을 사용하는 것이다.
각 객체에 부여된 속성
ex)
class : mammal
color : green
type : frontend
라벨을 필터링 할 때 사용
selector로 지정하는 라벨을 가진 객체를 선택한다는 의미
인스타그램, 유튜브에서 해시태그 (#cat
) 를 사용하여 원하는 컨텐츠를 필터링하는 것과 유사
아래의 레플리카셋 예시 외에도 다른 모든 객체에서 셀렉터와 라벨은 동일한 역할을 한다. 원하는 타겟 객체를 찾기 위해 사용된다.
replicaset-definition.yml
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: simple-webapp
labels:
app: App1 ---------> replicaset 자체의 label
function: Front-end
annotations:
buildversions: 1.34
spec:
relicas: 3
selector:
matchLabels:
app: App1 ================> 이 레플리카셋이 원하는 pod를 찾기 위한 selector
template:
metadata:
labels:
app: App1 ==============> 타겟 pod의 label
function: Front-end
spec:
containers:
- name: simple-webapp
image: simple-webapp
label과 selector는 원하는 객체를 선택하기 위해 사용되지만,
이 annotation은 말 그대로 세부 사항을 기록하기 위해 사용된다.
이름, 버전, 빌드 정보, 연락처 등등