Information in this document may be out of date
This document has an older update date than the original, so the information it contains may be out of date. If you're able to read English, see the English version for the most up-to-date information: List All Container Images Running in a Cluster
ํด๋ฌ์คํฐ ๋ด ๋ชจ๋ ์ปจํ ์ด๋ ์ด๋ฏธ์ง ๋ชฉ๋ก ๋ณด๊ธฐ
์ด ๋ฌธ์๋ kubectl์ ์ด์ฉํ์ฌ ํด๋ฌ์คํฐ ๋ด ๋ชจ๋ ์ปจํ ์ด๋ ์ด๋ฏธ์ง ๋ชฉ๋ก์ ์กฐํํ๋ ๋ฐฉ๋ฒ์ ๊ดํด ์ค๋ช ํ๋ค.
์์ํ๊ธฐ ์ ์
์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ๊ฐ ํ์ํ๊ณ , kubectl ์ปค๋งจ๋-๋ผ์ธ ํด์ด ํด๋ฌ์คํฐ์ ํต์ ํ ์ ์๋๋ก ์ค์ ๋์ด ์์ด์ผ ํ๋ค. ์ด ํํ ๋ฆฌ์ผ์ ์ปจํธ๋กค ํ๋ ์ธ ํธ์คํธ๊ฐ ์๋ ๋ ธ๋๊ฐ ์ ์ด๋ 2๊ฐ ํฌํจ๋ ํด๋ฌ์คํฐ์์ ์คํํ๋ ๊ฒ์ ์ถ์ฒํ๋ค. ๋ง์ฝ, ์์ง ํด๋ฌ์คํฐ๋ฅผ ๊ฐ์ง๊ณ ์์ง ์๋ค๋ฉด, minikube๋ฅผ ์ฌ์ฉํด์ ์์ฑํ๊ฑฐ๋ ๋ค์ ์ฟ ๋ฒ๋คํฐ์ค ํ๋ ์ด๊ทธ๋ผ์ด๋ ์ค ํ๋๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
๋ฒ์ ํ์ธ์ ์ํด์, ๋ค์ ์ปค๋งจ๋๋ฅผ ์คํ kubectl version
.
์ด ์์ ์์๋ kubectl์ ์ฌ์ฉํ์ฌ ํด๋ฌ์คํฐ ๋ด ๋ชจ๋ ํ๋์ ์ ๋ณด๋ฅผ ์กฐํํ๊ณ , ๊ฒฐ๊ณผ๊ฐ์ ์์์ ๋ณ๊ฒฝํ์ฌ ๊ฐ ํ๋์ ๋ํ ์ปจํ ์ด๋ ์ด๋ฏธ์ง ๋ชฉ๋ก์ผ๋ก ์ฌ๊ตฌ์ฑํ ๊ฒ์ด๋ค.
๋ชจ๋ ๋ค์์คํ์ด์ค์ ๋ชจ๋ ์ปจํ ์ด๋ ์ด๋ฏธ์ง ๊ฐ์ ธ์ค๊ธฐ
kubectl get pods --all-namespaces
๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ ๋ค์์คํ์ด์ค์ ๋ชจ๋ ํ๋ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์จ๋ค.- ์ปจํ
์ด๋ ์ด๋ฏธ์ง ์ด๋ฆ๋ง ์ถ๋ ฅํ๊ธฐ ์ํด
-o jsonpath={.items[*].spec.containers[*].image}
๋ฅผ ์ฌ์ฉํ๋ค. ์ด ๋ช ๋ น์ด๋ ๊ฒฐ๊ณผ๊ฐ์ผ๋ก ๋ฐ์ json์ ๋ฐ๋ณต์ ์ผ๋ก ํ์ฑํ์ฌ,image
ํ๋๋ง์ ์ถ๋ ฅํ๋ค.- jsonpath๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํด ๋ ๋ง์ ์ ๋ณด๋ฅผ ์ป๊ณ ์ถ๋ค๋ฉด Jsonpath ์ง์์ ํ์ธํ๋ค.
- ๋ค์์ ํ์ค ํด์ ์ด์ฉํด์ ๊ฒฐ๊ณผ๊ฐ์ ์ฒ๋ฆฌํ๋ค.
tr
,sort
,uniq
tr
์ ์ฌ์ฉํ์ฌ ๊ณต๋ฐฑ์ ์ค ๋ฐ๊พธ๊ธฐ๋ก ๋์ฒดํ๋ค.sort
๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒฐ๊ณผ๊ฐ์ ์ ๋ ฌํ๋ค.uniq
๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฏธ์ง ๊ฐ์๋ฅผ ํฉ์ฐํ๋ค.
kubectl get pods --all-namespaces -o jsonpath="{.items[*].spec.containers[*].image}" |\
tr -s '[[:space:]]' '\n' |\
sort |\
uniq -c
์ด jsonpath๋ ๋ค์๊ณผ ๊ฐ์ด ํด์ํ ์ ์๋ค.
.items[*]
: ๊ฐ ๊ฒฐ๊ณผ๊ฐ์ ๋ํ์ฌ.spec
: spec ๊ฐ์ ๊ฐ์ ธ์จ๋ค..containers[*]
: ๊ฐ ์ปจํ ์ด๋์ ๋ํ์ฌ.image
: image ๊ฐ์ ๊ฐ์ ธ์จ๋ค.
์ฐธ๊ณ :
๋ช ๋ น์ด๋ก ํ๋์ ํ๋๋ฅผ ๊ฐ์ ธ์ฌ ๋, ์๋ฅผ ๋ค์ดkubectl get pod nginx
๋ผ๋ฉด,
jsonpath์์ .items[*]
๋ถ๋ถ์ ์๋ตํด์ผ ํ๋๋ฐ, ์ด๋ ๋ช
๋ น์ด๊ฐ ์์ดํ
๋ชฉ๋ก์ด ์๋
๋จ ํ ๊ฐ์ ์์ดํ
(์ฌ๊ธฐ์ ํ๋)์ผ๋ก ๊ฒฐ๊ณผ๊ฐ์ ์ฃผ๊ธฐ ๋๋ฌธ์ด๋ค.๊ฐ ํ๋์ ์ปจํ ์ด๋ ์ด๋ฏธ์ง ๋ณด๊ธฐ
range
์ฐ์ฐ์ ์ฌ์ฉํ์ฌ ๋ช
๋ น์ด์ ๊ฒฐ๊ณผ๊ฐ์์ ๊ฐ๊ฐ์ ์์๋ค์
๋ฐ๋ณตํ์ฌ ์ถ๋ ฅํ ์ ์๋ค.
kubectl get pods --all-namespaces -o jsonpath='{range .items[*]}{"\n"}{.metadata.name}{":\t"}{range .spec.containers[*]}{.image}{", "}{end}{end}' |\
sort
ํ๋ ๋ ์ด๋ธ๋ก ํํฐ๋ง๋ ์ปจํ ์ด๋ ์ด๋ฏธ์ง ๋ชฉ๋ก ๋ณด๊ธฐ
ํน์ ๋ ์ด๋ธ์ ๋ง๋ ํ๋๋ฅผ ์ง์ ํ๊ธฐ ์ํด์ -l ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ๋ค. ์๋์
๋ช
๋ น์ด ๊ฒฐ๊ณผ๊ฐ์ app=nginx
๋ ์ด๋ธ์ ์ผ์นํ๋ ํ๋๋ง ์ถ๋ ฅํ๋ค.
kubectl get pods --all-namespaces -o jsonpath="{.items[*].spec.containers[*].image}" -l app=nginx
ํ๋ ๋ค์์คํ์ด์ค๋ก ํํฐ๋ง๋ ์ปจํ ์ด๋ ์ด๋ฏธ์ง ๋ชฉ๋ก ๋ณด๊ธฐ
ํน์ ๋ค์์คํ์ด์ค์ ํ๋๋ฅผ ์ง์ ํ๋ ค๋ฉด, ๋ค์์คํ์ด์ค ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ๋ค.
์๋์ ๋ช
๋ น์ด ๊ฒฐ๊ณผ๊ฐ์ kube-system
๋ค์์คํ์ด์ค์ ์๋ ํ๋๋ง ์ถ๋ ฅํ๋ค.
kubectl get pods --namespace kube-system -o jsonpath="{.items[*].spec.containers[*].image}"
jsonpath ๋์ Go ํ ํ๋ฆฟ์ ์ฌ์ฉํ์ฌ ์ปจํ ์ด๋ ์ด๋ฏธ์ง ๋ชฉ๋ก ๋ณด๊ธฐ
jsonpath์ ๋์์ผ๋ก Kubectl์ Go ํ ํ๋ฆฟ์ ์ง์ํ๋ค. ๋ค์๊ณผ ๊ฐ์ด ๊ฒฐ๊ณผ๊ฐ์ ์์์ ์ง์ ํ ์ ์๋ค.
kubectl get pods --all-namespaces -o go-template --template="{{range .items}}{{range .spec.containers}}{{.image}} {{end}}{{end}}"
๋ค์ ๋ด์ฉ
์ฐธ์กฐ
- Jsonpath ์ฐธ์กฐ
- Go ํ ํ๋ฆฟ ์ฐธ์กฐ