CKA
[Udemy CKA - Core Concepts] Labels and Selectors
by 2won2
2024. 8. 22.
Labels and Selectors
- 리소스들을 식별하고 관리
- Labels
- metadata 아래에 작성
- 리소스에 부여되는 키-값 쌍으로, 리소스를 식별하고 그룹화하는 데 사용
- ReplicaSet의 Yaml 파일에서 template 아래의 labels는 pod의 label
- metadata의 label이 ReplicaSet의 label
apiVersion: v1
kind:
metadata:
name:
labels:
app: frontend
env: production
spec:
apiVersion: v1
kind: Service
metadata:
name:
spec:
selector:
app: frontend
ports:
- protocol:
port:
targetPort:
Practice
- Pod label 확인
- kubectl get pods --show-labels
- env가 dev인 Pod는 몇개인가?
- kubectl get pods --selector env=dev OR kubectl get pods -l env=dev
- -l : --selector의 짧은 형태
- kubectl get pods -l env=dev | wc -l
- wc -l : wordcount, 텍스트 파일이나 명령어의 출력 결과에서 단어, 줄, 또는 문자 수를 세는 데 사용
- | 기호 : 한 명령어의 출력을 다른 명령어의 입력으로 전달할 때 사용(첫 번째 명령어의 출력을 두 번째 명령어로 전달)
- 세어지는 label은 7개이지만, wc로 한 경우 8개 나옴. 이 경우는 header도 추가돼서 나온 것이므로, 헤더를 제거해야 정확한 갯수를 구할 수 있음
- kubectl get po -l env=dev --no-headers | wc -l
- prod 라벨을 가진 POD, ReplicaSet 등 다른 오브젝트의 개수 구하기
- kubectl get all -l env=prod
- env가 prod이고, bu가 finance이며, tier가 frontend인 Pod 구하기
- kubectl get po -l env=prod,bu=finance,tier=frontend
- kubectl get po --show-labels의 결괏값에서 찾기
- 정의된 replicaset-definition-1.yaml를 가지고 Replicaset을 만들기
- matchLabels와 template의 labels에 있는 tier 라벨이 동일해야 함
- ReplicaSet은 지정된 라벨에 일치하는 POD들을 관리하기 때문에
- ReplicaSet은 matchLabels에 지정된 라벨을 기준으로 해당 라벨을 가진 POD들을 관리
수정전
수정후