์๋ ํ์ธ์ ๊ตฌ๋ ์๋, DevOps ์์๊ณผ ๊ธฐ์ ์ง์์ ์ ๋ฆฌํด์ ๊ณต์ ํด๋๋ฆฌ๋ DevOps ์ฌํ์ ์ํ ์์์ง์ ๋๋ค.
Kubernetes๋ฅผ ์ด์ ๋ฐ ๊ด๋ฆฌํ ๋ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๋ ํด์ด๋ผ๊ณ ํ๋ฉด ์ญ์ kubectl์ผ ํ ๋ฐ์. kubectl ๋๋ถ์ ์ฐ๋ฆฐ ์ปค๋งจ๋ ์ฐฝ์์ Kubernetes์ ๊ฐ Object๋ฅผ ๋ฐฐํฌ, ๊ด๋ฆฌ, ํ ์คํธํ ์ ์์ต๋๋ค.
์ด๋ฐ kubectl์ ๋์ฑ ํธ๋ฆฌํ๊ณ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋๋ก ๋์์ฃผ๋ ํ๋ฌ๊ทธ์ธ์ด ๋ค์ํ ์ฌ๋๋ค์ ์ํด ๊ฐ๋ฐ๋๊ณ ์๋ค๋ ์ฌ์ค, ์๊ณ ๊ณ์ จ๋์?
์ด๋ฒ ์์์ง์์ kubectl ํ๋ฌ๊ทธ์ธ ๋งค๋์ krew์ ์ถ์ฒ kubectl ํ๋ฌ๊ทธ์ธ 3๊ฐ์ง๋ฅผ ์๊ฐํด๋๋ฆฝ๋๋ค.
๐krew๋?
krew๋ ๋ค์ํ ์ฌ๋๋ค์ด ๊ฐ๋ฐํ๋ kubectl ํ๋ฌ๊ทธ์ธ์ ์ค์ ์ ์ฅ์์ ์ ์ฅํ๊ณ ๋ฐฐํฌํด์ฃผ๋ ํ๋ฌ๊ทธ์ธ ๋งค๋์ ์ ๋๋ค.
2024๋ 7์ ๊ธฐ์ค ํ์ฌ 264๊ฐ์ kubectl ํ๋ฌ๊ทธ์ธ์ด krew์ ๋ฑ๋ก๋์ด ์๋๋ฐ์.
krew๋ฅผ ์ฌ์ฉํ๋ฉด CLI์์์ kubectl ํ๋ฌ๊ทธ์ธ์ ํธ๋ฆฌํ๊ฒ ๊ฒ์ํ๊ฑฐ๋ ๋ก์ปฌ์ ์ค์นํ ์ ์์ต๋๋ค.
macOS, Linux, Windows ๋ฑ ๋๋ถ๋ถ์ ์ด์์ฒด์ ์์๋ ์ง์๋๋ krew๋ฅผ ์ง์ ์ฌ์ฉํด๋ณด๊ณ , ์ถ์ฒ ํ๋ฌ๊ทธ์ธ๋ ์๊ฐํด๋ณด๊ฒ ์ต๋๋ค.
๐ ๏ธkrew ์ฌ์ฉํด๋ณด๊ธฐ
๋ก์ปฌ์์ krew๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด git์ด ๋จผ์ ์ค์น๋์ด ์์ด์ผ ํฉ๋๋ค.
๊ฐ ์ด์์ฒด์ ๋ณ krew ์ค์น ๋ฐฉ๋ฒ์ ๊ณต์ ๋ฌธ์ ๋งํฌ์์ ํ์ธํ ์ ์์ต๋๋ค.
์ค์น ํ ์ฌ์ฉํ ์ ์๋ krew์ ์ฃผ์ ๋ช ๋ น์ด๋ ์๋์ ๊ฐ์ต๋๋ค.
์ต์ ํ๋ฌ๊ทธ์ธ ๋ฆฌ์คํธ ๋ฐ์์ค๊ธฐ
- kubectl krew update
์ฌ์ฉ ๊ฐ๋ฅํ ํ๋ฌ๊ทธ์ธ ํ์
- kubectl krew search
์ํ๋ ํ๋ฌ๊ทธ์ธ ๋ค์ด๋ก๋
- kubectl krew install {ํ๋ฌ๊ทธ์ธ ์ด๋ฆ}
์ค์นํ ํ๋ฌ๊ทธ์ธ์ ์ต์ ์ ๋ฐ์ดํธ ํ ๋ฒ์ ์ค์น
- kubectl krew upgrade
์ฌ์ฉํ์ง ์๋ ํ๋ฌ๊ทธ์ธ ์ญ์
- kubectl krew uninstall {ํ๋ฌ๊ทธ์ธ ์ด๋ฆ}
krew๋ kubectl ํ๋ฌ๊ทธ์ธ ๋งค๋์ ํด์ด๊ธฐ ๋๋ฌธ์ ์ค์น ๋ฐ ์ฌ์ฉ ๋ฐฉ๋ฒ์ด ์ด๋ ต์ง ์์๋ฐ์. ์ด์ ์๋์์ ์ฌ์ฉํ๊ธฐ ์ข์ kubectel ํ๋ฌ๊ทธ์ธ 3๊ฐ์ง๋ฅผ ์ถ์ฒ๋๋ฆฌ๊ฒ ์ต๋๋ค.
โจ์ถ์ฒ kubectl ํ๋ฌ๊ทธ์ธ ์๊ฐ
kubectx
๊ฐ์ฅ ๋จผ์ ์๊ฐํด๋๋ฆด ์ถ์ฒ ํ๋ฌ๊ทธ์ธ์ kubectx์ ๋๋ค. Kubernetes์ context object๋ฅผ ์ฝ๊ฒ ๋ณ๊ฒฝํ ์ ์๊ฒ ๋์์ฃผ๋ ํ๋ฌ๊ทธ์ธ์ธ๋ฐ์.
Kubernetes์ context๋, ์ฌ๋ฌ Kubernetes ํด๋ฌ์คํฐ์ ์ ๊ทผํ ์ ์๋๋ก ๊ด๋ จ config ๊ฐ์ ๋ชจ์๋ Object๋ฅผ ๋งํฉ๋๋ค.
์ด๋ฐ context๋ฅผ ๋ณ๊ฒฝํด์ ๋ค๋ฅธ Kubernetes ํด๋ฌ์คํฐ์ ์ ๊ทผํ๋ ค๋ฉด ๊ธฐ์กด์๋ ์๋์ ๊ฐ์ ๊ณผ์ ์ ๊ฑฐ์ณ์ผ ํ์ต๋๋ค.
- 'kubectl config get-contexts' ๋ช ๋ น์ด๋ก ๋ณ๊ฒฝ ๊ฐ๋ฅํ context ์ด๋ฆ ํ์ธ
- 'kubectl config use-context {context ์ด๋ฆ}' ๋ช ๋ น์ด๋ก context ๋ณ๊ฒฝ
ํ์ง๋ง kubectx ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ๋ฉด context๋ฅผ ๊ฐ๋จํ CLI ๋ช ๋ น์ด๋ง์ผ๋ก ์ฝ๊ฒ ๋ณ๊ฒฝ ๊ฐ๋ฅํฉ๋๋ค.
kubectx์ ๋ํ ์์ธํ ์ ๋ณด๋ ์๋ ๋งํฌ์์ ํ์ธํ์ค ์ ์์ต๋๋ค.
neat
๋ค์์ผ๋ก ์๊ฐํด๋๋ฆด kubectl ํ๋ฌ๊ทธ์ธ์ neat์ ๋๋ค.
Kubernetes ํด๋ฌ์คํฐ์ ๋ฐฐํฌ๋ object์ Manifest๋ฅผ ์ฐธ๊ณ ํ๊ฑฐ๋ ๊ฐ์ ธ์ค๊ธฐ ์ํด kubectl get ... -o yaml ํํ์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ ๋๊ฐ ๋ง์๋ฐ์.
ํ์ง๋ง ์ด๋ ๊ฒ ๊ฐ์ ธ์จ Manifest์๋ ์๋ ์ด๋ฏธ์ง์ ๊ฐ์ด object ๋ฐฐํฌ ๋น์ ๋ฉํ๋ฐ์ดํฐ๋ ํ์ฌ object์ ์ํ์ ๊ด๋ จ๋ ๋ฐ์ดํฐ ๋ฑ๋ ํฌํจํ๊ณ ์์ด์ ๊ฐ๋ ์ฑ์ด ๋จ์ด์ง๋๋ค.
์ด ๋ neat ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ๋ฉด, ์๋์ ๊ฐ์ด object ๋ฐฐํฌ์ ํ์์๋ ์ ๋ณด๊ฐ ์ ์ธ๋ Manifest๋ฅผ ์ป์ ์ ์์ต๋๋ค.
neat์ ๋ํ ์์ธํ ์ ๋ณด๋ ์๋ ๋งํฌ์์ ํ์ธํ์ค ์ ์์ต๋๋ค.
kail
๋ง์ง๋ง์ผ๋ก ์๊ฐํด๋๋ฆด ํ๋ฌ๊ทธ์ธ์ kail์ ๋๋ค. Kubernetes์ tail์ ํฉ์น ์ด๋ฆ์ ์ง๋ kail์, Kubernetes์ ๋ค์ํ Object์์ ๋ฐ์ํ๋ ๋ก๊ทธ๋ฅผ ์ค์๊ฐ์ผ๋ก ๋ณด์ฌ์ฃผ๋ ํ๋ฌ๊ทธ์ธ์ ๋๋ค.
Kubernetes ์์์ ๋ฐฐํฌ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํ ๋ก๊ทธ๋ฅผ ํ์ธํ๊ณ ์ถ์ ๋ ์ฐ๋ฆฐ kubectl logs {Object ์ข ๋ฅ}/{Object ์ด๋ฆ} ๋ช ๋ น์ด๋ฅผ ์ฃผ๋ก ์ฌ์ฉํฉ๋๋ค.
ํ์ง๋ง ์ด๋ฐ ๋ฐฉ์์ ๋จ์ผ Object์ ๋ํ ๋ก๊ทธ๋ง ํ์ธ์ด ๊ฐ๋ฅํ๋ฉฐ, ์ฌ๋ฌ Object์ ๋ก๊ทธ๋ฅผ ํ ๋ฒ์ ํ์ธํ๋ ๋ฑ ์ข ๋ ๋ณต์กํ ๋ก๊ทธ ์กฐํ๋ ์ด๋ ต์ฃ .
kail์ ์ด๋ฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด์ฃผ๋ ํ๋ฌ๊ทธ์ธ์ ๋๋ค.
kail์ ์ด์ฉํ๋ฉด ์๋์ ๊ฐ์ด ํน์ Namespace์ ์ํ ๋ชจ๋ Pod์ ๋ก๊ทธ๋ฅผ ์กฐํํ ์๋ ์์ต๋๋ค.
์๋์ ๊ฐ์ด ํน์ Node์ ์ํ ๋ชจ๋ Pod์ ๋ก๊ทธ๋ฅผ ์กฐํํ ์๋ ์์ฃ .
kail์ ๋ํ ์์ธํ ์ ๋ณด๋ ์๋ ๋งํฌ์์ ํ์ธํ์ค ์ ์์ต๋๋ค.
๐ญ๋ง์น๋ฉฐ...
์ด๋ฒ ์์์ง์์ kubectl ํ๋ฌ๊ทธ์ธ ๋งค๋์ ํด์ธ Krew์, Krew๋ก ์ค์นํ ์ ์๋ ์ถ์ฒ ํ๋ฌ๊ทธ์ธ 3๊ฐ์ง์ ๋ํด ์๊ฐํด๋ดค๋๋ฐ์.
ํน์ ์ด๋ฒ ๋ด์ฉ ๊ด๋ จํด์ ๋ ๊ถ๊ธํ ์ ์ด ์์ผ์๋ค๋ฉด ์๋ ๋ฉ์ผ๋ฆฌ ๋๊ธ ๋จ๊ฒจ์ฃผ์ธ์.๐
๊ทธ๋ผ, ๋ค์ ์์์ง์์ ๋ณด๋ค ์์ฐจ๊ณ ํฅ๋ฏธ๋ก์ด ๋ด์ฉ์ผ๋ก ์ฐพ์๋ต๊ฒ ์ต๋๋ค.
์ค๋๋ ๊ฐ์ฌํฉ๋๋ค, ๊ตฌ๋ ์๋ ๐บ
๐References
์๊ฒฌ์ ๋จ๊ฒจ์ฃผ์ธ์