Kubectl์ Kubernetes ๋ฐ Kubernetes๋ฅผ ์ํ ๊ฐ๋ ฅํ ๋ช ๋ น์ค ๋๊ตฌ์ด๋ฉฐ ์ฐ๋ฆฌ๋ ์ด๋ฅผ ๋งค์ผ ์ฌ์ฉํฉ๋๋ค. ์ฌ๊ธฐ์๋ ๋ง์ ๊ธฐ๋ฅ์ด ์์ผ๋ฉฐ Kubernetes ์์คํ ์ด๋ ๊ธฐ๋ณธ ๊ธฐ๋ฅ์ ํจ๊ป ๋ฐฐํฌํ ์ ์์ต๋๋ค.
๋ค์์ Kubernetes์์ ๋ ๋น ๋ฅด๊ฒ ์ฝ๋ฉํ๊ณ ๋ฐฐํฌํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๋ช ๊ฐ์ง ์ ์ฉํ ํ์ ๋๋ค.
kubectl ์๋ ์์ฑ
Kubectl์ ํญ์ ์ฌ์ฉํ๊ฒ ๋๋ฏ๋ก ์๋ ์์ฑ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ฉด ํค๋ฅผ ๋ค์ ๋๋ฅผ ํ์๊ฐ ์์ต๋๋ค.
๋จผ์ bash-completion ํจํค์ง๋ฅผ ์ค์นํ์ญ์์ค(๊ธฐ๋ณธ์ ์ผ๋ก ์ค์น๋์ง ์์).
- Linux
## Install
apt-get install bash-completion
## Bash
echo 'source <(kubectl completion bash)' >>~/.bashrc
## Zsh
source <(kubectl completion zsh)
- ๋งฅ OS
## Install
brew install bash-completion@2
Brew ์ค์น ์ถ๋ ฅ(Caveats ์น์
)์์ ๋ณผ ์ ์๋ฏ์ด ํ์ผ์ ๋ค์ ์ค์ ์ถ๊ฐํด์ผ ํฉ๋๋ค. ~/.bashrc ะธะปะธ ~/.bash_profile
:
export BASH_COMPLETION_COMPAT_DIR=/usr/local/etc/bash_completion.d
[[ -r /usr/local/etc/profile.d/bash_completion.sh ]] && . /usr/local/etc/profile.d/bash_completion.sh
kubectl ๋ณ์นญ
kubectl์ ์ฌ์ฉํ๊ธฐ ์์ํ๋ฉด ๊ฐ์ฅ ์ข์ ์ ์ ๋ค์๊ณผ ๊ฐ์ด ๋ง์ ๋ณ์นญ์ด ์๋ค๋ ๊ฒ์ ๋๋ค.
alias k='kubectl'
์ด๋ฅผ ์ถ๊ฐํ์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ Github์์ kubectl-aliases๋ฅผ ์ดํด๋ณด์ธ์. ์ํ๋ฉํธ ์ํ ๋ฐ์นธ(
์ด๋ณด์๋ฅผ ์ํด kubectl ๋ณ์นญ์ ์ค์ ํ์ง ๋ง์ธ์. ๊ทธ๋ ์ง ์์ผ๋ฉด ์ด๋ณด์๋ ๋ชจ๋ ๋ช ๋ น์ ๊ฒฐ์ฝ ์ดํดํ์ง ๋ชปํ ๊ฒ์ ๋๋ค. ๋จผ์ XNUMX~XNUMX์ฃผ ๋์ ์ฐ์ตํ๊ฒ ํ์ธ์.
Kubernetes + Helm ์ฐจํธ
ยซ
๋ค์์ Kubernetes ์ ํ๋ฆฌ์ผ์ด์ ์ด ์คํ ์ค์ด๋ฉด ์ด๋ฅผ ๋ฐฐํฌํ๊ณ ์ ๋ฐ์ดํธํ๋ ๊ฒ์ด ๋ฒ๊ฑฐ๋กญ์ต๋๋ค. ํนํ ๋ฐฐํฌ ์ ์ docker ์ด๋ฏธ์ง ํ๊ทธ๋ฅผ ์ ๋ฐ์ดํธํด์ผ ํ๋ ๊ฒฝ์ฐ ๋์ฑ ๊ทธ๋ ์ต๋๋ค. Helm ์ฐจํธ๋ ๋ฆด๋ฆฌ์ค ์์คํ ์ ์ํด ํด๋ฌ์คํฐ์์ ์คํ๋ ๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ ๊ตฌ์ฑ์ ์ ์, ์ค์น ๋ฐ ์ ๋ฐ์ดํธํ ์ ์๋ ํจํค์ง๋ฅผ ์์ฑํฉ๋๋ค.
Helm์ Kubernetes ํจํค์ง๋ ์ฐจํธ๋ผ๊ณ ํ๋ฉฐ Kubernetes ์ธ์คํด์ค๋ฅผ ์์ฑํ๋ ๋ง์ ์ ๋ณด๋ฅผ ํฌํจํฉ๋๋ค.
๊ตฌ์ฑ์ ๋งค์ฐ ์ ์ฉํฉ๋๋ค. ์ฌ๊ธฐ์๋ ์ฐจํธ ๊ตฌ์ฑ ๋ฐฉ๋ฒ์ ๋ํ ๋์ ์ ๋ณด๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ๋ฆด๋ฆฌ์ค๋ ํน์ ๊ตฌ์ฑ๊ณผ ๊ฒฐํฉ๋ ํด๋ฌ์คํฐ์ ๊ธฐ์กด ์ธ์คํด์ค์ ๋๋ค.
apt ๋๋ yum๊ณผ ๋ฌ๋ฆฌ Helm ์ฐจํธ(์ฆ, ํจํค์ง)๋ Kubernetes ์์ ๊ตฌ์ถ๋์ด ํด๋ฌ์คํฐ ์ํคํ ์ฒ๋ฅผ ์ต๋ํ ํ์ฉํ๋ฉฐ, ๊ฐ์ฅ ๋ฉ์ง ์ ์ ์ฒ์๋ถํฐ ํ์ฅ์ฑ์ ๊ณ ๋ คํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. Helm์ด ์ฌ์ฉํ๋ ๋ชจ๋ ์ด๋ฏธ์ง์ ์ฐจํธ๋ Helm Workspace๋ผ๋ ๋ ์ง์คํธ๋ฆฌ์ ์ ์ฅ๋ฉ๋๋ค. ์ผ๋จ ๋ฐฐํฌ๋๋ฉด DevOps ํ์ ์ฐจํธ๋ฅผ ์ฐพ์ ์ฆ์ ํ๋ก์ ํธ์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
Helm์ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก ์ค์นํ ์ ์์ต๋๋ค:
- ์ค๋ /๋ฆฌ๋ ์ค:
sudo snap install helm --classic
- ํ๋ธ๋ฅ/macOS:
brew install kubernetes-helm
- ์คํฌ๋ฆฝํธ:
curl -L https://git.io/get_helm.sh | bash
- ํ์ผ:
- Helm์ ์ด๊ธฐํํ๊ณ ํด๋ฌ์คํฐ์ Tiller๋ฅผ ์ค์นํฉ๋๋ค.
helm init --history-max 200
- ์์ ์ฐจํธ๋ฅผ ์ค์นํฉ๋๋ค.
helm repo update
helm install --name releasemysql stable/mysql
์ด ๋ช
๋ น์ stable/mysql ์ฐจํธ๋ฅผ ๋ฆด๋ฆฌ์คํ๋ฉฐ ๋ฆด๋ฆฌ์ค๋ฅผ releasemysql์ด๋ผ๊ณ ํฉ๋๋ค.
helm list๋ฅผ ์ฌ์ฉํ์ฌ helm ๋ฆด๋ฆฌ์ค๋ฅผ ํ์ธํ์ญ์์ค.
- ๋ง์ง๋ง์ผ๋ก ๋ฆด๋ฆฌ์ค๋ฅผ ์ญ์ ํ ์ ์์ต๋๋ค.
helm delete --purge releasemysql
๋ค์ ํ์ ๋ฐ๋ฅด๋ฉด Kubernetes ๊ฒฝํ์ด ๋ ์ํํด์ง๋๋ค. ํด๋ฌ์คํฐ์ ์๋ Kubernetes ์ ํ๋ฆฌ์ผ์ด์
์ ์ฃผ์ ๋ชฉํ๋ฅผ ์ํด ์์ ์๊ฐ์ ํฌ์ํ์ธ์. Kubernetes ๋๋ Helm์ ๋ํด ๊ถ๊ธํ ์ ์ด ์์ผ๋ฉด
์ถ์ฒ : habr.com