728x90
Labels
- Kubernetes의 각 object에 대해 필요에 따라 label attach
- ex. env: dev / app: nginx
- metadata section 하위에 label이라는 이름의 field 생성 후 기입
- 원하는 만큼 label attach 가능
metadata:
labels:
env: dev
app: nginx
- ex) label이 있는 pod를 선택하기 위해 kubectl get po --selector app=App1과 같이 --selector 파라미터를 사용하여 filtering함
Selectors
Selector는 각 Kubernets Object들을 filtering하는데 사용
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
- Kubernetes object는 내부적으로 label과 selector를 사용하여 서로 다른 object를 함께 연결함
- Deployment의 경우
- metadata section 하위의 label field는 Deployment 자체의 label로 Deployment를 찾는 다른 object를 구성하는 경우에 사용됨
- spec section 하위의 template field의 label은 pod에 구성된 label임
- pod와 Deployment을 연결하기 위해 spec section 하위에 selector field 생성
- 올바르게 일치하는 경우 single label이 적합
- label은 같으나 기능이 다른 다른 pod가 있을 수 있다면 2개의 label을 명시해야 함
- Service의 경우
- selector를 사용하여 ReplicaSets의 manifest file 내 pod에 설정된 label을 일치시킴
- Deployment의 경우
Annotations
label과 selector가 object를 그룹화하고 선택하기 위해 사용되는 반면, annotation은 정보 제공 목적으로 다른 세부 정보를 기록하는 데 사용됨
apiVersion: v1
kind: Pod
metadata:
name: annotations-demo
annotations:
imageregistry: "https://hub.docker.com/"
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
- 이름, 버전, 빌드 정보 등과 같은 도구에 대한 세부 정보나 일종의 통합 목적으로 사용될 수 있는 연락처, 세부 정보, 전화 번호, email ID 등이 이에 해당됨
반응형
'Kubernetes' 카테고리의 다른 글
Azure Kubernetes Service Node에 Access 하기 (0) | 2024.03.26 |
---|---|
Encrypting Secret Data at Rest in ETCD (0) | 2024.03.22 |
Virtual Machine으로 Kubernetes Cluster 구성하기 (2) (0) | 2024.03.22 |
Virtual Machine으로 Kubernetes Cluster 구성하기 (1) (0) | 2024.03.22 |
Kubernetes Network Policy 공부하기 (2) (1) | 2024.03.22 |
댓글