たとえば以下の状態のときに、app の pod だけ取ってくる。
% kubectl get deploy
NAME READY UP-TO-DATE AVAILABLE AGE
app 2/2 2 2 74s
ppa 2/2 2 2 74s
% kubectl get pod
NAME READY STATUS RESTARTS AGE
app-58554f64c7-6xx9r 1/1 Running 0 79s
app-58554f64c7-k525p 1/1 Running 0 79s
ppa-6858595469-8rhkb 1/1 Running 0 79s
ppa-6858595469-jxt7j 1/1 Running 0 79s
なんか、いい感じの kubectl plugin 探すか作るかした方がいい気もする。
% kubectl get deploy -owide
NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR
app 2/2 2 2 105m web nginx app=app
ppa 2/2 2 2 105m web nginx app=ppa
% kubectl get pod -l app=app
NAME READY STATUS RESTARTS AGE
app-58554f64c7-6xx9r 1/1 Running 0 106m
app-58554f64c7-k525p 1/1 Running 0 106m
一番最後が selector だからそれを拾う
% selector=$(kubectl get deploy app -owide | awk 'NR>1{print $NF}')
% kubectl get pod -l "$selector"
NAME READY STATUS RESTARTS AGE
app-58554f64c7-6xx9r 1/1 Running 0 4m15s
app-58554f64c7-k525p 1/1 Running 0 4m15s
kubernetes/kubernetes#72794 (comment)
% selector=$(kubectl get deploy app --subresource scale -ojson | jq '.status.selector' -r)
% kubectl get pods --selector "$selector"
NAME READY STATUS RESTARTS AGE
app-58554f64c7-6xx9r 1/1 Running 0 5m16s
app-58554f64c7-k525p 1/1 Running 0 5m16s
めんどい。なし。
以下で deployment の一覧を表示して、選んでから enter。
% k9s -c deploy
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: app
name: app
spec:
replicas: 2
selector:
matchLabels:
app: app
template:
metadata:
labels:
app: app
spec:
containers:
- name: web
image: nginx
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: ppa
labels:
app: ppa
spec:
replicas: 2
selector:
matchLabels:
app: ppa
template:
metadata:
labels:
app: ppa
spec:
containers:
- name: web
image: nginx