728x90
쿠버네티스 환경에서 자원들을 그룹 단위로 관리하기 위해서 사용하는 것이 labels 이다. labels 를 이용해 key-value 페어로 다양한 속성 값을 지정할 수 있으며, 이렇게 지정한 값들은 --selector 파라메터를 사용하여 아래와 같이 자원을 조회할 때 사용할 수 있다.
$ kubectl get pods --selector env=dev
NAME READY STATUS RESTARTS AGE
app-1-2k2pg 1/1 Running 0 71s
app-1-bbdsn 1/1 Running 0 71s
app-1-w7d94 1/1 Running 0 71s
db-1-dzcnf 1/1 Running 0 70s
db-1-f6f8m 1/1 Running 0 70s
db-1-lb72h 1/1 Running 0 70s
db-1-tlmjt 1/1 Running 0 70s
kubectl get 구문에서 자원의 형태에 관계 없이 목록을 가져오는 경우 all 을 쓰면 되는 것 같다.
$ kubectl get all --selector env=prod
NAME READY STATUS RESTARTS AGE
pod/app-1-zzxdf 1/1 Running 0 6m43s
pod/app-2-hj6qs 1/1 Running 0 6m44s
pod/auth 1/1 Running 0 6m43s
pod/db-2-5nmrk 1/1 Running 0 6m43s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/app-1 ClusterIP 10.106.145.187 <none> 3306/TCP 6m43s
NAME DESIRED CURRENT READY AGE
replicaset.apps/app-2 1 1 1 6m44s
replicaset.apps/db-2 1 1 1 6m43s
--selector 는 여러개의 key, value 를 값으로 받을 수 있는데, 아래와 같이 콤마(,)로 구분자를 넣어서 필요한 labels 를 나열하면 된다.
$ kubectl get pods --selector env=prod,bu=finance,tier=frontend
NAME READY STATUS RESTARTS AGE
app-1-zzxdf 1/1 Running 0 10m
labels 를 활용하여 ReplicaSet 을 만드는 yaml 설정은 아래와 같다.
// replicaset.yaml
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: replicaset-1
spec:
replicas: 2
selector:
matchLabels:
tier: frontend
template:
metadata:
labels:
tier: frontend
spec:
containers:
- name: nginx
image: nginx
// Create replicaset
$ kubectl create -f replicaset-definition-1.yaml
replicaset.apps/replicaset-1 created
// Check
$ kubectl get pods --selector tier=frontend
NAME READY STATUS RESTARTS AGE
app-1-2k2pg 1/1 Running 0 14m
app-1-bbdsn 1/1 Running 0 14m
app-1-w7d94 1/1 Running 0 14m
app-1-zzxdf 1/1 Running 0 14m
app-2-hj6qs 1/1 Running 0 14m
replicaset-1-9hcpb 1/1 Running 0 91s
열심히 공부하고 있는 강의는 위의 링크를 참고하세요!
제휴마케팅을 통해 소정의 수수료를 지급 받을 수 있습니다
728x90