์ด ํ๋ก์ ํธ๋ Go๋ก ์์ฑ๋์์ผ๋ฉฐ 1๋
๋ฐ์ด ๋์์ต๋๋ค. ์ฒซ ๋ฒ์งธ ์ปค๋ฐ์ 2019๋
9000์ XNUMX์ผ์ ์ด๋ฃจ์ด์ก์ต๋๋ค. ๊ธ์ ์ฐ๋ ์์ ์ XNUMX๊ฐ ์ด์์ ๋ณ์ด ์์ต๋๋ค.
์ค์น ๋ฐ ์คํ
์ด๊ฒ์ Docker ์ด๋ฏธ์ง๋ก ์คํํ๊ธฐ ๊ฐ์ฅ ์ฌ์ด ํด๋ผ์ด์ธํธ(Kubernetes ํด๋ฌ์คํฐ์ ๊ด๋ จํ์ฌ) ์ ํ๋ฆฌ์ผ์ด์ ์ ๋๋ค.
docker run --rm -it -v $KUBECONFIG:/root/.kube/config quay.io/derailed/k9s
์ผ๋ถ Linux ๋ฐฐํฌํ ๋ฐ ๊ธฐํ ์ด์ ์ฒด์ ์ ๊ฒฝ์ฐ ๋ฐ๋ก ์ค์นํ ์ ์์ต๋๋ค.
sudo wget -qO- https://github.com/derailed/k9s/releases/download/v0.22.0/k9s_Linux_x86_64.tar.gz | tar zxvf - -C /tmp/
sudo mv /tmp/k9s /usr/local/bin
K8s ํด๋ฌ์คํฐ ์์ฒด์ ๋ํ ํน์ ์๊ตฌ ์ฌํญ์ ์์ต๋๋ค. ๋ฆฌ๋ทฐ์ ๋ฐ๋ฅด๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ์ 1.12์ ๊ฐ์ ์ด์ ๋ฒ์ ์ Kubernetes์์๋ ์๋ํฉ๋๋ค.
์์ฉ ํ๋ก๊ทธ๋จ์ ํ์ค ๊ตฌ์ฑ์ ์ฌ์ฉํ์ฌ ์์๋ฉ๋๋ค. .kube/config
- ํ๋ ๋ฐฉ๋ฒ๊ณผ ๋น์ทํฉ๋๋ค. kubectl
.
ํญํด
๊ธฐ๋ณธ์ ์ผ๋ก ์ปจํ
์คํธ์ ๋ํด ์ง์ ๋ ๊ธฐ๋ณธ ๋ค์์คํ์ด์ค๊ฐ ์๋ ์ฐฝ์ด ์ด๋ฆฝ๋๋ค. ์ฆ, ๋น์ ์ด ์ด ๊ฒฝ์ฐ kubectl config set-context --current --namespace=test
๊ทธ๋ฌ๋ฉด ๋ค์์คํ์ด์ค๊ฐ ์ด๋ฆฝ๋๋ค. test
. (์ปจํ
์คํธ/๋ค์์คํ์ด์ค ๋ณ๊ฒฝ์ ๋ํด์๋ ์๋๋ฅผ ์ฐธ์กฐํ์ญ์์ค.)
์ด๋ ๋ช
๋ น ๋ชจ๋ ":"์ ๋๋ฅด๋ฉด ๋ฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ๋ช
๋ น์ ์ฌ์ฉํ์ฌ k9์ ์๋์ ์ ์ดํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ํ์ฌ ๋ค์์คํ์ด์ค์ ์๋ StatefulSet ๋ชฉ๋ก์ ๋ณด๋ ค๋ฉด ๋ค์์ ์
๋ ฅํ๋ฉด ๋ฉ๋๋ค. :sts
.
์ผ๋ถ ๋ค๋ฅธ Kubernetes ๋ฆฌ์์ค์ ๊ฒฝ์ฐ:
-
:ns
โ ๋ค์์คํ์ด์ค; -
:deploy
โ ๋ฐฐํฌ -
:ing
โ ์์ ; -
:svc
- ์๋น์ค.
๋ณผ ์ ์๋ ๋ฆฌ์์ค ์ ํ์ ์ ์ฒด ๋ชฉ๋ก์ ํ์ํ๋ ค๋ฉด ๋ค์ ๋ช
๋ น์ด ์์ต๋๋ค. :aliases
.
๋ํ ํ์ฌ ์ฐฝ์์ ๋ฐ๋ก ๊ฐ๊ธฐ ํค ์กฐํฉ์ผ๋ก ์ฌ์ฉํ ์ ์๋ ๋ช ๋ น ๋ชฉ๋ก์ ๋ณด๋ ๊ฒ๋ ํธ๋ฆฌํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ ค๋ฉด "?"๋ฅผ ํด๋ฆญํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค.
k9s์๋ ์์ต๋๋ค. ๊ฒ์ ๋ชจ๋, "/"๋ฅผ ์
๋ ฅํ๋ฉด ์ถฉ๋ถํฉ๋๋ค. ์ด๋ฅผ ํตํด ํ์ฌ "์ฐฝ"์ ๋ด์ฉ์ ๋ํ ๊ฒ์์ด ์ํ๋ฉ๋๋ค. ์ด์ ์ ์
๋ ฅํ ๊ฒฝ์ฐ :ns
, ๋ค์์คํ์ด์ค ๋ชฉ๋ก์ด ์ด๋ ค ์์ต๋๋ค. ๋๋ฌด ๋ง์ผ๋ฉด ์ค๋ซ๋์ ์๋๋ก ์คํฌ๋กคํ์ง ์์ผ๋ ค๋ฉด ๋ค์ ์คํ์ด์ค๊ฐ์๋ ์ฐฝ์ ๋ค์ด๊ฐ๋ ๊ฒ์ผ๋ก ์ถฉ๋ถํฉ๋๋ค. /mynamespace
.
๋ ์ด๋ธ๋ก ๊ฒ์ํ๋ ค๋ฉด ์ํ๋ ๋ค์์คํ์ด์ค์์ ๋ชจ๋ ํ(Pod)์ ์ ํํ ํ ์๋ฅผ ๋ค์ด ๋ค์์ ์
๋ ฅํ์ญ์์ค. / -l app=whoami
. ๋ค์ ๋ ์ด๋ธ์ด ์๋ ํฌ๋ ๋ชฉ๋ก์ ๊ฐ์ ธ์ต๋๋ค.
๊ฒ์์ ๋ก๊ทธ, YAML ๋งค๋ํ์คํธ ๋ณด๊ธฐ, describe
๋ฆฌ์์ค - ์ด๋ฌํ ๊ธฐ๋ฅ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์๋๋ฅผ ์ฐธ์กฐํ์ธ์.
์ ์ฒด ํ์ ํ๋ฆ์ ์ด๋ป๊ฒ ์๊ฒผ์ต๋๊น?
๋ช
๋ น์ผ๋ก :ctx
์ปจํ
์คํธ๋ฅผ ์ ํํ ์ ์์ต๋๋ค.
๋ค์์คํ์ด์ค๋ฅผ ์ ํํ๋ ค๋ฉด ์ด๋ฏธ ์ธ๊ธํ ๋ช
๋ น์ด ์์ต๋๋ค. :ns
, ๊ทธ๋ฐ ๋ค์ ์ํ๋ ๊ณต๊ฐ ๊ฒ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. /test
.
์ด์ ๊ด์ฌ ์๋ ๋ฆฌ์์ค(์: ๋์ผํ StatefulSet)๋ฅผ ์ ํํ๋ฉด ํด๋น ์ ๋ณด๊ฐ ํ์๋ฉ๋๋ค. ์คํ ์ค์ธ ํฌ๋ ์์ ๊ทธ์ ๋ํ ๊ฐ๋ตํ ์ ๋ณด๊ฐ ํ์๋ฉ๋๋ค.
ํฌ๋๋ง ๊ด์ฌ์ด ์์ ์ ์์ต๋๋ค. ์
๋ ฅํ๋ฉด ์ถฉ๋ถํฉ๋๋ค. :pod
. ConfigMap์ ๊ฒฝ์ฐ(:cm
- ์ด๋ฌํ ๋ฆฌ์์ค ๋ชฉ๋ก์ ๊ฒฝ์ฐ) ๊ด์ฌ ์๋ ๊ฐ์ฒด๋ฅผ ์ ํํ๊ณ "u"๋ฅผ ํด๋ฆญํ๋ฉด K9s๊ฐ ํด๋น ๊ฐ์ฒด๋ฅผ ๊ตฌ์ฒด์ ์ผ๋ก ์ฌ์ฉํ๋ ์ฌ๋(์ด CM)์ ์๋ ค์ค๋๋ค.
๋ฆฌ์์ค๋ฅผ ๋ณผ ์ ์๋ ๋ ๋ค๋ฅธ ํธ๋ฆฌํ ๊ธฐ๋ฅ์ "์์ค๋ ์ด"(์์ค๋ ์ด ๋ณด๊ธฐ). ์ด ๋ชจ๋๋ ๋ช
๋ น์ ์ํด ํธ์ถ๋ฉ๋๋ค. :xray RESOURCE
๊ทธ๋ฆฌ๊ณ ... ์ค๋ช
ํ๋ ๊ฒ๋ณด๋ค ์ด๋ป๊ฒ ์๋ํ๋์ง ๋ณด์ฌ์ฃผ๋ ๊ฒ์ด ๋ ์ฝ์ต๋๋ค. ๋ค์์ StatefulSet์ ๋ํ ์ค๋ช
์
๋๋ค.
(์ด๋ฌํ ๊ฐ ๋ฆฌ์์ค๋ ํธ์ง, ๋ณ๊ฒฝ, ์ ์ํ ์ ์์ต๋๋ค. describe
.)
Ingress๋ฅผ ์ฌ์ฉํ ๋ฐฐํฌ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋ฆฌ์์ค ์์
YAML ๋๋ ํด๋น ๋ฆฌ์์ค์ ๊ฐ ๋ฆฌ์์ค์ ๋ํ ์ ๋ณด๋ฅผ ์ป์ ์ ์์ต๋๋ค. describe
ํด๋น ํค๋ณด๋ ๋จ์ถํค(๊ฐ๊ฐ "y" ๋ฐ "d")๋ฅผ ๋๋ฌ ๋ฌผ๋ก ๋ ๋ง์ ๊ธฐ๋ณธ ์์
์ด ์์ต๋๋ค. ๋ชฉ๋ก๊ณผ ํค๋ณด๋ ๋จ์ถํค๋ ์ธํฐํ์ด์ค์ ํธ๋ฆฌํ "ํค๋" ๋๋ถ์ ํญ์ ํ์๋ฉ๋๋ค(Ctrl + e๋ฅผ ๋๋ฅด๋ฉด ์จ๊ฒจ์ง).
๋ฆฌ์์ค๋ฅผ ํธ์งํ ๋(์ ํ ํ "e") ํ๊ฒฝ ๋ณ์์ ์ ์๋ ํ
์คํธ ํธ์ง๊ธฐ๊ฐ ์ด๋ฆฝ๋๋ค(export EDITOR=vim
).
๋ฆฌ์์ค์ ๋ํ ์์ธํ ์ค๋ช
์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค(describe
):
์ด ์ถ๋ ฅ(๋๋ YAML ๋ฆฌ์์ค ๋งค๋ํ์คํธ ๋ณด๊ธฐ ์ถ๋ ฅ)์ ์ต์ํ ํค๋ณด๋ ๋จ์ถํค Ctrl + s๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ฅํ ์ ์์ต๋๋ค. ์ ์ฅ ์์น๋ K9s ๋ฉ์์ง์์ ์ ์ ์์ต๋๋ค.
Log /tmp/k9s-screens-root/kubernetes/Describe-1601244920104133900.yml saved successfully!
์์คํ
๋ ์ด๋ธ ๋ฐ ์ฃผ์์ ์ ๊ฑฐํ ํ ์์ฑ๋ ๋ฐฑ์
ํ์ผ์์ ๋ฆฌ์์ค๋ฅผ ๋ณต์ํ ์๋ ์์ต๋๋ค. ์ด๋ ๊ฒํ๋ ค๋ฉด ๊ทธ๋ค๊ณผ ํจ๊ป ๋๋ ํ ๋ฆฌ๋ก ์ด๋ํด์ผํฉ๋๋ค (:dir /tmp
), ์ํ๋ ํ์ผ ์ ํ ํ ์ ์ฉ apply
.
๊ทธ๋ฐ๋ฐ ํ์ฌ ReplicaSet์ ๋ฌธ์ ๊ฐ ์๋ ๊ฒฝ์ฐ ์ธ์ ๋ ์ง ์ด์ ReplicaSet์ผ๋ก ๋กค๋ฐฑํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ ค๋ฉด ์ํ๋ RS(:rs
๊ทธ๋ค์ ๋ชฉ๋ก):
... Ctrl + l๋ก ๋กค๋ฐฑํฉ๋๋ค. ๋ชจ๋ ๊ฒ์ด ์ ๋์๋ค๋ ์๋ฆผ์ ๋ฐ์์ผ ํฉ๋๋ค.
k9s/whoami-5cfbdbb469 successfully rolled back
๊ทธ๋ฆฌ๊ณ ๋ณต์ ๋ณธ์ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ๋ ค๋ฉด "s"(ํฌ๊ธฐ)๋ฅผ ํด๋ฆญํ๊ณ ์ํ๋ ์ธ์คํด์ค ์๋ฅผ ์ ํํ์ญ์์ค.
์
ธ์ ์ฌ์ฉํ์ฌ ๋ชจ๋ ์ปจํ
์ด๋์ ๋ค์ด๊ฐ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ ค๋ฉด ์ํ๋ ์ฐฝ์ผ๋ก ์ด๋ํ์ฌ "s"(์
ธ)๋ฅผ ํด๋ฆญํ๊ณ ์ปจํ
์ด๋๋ฅผ ์ ํํฉ๋๋ค.
๋ค๋ฅธ ํน์ง๋ค
๋ฌผ๋ก ๋ก๊ทธ ๋ณด๊ธฐ๋ ์ง์๋ฉ๋๋ค(์ ํํ ๋ฆฌ์์ค์ ๊ฒฝ์ฐ "l"). ๊ทธ๋ฆฌ๊ณ ์ ๋ก๊ทธ๋ฅผ ๋ณด๊ธฐ ์ํด Enter ํค๋ฅผ ๊ณ์ ๋๋ฅผ ํ์๊ฐ ์์ต๋๋ค. (โmโ)์ ํ์ํ ๋ค์ ์ ๋ฉ์์ง๋ง ์ถ์ ํ๋ฉด ๋ฉ๋๋ค.
๋ํ ๊ฐ์ ์ฐฝ์์ ๋ก๊ทธ ์ถ๋ ฅ์ ๋ํ ์๊ฐ ๋ฒ์๋ฅผ ์ ํํ ์ ์์ต๋๋ค.
- ํค "1" - 1๋ถ ๋์;
- "2" - 5๋ถ;
- "3" - 15๋ถ;
- "4" - 30๋ถ;
- "5" - 1์๊ฐ;
- "0" - ํฌ๋์ ์ ์ฒด ์๋ช ๋์.
ํน์ ์๋ ๋ชจ๋ ํ์ค(๋ช
๋ น :pulse
)๋ Kubernetes ํด๋ฌ์คํฐ์ ๋ํ ์ผ๋ฐ ์ ๋ณด๋ฅผ ๋ณด์ฌ์ค๋๋ค.
์ฌ๊ธฐ์์ ๋ฆฌ์์ค ์์ ํด๋น ์ํ๋ฅผ ๋ณผ ์ ์์ต๋๋ค(๋
น์์ ์ํ๊ฐ ์๋ ๋ฆฌ์์ค๋ฅผ ๋ํ๋
๋๋ค. Running
).
K9s์ ๋ ๋ค๋ฅธ ๋ฉ์ง ๊ธฐ๋ฅ์ ๋ฝ๋น ์ด. ํน์ ์ ํ์ฑ ๊ธฐ์ค์ ๋ํด ๋ชจ๋ ๋ฆฌ์์ค๋ฅผ ํ์ธํ๊ณ ์ค๋ช ๊ณผ ํจ๊ป ๊ฒฐ๊ณผ "๋ฑ๊ธ"์ ํ์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์ํ์ด๋ ์ ํ์ด ์ถฉ๋ถํ์ง ์๊ณ ์ผ๋ถ ์ปจํ ์ด๋๊ฐ ๋ฃจํธ๋ก ์คํ๋ ์ ์์์ ์ ์ ์์ต๋๋ค.
Helm์ ๋ํ ๊ธฐ๋ณธ ์ง์์ด ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ํด๋ฌ์คํฐ์ ๋ฐฐํฌ๋ ๋ฆด๋ฆฌ์ค๋ฅผ ํ์ธํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
:helm all # ะฒัะต
:helm $namespace # ะฒ ะบะพะฝะบัะตัะฝะพะผ ะฟัะพัััะฐะฝััะฒะต ะธะผะตะฝ
๊ธฐ์ค
K9์๋ ๋ด์ฅ
ํ์ฑํํ๋ ค๋ฉด ํฌ๋์์ ํฌํธ ์ ๋ฌ์ ํ์ฑํํด์ผ ํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ ค๋ฉด ํฌ๋๋ฅผ ์ ํํ๊ณ Shift + f๋ฅผ ๋๋ฅด๊ณ "pf" ๋ณ์นญ์ ์ฌ์ฉํ์ฌ ํฌํธ ํฌ์๋ ํ์ ๋ฉ๋ด๋ก ์ด๋ํฉ๋๋ค.
ํฌํธ๋ฅผ ์ ํํ๊ณ Ctrl + b๋ฅผ ๋๋ฅด๋ฉด ๋ฒค์น๋งํฌ ์์ฒด๊ฐ ์์๋ฉ๋๋ค. ๊ทธ์ ์์
๊ฒฐ๊ณผ๋ /tmp
๋์ค์ K9์์ ๋ณผ ์ ์์ต๋๋ค.
๋ฒค์น๋งํฌ ๊ตฌ์ฑ์ ๋ณ๊ฒฝํ๋ ค๋ฉด ํ์ผ์ ๋ง๋ค์ด์ผ ํฉ๋๋ค. $HOME/.k9s/bench-<my_context>.yml
(๊ฐ ํด๋ฌ์คํฐ์ ๋ํด ์ ์๋จ).
NB: ๋๋ ํฐ๋ฆฌ์ ์๋ ๋ชจ๋ YAML ํ์ผ์ ํ์ฅ์๋ .k9s
๊ทธ๊ฒ์ ์ ํํ .yml
(.yaml
์ ๋๋ก ์๋ํ์ง ์์).
๊ตฌ์ฑ ์ :
benchmarks:
defaults:
# ะะพะปะธัะตััะฒะพ ะฟะพัะพะบะพะฒ
concurrency: 2
# ะะพะปะธัะตััะฒะพ ะทะฐะฟัะพัะพะฒ
requests: 1000
containers:
# ะะฐัััะพะนะบะธ ะดะปั ะบะพะฝัะตะนะฝะตัะฐ ั ะฑะตะฝัะผะฐัะบะพะผ
# ะะพะฝัะตะนะฝะตั ะพะฟัะตะดะตะปัะตััั ะบะฐะบ namespace/pod-name:container-name
default/nginx:nginx:
concurrency: 2
requests: 10000
http:
path: /
method: POST
body:
{"foo":"bar"}
header:
Accept:
- text/html
Content-Type:
- application/json
services:
# ะะพะถะฝะพ ะฟัะพะฒะพะดะธัั ะฑะตะฝัะผะฐัะบ ะฝะฐ ัะตัะฒะธัะฐั
ัะธะฟะฐ NodePort ะธ LoadBalancer
# ะกะธะฝัะฐะบัะธั: namespace/service-name
default/nginx:
concurrency: 5
requests: 500
http:
method: GET
path: /auth
auth:
user: flant
password: s3cr3tp455w0rd
์ธํฐํ์ด์ค
๋ฆฌ์์ค ๋ชฉ๋ก์ ๋ํ ์ด์ ๋ชจ์์ ํ์ผ์ ์์ฑํ์ฌ ์์ ๋ฉ๋๋ค. $HOME/.k9s/views.yml
. ๋ด์ฉ์ ์:
k9s:
views:
v1/pods:
columns:
- AGE
- NAMESPACE
- NAME
- IP
- NODE
- STATUS
- READY
v1/services:
columns:
- AGE
- NAMESPACE
- NAME
- TYPE
- CLUSTER-IP
์ฌ์ค, ๋ ์ด๋ธ์ ๋ํ ์ด์ด ์ถฉ๋ถํ์ง ์์ต๋๋ค.
์ด๋ณ ์ ๋ ฌ์ ํค๋ณด๋ ๋จ์ถํค๋ก ์ํ๋ฉ๋๋ค.
- Shift + n - ์ด๋ฆ์ผ๋ก;
- Shift + o - ๋ ธ๋ ๊ธฐ์ค;
- Shift + i - IP ๊ธฐ์ค;
- Shift + a - ์ปจํ ์ด๋์ ์๋ช ๋งํผ;
- Shift + t - ์ฌ์์ ํ์๋งํผ;
- Shift + r - ์ค๋น ์ํ ๊ธฐ์ค;
- Shift + c - CPU ์ฌ์ฉ๋ ๊ธฐ์ค;
- Shift + m - ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ ๊ธฐ์ค.
๋๊ตฐ๊ฐ๊ฐ ๊ธฐ๋ณธ ์ ๊ตฌ์ฑํ๋ฅผ ์ข์ํ์ง ์๋๋ค๋ฉด K9s๋
ํ๋ฌ๊ทธ์ธ
๋ง์ง๋ง์ผ๋ก, kubectl get all -n $namespace
.
์ด๋ ๊ฒ ์๊ฒผ์ต๋๋ค. ํ์ผ ๋ง๋ค๊ธฐ $HOME/.k9s/plugin.yml
๋ค์๊ณผ ๊ฐ์ ๋ด์ฉ์ผ๋ก:
plugin:
get-all:
shortCut: g
confirm: false
description: get all
scopes:
- all
command: sh
background: false
args:
- -c
- "kubectl -n $NAMESPACE get all -o wide | less"
์ด์ ๋ค์์คํ์ด์ค๋ก ์ด๋ํ๊ณ "g"๋ฅผ ๋๋ฌ ํด๋น ๋ช ๋ น์ ์คํํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด ํ๋ฌ๊ทธ์ธ ์ค์๋ kubectl-jq์์ ํตํฉ ๋ฐ ๋ก๊ทธ ๋ณด๊ธฐ ์ ํธ๋ฆฌํฐ๊ฐ ์์ต๋๋ค.
๊ฒฐ๋ก
๋ด ์ทจํฅ์ ๋ฐ๋ผ K9๋ ์์
ํ๊ธฐ์ ๋งค์ฐ ํธ๋ฆฌํ ๊ฒ์ผ๋ก ํ๋ช
๋์์ต๋๋ค. ์ฌ์ฉํ์ง ์๊ณ ๋ ํ์ํ ๋ชจ๋ ๊ฒ์ ์ฐพ๋ ๋ฐ ๋น ๋ฅด๊ฒ ์ต์ํด ์ง ์ ์์ต๋๋ค. kubectl
. ๋๋ ๋ก๊ทธ๋ณด๊ธฐ์ ์ ์ฅ, ๋ฆฌ์์ค์ ๋น ๋ฅธ ํธ์ง, ์ผ๋ฐ์ ์ธ ์์
์๋ *, Popeye ๋ชจ๋๊ฐ ์ ์ฉํ ๊ฒ์ผ๋ก ํ๋ช
๋์ด ๊ธฐ๋ปค์ต๋๋ค. ํน๋ณํ ์ธ๊ธ์ ํ๋ฌ๊ทธ์ธ์ ์์ฑํ๊ณ ํ์์ ๋ง๊ฒ ์์ฉ ํ๋ก๊ทธ๋จ์ ์์ ํ๋ ๊ธฐ๋ฅ์
๋๋ค.
* ํ์ง๋ง ๋ก๊ทธ์ ์์ด ๋ง๊ธฐ ๋๋ฌธ์ K9์ ๋๋ฆฐ ์๋๋ ํ์ธํ์ต๋๋ค. ๊ทธ๋ฐ ์๊ฐ ์ ํธ๋ฆฌํฐ๋ Intel Xeon E2xx์์ 312๊ฐ์ ์ฝ์ด๋ฅผ "๋จน๊ณ " ์ ์ง๋ ์๋ ์์ต๋๋ค.
ํ์ฌ ๋๋ฝ๋ ๊ฒ์ ๋ฌด์์ ๋๊น? ๋๋ ํฐ๋ฆฌ๋ก ์ด๋ํ์ง ์๊ณ ์ด์ ๋ฒ์ (RS์ ๋ํด ์ด์ผ๊ธฐํ์ง ์์)์ผ๋ก ๋น ๋ฅด๊ฒ ๋กค๋ฐฑํฉ๋๋ค. ๋ํ ๋ณต๊ตฌ๋ ๋ค์์ ๋ํด์๋ง ๋ฐ์ํฉ๋๋ค. ๋ง ๋ฆฌ์์ค: ์ฃผ์์ด๋ ๋ ์ด๋ธ์ ์ญ์ ํ๋ฉด ์ ์ฒด ๋ฆฌ์์ค๋ฅผ ์ญ์ ํ๊ณ ๋ณต์ํด์ผ ํฉ๋๋ค(์ฌ๊ธฐ์ ๋๋ ํฐ๋ฆฌ๋ก ์ด๋ํด์ผ ํจ). ๋ ๋ค๋ฅธ ์ฌ์ํ ์ผ - ์ ์ฅ๋ "๋ฐฑ์ "์ ๋ํ ๋ ์ง๊ฐ ์ถฉ๋ถํ์ง ์์ต๋๋ค.
PS
๋ธ๋ก๊ทธ์์๋ ์ฝ์ด๋ณด์ธ์.
- ยซ
Kubernetes์ฉ GUI ๊ฐ์ "; - ยซ
Kubernetes ์น ๋ณด๊ธฐ ๋ฐํ(๋ฐ Kubernetes์ฉ ๋ค๋ฅธ ์น UI์ ๋ํ ๊ฐ๋ตํ ๊ฐ์) "; - ยซ
Kubernetes์ฉ kubebox ๋ฐ ๊ธฐํ ์ ธ ".
์ถ์ฒ : habr.com