반응형
kubectl에서 label selector를 사용하면 원하는 리소스 정보를 쉽게 불러올 수 있다.
보통 아래와 같은 방식으로 사용한다.
# label app이 vicent인 파드 가져오기
kubectl get pod -l app=vicent
# label app이 vicent인 deploy 가져오기
kubectl get deploy -l app=vicent
그렇다면 하나의 라벨 조건을 더 줘서 데이터를 가져오고 싶을때는 어떻게 해야할까?
예를들어 app이 vicent인데 component가 db인 pod 를 가져오고 싶다면?
kubectl에서는 쉼표 ,를 통해 조건을 추가하면 and 조건으로 인식한다.
# label app이 vicent이고 component는 db인 파드 가져오기
kubectl get pod -l app=vicent,component=db
# label app이 vicent인 component는 db인 deploy 가져오기
kubectl get deploy -l app=vicent,component=db
그렇다면 app이 vicent 인 애들과 component가 web인 애들은 어떻게 가져올까?
즉 app=vicent or compoenet=web 인 애들은 어떻게 가져올 수 있을까?
방법을 찾아봤지만 kubectl에서는 여러개의 라벨 셀렉터에 대한 or 연산을 제공하지 않는다.
대신 아래와 같은 야매를 통해서 가져올 수는 있다.
# label app이 vicent이거나 component는 web인 파드 가져오기
kubectl get pod -l app=vicent && kubectl get pod -l component=web --no-headers
# label app이 vicent이거나 component는 web인 deploy 가져오기
kubectl get deploy -l app=vicent && kubectl get deploy -l component=web --no-headers
kubectl 명령어를 두번 날리면서 두번쨰 명령어에 --no-headers 옵션을 주면 마치 하나의 결과값 처럼 오는 효과를 줄 수 있다. 다만 app이 vicent이면서 component가 web인 애들이 있으므로 중복된 결과값을 받을 수는 있다.
반응형
'ETC' 카테고리의 다른 글
[SQL] 컬럼 내용에서 문자열 치환하기 (replace) (0) | 2021.10.12 |
---|---|
[프로그래머스] 전화번호부 - python 해결 과정 (0) | 2021.06.26 |
[kubernetes] 배포 방법 정리 (고정/롤링/블루-그린/카나리 릴리즈 배포) (0) | 2021.04.25 |
[kubernetes] resources의 limit과 request의 의미와 파드 우선순위 (0) | 2021.04.25 |
[powershell] 파워쉘로 파일 업로드하기 (curl -T와 동일) (0) | 2021.04.14 |