์ด๊ฒ์ ๋ฒ๊ทธ ๋ณด๊ณ ์ ๋๊น, ์๋๋ฉด ๊ธฐ๋ฅ ์์ฒญ์ ๋๊น? :
ํ๋๋ง ์ฃผ์ ์ฒ๋ฆฌํ๊ณ ํ ์ค์ ๊ทธ๋๋ก ๋์ญ์์ค.
/์ข ๋ฅ ๋ฒ๊ทธ
/์ข ๋ฅ ๊ธฐ๋ฅ
๋ฌด์จ ์ผ์ด ์์๋์ง :
Kubelet/Kubernetes 1.8์ Linux ์์คํ ์์ ํ์ฑํ๋ ์ค์์์ ์๋ํ์ง ์์ต๋๋ค.
์ด ์๋ ๋ฌธ์ ๋ฅผ ์ฐพ์์ต๋๋ค. https://github.com/kubernetes/kubernetes/issues/31676
์ด ํ๋ณด https://github.com/kubernetes/kubernetes/pull/31996
๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฑํํ ๋ง์ง๋ง ๋ณ๊ฒฝ ์ฌํญ https://github.com/kubernetes/kubernetes/commit/71e8c8eba43a0fade6e4edfc739b331ba3cc658a
Kubernetes๊ฐ ์ค์์ด ํ์ฑํ๋ ๊ฒฝ์ฐ ๋ฉ๋ชจ๋ฆฌ ์ ๊ฑฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ชจ๋ฅด๋ ๊ฒฝ์ฐ ์ํ ๋ฐฉ๋ฒ์ ์ฐพ์์ผ ํ์ง๋ง ์ค์ ์ ๊ฑฐ๋ฅผ ์์ฒญํ์ง๋ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด kernel.org 11์ฅ ์ค์ ๊ด๋ฆฌ๋ฅผ ๋ฐ๋ฅด์ญ์์ค.
์ผ๋ฐ ๋ ์๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ถฉ๋ถํ๋ฉด ์ค์์ด ๋ถํ์ํ๋ค๊ณ ์๊ฐํ ์ ์์ง๋ง ์ด๊ฒ์ด ๋ ๋ฒ์งธ ์ด์ ๋ฅผ ์๋ ค์ค๋๋ค. ํ๋ก์ธ์ค ์๋ช ์ด๊ธฐ์ ์ฐธ์กฐํ ํ์ด์ง ์ค ์๋น์๋ ์ด๊ธฐํ์๋ง ์ฌ์ฉํ๊ณ ๋ค์๋ ์ฌ์ฉํ์ง ์์ ์ ์์ต๋๋ค. ํด๋น ํ์ด์ง๋ฅผ ๊ต์ฒดํ๊ณ ์ฌ์ฉํ์ง ์๊ณ ์์ฃผํ๋ ๊ฒ๋ณด๋ค ๋ ๋ง์ ๋์คํฌ ๋ฒํผ๋ฅผ ๋ง๋๋ ๊ฒ์ด ์ข์ต๋๋ค.
๋ง์ ๋ ธ๋/์๋ฐ ์์ฉ ํ๋ก๊ทธ๋จ์ ์คํํ๋ ๊ฒฝ์ฐ ๋ ์ด์ ์ฌ์ฉ๋์ง ์๊ธฐ ๋๋ฌธ์ ํญ์ ๋ง์ ํ์ด์ง๊ฐ ๊ต์ฒด๋๋ ๊ฒ์ ๋ณด์์ต๋๋ค.
์์ํ๋ ์ผ :
Kubelet/Kubernetes๋ ์ค์์ด ํ์ฑํ๋ ์ํ์์ ์๋ํด์ผ ํฉ๋๋ค. ์ค์์ ๋นํ์ฑํํ๊ณ ์ฌ์ฉ์์๊ฒ ์ ํ๊ถ์ ์ฃผ์ง ์๋ ๋์ kubernetes๊ฐ ๋ ๋ง์ ์ฌ์ฉ ์ฌ๋ก์ ๋ค์ํ ์ํฌ๋ก๋๋ฅผ ์ง์ํด์ผ ํ๋ฉฐ, ๊ทธ ์ค ์ผ๋ถ๋ ์บ์์ ์์กดํ ์ ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ ์ ์์ต๋๋ค.
kubernetes๊ฐ ๋ฉ๋ชจ๋ฆฌ ์ถ์ถ๋ก ๋ฌด์์ ์ฃฝ์ผ์ง ์ด๋ป๊ฒ ๊ฒฐ์ ํ๋์ง ๋ชจ๋ฅด๊ฒ ์ง๋ง Linux์ ์ด ๊ธฐ๋ฅ์ด ์๋ค๋ ์ ์ ๊ณ ๋ คํ ๋ Linux๊ฐ ์ํํ๋ ๋ฐฉ์๊ณผ ์ผ์นํด์ผ ํ ๊น์? https://www.kernel.org/doc/gorman/html/understand/understand016.html
์ค์์ด ํ์ฑํ๋์์ ๋ ์คํจ์ ๋ํ ๋ณ๊ฒฝ ์ฌํญ์ ๋กค๋ฐฑํ๊ณ ํ์ฌ kubernetes์์ ๋ฉ๋ชจ๋ฆฌ ์ ๊ฑฐ๊ฐ ์๋ํ๋ ๋ฐฉ์์ ๋ค์ ๋ฐฉ๋ฌธํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ผ๋ถ ์ํฌ๋ก๋์์๋ ์ค์์ด ์ค์ํ ์ ์์ต๋๋ค.
๊ทธ๊ฒ์ ์ฌํํ๋ ๋ฐฉ๋ฒ(๊ฐ๋ฅํ ํ ์ต์ํ์ผ๋ก ๊ทธ๋ฆฌ๊ณ ์ ํํ๊ฒ) :
Linux ์์์์ ๊ธฐ๋ณธ ์ค์ ์ผ๋ก kubernetes/kublet ์คํ
์ฐ๋ฆฌ๊ฐ ์์์ผ ํ ๋ค๋ฅธ ๊ฒ์ด ์์ต๋๊น? :
ํ๊ฒฝ :
kubectl version
):uname -a
):/sig ๋
ธ๋
cc @mtaufen @vishh @derekwaynecarr @dims
์ค์ ์ง์์ ์ค์ํ์ง ์์ต๋๋ค. ๋ณด์ฅ๋ ํฌ๋๋ ์ค์์ด ํ์ํ์ง ์์ต๋๋ค. ๋ฒ์คํธ ๊ฐ๋ฅํ ํฌ๋๋ ์ค์ ์์ด ์์ฒญ์ ์ถฉ์กฑํด์ผ ํฉ๋๋ค. BestEffort ํฌ๋๋ ๋ณด์ฆํ์ง ์์ต๋๋ค. kubelet์ ํ์ฌ ์ฌ๊ธฐ์์ ํฌ๋ ์ ๋ฐ์ ๊ฑธ์ณ ์์ธก ๊ฐ๋ฅํ ์ ์ ํ ์์ ๋์์ ์ ๊ณตํ ์ ์๋ ์๋ฆฌํจ์ด ๋ถ์กฑํฉ๋๋ค.
์ฐ๋ฆฌ๋ ์ฌํด ์ด ๋ฆฌ์์ค ๊ด๋ฆฌ์์ ์ด ์ฃผ์ ๋ฅผ ์ง์ ๋๋ฉดํ์ฌ ๋ ผ์ํ์ต๋๋ค. ์ฐ๋ฆฌ๋ ์คํํ ์ ์๋ ์ด์ต์ ๋นํด ๋จ๊ธฐ๊ฐ์ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ํฐ ๊ด์ฌ์ด ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์๋ ฅ ๊ฐ์ง์ ๋ํ ์์ ์ฑ์ ๊ฐ์ ํ๊ณ ์ค์์ ๋ํ ์ต์ ํ๋ฅผ ์๋ํ๊ธฐ ์ ์ ๋๊ธฐ ์๊ฐ๊ณผ ๊ด๋ จ๋ ๋ฌธ์ ๋ฅผ ์ต์ ํํ๋ ๊ฒ์ ์ ํธํ์ง๋ง ์ด๊ฒ์ด ๊ทํ์๊ฒ ๋ ๋์ ์ฐ์ ์์๋ผ๋ฉด ๋์์ ๋๋ฆฌ๊ฒ ์ต๋๋ค.
/์ข ๋ฅ ๊ธฐ๋ฅ
@derekwaynecarr ์ค๋ช ๊ฐ์ฌํฉ๋๋ค! kubernetes์ ๋ํด ์ค์์ ๋นํ์ฑํํด์ผ ํ๋ ์ ๋ณด/๋ฌธ์๋ฅผ ์ป๊ธฐ๊ฐ ์ด๋ ค์ ์ต๋๋ค. ์ด๊ฒ์ด ์ ๊ฐ ์ด ์ฃผ์ ๋ฅผ ์ด๊ฒ ๋ ์ฃผ๋ ์ด์ ์์ต๋๋ค. ํ์์ ์์ ์ ๋ ์ด ๋ฌธ์ ์ ๋ํด ๋์ ์ฐ์ ์์๋ฅผ ๊ฐ๊ณ ์์ง ์์ต๋๋ค. ๋จ์ง ๋ ผ์ํ ์ ์๋ ์ฅ์๊ฐ ์๋์ง ํ์ธํ๊ณ ์ถ์์ ๋ฟ์ ๋๋ค.
https://github.com/kubernetes/kubernetes/issues/7294 ํ ๋ก ์ ๋ ๋ง์ ์ปจํ ์คํธ๊ฐ ์์ต๋๋ค. ์ค์์ ์ฌ์ฉํ ์ ์๋ค๋ ๊ฒ์ ๋ฉ๋ชจ๋ฆฌ ์ ํ๊ณผ ๋งค์ฐ ์ด์ํ๊ณ ๋์ ์ํธ ์์ฉ์ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๋ฉ๋ชจ๋ฆฌ ์ ํ์ ๋๋ฌํ ์ปจํ ์ด๋๋ ์ค์์ผ๋ก ๋์น๊ธฐ ์์ํฉ๋๋ค(์ด๋ f4edaf2b8c32463d6485e2c12b7fd776aef948bc ์ดํ๋ก ์์ ๋ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค. ์ค์์ด ์๋ ์๋ ๊ฐ์ ์ค์์ ์ฌ์ฉํ ์ ์์).
์ด๊ฒ์ ์ฐ๋ฆฌ์๊ฒ๋ ์ค์ํ ์ฌ์ฉ ์ฌ๋ก์
๋๋ค. ๋๋๋ก ๋์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋(>30GB)์ ๋๋ฌํ๋ cron ์์
์ด ์์ผ๋ฉฐ 40GB ์ด์์ ๋
ธ๋๋ฅผ ์๊ตฌ์ ์ผ๋ก ํ ๋นํ๊ณ ์ถ์ง ์์ต๋๋ค. ๋ํ 3๊ฐ์ ์์ญ(GKE)์์ ์คํํ๋ค๊ณ ๊ฐ์ ํ๋ฉด 3๊ฐ์ ์ด๋ฌํ ๋จธ์ (๊ฐ ์์ญ์ 1๊ฐ)์ด ํ ๋น๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ๊ตฌ์ฑ์ 3๊ฐ ์ด์์ ํ๋ก๋์
์ธ์คํด์ค์ 10๊ฐ ์ด์์ ํ
์คํธ ์ธ์คํด์ค์์ ๋ฐ๋ณต๋์ด์ผ ํ๋ฏ๋ก K8์ ์ฌ์ฉํ๋ ๋ฐ ๋น์ฉ์ด ๋ง์ด ๋ญ๋๋ค. ์ฐ๋ฆฌ๋ ์์ฒญ๋ ๋น์ฉ์ ๋ฐ์์ํค๋ 25๊ฐ ์ด์์ 48GB ๋
ธ๋๋ฅผ ๊ฐ์ง ์ ๋ฐ์ ์์ต๋๋ค!.
์ค์์ ํ์ฑํํ์ญ์์ค!.
์ ๋ง๋ก ์ค์์ ์ํ๋ ์ฌ๋๋ค์ ์ํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋๋ค. ๋ง์ฝ ๋๋ผ๋ฉด
--fail-swap-on=false
kubelet ์์๊ทธ๊ฒ ์ฐ๋ฆฌ๊ฐ ํ๋ ์ผ์ ๋๋ค. ๋๋ ์ ์ด๋ ๊ฐ์ธ์ ์ผ๋ก ์ค์ ๋ก ๊ตฌํํ์ง๋ ์์์ง๋ง ๊ทธ๊ฒ์ด ๋ด๊ฐ ์์งํ๋ ๊ฒ์ด๋ผ๊ณ ํ์ ํฉ๋๋ค.
์ด๊ฒ์ ์ปจํ ์ด๋ ์ค ์ด๋ ๊ฒ๋ ๋ช ์์ ๋ฉ๋ชจ๋ฆฌ ์๊ตฌ ์ฌํญ์ ์ง์ ํ์ง ์๋ ๊ฒฝ์ฐ์๋ง ์ค์ ๋ก ์คํ ๊ฐ๋ฅํ ์ ๋ต์ผ ์ ์์ต๋๋ค.
์ฐ๋ฆฌ๋ GKE์์ ์คํ๋๋ฉฐ ์ด๋ฌํ ์ต์ ์ ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
๋๊ตฐ๊ฐ๊ฐ kubelet์์ ๋ฉ๋ชจ๋ฆฌ ์ ๊ฑฐ์ ๋ํ ์ํฅ์ ํ๊ฐํ ์ ์๋ค๋ฉด zswap ์ฑํ์ ๊ณ ๋ คํ ์ ์์ต๋๋ค.
๋ก์ปฌ Ubuntu ๋ ธํธ๋ถ์์ Kubernetes๋ฅผ ์คํ ์ค์ด๋ฉฐ ๋ค์ ์์ํ ๋๋ง๋ค ์ค์์ ๊บผ์ผ ํฉ๋๋ค. ๋ํ ์ค์์ด ๊บผ์ ธ ์์ผ๋ฏ๋ก ๋ฉ๋ชจ๋ฆฌ ์ ํ์ ๊ทผ์ ํ์ง ์๋๋ก ๊ฑฑ์ ํด์ผ ํฉ๋๋ค.
๋ค์ ์์ํ ๋๋ง๋ค ๊ธฐ์กด ์ค์น์ ์ผ๋ถ ๊ตฌ์ฑ ํ์ผ ๋ณ๊ฒฝ๊ณผ ๊ฐ์ด ์ค์์ ๋ ํ์๊ฐ ์๋ ๋ฐฉ๋ฒ์ด ์์ต๋๊น?
ํด๋ฌ์คํฐ์์ ์คํ๋๋ ๋ ธ๋์์ ์ค์์ด ํ์ํ์ง ์์ต๋๋ค.
์ค์์ ์ผ์ผ ํ๋ Kubernetes Local Dev ํด๋ฌ์คํฐ๊ฐ ์๋ ๋ด ๋ฉํฑ์ ๋ค๋ฅธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋๋ค.
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"9", GitVersion:"v1.9.2", GitCommit:"5fa2db2bd46ac79e5e00a4e6ed24191080aa463b", GitTreeState:"clean", BuildDate:"2018-01-18T10:09:24Z", GoVersion:"go1.9.2", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"9", GitVersion:"v1.9.2", GitCommit:"5fa2db2bd46ac79e5e00a4e6ed24191080aa463b", GitTreeState:"clean", BuildDate:"2018-01-18T09:42:01Z", GoVersion:"go1.9.2", Compiler:"gc", Platform:"linux/amd64"}
์ง๊ธ์ ํ๋๊ทธ๊ฐ ์๋ํ์ง ์์ต๋๋ค.
# systemctl restart kubelet --fail-swap-on=false
systemctl: unrecognized option '--fail-swap-on=false'
๋ค์ Kubelet ํ๋๊ทธ๋ฅผ ์ค์ ํฉ๋๋ค. --fail-swap-on=false
2018๋ 1์ 30์ผ ํ์์ผ ์คํ 1์ 59๋ถ์ icewheel [email protected]์์ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
๋ก์ปฌ Ubuntu ๋ ธํธ๋ถ์์ Kubernetes๋ฅผ ์คํ ์ค์ด๋ฉฐ ๋ค์ ์์ํ ๋๋ง๋ค
์ค์์ ๊บผ์ผํฉ๋๋ค. ๊ธฐ์ต์ ๊ฐ๊น์ด ๊ฐ์ง ์๋ ๊ฒ๋ ์ ๊ฒฝ์จ์ผ ํด
์ค์์ด ๊บผ์ ธ ์์ผ๋ฉด ์ ํํฉ๋๋ค.๋ค์ ์์ํ ๋๋ง๋ค ์ค์์ ๋ ํ์๊ฐ ์๋ ๋ฐฉ๋ฒ์ด ์์ต๋๊น?
๊ธฐ์กด ์ค์น์์ ๊ตฌ์ฑ ํ์ผ ๋ณ๊ฒฝ?ํด๋ฌ์คํฐ์์ ์คํ๋๋ ๋ ธ๋์์ ์ค์์ด ํ์ํ์ง ์์ต๋๋ค.
Kubernetes Local Dev ์ด์ธ์ ๋ฉํฑ์ ์๋ ๋ค๋ฅธ ์ ํ๋ฆฌ์ผ์ด์ ์ผ ๋ฟ์ ๋๋ค.
์ค์์ ์ผ์ผ ํ๋ ํด๋ฌ์คํฐ.โ
๋น์ ์ด ์ธ๊ธ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/kubernetes/kubernetes/issues/53533#issuecomment-361748518 ,
๋๋ ์ค๋ ๋ ์์๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AA3JwQdj2skL2dSqEVyV46iCllzT-sOVks5tP5DSgaJpZM4PwnD5
.
--
๋ง์ดํด ํ์ฐํ
๊ตฌ๊ธ SWE
@mtaufen ๊ฐ์ฌ
terraform๊ณผ ๊ฐ์ด ํด๋ฌ์คํฐ๋ฅผ ๋ถํธ์คํธ๋ฉํ๋ ์์คํ ์ ๊ฒฝ์ฐ ์๋น์ค ํ์ผ์ ์์ ํด์ผ ํ ์ ์์ต๋๋ค.
์ด๊ฒ์ ๋๋ฅผ ์ํด ์ผํ์ต๋๋ค.
sudo sed -i '/kubelet-wrapper/a \ --fail-swap-on=false \\\' /etc/systemd/system/kubelet.service
๊ธฐ๋ณธ์ ์ผ๋ก ์ค์์ ์ง์ํ์ง ์์ต๋๊น? ์ด ๋ง์ ๋ฃ๊ณ ๋๋์ต๋๋ค. Kubernetes๊ฐ ์ ์ฑ๊ธฐ๋ฅผ ๋ง์ดํ ์ค๋น๊ฐ ๋์๋ค๊ณ ์๊ฐํ๋์? ์ค์์ ๊ทธ ๊ธฐ๋ฅ ์ค ํ๋์ ๋๋ค.
์ด๊ฒ์ ๋๋ถ๋ถ์ ๊ฐ๋ฐฉํ ์ฌ์ฉ ์ฌ๋ก์์ ์ค์ ๋ก ์ ํ ์ฌํญ์ด ์๋๋๋ค. VMM์ด ๋นํ์ฑ ํ์ด์ง๋ฅผ ์ ํํ๋ฉด์ Unix ์์ฝ์์คํ ์ด ์คํ๋๋๋ก ์ค๊ณ๋ ๋ฐฉ์์ ๋๋ค.
์ค์์ด ์๊ฑฐ๋ ๋ฉ๋ชจ๋ฆฌ ์ ํ์ด ์๋ ์ ํ์ด ์๋ ๊ฒฝ์ฐ์๋ ์ธ์ ๋ ์ง ์ค์์ ์ ์งํ๊ณ ํ์ด์ง์ ์์ํ ๋ ๋ ๋ง์ ํธ์คํธ๋ฅผ ์คํ์ ํ์ฌ ๋น์ฉ์ ์ ์ฝํ ๊ฒ์ ๋๋ค.
๋๊ตฐ๊ฐ ๋ช ํํ ํ ์ ์์ต๋๊น? ๋ฉ๋ชจ๋ฆฌ ์ ๊ฑฐ ๋ฌธ์ ๋ ํฌ๋ ์ ์์์ ๋ฉ๋ชจ๋ฆฌ ์ ํ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ง ๋ฌธ์ ์ด์ง๋ง ๊ทธ๋ ์ง ์์ผ๋ฉด ๊ด์ฐฎ์ต๋๊น?
์์ฉ ํ๋ก๊ทธ๋จ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์๋ํ๋ ๋ฐฉ์์ ์ ์ดํ ์ ์๋ ํ๊ฒฝ์์ ์์ ํ๋ ๊ฒ์ด ์ข์ผ๋ฏ๋ก ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ๋ฎ์ ๊ฑฑ์ ํ ํ์๊ฐ ์์ง๋ง ๋๋ถ๋ถ์ ์์ฉ ํ๋ก๊ทธ๋จ์๋ ๋นํ์ฑ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ๋ง์ด ์์ต๋๋ค.
์์งํ ๋งํด์ ์ต๊ทผ ์ค์ ์์ด ์๋ฒ๋ฅผ ์คํํ๋ ค๋ ์ด๋ฌํ ์์ง์์ 40๋ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ์ค๊ณ๋ฅผ ๋ฌด์ํ๋ฉด์ ์ฌ๋๋ค์ ๋ ํฐ ๋ฉ๋ชจ๋ฆฌ ์ธ์คํด์ค๋ก ๊ฐ์ ํ๋ ค๋ PaaS ์ ๊ณต์ ์ฒด์ ์ํด ์ฃผ๋๋์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ค์ ๋ก ์ปค๋์ ์ด๋ค ๋ฉ๋ชจ๋ฆฌ ํ์ด์ง๊ฐ ํ์ฑ ์ํ์ธ์ง ์๋์ง๋ฅผ ์๋ ๋ฐ ๋งค์ฐ ๋ฅ์ํฉ๋๋ค.
์ด๊ฒ์ ๋ํ ๋ ธ๋์์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๊ณ ๊ฐ๋๋ฉด ์ ์ฌ์ ์ผ๋ก ์์ ํ ์ ๊ธฐ๊ฒ ๋๋ ํจ๊ณผ๊ฐ ์์ต๋๋ค. ์ ์ ํ ์๋๋ฅผ ๋ฆ์ถ๊ณ ๋ณต๊ตฌํ๋ ๋์ ๋ ธ๋๋ฅผ ๋ค์ ์์ํด์ผ ํฉ๋๋ค.
90์ผ ๋์ ์ฌ์ฉํ์ง ์์ผ๋ฉด ๋ฌธ์ ๊ฐ ๋ถ์คํด์ง๋๋ค.
/remove-lifecycle stale
ํ์ฌ ๋ฌธ์ ๋ฅผ ์ต์ ์ผ๋ก ํ์ํฉ๋๋ค.
๋ถ์ค ๋ฌธ์ ๋ ์ถ๊ฐ๋ก 30์ผ ๋์ ์ฌ์ฉํ์ง ์์ผ๋ฉด ์ฉ๊ณ ๊ฒฐ๊ตญ ๋ซํ๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ์ง๊ธ ์ข
๋ฃํด๋ ์์ ํ๋ค๋ฉด /close
.
sig-testing, kubernetes/test-infra ๋ฐ/๋๋ fejta์ ํผ๋๋ฐฑ์ ๋ณด๋ด์ญ์์ค.
/์๋ช
์ฃผ๊ธฐ ๋ถ์ค
ํด๋ฌ์คํฐ ๋
ธ๋( K8s Version - v1.11.2
)์ ๋ง์ ์์ ๋์คํฌ ์ฝ๊ธฐ๊ฐ ์์ต๋๋ค. ์ค์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋นํ์ฑํํ๊ธฐ ๋๋ฌธ์ผ ์ ์์ต๋๊น?
https://stackoverflow.com/questions/51988566/high-number-of-disk-reads-in-kubernetes-nodes
@srevenant ํด๋ฌ์คํฐ ์ธ๊ณ์์ ๋ค๋ฅธ ๋ ธ๋์ RAM์ ์๋ก์ด ์ค์์ ๋๋ค. ์ฆ, ์ค์์ด ์๋ฏธ๊ฐ ์๋ ๋ ๊ฐ์ 1๋ ธ๋ K8 ์ธ์คํด์ค๋ฅผ ์คํํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ K8์ ์ผ๋ฐ์ ์ธ ์ฌ์ฉ ์ฌ๋ก๊ฐ ์๋๋๋ค.
@srevenant ์ ์ ์ผ๋ก ๋์ํฉ๋๋ค. SWAP์ Unix์ Linux๊ฐ ํ์ด๋ ๋๋ถํฐ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค. Linux์์ 15๋
๋์ ์์
ํ๋ฉด์ SWAP์ ํด์ ํ๋๋ก ์์ฒญํ๋ ์ฑ์ ๋ณธ ์ ์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋ฌธ์ SWAP๋ Linux ๋ฐฐํฌํ์ ์ค์นํ ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํญ์ ์ผ์ ธ ์์ผ๋ฏ๋ก K8์ ์ค์นํ๊ธฐ ์ ์ ์ด๋ฅผ ํด์ ํด์ผ ํ๊ณ ๊ทธ๊ฒ์ ๋๋ผ์ด ์ผ์ด์์ต๋๋ค.
Linux ์ปค๋์ ํนํ ์๋ฒ๊ฐ RAM ํ๊ณ์ ๋๋ฌํ๋ ค๊ณ ํ ๋ ์ผ์์ ์ผ๋ก ์๋ฒ์ ์ฑ๋ฅ์ ํฅ์์ํค๊ธฐ ์ํด SWAP์ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์ ์๊ณ ์์ต๋๋ค.
K8์ด ์ ๋๋ก ์๋ํ๋ ค๋ฉด SWAP๋ฅผ ๊บผ์ผ ํ๋ค๋ ๋ป์ธ๊ฐ์?
๋๋ ์ด ์ผ์ ํ๋ ๋ฐ ๊ด์ฌ์ด ์๊ณ ํ ์คํธํ ๊ธฐ์ ๊ณผ ๋ง์ ๊ธฐ๊ณ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๊ธฐ์ฌํ๊ณ ์ถ๋ค๋ฉด ์ด๋์์ ์์ํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ข์๊น์?
@superdave ๋ kubernetes/community์ ์ค์์ ์ง์ํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํ๋ KEP๋ฅผ ๊ตฌ์ฑํ๊ณ sig-node์ ์ ์ํ์ญ์์ค. ์ฐ๋ฆฌ๋ ๋น์ ์ ๋์์ ๋ฐ๊ณ ์ถ์ต๋๋ค.
๋๋ Kubernetes์ ํฌ๋์์ ์ค์์ ์ ์ ํ๊ฒ ํ์ฑํํ๋ ๊ฒ์ ์ง์งํฉ๋๋ค. ๊ฑฐ์ ๋ชจ๋ ์ปจํ
์ด๋๊ฐ ์ฌ์ฉ์ ์ ์ Linux ์ธ์คํด์ค์ด๊ณ ๊ธฐ๋ณธ์ ์ผ๋ก ์ค์์ ์ง์ํ๊ธฐ ๋๋ฌธ์ ์ค์์ด ์๋ค๋ ๊ฒ์ ์ค์ ๋ก ์๋ฏธ๊ฐ ์์ต๋๋ค.
๊ธฐ๋ฅ์ ๊ตฌํํ๊ธฐ๊ฐ ๋ณต์กํ ๊ฒ์ ์ดํดํ ์ ์์ง๋ง ์ธ์ ๋ถํฐ ๊ทธ๊ฒ์ด ์ฐ๋ฆฌ๊ฐ ์์ผ๋ก ๋์๊ฐ์ง ๋ชปํ๊ฒ ๋ง์์ต๋๊น?
์ค์์ ๋นํ์ฑํํ๋ฉด ๋ ธ๋์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํ ๋ ๋ ธ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฏ๋ก ์ค์ ๋ฌธ์ ๋ฅผ Kubernetes์์ ํด๊ฒฐํด์ผ ํ๋ค๋ ๋ฐ ๋์ํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด 3๊ฐ์ ์์ ์ ๋ ธ๋(๊ฐ๊ฐ 20GB์ ๋จ)๊ฐ ์๊ณ ๋จ ์ ํ์ ๋๋ฌํ์ฌ ํ๋์ ๋ ธ๋๊ฐ ๋ค์ด๋๋ ๊ฒฝ์ฐ 2๊ฐ์ ๋ค๋ฅธ ์์ ์ ๋ ธ๋๋ ํด๋น ์๊ฐ์ ๋ชจ๋ ํ(Pod)์ ํด๋น ๋ ธ๋๋ก ์ ์กํ ํ ๋ค์ด๋ฉ๋๋ค.
์ค์ ๋ฐ์ดํฐ์ ๋ฐ๋ผ ๋ฉ๋ชจ๋ฆฌ ์์ฒญ์ ์ค์ ํ์ฌ ์ด๋ฅผ ๋ฐฉ์งํ ์ ์์ต๋๋ค.
์์ฉ ํ๋ก๊ทธ๋จ์ ํ์.
์ ํ๋ฆฌ์ผ์ด์
๋ฉ๋ชจ๋ฆฌ์ 3๋ถ์ 1์ด 2๋ฐฐ ์ ๋์ธ ๊ฒฝ์ฐ
์ ์ฅ ์๋๊ฐ ๋๋ฆฌ๋ฉด ์ ์ฉํ ์์
์ ์ํํ ์ ์์ต๋๊น?
2018๋ 9์ 26์ผ ์์์ผ ์ค์ 6์ 51๋ถ์ vasicvuk [email protected]์์ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
๋๋ ์ค์ ๋ฌธ์ ๊ฐ Kubernetes์์ ํด๊ฒฐ๋์ด์ผ ํ๋ค๋ ๋ฐ ๋์ํด์ผ ํฉ๋๋ค.
์ค์์ ๋นํ์ฑํํ๋ฉด ๋ ธ๋์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํ ๋ ๋ ธ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ์์ํ
์๋ฅผ ๋ค์ด 3๊ฐ์ ์์ ์ ๋ ธ๋(๊ฐ๊ฐ 20GB์ ๋จ)๊ฐ ์๊ณ ํ๋์ ๋ ธ๋๊ฐ ์๋ํ๋ ๊ฒฝ์ฐ
๋จ์ ํ๊ณ์ ๋๋ฌํ๊ธฐ ๋๋ฌธ์ ๋ค์ด๋จ 2๊ฐ์ ๋ค๋ฅธ ์์ ์ ๋ ธ๋๋ ์ด๋ํฉ๋๋ค.
๊ทธ ์๊ฐ์ ๊ทธ๋ค์๊ฒ ๋ชจ๋ ํฌ๋๋ฅผ ์ ์กํ ํ ๋ค์ด.โ
๋น์ ์ด ๋๊ธ์ ๋ฌ์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/kubernetes/kubernetes/issues/53533#issuecomment-424604731 ,
๋๋ ์ค๋ ๋ ์์๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AAICBqZApBscFl5aNA4IcYvlxcvPA88Tks5ueyPlgaJpZM4PwnD5
.
@matthiasr 10-50 ์๋น์ค๊ฐ ์์ ๋ ๊ทธ๋ ๊ฒ ํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ 200๊ฐ ์ด์์ ์๋น์ค๋ฅผ ์คํํ๋ ํด๋ฌ์คํฐ๊ฐ ์๊ณ ๊ทธ ์ค ์ ๋ฐ์ด ๋ฉ๋ชจ๋ฆฌ ์์ฒญ ์์ด ๊ณต์ Helm ์ฐจํธ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฐํฌ๋๋ ๊ฒฝ์ฐ ์์ด ๋ง์ด ๊ฐ๋๋ค.
๊ทธ๋ฌ๋ ๋๋ฝ๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํด๊ฒฐํด์ผ ํ ๋ฌธ์ ๋ฅผ ์์ฒญํ์ง ์์ต๋๊น?
๋ง์ ๊ฒฝ์ฐ @matthiasr ๋ฉ๋ชจ๋ฆฌ๋ ํ ๋ฒ๋ง ์ฌ์ฉ๋๊ฑฐ๋ ์ค์ ๋ก ์ฌ์ฉ๋์ง ์๋ ํ๋ก์ธ์ค์ ๋งคํ๋ฉ๋๋ค. ์ด๋ ์ ํจํ ๊ฒฝ์ฐ์ด๋ฉฐ ๋ฉ๋ชจ๋ฆฌ ๋์๊ฐ ์๋๋๋ค. ์ค์ํ๋ฉด ํด๋น ํ์ด์ง๊ฐ ๊ฒฐ๊ตญ ์ค์๋๊ณ ๋ค์๋ ์ค์ ์ธ๋์ง ์์ ์ ์์ง๋ง ๋ ๋์ ์ฌ์ฉ์ ์ํด ๋น ๋ฅธ ๋จ์ ํด์ ํฉ๋๋ค.
๋ํ ์๋ต์ ๋ณด์ฅํ๊ธฐ ์ํด ์ค์์ ํด์ ํ๋ ๊ฒ๋ ์ข์ง ์์ต๋๋ค. ๋ฉ๋ชจ๋ฆฌ์ ํ์ผ์ ๊ณ ์ ํ์ง ์๋ ํ(์ ์ด๋ K8์ด ์คํ ํ์ผ์ ๋ํด ๊ฐ์ ธ์ผ ํ๋ ๊ธฐ๋ฅ), ์ปค๋์ ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ ๋๋ ๋จ์ํ ์ฌ์ฉ ๋ถ์กฑ์ ๋ํ ์๋ต์ผ๋ก ๋ชจ๋ ํ์ผ ์ง์ ํ์ด์ง๋ฅผ ๊ณ์ ๊ต์ฒดํฉ๋๋ค.
์ค์์ ํ์ฑํํด๋ ์ปค๋ ๋์์ด ํฌ๊ฒ ๋ณ๊ฒฝ๋์ง๋ ์์ต๋๋ค. COW ๋งคํ๋ ํ์ผ์์ ๋ก๋๋ ์์ ๋ ํ์ด์ง๋ ์ต๋ช ํ์ด์ง๋ฅผ ๊ต์ฒดํ ๊ณต๊ฐ์ ์ ๊ณตํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค.
์ค์ํ์ ์์ ํ ๋ ์๋ ์์ผ๋ฏ๋ก K8์ ํน๋ณํ ๊ฒฝ์ฐ์ ์ต๋ช ๋ฉ๋ชจ๋ฆฌ ์ค์ํ์ด ํ์ฑํ ๋์๋์ง ์ฌ๋ถ์ ๊ด๊ณ์์ด ๊ทธ ์กด์ฌ๋ฅผ ์ ์งํด์ผ ํฉ๋๋ค.
์ด๊ฒ์ ์ด๊ฒ์ ๋ฒ๊ทธ๋ก ๋ง๋ญ๋๋ค. ์ค์ ๋ก ๋ ์ ์๋ ์ปค๋ ๊ธฐ๋ฅ์ ์ง์ํ์ง ๋ชปํ๊ณ ์์ต๋๋ค.
@๋ณธ
์ปค๋์ ์ฌ์ ํ โโ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ ๋๋ ๋จ์ํ ์ฌ์ฉ ๋ถ์กฑ์ ๋ํ ์๋ต์ผ๋ก ๋ชจ๋ ํ์ผ ์ง์ ํ์ด์ง๋ฅผ ๊ต์ฒดํฉ๋๋ค. ์ค์์ ํ์ฑํํด๋ ์ปค๋ ๋์์ด ํฌ๊ฒ ๋ณ๊ฒฝ๋์ง๋ ์์ต๋๋ค.
์ค์ํ์ ์์ ํ ๋ ์๋ ์์ต๋๋ค.
๋ ์์ ์ ๊ต์กํ ์ ์๋๋ก ์ด์ ๋ํ ์ฐธ๊ณ ์๋ฃ๋ฅผ ์ ๊ณตํ ์ ์์ต๋๊น?
๋ฉ๋ชจ๋ฆฌ์ ํ์ผ์ ๊ณ ์ ํ์ง ์๋ ํ(K8์๋ ์ต์ํ ์คํ ํ์ผ์ ๋ํ ๊ธฐ๋ฅ์ด ์์ด์ผ ํจ)
k8์ด ์ฌ์ฉํ๊ธฐ๋ฅผ ์ํ๋ ๊ธฐ๋ฅ์ ๋ฌด์์ ๋๊น? ๋ฐ์ด๋๋ฆฌ๊ฐ ์ ์ ์ด๋ฉด ํฌ๋์ tmpfs๋ก ๋ณต์ฌํ๋ฉด ํ์ด์ง ๋๊ธฐ ์๊ฐ์ ๋์์ด ๋ฉ๋๋ค.
@adityakali ์ค์์ด ๊บผ์ ธ ์์ ๋ ์ปค๋์์ ์ค์์ ์ํฅ์ ๋ํ ์๊ฐ์ ๋ฌด์์ ๋๊น?
๋ ์์ ์ ๊ต์กํ ์ ์๋๋ก ์ด์ ๋ํ ์ฐธ๊ณ ์๋ฃ๋ฅผ ์ ๊ณตํ ์ ์์ต๋๊น?
๋ชจ๋ ์ต์ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ OS์ ๋ง์ฐฌ๊ฐ์ง๋ก Linux๋ ๋์คํฌ์์ ๋ฉ๋ชจ๋ฆฌ๋ก ์คํ ๊ฐ๋ฅํ ํ์ด์ง๋ฅผ ์๊ตฌํฉ๋๋ค. ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ ์ํ์์ ์ปค๋ ์ ๋ค๋ฅธ ๋ฉ๋ชจ๋ฆฌ ํ์ด์ง์ ๋ง์ฐฌ๊ฐ์ง๋ก "์ค์ ๋นํ์ฑํ"๋ก ๋นํ์ฑํํ๋ _only_ ์ค์ํ์ "์ต๋ช ๋ฉ๋ชจ๋ฆฌ" - ํ์ผ๊ณผ ์ฐ๊ฒฐ๋์ง _์์_ ๋ฉ๋ชจ๋ฆฌ์ ๋๋ค(๊ฐ์ฅ ์ข์ ์๋ "์คํ" ๋ฐ "ํ" ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๋๋ค).
๋ฌผ๋ก ์์ ์ค๋ช
์์ ๊ฑด๋๋ฐ๋ ์ธ๋ถ ์ ๋ณด๊ฐ ๋ง์ด ์์ต๋๋ค. ํนํ, ์คํ ํ์ผ์ ๋จ์ ์์ ์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ "์ ๊ธ"๋ถ๋ถ์ ์ฌ์ฉ ํ ์ mlock
๋ฅผ ํตํด ํ๋ช
ํ ์ผ ์ฝ์ ๊ฐ์กฑ์ madvise()
, ๋์ผํ ํ์ด์ง๋ฅผ ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ๊ณต์ ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ณต์กํด์ง๋ค (์: libc.so) ๋ฑ. ํด๋น ๋งจํ์ด์ง๋ ๊ต๊ณผ์ ๋๋ Linux ์ปค๋ ์์ค/๋ฌธ์/๋ฉ์ผ๋ง ๋ชฉ๋ก๊ณผ ๊ฐ์ ์ผ๋ฐ์ ์ธ ๋ด์ฉ ์ธ์ ๋ ๋ง์ด ์ฝ์ ์ ์๋ ์ ์ฉํ ํฌ์ธํฐ๊ฐ ์์ต๋๋ค.
๋ฐ๋ผ์ ์์ ์ค์ ํจ๊ณผ๋ ํ๋ก์ธ์ค๊ฐ ๋ฉ๋ชจ๋ฆฌ ํ๊ณ์ ๊ฐ๊น์์ง๋ฉด ์ปค๋์ด ๋จ์์ _code_ ๋ถ๋ถ๊ณผ ์์๋ฅผ ๊ฐ์ ๋ก ์ ๊ฑฐํด์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค. ๋ค์์ ํด๋น ๋นํธ์ ์ฝ๋ ๋๋ ์์ ๊ฐ์ด ํ์ํ ๋ ํ๋ก๊ทธ๋จ์ ์ผ์ ์ค์ง๋์ด ๋์คํฌ์์ ๋ค์ ๊ฐ์ ธ์ค๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ณ ๋ค๋ฅธ ๊ฒ์ ์ ๊ฑฐํฉ๋๋ค. ๋ฐ๋ผ์ "์ค์ ๋นํ์ฑํ"๋ฅผ ์ฌ์ฉํ๋๋ผ๋ ์์ ์งํฉ์ด ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ด๊ณผํ๋ฉด ์ฌ์ ํ ๋์ผํ ์ฑ๋ฅ ์ ํ๊ฐ ๋ฐ์ํฉ๋๋ค.
์ฌ๋๋ค์ด ์์ ๋ด์ฉ์ ์ฝ๊ณ ์ค์ ๋ฐฉ์ง ๋ง๋ ์ฌ๋ฅ์ ์ผํ์ผ๋ก ๋ชจ๋ ๊ฒ์ ๋ฉ๋ชจ๋ฆฌ์ mlockํ๊ฑฐ๋ ๋ชจ๋ ๊ฒ์ ramdrive์ ๋ณต์ฌํ๊ธฐ ์ํด ํธ์ถ์ ์์ํ๊ธฐ ์ ์ ์ฌ๊ธฐ์ ๊ด์ฌ ์๋ ์ค์ ๋ฆฌ์์ค๋ ์ ์ฒด ํฌ๊ธฐ๊ฐ ์๋๋ผ ์์ ์ธํธ ํฌ๊ธฐ ๋ผ๋ ์ ์ ๋ฐ๋ณตํ๊ณ ์ถ์ต๋๋ค. . ๋จ์ ์๋ ๊ธฐ๊ฐ๋ฐ์ดํธ์ ๋ฐ์ดํฐ๋ฅผ ํตํด ์ ํ์ผ๋ก ์๋ํ๋ ํ๋ก๊ทธ๋จ์ ํ ๋ฒ์ ํด๋น ๋ฐ์ดํฐ์ ์ข์ ์ฐฝ์์๋ง ์๋ํ ์ ์์ต๋๋ค. ์ด ๊ฐ์์ ํ๋ก๊ทธ๋จ์ ๋ง์ ์์ ์ค์๊ณผ ์์ ๋จ ์ ํ์ผ๋ก ์ ์๋ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ชจ๋ ๊ฒ์ ์ค์ ๋จ์ ์ ๊ทธ๋ ๊ฒ์ ๋งค์ฐ ๋นํจ์จ์ ์ ๋๋ค. ์์ ์ค๋ช ์์ ๋ฐฐ์ ๋ฏ์ด ์ด๊ฒ์ ๋ง์ ์์ _code_๋ฅผ ๊ฐ์ง๊ณ ์์ง๋ง ํน์ ์๊ฐ์ ์๋๋ง ์คํํ๋ ํ๋ก๊ทธ๋จ๊ณผ ์ ํํ ๋์ผํฉ๋๋ค.
์ด์ ๊ฐ์ ๋์ ์ต๊ทผ ๊ฐ์ธ ์ค์ธ๊ณ ์๋ kubernetes ์คํ ํ์ผ์ ์ฐ๊ฒฐํ๋ ๊ฒ์ ๋๋ค. ๋๋ ํ์ฌ (์์ด๋ฌ๋ํ๊ฒ๋) kubernetes ํด๋ฌ์คํฐ์์ kubernetes๋ฅผ ์ปดํ์ผํ ์ ์์ต๋๋ค. go link ๋จ๊ณ์๋ ์์ ์ธํธ๊ฐ ํจ์ฌ ๋ ์์์๋ ๋ถ๊ตฌํ๊ณ ๋ช ๊ธฐ๊ฐ๋ฐ์ดํธ์ (์ต๋ช ) ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ์ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
"๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์๋๋ผ ์์ ์งํฉ์ ๊ดํ ๊ฒ"์ด๋ผ๋ ์ ์ ์ค์ ๋ก ๋ค๋ฃจ๋ ค๋ฉด ๋ง์ ์ผ๋ฐ ํ์ผ I/O๋ฅผ ์ํํ๊ณ mmap๊ณผ ์๋ฌด ๊ด๋ จ์ด ์๋ ํ๋ก๊ทธ๋จ์ ๊ณ ๋ คํ์ญ์์ค. ๋จ์ด ์ถฉ๋ถํ๋ฉด ์ปค๋์ ๋ฐ๋ณต์ ์ผ๋ก ์ฌ์ฉ๋๋ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ์ ํ์ผ ๋ฐ์ดํฐ๋ฅผ ๋จ์ ์บ์ํ๊ณ ๋์คํฌ๋ก ์ด๋ํ์ง ์์ผ๋ฉฐ ๋์คํฌ ์ฐ๊ธฐ๋ฅผ ์ต์ ํํ๊ธฐ ์ํด ์ผ์์ ์ผ๋ก ๋จ์ ์ฐ๊ธฐ๊ฐ ๋ฒ์คํธ๋๋๋ก ํฉ๋๋ค. ์ด์ ๊ฐ์ "์์งํ" ํ๋ก๊ทธ๋จ์กฐ์ฐจ๋ ์์ ์ธํธ ํฌ๊ธฐ์ ์ฌ์ฉ ๊ฐ๋ฅํ ๋จ์ ๋ฐ๋ผ ๋จ ์๋์์ ๋์คํฌ ์๋๋ก ์ ํ๋ฉ๋๋ค. ๋ฌด์ธ๊ฐ๋ฅผ ๋จ์ ๋ถํ์ํ๊ฒ ๊ณ ์ ํ๋ฉด(์: mlock ์ฌ์ฉ ๋๋ ์ค์ ๋นํ์ฑํ) ์ปค๋์ด ์ค์ ๋ก ์ ์ฉํ ๋ฌด์ธ๊ฐ๋ฅผ ์ํด ๋ฌผ๋ฆฌ์ ๋จ์ ํด๋น ํ์ด์ง๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋ฐฉ์งํ๊ณ (์์ ์ธํธ๋ฅผ ์ํ ๋จ์ด ์ถฉ๋ถํ์ง ์์ ๊ฒฝ์ฐ) ๋์คํฌ I/O๋ฅผ ๋ ๋น์ผ ๊ณณ์ผ๋ก ์ฎ๊ฒผ์ต๋๋ค.
@superdave : ์ ๋ ์ฌ๊ธฐ์ ํ์ํ๋ฅผ ๊ฐ์ ํ๋ ๋ฐ ๊ด์ฌ์ด ์์ต๋๋ค. ๋ค๋ฅธ ์ฌ๋์ด ๋ฌธ์๋ฅผ ๊ฒํ ํ๊ฑฐ๋ ํค๋ณด๋์์ ์์ ๋ณด๋๋ก ํ๋ ค๋ฉด ์ ๋ฅผ ํฌํจ์์ผ ์ฃผ์ธ์.
์ด์ ๊ฐ์ ๋์ ์ต๊ทผ ๊ฐ์ธ ์ค์ธ๊ณ ์๋ kubernetes ์คํ ํ์ผ์ ์ฐ๊ฒฐํ๋ ๊ฒ์ ๋๋ค. ๋๋ ํ์ฌ (์์ด๋ฌ๋ํ๊ฒ๋) kubernetes ํด๋ฌ์คํฐ์์ kubernetes๋ฅผ ์ปดํ์ผํ ์ ์์ต๋๋ค. go link ๋จ๊ณ์๋ ์์ ์ธํธ๊ฐ ํจ์ฌ ๋ ์์์๋ ๋ถ๊ตฌํ๊ณ ๋ช ๊ธฐ๊ฐ๋ฐ์ดํธ์ (์ต๋ช ) ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ์ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
@superdave : ์ ๋ ์ฌ๊ธฐ์ ํ์ํ๋ฅผ ๊ฐ์ ํ๋ ๋ฐ ๊ด์ฌ์ด ์์ต๋๋ค. ๋ค๋ฅธ ์ฌ๋์ด ๋ฌธ์๋ฅผ ๊ฒํ ํ๊ฑฐ๋ ํค๋ณด๋์์ ์์ ๋ณด๋๋ก ํ๋ ค๋ฉด ์ ๋ฅผ ํฌํจ์์ผ ์ฃผ์ธ์.
๋น๋ฉดํ ๋ฌธ์ ์ ๋ํ ์ข์ ์์ฝ! ์ค์ ์ค๋์ฑ์ ์ค์ ๋ก ์ฌ๊ธฐ์ ํต์ฌ ๋ฌธ์ ์ ๋๋ค. ํฉ๋ฆฌ์ ์ผ๋ก ํด๊ฒฐํ๊ธฐ๋ฅผ ๋ฐ๋ผ๋ ๊ฒ์ ๋๋ค. ์ถฉ๋ถํ ์๊ฐํด ๋ณผ ์๊ฐ์ด ์์์ง๋ง, ์ค์ํ ํ๋(์ฃผ์ด์ง ์๊ฐ ํ๋ ์์ ๋ํ ํ์ด์ง์ธ/์์, ์๋ง๋ ๋๋ฌด ์ด์ฌ์ธ ๊ฒฝ์ฐ ํ๋ก์ธ์ค๊ฐ ์ผ์์ ์ผ๋ก ๊ธ์ฆํจ) ์ค์์ด ํ์ฑํ๋ ๊ฒฝ์ฐ ์ ๊ฑฐ ๋์์ ํ๊ฐํ๋ ์ข์ ๋ฐฉ๋ฒ์ผ ์ ์์ต๋๋ค. ๋ง์ ๋ฉํธ๋ฆญ์ด ์์ผ๋ฉฐ ๊ฐ๋ฅํ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ์ ์คํ๊ฒ ํ๊ฐํ ๋ฟ๋ง ์๋๋ผ ๋ง์ง ์ ์๋ ๋ง์ ์์ก์ด๋ฅผ ์ ๊ณตํ๊ณ ์ถ์ต๋๋ค. ๋ํ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ์ํธ ์์ฉ์ ์ํด ํฌ๋๋ฅผ ๊ณ์ธกํ ์ ์์ผ๋ฉด ์ฌ๋๋ค์ด ๋ ์ ์กฐ์ ํ๋ ๋ฐ ๋์์ด ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋๋ ์ง๊ธ ๊ฑฐ๊ธฐ์ ๋ฌด์์ด ์๋์ง ๋งํ๊ธฐ ์ํด ์ด๋ฏธ ์ ์๋ ๊ฒ์ ๋ํด ์ถฉ๋ถํ ์ต์ํ์ง ์์ง๋ง, ๋๋ ๋ด๊ฐ ์์๋ผ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๋ํ ๊ฐ๋ณ ํฌ๋/์ปจํ ์ด๋์์ ์ค์ํ ๋์์ ์ผ๋ง๋ ์ ์ ์ดํ ์ ์๋์ง ์์์ผ ํ๋ ์ปจํธ๋กค์ ์ต์ํ์ง ์์ต๋๋ค. ๋ณด์กด ๋๋ ๊ตํ์ ์ํด ์ฌ๋ฌผ์ "์์ "ํ ์ ์์ผ๋ฉด ๋์์ด ๋ ๊ฒ์ด์ง๋ง, ๊ฐ๋ฐ์๋ ๋ถ๋ช ํ ์์ฃผํ ๊ฒ์ ์ ๋์ ์ผ๋ก ๋ณด์ฅํด์ผ ํ ๋ mlock()์ ์์ ๋กญ๊ฒ ์๋ํ ์ ์์ต๋๋ค.
์ด์จ๋ , ๋ค, ์ ๋ ์ ๋์ ์ผ๋ก ์ด ์ผ์ ์งํํ๊ณ ์ถ์ต๋๋ค. ๋๋ ์ต๊ทผ์ ์ง์ฅ์์ ๋ถ๋ณ๋ค(๋๊ตฐ๊ฐ๊ฐ ๋ถ์ ์ ํ๊ฒ ํฐ ์ฉ๋์ ๋ง๋ค์ง ์๋ ํ 99%์ ์๊ฐ์ด RAM์ ํ์๋ก ํ์ง ์๊ธฐ ๋๋ฌธ์ ๋ถํ ์ํ์์ ์ค์ํ ์ ์๋ ์ด์ ์ด ์๋ k8s์์ ์์ฒด ๋ง์ดํฌ๋ก์๋น์ค๋ก ์ผ๋ถ OOM ๋ฌธ์ ๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค. ์์ฒญ), ํ์ง๋ง ๊ทธ๊ฒ์ ๋ํด ๊ณ์ ์ ์๊ฒ ๋ง์ํด ์ฃผ์ญ์์ค. ๋๋ ์ ์ KEP ํ๋ก์ธ์ค์ ์ฐธ์ฌํ ์ ์ด ์์ผ๋ฏ๋ก ๊ฝค ์นํ๊ฒฝ์ ์ผ ๊ฒ์ ๋๋ค. ํ์ง๋ง ์์ฆ์ ํด๋ง ๋ฐฉ์๋ณด๋ค ์ธํฐ๋ฝํธ ๋ฐฉ์์ผ๋ก ํจ์ฌ ๋ ์ ์๋ํฉ๋๋ค. :-)
์ ๋ zram์ด ์ค์์ ํธ์นํ์ฌ ์๋ํ๋ค๋ ์ ์ ์ง์ ํ๊ณ ์ถ์ต๋๋ค. k8์ ์ค์์ด ์์ผ๋ฉด ๋๋ถ๋ถ์ ๋น Linux OS๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฑํ๋์ด ์๋ ๋ฉ๋ชจ๋ฆฌ ์์ถ์ด ์์ต๋๋ค(Windows, MacOS ํ).
์ฐ๋ฆฌ๋ ๋งค์ผ ๋ฐค ๋ง์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋ชจํ๋ ๋๊ท๋ชจ ๋ฐฐ์น ์์ ์ ์คํํ๋ Ubuntu ์ธ์คํด์ค๋ฅผ k8์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์์ ๋ถํ๊ฐ ๋ฏธ๋ฆฌ ๊ฒฐ์ ๋์ง ์์๊ธฐ ๋๋ฌธ์ OOM์ ํผํ๊ธฐ ์ํด ์ค์ ๋ฉ๋ชจ๋ฆฌ ์๋น์ ๊ด๊ณ์์ด ๋ ธ๋์ 16GB๋ฅผ (๋น์ธ๊ฒ) ํ ๋นํด์ผ ํฉ๋๋ค. ๋ก์ปฌ ๊ฐ๋ฐ ์๋ฒ์์ ๋ฉ๋ชจ๋ฆฌ ์์ถ์ ์ฌ์ฉํ๋ฉด ์์ ์ด ์ต๋ 3GB์ ๋ถ๊ณผํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ๋ฎ์๋ 1GB์ ๋ฉ๋ชจ๋ฆฌ๋ง ์ฌ์ฉํฉ๋๋ค. ์ค์์ ๊ธ์งํ๊ณ ๋ฐ๋ผ์ ๋ฉ๋ชจ๋ฆฌ ์์ถ์ ๊ธ์งํ๋ ๊ฒ์ ๋งค์ฐ ์ด๋ฆฌ์์ ํ๋์ ๋๋ค.
์ฌ๊ธฐ์์ ๊ฐ์ฅ ํฐ ๊ด์ฌ์ฌ๋ ์๋ง๋ ๊ณ ๋ฆฝ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ผ๋ฐ์ ์ธ ์์คํ ์ ์๋ง์ ํฌ๋๋ฅผ ํธ์คํ ํ ์ ์์ผ๋ฉฐ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํ๋ฉด ์ค์ํ์ ์์ํ์ฌ ์๋ก์ ์ฑ๋ฅ์ ์์ ํ ํ๊ดดํ ์ ์์ต๋๋ค. ์ค์์ด ์์ผ๋ฉด ๊ฒฉ๋ฆฌ๊ฐ ํจ์ฌ ์ฝ์ต๋๋ค.
์ฌ๊ธฐ์์ ๊ฐ์ฅ ํฐ ๊ด์ฌ์ฌ๋ ์๋ง๋ ๊ณ ๋ฆฝ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ผ๋ฐ์ ์ธ ์์คํ ์ ์๋ง์ ํฌ๋๋ฅผ ํธ์คํ ํ ์ ์์ผ๋ฉฐ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํ๋ฉด ์ค์ํ์ ์์ํ์ฌ ์๋ก์ ์ฑ๋ฅ์ ์์ ํ ํ๊ดดํ ์ ์์ต๋๋ค. ์ค์์ด ์์ผ๋ฉด ๊ฒฉ๋ฆฌ๊ฐ ํจ์ฌ ์ฝ์ต๋๋ค.
๊ทธ๋ฌ๋ ์ด์ ์ ์ค๋ช ํ๋ฏ์ด ์ค์์ ๋นํ์ฑํํด๋ ์ฌ๊ธฐ์์๋ ์๋ฌด ๊ฒ๋ ์ฌ์ง ์์ต๋๋ค. ์ฌ์ค, ์ ์ฒด์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ ์๋ ฅ์ ์ฆ๊ฐ์ํค๋ฏ๋ก ์ปค๋์ด ์ฌ์ฉํ์ง ์๋ ๋ฐ์ดํฐ๋ฅผ ๊ต์ฒดํ ์ ์๋ ๊ฒฝ์ฐ ์์ ์งํฉ์ ์ผ๋ถ๋ฅผ ์ญ์ ํ๋๋ก ๊ฐ์ ํ ์ ์์ผ๋ฏ๋ก ์ํฉ์ด ์ ํ ๋ฉ๋๋ค.
์ค์์ ํ์ฑํํ๋ฉด ์ค์ ๋ก ๊ฒฉ๋ฆฌ๊ฐ ํฅ์๋ฉ๋๋ค.
ํ์ง๋ง ์์๋๋ก(๊ทธ๋ฆฌ๊ณ Google์ด Borg์์ ์์ ์ ์คํํ๋ ๋ฐฉ์) ์คํํ๋ ๊ฒฝ์ฐ ๋ง์ ๋น์ฉ์ด ๋ญ๋๋ค. ๋ชจ๋ ์ปจํ ์ด๋๋ ๋ฉ๋ชจ๋ฆฌ ์ํ์ ์ง์ ํด์ผ ํฉ๋๋ค. Borg๋ Google ์ธํ๋ผ๋ฅผ ํ์ฉํ๊ณ ์ํ๋ ๊ฒฝ์ฐ ์ ํ์ ํ์ตํ์ง๋ง(๊ณผ๊ฑฐ ๋ฆฌ์์ค ์ฌ์ฉ๋ ๋ฐ OOM ๋์์์) ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ์ ํ์ด ์์ต๋๋ค.
๋๋ ์ค์ ๋ก K8S ์ฌ๋๋ค์ด ๋ฉ๋ชจ๋ฆฌ ์ ํ์ ์ ํ ์ฌํญ์ผ๋ก ํ์ฉํ๋ค๋ ์ฌ์ค์ ๋นํฉํ์ต๋๋ค. CPU์ ๋ฌ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ ์๋ ฅ์ ์์คํ ์ฑ๋ฅ์ ๋งค์ฐ ๋น์ ํ์ ์ธ ์ํฅ์ ๋ฏธ์นฉ๋๋ค. ์ค์ํ์ผ๋ก ์ธํด ์์คํ ์ด ์์ ํ ์ ๊ธฐ๋ ๊ฒ์ ๋ณธ ์ฌ๋์ด ์ฆ๋ช ํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์ค์ ๋ก ํ์ํ๋ฉฐ ๋นํ์ฑํํ๋๋ก ์ ํํ๋ฉด ๊ฒฝ๊ณ ๋ฅผ ํ์ํฉ๋๋ค.
ํ์ง๋ง ์์๋๋ก(๊ทธ๋ฆฌ๊ณ Google์ด Borg์์ ์์ ์ ์คํํ๋ ๋ฐฉ์) ์คํํ๋ ๊ฒฝ์ฐ ๋ง์ ๋น์ฉ์ด ๋ญ๋๋ค. ๋ชจ๋ ์ปจํ ์ด๋๋ ๋ฉ๋ชจ๋ฆฌ ์ํ์ ์ง์ ํด์ผ ํฉ๋๋ค. Borg๋ Google ์ธํ๋ผ๋ฅผ ํ์ฉํ๊ณ ์ํ๋ ๊ฒฝ์ฐ ์ ํ์ ํ์ตํ์ง๋ง(๊ณผ๊ฑฐ ๋ฆฌ์์ค ์ฌ์ฉ๋ ๋ฐ OOM ๋์์์) ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ์ ํ์ด ์์ต๋๋ค.
๋๋ ์ค์ ๋ก K8S ์ฌ๋๋ค์ด ๋ฉ๋ชจ๋ฆฌ ์ ํ์ ์ ํ ์ฌํญ์ผ๋ก ํ์ฉํ๋ค๋ ์ฌ์ค์ ๋นํฉํ์ต๋๋ค. CPU์ ๋ฌ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ ์๋ ฅ์ ์์คํ ์ฑ๋ฅ์ ๋งค์ฐ ๋น์ ํ์ ์ธ ์ํฅ์ ๋ฏธ์นฉ๋๋ค. ์ค์ํ์ผ๋ก ์ธํด ์์คํ ์ด ์์ ํ ์ ๊ธฐ๋ ๊ฒ์ ๋ณธ ์ฌ๋์ด ์ฆ๋ช ํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์ค์ ๋ก ํ์ํ๋ฉฐ ๋นํ์ฑํํ๋๋ก ์ ํํ๋ฉด ๊ฒฝ๊ณ ๋ฅผ ํ์ํฉ๋๋ค.
์ด๊ฒ์ด ํด๊ฒฐํ์ง ๋ชปํ๋ ๋ฌธ์ ๋ ์ํ์ด ๊ฐ๋ณ์ ์ด๋ฉฐ ์ผ๋ถ ํ๋ก์ธ์ค์ ๋ํด ํญ์ ์๋ ค์ง ๊ฒ์ ์๋๋ผ๋ ๊ฒ์ ๋๋ค. ์ ๊ฐ ๋ค๋ฃจ๊ณ ์๋ ๋ฌธ์ ๋ ํนํ k8์ ์ฌ์ฉํ์ฌ 3d ๋ชจ๋ธ ๋ ๋๋ฌ ๋ ธ๋๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐ ์ค์ ์ ๋ก๋๋ค. ๋ ๋๋ง๋๋ ๋ชจ๋ธ ๋ฐ ์ฅ๋ฉด์ ์์ฐ์ ๋ฐ๋ผ ํ์ํ ๋จ์ ์์ด ์๋นํ ๋ค๋ฅผ ์ ์์ผ๋ฉฐ ๋๋ถ๋ถ์ ๋ ๋๋ง์ ์์ง๋ง _์ผ๋ถ_๊ฐ ํด ์ ์๋ค๋ ์ฌ์ค์ ์ฐ๋ฆฌ์ ์์ฒญ๊ณผ ์ ํ์ด ํจ์ฌ ๋ ๋ง์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์์ฝํด์ผ ํจ์ ์๋ฏธํฉ๋๋ค ํฌ๋๊ฐ ๋๋๋ก ๊ตฌ์ฑ๋ ์ ํ์ ์ด๊ณผํ์ฌ ์ค์ ๊ณต๊ฐ์ผ๋ก ๋๊ธธ ์ ์๋ ๊ฒ๋ณด๋ค OOM์ ํผํ๊ธฐ ์ํด ์ค์ ๋ก ์๊ฐ์ 90%๊ฐ ํ์ํฉ๋๋ค.
์, ๊ทธ ๊ฒฝ์ฐ ์ํ์ ์ "์์" ๋๋ ๊ทธ ํจ๊ณผ๋ก ์ค์ ํฉ๋๋ค. ์ ์์ ์ ๊ธฐ๋ณธ๊ฐ์ด ๋์ด์๋ ์ ๋๋ค๋ ๊ฒ์ ๋๋ค. ์๋ฌด๊ฒ๋ ์ค์ ํ์ง ์์ผ๋ฉด ๋ง์คํฐ๊ฐ "๋ฐฐ๋ญ"(kubelet)์ ๋ฃ์ "ํญ๋ชฉ"(์์ )์ ํฌ๊ธฐ๋ฅผ ๋จ์ํ ์์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ์ข ๋ฅ์ ์ง๋ฅํ ์ํฌ๋ก๋ ์ค์ผ์ค๋ง์ ์์ ํ ๋ฌดํจํํฉ๋๋ค.
์ฌ๊ธฐ์ ๋ฌธ์ ๋ ์์ ์ด ์ค์์ผ๋ก ์ ์ถ๋๋ค๋ ๊ฒ์ด ์๋๋ผ ํด๋น ๋ ธ๋์์ ์คํ ์ค์ธ ๋ค๋ฅธ ๋ชจ๋ ์์ ๋ ๋ง์ฐฌ๊ฐ์ง๋ผ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ค ์ค ์ผ๋ถ(๋๋ถ๋ถ?)๋ ๊ทธ๊ฒ์ ์ ํ ์ข์ํ์ง ์์ ๊ฒ์ ๋๋ค.
Borg์ ํ๋ก๊ทธ๋จ์ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ ์ํฅ์ ๋ฏธ์น์ง ์๊ณ ์ธ์ ๋ ์ง ์ ์ ํ(์ ๋ฌธ ์ฉ์ด์ ์ต์ํ์ง ์์ ์ฌ์ฉ์๋ฅผ ์ํด ์ข ๋ฃ ๊ฐ๋ฅ)์ผ๋ก ์์ฑ๋ฉ๋๋ค. ์ด๊ฒ์ ์ค์ ๋ก Google ์ธ๋ถ์์ ๋ง์ด ๋ณผ ์ ์๋ ๊ฒ์ด๋ฉฐ ํ๋ก๊ทธ๋จ์ ์ ์ฌ์ ์ธ ๊ฐ์์ค๋ฌ์ด ์ฌ๋ง์ ์ธ์ ํ๋ฉด ํจ์ฌ ๋ ์์ ์ ์ธ ์ํํธ์จ์ด๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋๋ ๋น๋๊ฐ๋ค.
์ด๋ฌํ ํ๋ก๊ทธ๋จ์ผ๋ก ๊ตฌ์ถ๋ ์์คํ ์ ์ด๊ณผ ๊ฐ์ ๋ ๋ ธ๋์์ ๊ณ์ ๊ณ ํต์ ๋ฐ๋ ๊ฒ๋ณด๋ค ํด๋น ํ๋ก๊ทธ๋จ์ด ์ฃฝ๊ณ ์ (๋ณด๊ทธ ํด๋ฌ์คํฐ)์ ๋ค๋ฅธ ๊ณณ์์ ๋ค์ ํ์ด๋๋ ๊ฒ์ ํจ์ฌ ์ ํธํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ํนํ ์์ ์ ์์ ์๊ฐ ๋ง์ ๊ฒฝ์ฐ ํ ์ผ ๋๊ธฐ ์๊ฐ์ด ์ค์ ๋ก ๋ฌธ์ ๊ฐ ๋ ์ ์์ต๋๋ค.
์ ๋ฅผ ์คํดํ์ง ๋ง์ญ์์ค. ์ด๊ฒ์ด ์ผ์ ์คํํ๋ ์ ์ผํ "์ฌ๋ฐ๋ฅธ"๋ฐฉ๋ฒ์ด๋ผ๊ณ ๋งํ๋ ๊ฒ์ด ์๋๋๋ค. ๋๋ ๋จ์ง ๋์์ธ์ ๋ค์ด๊ฐ ๊ฐ๋ฅํ ๊ทผ๊ฑฐ๋ฅผ ์ค๋ช ํ๋ ค๊ณ ๋ ธ๋ ฅํ ๋ฟ์ ๋๋ค.
๋ฉด์ฑ ์กฐํญ: ์ ๋ Borg๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ ๊ฐ์ ์ด๋ํ ์๋น์ค๋ฅผ ์คํํ ์ Google ์ง์์ด๋ฏ๋ก ์ ์๊ณ ์์ผ๋ฉฐ ๊ทธ ์ง์์ ๋๋ถ๋ถ Kubernetes๋ก ๋ณํ๋ฉ๋๋ค. ์ ๋ ํ์ฌ Google์ ์์๋์ด ์์ง ์์ผ๋ฉฐ ์ฌ๊ธฐ์ ์ฐ๋ ๋ชจ๋ ๋ด์ฉ์ ์ ์๊ฐ์ ๋๋ค.
@1e100 : "์ด VM" ํฌ๊ธฐ์ "์์ ์งํฉ" ํฌ๊ธฐ๋ฅผ
(์ ๋ ๋ํ ์ Google-SRE์ด๊ณ ์ด๋ฌํ ์ผ๋ฐ์ ์ธ Google ์ ํ๊ฐ k8์์๋ ์ค์์ ๋นํ์ฑํํ๋ ๊ฒ์ด ์ข์ต๋๋ค(๋๋ ์ฌ์ง์ด ๋ฐ๋์งํจ)๋ผ๋ ๊ฒฐ์ ์ ๊ฑฐ์ ํ์คํ๊ฒ ์ํฅ์ ๋ฏธ์ณค๋ค๋ ๋ฐ ๋์ํฉ๋๋ค. ์ฌ๋ฌ Google ํ์ด ์ค์์ ๋นํ์ฑํํด๋ ์ค์ํ์ด ๋นํ์ฑํ๋์ง ์๋๋ค๋ ํ์ต๊ณผ ๋ฉ๋ชจ๋ฆฌ์ ๋ํ "ํ๋"(oom-kill) ์ ํ์ ์ค๋ช ํ๋ ๋ฐ ๋ฐ๋ฅด๋ ์ด ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น - ์ด๊ฒ๋ค์ ์ ํํ ์ ๊ฐ k8๋ก ๊ฐ์ ํ๊ณ ์ถ์ ๊ฒ๋ค ์ค ์ผ๋ถ์ ๋๋ค. borg ๋ฆฌ์์ค ๋ชจ๋ธ์ด ์ฒ์ ์ค๊ณ๋์์ ๋๋ ์์์ง๋ง ์ง๊ธ์ ์ฌ์ฉํ ์ ์๋ cgroup/swap ์กฐ์ ๊ฐ๋ฅํ ๋ ธ๋ธ๊ฐ ๋ง์ด ์์ผ๋ฉฐ ๋ชฉ์๋ฌผ์ ์๊ธฐ๋ฅผ ๋์ง์ง ์๊ณ ๋ ์ํ๋ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์๋ค๊ณ ํ์ ํฉ๋๋ค. . ๋ํ Google ์ ์ถฉ์์ ๋ ๋์/์๋ ค์ง ์ต์ ์ ๊ฒฝ์ฐ(์ฆ, ์ค์๊ฐ ๋์)๋ฅผ ๋ฌ์ฑํ๊ธฐ ์ํด ํ๊ท ์ ์ผ๋ก ๋ ํจ์จ์ ์ด๋ฉฐ _์ข ์ข _ Google ์ธ๋ถ์์ ์ํ๋ ์ ํ์ด ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ๋ ์ ์ ์์ ํธ์คํธ, ๋ ์ํ๋ SLO, ๋ ๋ฎ์ ์์ฐ, ๋ ์ด์ ํ ์ ์ ed ๋ฐฐ์น ์์ , ์ปดํ์ผ๋์ง ์์ ํ ๋นํจ์จ์ ์ธ ์ธ์ด์ ๋ ๋ง์ ์ฌ์ฉ ๋ฑ)
์ต๋ช
๋ฉ๋ชจ๋ฆฌ์ ์ค์ํ์ ๋ฐ์ํ์ง ์์ต๋๋ค. ๋ฉ๋ชจ๋ฆฌ์ ๋งคํ๋ ๋ชจ๋ ๊ฒ(ํ๋ก๊ทธ๋จ ์ฝ๋ ๋ฐ ๋ฐ์ดํฐ ํฌํจ)์ ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ์ด ์๋ ๊ฒฝ์ฐ ์ฌ์ ํ ์ค์ํ ์ ์๊ณ ์ฌ์ ํ ์ค์๋ ๊ฒ์ด๋ฏ๋ก RAM ์ ํ์ด ๊ธฐ๋ณธ์ ์ผ๋ก ์๊ตฌ๋์ด์ผ ํ๋ค๊ณ ์ ์ํ ์ด์ ๋ ์ฒ์๋ถํฐ ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ์ด ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ ์ค์ด๊ธฐ ์ํด์์
๋๋ค. ๋ ์๊ฒฉํ ๋ณด์ฆ์ด ํ์ํ ์ํฌ๋ก๋์ ๊ฒฝ์ฐ mlockall()
๋ฐ ๋ฎ์ swappiness
๊ฐ๋ ์์ต๋๋ค.
์ด์ Google SRE๋ก์ ์ํ RAM ์ ํ์ ์ง์ ํ์ง ์๊ฑฐ๋ ์์ ์ด ๋ณ๋์ค๋ฝ๊ฒ ์ํ๋ ๋๋ก ๊ตํํ ์ ์๋๋ก ํ๋ ๊ฒ์ด ๋ฐ๋์๊ฐ ๋๊ณ ์ถ์ง ์๋ค๋ฉด ์ข์ ์ผ์ด๋ผ๊ณ ์ฃผ์ฅํ ์ ์์ต๋๋ค. ๋ฉ๋ชจ๋ฆฌ ๋งคํ๋ ํ์ผ์ ์ค์ํํ๋ ๊ฒ์ ์ถฉ๋ถํ ๋์ฉ๋๋ค. ๋ ๋ง์ ์ ์ฌ์ ์ธ ์ฑ๋ฅ ์ ๋ฒฝ์ ๋ฏน์ค์ ๋์ ํ๋ ๊ฒ์ ์ข์ง ์์ต๋๋ค.
์ด๋ฌํ ํ๊ฒฝ์ ์ค๊ณ์ ๊ณต์ ๋ ํ๊ฒฝ์ด๋ฉฐ ์๋ก์ด ํ๊ฒฝ์ ์ถ๊ฐํ๋ ๊ฒ์ด ์๋๋ผ ํ๋ก๊ทธ๋จ์ด ์๋ก์ ์ฑ๋ฅ์ ์์ธกํ ์ ์๋๋ก ๋ง๋๋ ๋ฐฉ๋ฒ์ ์ ๊ฑฐํ๋ ค๊ณ ํฉ๋๋ค. Google SRE๋ "ํฌ๋ง์ ์ ๋ต์ด ์๋๋๋ค"๋ผ๊ณ ๋งํฉ๋๋ค. ์ค์ ์ค๋์ฑ์ SSD๋ก ๊ต์ฒดํ๋๋ผ๋ Linux ์์คํ ์ ์์ ํ๊ณ ๋ณต๊ตฌ ๋ถ๊ฐ๋ฅํ๊ฒ ์ ๊ทธ๋ ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ ๋๋ค. ์์ญ ๊ฐ๋ ๊ณ ์ฌํ๊ณ ๋จธ์ ์์ ํ๋์ ์ํฌ๋ก๋๋ง ์คํํ๋ ๊ฒฝ์ฐ์๋ ์ข์ง ์์ต๋๋ค. ์ฐ๊ด๋ ์ค๋ฅ๋ ํ์คํฌ/ํฌ๋๊ฐ ๊ฑฐ์ ์๋ ์๊ท๋ชจ ํด๋ฌ์คํฐ์์ ํนํ ๊ณ ํต์ค๋ฌ์ธ ์ ์์ต๋๋ค.
์ํ๋ ๊ฒฝ์ฐ ์ค๋๋ ์๋ ์ค์ ํ์ธ์ ๋ฌด์ํ ์ ์์ง๋ง ์ด ๊ฒฝ์ฐ ๋ชจ๋ ๋ฒ ํ ์ด ์ทจ์๋๋ค๋ ๋ช ์์ ์ธ ์ดํด๊ฐ ์์ต๋๋ค.
์, ์ผ์ ์ ์ก๊ณ (์๋ํ์ง ์์) ์ค๋ฒ ์ปค๋ฐ์ ํผํ๊ธฐ ์ํด ์ฌ์ฉํ๋ "ํฌ๊ธฐ"๊ฐ ํ์ํ๋ค๋ ๋ฐ ์ ์ ์ผ๋ก ๋์ํฉ๋๋ค. ๋ํ Linux๊ฐ ๋ณต๊ตฌํ๋ ๋ฐ ์๊ฐ์ด ๊ฑธ๋ฆฌ๊ธฐ ๋๋ฌธ์ ๊ธ๋ก๋ฒ VM ์ค๋์๋ฅผ ํผํ๊ณ ์ถ์ต๋๋ค. ์ฐ๋ฆฌ๊ฐ ์ํ๋ ๊ฒ์ ์ปค๋์ด ์ต๋ช ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ต์ฒดํ๊ณ ๊ทธ ๋จ์ ๋ค๋ฅธ ์ฉ๋๋ก ์ฌ์ฌ์ฉํ๋ _๊ฐ๋ฅ_ํ๋ ๊ฒ์ ๋๋ค. ์ด๊ฒ์ด ์๋ฏธ๊ฐ ์๋ ๊ฒฝ์ฐ์๋ ๊ทธ๋ ๊ฒ ํ ์ ์๋ ์์คํ ๋ณด๋ค ์๊ฒฉํ๊ฒ ์ฐ์ํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด์์ ์ผ๋ก๋ ๊ฐ๋ณ ์ปจํ ์ด๋๊ฐ ๋จ/๋์คํฌ ํธ๋ ์ด๋์คํ๋ฅผ ๊ด๋ฆฌํ ์ ์๋๋ก ํ๊ณ ๋ค๋ฅธ ์ปจํ ์ด๋์ ๋ํ ์ํฅ์ ์ต์ํํ๋ฉด์ ์์ฒด ๋ฆฌ์์ค(๊ณผ๋ค/๊ณผ์ ํ ๋น) ์ ํ์ ๊ฒฐ๊ณผ์ ์ง๋ฉดํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
๋ด๊ฐ ์ด๊ฒ์ ๊ฐ์ง๊ณ ์ด๋๋ก ๊ฐ๊ณ ์๋์ง ๋ณด์ฌ์ฃผ๊ธฐ ์ํด ํ์ฌ์ ์คํธ๋ก์ฐ๋งจ ์ ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
limits.memory
์ํด ์ ๊ณต๋จ)๊ณผ ์ค์์ด ์๋ ๋จธ์ ์ ์๋ ๊ฒ์ฒ๋ผ ์๋ํ๋ค๋ ๊ฒ์
๋๋ค.requests.memory
๊ธฐ๋ฐ ์ผ์ , limits.memory
๊ธฐ๋ฐ ์ ํ ์ ์ฉ. ์ด ๊ฒฝ์ฐ "๋ฉ๋ชจ๋ฆฌ"๋ "๋จ"์ ์๋ฏธํฉ๋๋ค. ์ค์ ์ฌ์ฉ๋์ ๋ฌด๋ฃ์
๋๋ค.requests.memory
-> cgroup memory.low
(์ค๋ฒ์ปค๋ฐ ์์ธ์ ์ํด ์ถ์๋จ); k8s limits.memory
-> cgroup memory.high
.requests.memory
)๋ฅผ ํฌ๊ฒ ์ด๊ณผํ๋ฉด ์ค๋์ฑ๋ ์ ์์ต๋๋ค( limits.memory
์ด๊ณผํ๊ฑฐ๋ ํธ์คํธ์์ ์ฌ์ฉ ๊ฐ๋ฅํ ๋จ์ด ์ถฉ๋ถํ์ง ์์ ๊ฒฝ์ฐ). ๋ฆฌ์์ค ๋ฉ์ปค๋์ฆ์ ํตํด ์ด์ ๋ํด ๋ช
์์ ์ผ๋ก _ํ์ง ์์ต๋๋ค_. ์ปจํ
์ด๋๊ฐ ์ค์ ์ค๋ ์ฑ์ด๋ฉด ํ์ฑ/์ค๋น ์ํ ํ๋ก๋ธ ๊ฒ์ฌ์ ์คํจํ๊ณ ํด๋น ๋ฉ์ปค๋์ฆ์ ํตํด ์ข
๋ฃ๋ฉ๋๋ค(์: ๊ตฌ์ฑ๋ ์๋ต SLA๊ฐ ์๋ ๊ฒฝ์ฐ ์ค์ ์ค๋ ์ฑ์ ๊ด์ฐฎ์).์ต์ข
๊ฒฐ๊ณผ๋ ๊ด๋ฆฌ์๊ฐ ๊ฐ ์์คํ
์์ "์ถฉ๋ถํ" ์ค์์ ๊ตฌ์ฑํ ์ฑ
์์ด ์๋ค๋ ๊ฒ์
๋๋ค. ์์ฉ ํ๋ก๊ทธ๋จ ๊ตฌ์ฑํด์ผํฉ๋๋ค limits.memory
๊ทธ๋ค๋ ์ฌ์ฉํ ๋จ _max_๋ก, ๊ทธ๋ฆฌ๊ณ requests.memory
(๋ฑ, ์ปค๋ ๋ฒํผ ํฌํจ) ์๋ ๋ ์์
์ธํธ. ๋ค๋ฅธ ๋ฆฌ์์ค์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ณด์ฅ๋ qos ํด๋์ค(limit==request), burstable(limit undefined ๋๋ !=request), best-effort(์ ํ ๋๋ ์์ฒญ ์์)๊ฐ ๊ณ์ ์ ์ฉ๋ฉ๋๋ค. ํนํ ์ด๊ฒ์ ๋ฒ์คํธ ๊ฐ๋ฅํ ํ๋ก์ธ์ค๊ฐ ์๋ํ ์์
์ธํธ(ํฐ ์์ ๋ฒํผ ์์)์ ๊ฐ๊น๊ฒ ์ ์ธํ๋๋ก ์ฅ๋ คํ์ฌ ํจ์จ์ ์ธ ํ ๋น(์ด์์ ์ผ๋ก๋ ์์
์ธํธ์ ํ ๋น๋ ๋จ์ ์ ํํ 100%)์ ํ์ฉํ๊ณ ์ปจํ
์ด๋๊ฐ ์ด๋ฅผ ์ด๊ณผํ ๋ ์ํํ ์ฑ๋ฅ ์ ํ๋ฅผ ์ ๊ณตํฉ๋๋ค. CPU์ ๊ฐ์ ๋ค๋ฅธ "์ฉ์" ๋ฆฌ์์ค์ ๋ง์ฐฌ๊ฐ์ง๋ก.
๋๋ ์ด๊ฒ์ด Linux cgroups ๋ด์์ ๊ตฌํ ๊ฐ๋ฅํ๊ณ , ๊ฒฉ๋ฆฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ , ๋ค๋ฅธ k8s ๋ฆฌ์์ค์ ์ํด ์ค์ ๋ ๊ฐ๋ ์ ์ ๋ก๋ฅผ ๊ณ์ํ๊ณ , ์ค์์ด ๋นํ์ฑํ๋๋ฉด ๊ธฐ์กด ๋์์ผ๋ก ์ ํ๋๋ค๊ณ ์๊ฐํฉ๋๋ค(๋ง์ด๊ทธ๋ ์ด์ ์ ์ฝ๊ฒ ๋ง๋ญ๋๋ค). ๋ด๊ฐ ๊ฐ์ง๊ณ ์๋ ์ ์ผํ ์ง๋ฌธ์ ์ด๊ฒ์ด _์ด๋ฏธ_ ๊ตฌํ๋ ๊ฒ์ธ์ง ์ฌ๋ถ์ ๋๋ค("swapfs" kubelet ์ํํธ/ํ๋ ์ ํ ์ ์ธ) - ๊ตฌ์ฒด์ ์ธ ์ ์ ๋ฐ ์์ ํญ๋ชฉ์ ์์ฑํ๊ธฐ ์ ์ ์ค์ kubelet/CRI cgroups ์ฝ๋๋ฅผ ์ฝ์ด์ผ ํฉ๋๋ค. .
์์ ์๊ฒฌ/ํ ๋ก ์ ์๋ง๋ ์ด github ๋ฌธ์ ์์ ์ ์ ํ์ง ์์ ๊ฒ์ ๋๋ค(๊ทธ๊ฒ์ ๋น์ฝํ ํ ๋ก ํฌ๋ผ์ ๋๋ค). ์์ ๋ด์ฉ์ ์ฌ๊ฐํ ๋ฌธ์ ๊ฐ ์๋ ๊ฒฝ์ฐ k8s slack์ ๋ํ guslees์ ํผ๋๋ฐฑ์ ํ์ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์ ์ ํ ๋ฌธ์๋ฅผ ์์ฑํ๊ณ ์ด๋ ์์ ์์ ์ผ๋ฐ์ ์ธ ๋์์ธ ํ ๋ก ์ ์งํํ ๊ฒ์ ๋๋ค.
ํ ๋ก ์ ์ํ ๋ ๋์ ํฌ๋ผ์ ๊ฐ์ง ์ ์๋๋ก ๊ณต์ ๋ฌธ์๋ฅผ ์์ฑํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
๋์. ์ด์ ๋ํ ๋ช ๊ฐ์ง ํ์คํ ์์ด๋์ด๊ฐ ์๊ธฐ ๋๋ฌธ์ KEP๋ฅผ ์์ฑํ๋ ๋ฐ ๋์์ ๋๋ฆด ์ ์์ด ๊ธฐ์ฉ๋๋ค.
๊ทธ๋ฌ๋ ๋ํ ์ฌ๊ฐ ์๊ฐ์ Slack ์ฑ๋์ ๋ฐ๋ผ์ก์ ๋์ญํญ์ด ์์ต๋๋ค. ์ข ๋ ๋น๋๊ธฐ์ ์ธ ์กฐ์ ๋ฐฉ๋ฒ์ด ์๋ค๋ฉด ์๋ ค์ฃผ์ธ์.
๊ณ์ ์ ์งํ๊ธฐ ์ํด: ์ ๋ ์ฌ์ ํ KEP ๋ฐ/๋๋ ์ด๋ฅผ ์ํ ๊ตฌํ ์์ ์ ๋งค์ฐ ๊ด์ฌ์ด ์์ต๋๋ค. ์ผ๋จ ์ํฉ์ด ์์ ๋๋ฉด(๋ค์ ์ฃผ๋ง์ ์ํด ์ค๋นํ ์ํฌ์ต์ด ์์ต๋๋ค), Slack ์ฑ๋์ ์ฐธ์ฌํ๋ ค๊ณ ํฉ๋๋ค.
์๋ ํ์ธ์ ํ์ฌ ์งํ ์ค์ธ ์ด ๋ฌธ์ ์ ๋ํ ๊ณต๊ฐ ํ ๋ก ์ด ์์ต๋๊น? (k8s slack์ ํ์ฌ ๋ชจ๋ ์ฌ๋์๊ฒ ์ด๋ ค ์์ง ์์ผ๋ฉฐ ๋น๋ถ๊ฐ์ ๊ทธ๋ ์ง ์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.)
@leonaves ํ์ฌ AFAIK์์ ์งํ ์ค์ธ ์ฌ์ ์ ๋ํ ๋ ผ์๊ฐ ์์ต๋๋ค. @guslees ์ ๋ง์ง๋ง ๋๊ธ์ ํ ๋ก ์ ๋ง์ง๋ง์ ๋๋ค. kubernetes/enhancements repo์ ์ธ๋ถ ์ ๋ณด๊ฐ ํฌํจ๋ KEP๊ฐ ์์ด์ผ ์ผ์ ์์ํ๊ณ ๋ฉ์ผ๋ง ๋ฆฌ์คํธ ์ค๋ ๋๋ ์์ํ ์ ์์ต๋๋ค.
๊ณง ์ฌ๊ฐ์ฅ์ ์ํ ํฐ๋์ ๋๋ ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ด ์๊ฐ๋ฝ์ ๊ต์ฐจ.
์๊ณ ๋ณด๋ ์์ง ๋ค๋ฅธ Slack ์ฑ๋์ ๊ฐ์ ํ ์ ์ ์ ์ฌ์ ๊ฐ ์์ต๋๋ค. ๋๋ ์ฌ์ ํ ์ด๋ฉ์ผ์ ํตํด ์ด ๋ฌธ์ ์ ๋ํด ํ๋ ฅํ๋ ๊ฒ์ ์ฃผ์ ํ๊ณ ์์ต๋๋ค.
์ ๋ง๋ก ์ค์์ ์ํ๋ ์ฌ๋๋ค์ ์ํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋๋ค. ๋ง์ฝ ๋๋ผ๋ฉด
--fail-swap-on=false
kubelet ์์- ๋ ธ๋์ ์ค์ ์ถ๊ฐ
- ๋ฉ๋ชจ๋ฆฌ ์๊ตฌ ์ฌํญ์ ์ง์ ํ์ง _์์_ ์ปจํ ์ด๋๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ค์์ ํฌํจํ์ฌ ๋ชจ๋ ๋จธ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊ทธ๊ฒ ์ฐ๋ฆฌ๊ฐ ํ๋ ์ผ์ ๋๋ค. ๋๋ ์ ์ด๋ ๊ฐ์ธ์ ์ผ๋ก ์ค์ ๋ก ๊ตฌํํ์ง๋ ์์์ง๋ง ๊ทธ๊ฒ์ด ๋ด๊ฐ ์์งํ๋ ๊ฒ์ด๋ผ๊ณ ํ์ ํฉ๋๋ค.
์ด๊ฒ์ ์ปจํ ์ด๋ ์ค ์ด๋ ๊ฒ๋ ๋ช ์์ ๋ฉ๋ชจ๋ฆฌ ์๊ตฌ ์ฌํญ์ ์ง์ ํ์ง ์๋ ๊ฒฝ์ฐ์๋ง ์ค์ ๋ก ์คํ ๊ฐ๋ฅํ ์ ๋ต์ผ ์ ์์ต๋๋ค.
์ด ๋ฐฉ๋ฒ์ ๋ ์ด์ ์๋ํ์ง ์์ต๋๋ค!? ์ค์์ ์ผ๊ณ ๋ฉ๋ชจ๋ฆฌ ์ค์ ์์ด ํฌ๋๋ฅผ ๋ฐฐํฌํ๊ณ ์ด ์ปจํ ์ด๋๋ฅผ ์ป์์ต๋๋ค.
$ docker inspect <dockerID> | grep Memory
"Memory": 0,
"KernelMemory": 0,
"MemoryReservation": 0,
"MemorySwap": 0,
"MemorySwappiness": -1
MemorySwap์ "0"์ด๋ฉฐ, ์ด๋ ์ด ์ปจํ ์ด๋๊ฐ ์ค์์ ์ก์ธ์คํ ์ ์์์ ์๋ฏธํฉ๋๋ค.
90์ผ ๋์ ์ฌ์ฉํ์ง ์์ผ๋ฉด ๋ฌธ์ ๊ฐ ๋ถ์คํด์ง๋๋ค.
/remove-lifecycle stale
ํ์ฌ ๋ฌธ์ ๋ฅผ ์ต์ ์ผ๋ก ํ์ํฉ๋๋ค.
๋ถ์ค ๋ฌธ์ ๋ ์ถ๊ฐ๋ก 30์ผ ๋์ ์ฌ์ฉํ์ง ์์ผ๋ฉด ์ฉ๊ณ ๊ฒฐ๊ตญ ๋ซํ๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ์ง๊ธ ์ข
๋ฃํด๋ ์์ ํ๋ค๋ฉด /close
.
sig-testing, kubernetes/test-infra ๋ฐ/๋๋ fejta์ ํผ๋๋ฐฑ์ ๋ณด๋ด์ญ์์ค.
/์๋ช
์ฃผ๊ธฐ ๋ถ์ค
/remove-lifecycle ๋ถ์ค.
/remove-lifecycle ๋ถ์ค
์ด ๋ฌธ์ ์ ๋ ์๋ฅผ ์ํ ๋ ๋ค๋ฅธ ์ฐธ์กฐ๋ก ์ฌ๊ธฐ์์ ์ญ์ ํฉ๋๋ค: https://chrisdown.name/2018/01/02/in-defence-of-swap.html
90์ผ ๋์ ์ฌ์ฉํ์ง ์์ผ๋ฉด ๋ฌธ์ ๊ฐ ๋ถ์คํด์ง๋๋ค.
/remove-lifecycle stale
ํ์ฌ ๋ฌธ์ ๋ฅผ ์ต์ ์ผ๋ก ํ์ํฉ๋๋ค.
๋ถ์ค ๋ฌธ์ ๋ ์ถ๊ฐ๋ก 30์ผ ๋์ ์ฌ์ฉํ์ง ์์ผ๋ฉด ์ฉ๊ณ ๊ฒฐ๊ตญ ๋ซํ๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ์ง๊ธ ์ข
๋ฃํด๋ ์์ ํ๋ค๋ฉด /close
.
sig-testing, kubernetes/test-infra ๋ฐ/๋๋ fejta์ ํผ๋๋ฐฑ์ ๋ณด๋ด์ญ์์ค.
/์๋ช
์ฃผ๊ธฐ ๋ถ์ค
/remove-lifecycle ๋ถ์ค
์ด ๊ธฐ๋ฅ์ ์ผ๋ถ ์ฌ์ฉ ์ฌ๋ก์์ ์ค์ ๋ก ํ์ํฉ๋๋ค. ํ์ฌ ์ฐ๋ฆฌ๋ ๊ธฐ๊ณ ํ์ต์ ์ํด k8์ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ ๋๋ก๋ ๋ฉ๋ชจ๋ฆฌ์ ํฐ ๋ชจ๋ธ์ ๋ก๋ํด์ผ ํ๋ฉฐ(์ด ๊ฒฝ์ฐ ๋๋๋ก API ์์ฒญ๋น 500MB!) ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ํ๊ณ๋ก ์ธํด ์ฌ๊ฐํ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. ์ํ ํ์ฅ์ ๊ธฐ์ ์ ์ธ ๊ด์ ์์ ์๋ํ์ง๋ง ๋น์ฉ์ ์ฒ์ ๋ถ์ง๋ก ์น์์ ๊ฒ์ ๋๋ค. ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ต์ ์ผ๋ก ์๋ค๋ฉด ์ข์ ๊ฒ์ ๋๋ค.
์ด ํฐ์ผ์ด ๋ค์ ๋ก๋๋งต์ผ๋ก ๋์์ฌ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๊น?
mmap์ ๊ฒฝ์ฐ์ฒ๋ผ ๋ค๋ฆฝ๋๋ค.
์ ๋ ์ด ๊ธฐ๋ฅ์ ๊ด์ฌ์ด ๋ง์ต๋๋ค. ์ด์ ๋ํ ์์์ด ์์ต๋๊น?
๋๋ ์๊ฐ์ด ์์ ๋ ์ด๊ฒ์ ๋ํด ์กฐ์ฌ๋ฅผ ์์ํ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค. ์ง๊ธ ๋น์ฅ์ ๊ณต๊ธ์ด ๋ถ์กฑํ์ง๋ง, ๋ฌธ์ ๋ฅผ ๋์ฑ ์๋ฒฝํ๊ฒ ํน์ฑํํ ์ ์๋๋ก ๋ฌธ์ ๋ฅผ ์ ํ์ํค๋ ํ๋ ๊ฐ์ง ์ ์ ์ฌ๋ก๊ฐ ์์ผ๋ฉด ์ข์ ๊ฒ์ ๋๋ค. ์ค๋์ฑ์ ์์ํ๊ณ ๋ชจ๋ ๊ฒ์ด ์ง์ฅ์ผ๋ก ๊ฐ๋๋ค.") ๊ถ๊ทน์ ์ธ ์ ๊ทผ ๋ฐฉ์๊ณผ ์์ ์ฌํญ์ด ๊ฒ์ฆ๋์์ต๋๋ค.
๋ชจ๋ ์์ ์๋ฃจ์ ์ ์ค์์ ๋ณด์ ์ํฅ๋ ๊ณ ๋ คํด์ผ ํฉ๋๋ค. ์ด๊ฒ์ ๋ถ๋ช ํ ์ ๋์ค ํ๊ฒฝ์์ ์คํ๋๋ ๋ชจ๋ ๊ฒ์ ํด๋น๋์ง๋ง ์ฌ๋๋ค์ด ์ค์์ด ์๋ค๋ ์์ฌ ๋ณด์ฅ์ผ๋ก k8s ํฌ๋๋ฅผ ์คํํ๋ ๋ฐ ์ต์ํด์ง๊ณ ๋ฉ๋ชจ๋ฆฌ ๊ท์จ์ ๊ฒ์ผ๋ฅด๋ฉด ์ด๊ฒ์ด ํ์ฑํ๋๋ฉด ๊ฝค ๋ฌด๋กํ ๋๋ผ์์ด ๋ ์ ์์ต๋๋ค. ๊ธฐ๋ณธ.
๋ฌธ์ ๋ฅผ ์ ํ์์ผ ๋ณด๋ค ์๋ฒฝํ๊ฒ ํน์ฑํํ ์ ์๋ ํ์ค ์ฌ๋ก ํ๋ ๊ฐ๋ฅผ ๊ฐ๋ ๊ฒ์ด ์ข์ต๋๋ค.
๊ทธ๊ฒ์ KEP ์ฒ๋ผ ๋ค๋ฆฝ๋๋ค.
๋ชจ๋ ์์ ์๋ฃจ์ ์ ์ค์์ ๋ณด์ ์ํฅ๋ ๊ณ ๋ คํด์ผ ํฉ๋๋ค. ์ด๊ฒ์ ๋ถ๋ช ํ ์ ๋์ค ํ๊ฒฝ์์ ์คํ๋๋ ๋ชจ๋ ๊ฒ์ ํด๋น๋์ง๋ง ์ฌ๋๋ค์ด ์ค์์ด ์๋ค๋ ์์ฌ ๋ณด์ฅ์ผ๋ก k8s ํฌ๋๋ฅผ ์คํํ๋ ๋ฐ ์ต์ํด์ง๊ณ ๋ฉ๋ชจ๋ฆฌ ๊ท์จ์ ๊ฒ์ผ๋ฅด๋ฉด ์ด๊ฒ์ด ํ์ฑํ๋๋ฉด ๊ฝค ๋ฌด๋กํ ๋๋ผ์์ด ๋ ์ ์์ต๋๋ค. ๊ธฐ๋ณธ.
์ด ๋ ผ๋ฆฌ๋ Kubernetes ์ฌ์ฉ ์ฌ๋ถ์ ๊ด๊ณ์์ด ์ฌ๋ฌ ์ปจํ ์ด๋์์ ์คํ๋๋ ๋ชจ๋ ํ๋ก์ธ์ค์ ์ ์ฉ๋ฉ๋๋ค.
๋์! ๊ทธ๋ฌ๋ Docker๋ ์ด๋ฏธ ์ค์ ์คํ์ ๋ช ์์ ์ผ๋ก ์ง์ํฉ๋๋ค. Kubernetes๋ ๋ช ์์ ์ผ๋ก ๊ทธ๋ ์ง ์์ต๋๋ค(๊ฐ์ ๋ก ํ ์๋ ์์ง๋ง). ๋ด ์ฃผ์ฅ์ ๋ชจ๋ ์ฌ๋์ ์ํ ๋ชจ๋ธ์ด ์๋๊ธฐ ๋๋ฌธ์, ํนํ ์ด์ ์ ์ด์ ๋ํด ์๊ฐํ ํ์๊ฐ ์๋ ๊ฒฝ์ฐ์ ์ ์ด๋ ํธ์ถ๋์ด์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค.
๋ํ ์, @sftim ์ ๋๋ค. :-) ๋ด ๋ง์ ๋ด๊ฐ KEP๋ฅผ ์์ฑ/๊ธฐ๊ณ ํ๊ณ ์ถ๋ค๋ ๊ฒ์ ๋๋ค. ํ์ง๋ง ๋ชจํ์ ํ๊ธฐ ์ ์ ์ฃผ์ด์ง ํ ์คํธ ์์คํ ์์ ๋ฌธ์ ๋ฅผ ์์ ์ ์ผ๋ก ์คํํ๋ ์ต์ํ์ ํ ์คํธ ์ผ์ด์ค ํ๋ ๊ฐ๋ฅผ ๋ณด๊ณ ์ถ์ต๋๋ค. ์ฌ๋ฐ๋ฅธ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ์๋์ง ํ์ธํ ์ ์์ต๋๋ค.
@superdave ์ด๋ค ์ข ๋ฅ์ ํ ์คํธ ์ผ์ด์ค๋ฅผ ์ผ๋์ ๋๊ณ ๊ณ์ญ๋๊น?
๋ค์์ ๊ฐ๋จํ ํ ์คํธ์ ๋๋ค.
์ฌ๊ธฐ ๋ ํ๋:
kubeadm
๋ฅผ ๊ธฐ๋ณธ ์ต์
๊ณผ ํจ๊ป ์ฌ์ฉํ์ฌ ์ด๋ฌํ ๋จธ์ ์ Kubernetes ํด๋ฌ์คํฐ๋ก ๊ตฌ์ฑํด ๋ณด์ญ์์ค.kubeadm
์ด ์ฌ์ฉ ์ค์ธ ์ค์์ ๋ํด ๋ง์กฑํ์ง ์๋ ๊ฒ์ ๊ด์ฐฐํ์ญ์์ค.ํ์ฌ ๋๋ถ๋ถ์ ์กด๊ฒฝํ ๋งํ ํด๋ผ์ฐ๋ ํ๋ซํผ์์ SSD์ ๋ํ ์์ฒญ๋ ๋ณํ๊ฐ ์์ผ๋ฉฐ Linux๊ฐ ์ถ๊ฐ ์์ถ ๊ฐ๋ฅ์ฑ๊ณผ ํจ๊ป SSD https://lwn.net/Articles/704478/ ์์ ์ค์ํ์ ์ํ ์ ์ฉ ์ต์ ํ๋ฅผ ๊ณ ๋ คํ๋ฉด ์ด ์ํฉ์ ์ค์์ ๋ค์๊ณผ ๊ฐ์ด ํ์ฉํ ์ ์๋ ์์ ํ ์๋ก์ด ๊ธฐํ๋ฅผ ๋ง๋ญ๋๋ค. ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ ์ ์ถ๊ฐ RAM์ ๋ํ ์์ธก ๊ฐ๋ฅํ๊ณ ๋น ๋ฅธ ๋ฆฌ์์ค.
๋นํ์ฑํ๋ ์ค์์ I/O ๋ฒํผ์ ์ฌ์ฉ๋์ง ์๋ ๊ฒฝ์ฐ ์ฌ์ฉํ์ง ์์ RAM์ด ๋ญ๋น๋๋ ๊ฒ๊ณผ ๊ฐ์ ๋ฐฉ์์ผ๋ก ๋ญ๋น๋๋ ๋ฆฌ์์ค๊ฐ ๋ฉ๋๋ค.
@superdave
๋์! ๊ทธ๋ฌ๋ Docker๋ ์ด๋ฏธ ์ค์ ์คํ์ ๋ช ์์ ์ผ๋ก ์ง์ํฉ๋๋ค. Kubernetes๋ ๋ช ์์ ์ผ๋ก ๊ทธ๋ ์ง ์์ต๋๋ค(๊ฐ์ ๋ก ํ ์๋ ์์ง๋ง). ๋ด ์ฃผ์ฅ์ ๋ชจ๋ ์ฌ๋์ ์ํ ๋ชจ๋ธ์ด ์๋๊ธฐ ๋๋ฌธ์, ํนํ ์ด์ ์ ์ด์ ๋ํด ์๊ฐํ ํ์๊ฐ ์๋ ๊ฒฝ์ฐ์ ์ ์ด๋ ํธ์ถ๋์ด์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค.
์ด ๊ฒฝ์ฐ kubelet
์ด ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ mlock()
ํ๊ณ OOM ์ข
๋ฃ ์ฐ์ ์์๋ฅผ ๋ฎ๊ฒ ์ค์ ํ์ฌ ์ค์ ์์๋๊ฑฐ๋ OOM์ด ์ข
๋ฃ๋๋ ๊ฒ์ ๋ฐฉ์งํ๊ณ swapiness
๋ก cgroup์ ๋ชจ๋ ์ปจํ
์ด๋๋ฅผ ์คํํฉ๋๋ค. 0
๋ก ์ค์ ๋ฉ๋๋ค. ๋๊ตฐ๊ฐ๊ฐ ์์ ์ค์ํ์ ์ด์ ์ ์ป์ผ๋ ค๋ฉด ํฌ๋์ ํน์ ์ปจํ
์ด๋์ ๋ํด enableSwapiness: 50
์ ๊ฐ์ ์ต์
์ ์ฌ์ฉํ์ฌ ์ตํธ์ธํ ์ ์์ต๋๋ค.
๋๋ผ์์ด ์์ต๋๋ค. ๋ฐฐํฐ๋ฆฌ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
@sftim ์ด๋ a) Kubelet์ด ์ปจํ ์ด๋๋ฅผ ์์ฝํ๊ณ ์ถ์ง ์๊ณ b) Kubelet์ด ๊ธฐ๋ณธ์ ์ผ๋ก ์ค์์ ์ฌ์ฉํ์ฌ ์คํ๋์ง ์์์ ๋ณด์ฌ์ค๋๋ค. ๋ด๊ฐ ์ด๋ํ๋ ค๊ณ ํ๋ ๊ฒ์ @derekwaynecarr ์ ์ค๋ ๋ ์๋จ์ ์๋ ์ํฉ์ ๋๋ค.
์ค์ ์ง์์ ์ค์ํ์ง ์์ต๋๋ค. ๋ณด์ฅ๋ ํฌ๋๋ ์ค์์ด ํ์ํ์ง ์์ต๋๋ค. ๋ฒ์คํธ ๊ฐ๋ฅํ ํฌ๋๋ ์ค์ ์์ด ์์ฒญ์ ์ถฉ์กฑํด์ผ ํฉ๋๋ค. BestEffort ํฌ๋๋ ๋ณด์ฆํ์ง ์์ต๋๋ค. kubelet์ ํ์ฌ ์ฌ๊ธฐ์์ ํฌ๋ ์ ๋ฐ์ ๊ฑธ์ณ ์์ธก ๊ฐ๋ฅํ ์ ์ ํ ์์ ๋์์ ์ ๊ณตํ ์ ์๋ ์๋ฆฌํจ์ด ๋ถ์กฑํฉ๋๋ค.
์ฐ๋ฆฌ๋ ์ฌํด ์ด ๋ฆฌ์์ค ๊ด๋ฆฌ์์ ์ด ์ฃผ์ ๋ฅผ ์ง์ ๋๋ฉดํ์ฌ ๋ ผ์ํ์ต๋๋ค. ์ฐ๋ฆฌ๋ ์คํํ ์ ์๋ ์ด์ต์ ๋นํด ๋จ๊ธฐ๊ฐ์ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ํฐ ๊ด์ฌ์ด ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์๋ ฅ ๊ฐ์ง์ ๋ํ ์์ ์ฑ์ ๊ฐ์ ํ๊ณ ์ค์์ ๋ํ ์ต์ ํ๋ฅผ ์๋ํ๊ธฐ ์ ์ ๋๊ธฐ ์๊ฐ๊ณผ ๊ด๋ จ๋ ๋ฌธ์ ๋ฅผ ์ต์ ํํ๋ ๊ฒ์ ์ ํธํ์ง๋ง ์ด๊ฒ์ด ๊ทํ์๊ฒ ๋ ๋์ ์ฐ์ ์์๋ผ๋ฉด ๋์์ ๋๋ฆฌ๊ฒ ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ฐ๋ก ์๋ @matthiasr์์ :
์ฌ๊ธฐ์ ํ ๋ก ์ ๋ ๋ง์ ์ปจํ ์คํธ๊ฐ ์์ต๋๋ค. #7294 โ ์ฌ์ฉ ๊ฐ๋ฅํ ์ค์์ ๊ฐ๋ ๊ฒ์ ๋ฉ๋ชจ๋ฆฌ ์ ํ๊ณผ ๋งค์ฐ ์ด์ํ๊ณ ๋์ ์ํธ ์์ฉ์ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๋ฉ๋ชจ๋ฆฌ ์ ํ์ ๋๋ฌํ ์ปจํ ์ด๋๋ _๊ทธ๋ฌ๋ฉด_ ์ค์์ผ๋ก f4edaf2 ์ดํ๋ก ์์ ๋ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค. ์ค์์ด
๋ ๋ค ์ด๋ฏธ ๋ณธ ๋ฌธ์ ์ ๋ํ ์ข์ ๊ฒฌํด๋ฅผ ์ ๊ณตํ์ง๋ง ๋ฌธ์ ๋ฅผ ์ ํ์ํฌ ์ ์๋ ์๋ ค์ง ์ฌํ ๊ฐ๋ฅํ ์๋๋ฆฌ์ค๋ฅผ ํ์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋ด๊ฐ ์ง์ ์๊ฐํด๋ผ ์ ์์ง๋ง ๋ค๋ฅธ ์ฌ๋์ด ์ด๋ฏธ ๊ทธ๋ ๊ฒ ํ๋ค๋ฉด ์ฌ๋ฐ๋ช ํ์ง ์์๋ ๊ด์ฐฎ์ ๊ฒ์ ๋๋ค.
@superdave
๋์! ๊ทธ๋ฌ๋ Docker๋ ์ด๋ฏธ ์ค์ ์คํ์ ๋ช ์์ ์ผ๋ก ์ง์ํฉ๋๋ค. Kubernetes๋ ๋ช ์์ ์ผ๋ก ๊ทธ๋ ์ง ์์ต๋๋ค(๊ฐ์ ๋ก ํ ์๋ ์์ง๋ง). ๋ด ์ฃผ์ฅ์ ๋ชจ๋ ์ฌ๋์ ์ํ ๋ชจ๋ธ์ด ์๋๊ธฐ ๋๋ฌธ์, ํนํ ์ด์ ์ ์ด์ ๋ํด ์๊ฐํ ํ์๊ฐ ์๋ ๊ฒฝ์ฐ์ ์ ์ด๋ ํธ์ถ๋์ด์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค.
์ด ๊ฒฝ์ฐ
kubelet
์ด ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์mlock()
ํ๊ณ OOM ์ข ๋ฃ ์ฐ์ ์์๋ฅผ ๋ฎ๊ฒ ์ค์ ํ์ฌ ์ค์ ์์๋๊ฑฐ๋ OOM์ด ์ข ๋ฃ๋๋ ๊ฒ์ ๋ฐฉ์งํ๊ณswapiness
๋ก cgroup์ ๋ชจ๋ ์ปจํ ์ด๋๋ฅผ ์คํํฉ๋๋ค.0
๋ก ์ค์ ๋ฉ๋๋ค. ๋๊ตฐ๊ฐ๊ฐ ์์ ์ค์ํ์ ์ด์ ์ ์ป์ผ๋ ค๋ฉด ํฌ๋์ ํน์ ์ปจํ ์ด๋์ ๋ํดenableSwapiness: 50
์ ๊ฐ์ ์ต์ ์ ์ฌ์ฉํ์ฌ ์ตํธ์ธํ ์ ์์ต๋๋ค.
๋๋ผ์์ด ์์ต๋๋ค. ๋ฐฐํฐ๋ฆฌ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
๋๋ ์ฌ๊ธฐ ๋ชจ๋ ๊ฒ์ ๋์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ถ์พํ ๋๋ผ์์ ํผํ๊ธฐ ์ํด ํ์ฌ ๋์์ ๊ธฐ๋ณธ์ผ๋ก ํฉ๋๋ค.
๋ค์์ ์ด๋ค ์ด์ ๋ก ๋ฉ๋ชจ๋ฆฌ์ ๋ง์ ๋ถ๋ถ์ด ํ ๋น๋์์ง๋ง ๋ค์๋ ์ก์ธ์ค๋์ง ์๋ ๊ฐ๋จํ ์์ฉ ํ๋ก๊ทธ๋จ์ด ์ด๋ป๊ฒ ์๊ฒผ๋์ง์ ๋ํ ์์ ๋๋ค. ์ฌ์ฉ ๊ฐ๋ฅํ ๋ชจ๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ฑ์์ง๋ฉด ์์ฉ ํ๋ก๊ทธ๋จ์ด ์ค๋จ๋๊ฑฐ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฆฌ์์ค๋ฅผ ์ฐจ๋จํ๊ฑฐ๋ ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ ํฌ๋ฌ๋ฅผ ๊ฐ์ ์คํํ๋ ๋์๋ ๋ฃจํ์ ๋น ์ง๊ฒ ๋ฉ๋๋ค.
#include <iostream>
#include <vector>
#include <unistd.h>
int main() {
std::vector<int> data;
try
{
while(true) { data.resize(data.size() + 200); };
}
catch (const std::bad_alloc& ex)
{
std::cerr << "Now we filled up memory, so assume we never access that stuff again and just moved on, or we're stuck in an endless loop of some sort...";
while(true) { usleep(20000); };
}
return 0;
}
์ ๋ง๋ก ์ค์์ ์ํ๋ ์ฌ๋๋ค์ ์ํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋๋ค. ๋ง์ฝ ๋๋ผ๋ฉด
--fail-swap-on=false
kubelet ์์- ๋ ธ๋์ ์ค์ ์ถ๊ฐ
- ๋ฉ๋ชจ๋ฆฌ ์๊ตฌ ์ฌํญ์ ์ง์ ํ์ง _์์_ ์ปจํ ์ด๋๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ค์์ ํฌํจํ์ฌ ๋ชจ๋ ๋จธ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊ทธ๊ฒ ์ฐ๋ฆฌ๊ฐ ํ๋ ์ผ์ ๋๋ค. ๋๋ ์ ์ด๋ ๊ฐ์ธ์ ์ผ๋ก ์ค์ ๋ก ๊ตฌํํ์ง๋ ์์์ง๋ง ๊ทธ๊ฒ์ด ๋ด๊ฐ ์์งํ๋ ๊ฒ์ด๋ผ๊ณ ํ์ ํฉ๋๋ค.
์ด๊ฒ์ ์ปจํ ์ด๋ ์ค ์ด๋ ๊ฒ๋ ๋ช ์์ ๋ฉ๋ชจ๋ฆฌ ์๊ตฌ ์ฌํญ์ ์ง์ ํ์ง ์๋ ๊ฒฝ์ฐ์๋ง ์ค์ ๋ก ์คํ ๊ฐ๋ฅํ ์ ๋ต์ผ ์ ์์ต๋๋ค.
์๋ ํ์ธ์ @hjwp๋ , ์ ๋ณด ๊ฐ์ฌํฉ๋๋ค. ์ ๋ง ๋ง์ ๋์์ด ๋ฉ๋๋ค!
์ด ๋ค์์ ์ง๋ฌธํด๋ ๋ ๊น์?
๋น์ ์ด ๋งํ๋๋ก ๋ชจ๋ ๊ฒ์ ์ค์ ํ ํ ์ปจํ ์ด๋์ ์ค์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ์ ์ ํํ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๊น?
Docker์ --memory-swap
๋งค๊ฐ๋ณ์ ์ค์ ์ ๋ํด ์๊ฐํ๊ณ ์์์ต๋๋ค.
https://docs.docker.com/config/containers/resource_constraints/# --memory-swap-details
ํ์ฌ ๋ด ์ปจํ
์ด๋์๋ ์ค์ ์ฌ์ฉ๋์ ๋ํ ์ ํ์ด ์์ต๋๋ค( "MemorySwap": -1 ).
sudo docker inspect 482d70f73c7c | grep Memory
"Memory": 671088640,
"KernelMemory": 0,
"MemoryReservation": 0,
"MemorySwap": -1,
"MemorySwappiness": null,
๊ทธ๋ฌ๋ k8์์ ๋ ธ์ถ๋ ์ด ๋งค๊ฐ๋ณ์๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค.
๊ทธ๊ฑด ๊ทธ๋ ๊ณ , ํฌ๋ ๋ฉ๋ชจ๋ฆฌ์ ์ ํ ๋ ์ค์ ์ฌ์ฉ๋์ ์ ํํฉ๋๊น?
๋ด VM ๊ด๋ จ ์ค์
vm.overcommit_kbytes = 0
vm.overcommit_memory = 1
vm.overcommit_ratio = 50
vm.swappiness = 20
vm.vfs_cache_pressure = 1000
๊ฐ์ฌํฉ๋๋ค!
@pai911 ๊ทธ๊ฑด ๋ถ๊ฐ๋ฅํ ๊ฒ ๊ฐ์๋ฐ,
ํ์ฌ CRI๋ ์ด๋ฅผ ์ง์ํ์ง ์์ต๋๋ค. ์ด๊ฒ์ ์ฐธ์กฐํ์ญ์์ค. docker์๋ --memory-swap
์ ๊ฐ์ ์ต์
์ด ์์ต๋๋ค.
์ด๊ฒ์ CRI ์ ํ ์ฌํญ์ด์ง๋ง OCI ์ฌ์์ ์ด ์ต์ ์ ์ง์ํ์ง๋ง CRI ๋ ์ด์ด๋ก ๋ด๋ณด๋ด์ง๋ ์์ต๋๋ค.
๊ฐ๋ฅํ (์ด๋ก ์ ์ผ๋ก) ์๋ฃจ์ ์ค ํ๋๋ ๊ถํ ์๋ DaemonSet์ ์์ฑํ์ฌ ํฌ๋์์ ์ฃผ์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ๋ค์ DaemonSet๊ฐ cgroup ๊ฐ์ ์๋์ผ๋ก ํธ์งํ๋ ๊ฒ์ ๋๋ค.
cgroup
์๋ ํ์ธ์ @win-t ์ ๋๋ค.
ํผ๋๋ฐฑ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!
ํ์ฌ๋ก์๋ ์ด ์ต์ ์ด ๋ด๋ถ์ฉ์ผ๋ก๋ง ์ฌ์ฉ๋ฉ๋๊น?
์ด --memory-swap ์ต์ ์ ์ด๋ค cgroup ๊ฐ์ด ๋งคํ๋๋์ง ์๊ณ ์์ต๋๊น?
ํ์ฌ๋ก์๋ ์ด ์ต์ ์ด ๋ด๋ถ์ฉ์ผ๋ก๋ง ์ฌ์ฉ๋ฉ๋๊น?
์, k8์์ ๋ ธ์ถ๋์ง ์์ผ๋ฏ๋ก ์ด ์ต์ ์ ์ค์ ํ ์ ์์ต๋๋ค.
btw, docker inspect์ MemorySwap
๋ ์ด๊ฒ ์ ๋ฐ๋ผ Memory
์ ๋์ผํด์ผ ํฉ๋๋ค. docker inspect์์ -1
๋ฅผ ์ด๋ป๊ฒ ์ป์ ์ ์๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
์ด --memory-swap ์ต์ ์ ์ด๋ค cgroup ๊ฐ์ด ๋งคํ๋๋์ง ์๊ณ ์์ต๋๊น?
--memory
์ ๊ณ ์ ํ์๊ธฐ์ง๋ memory.limit_in_bytes
cgroup์ v1์์--memory-swap
์ ๊ณ ์ ํ์๊ธฐ์ง๋ memory.memsw.limit_in_bytes
cgroup์ v1์์@win- ์ ๋ง ๊ฐ์ฌํฉ๋๋ค!
๋๋ ๋ค์ ๋ฒ์ ์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค
Client Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.5", GitCommit:"20c265fef0741dd71a66480e35bd69f18351daea", GitTreeState:"clean", BuildDate:"2019-10-15T19:16:51Z", GoVersion:"go1.12.10", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.10", GitCommit:"1bea6c00a7055edef03f1d4bb58b773fa8917f11", GitTreeState:"clean", BuildDate:"2020-02-11T20:05:26Z", GoVersion:"go1.12.12", Compiler:"gc", Platform:"linux/amd64"}
๊ทธ๋ฆฌ๊ณ ๋๋ ์ญ์ฌ๋ฅผ ๋ณด์๋ค. ์ด ์ปค๋ฐ ์ ์์ ์ฌํญ์ด ์ถ๊ฐ ๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋ด๊ฐ ์คํํ๋ ๋ฒ์ ์ ํฌํจ๋์ด ์์ง ์์ ์ ์์ต๋๊น?
ํ์ฌ๋ก์๋ ์ด ์ต์ ์ด ๋ด๋ถ์ฉ์ผ๋ก๋ง ์ฌ์ฉ๋ฉ๋๊น?
์, k8์์ ๋ ธ์ถ๋์ง ์์ผ๋ฏ๋ก ์ด ์ต์ ์ ์ค์ ํ ์ ์์ต๋๋ค.
btw, docker inspect์
MemorySwap
๋ ์ด๊ฒ ์ ๋ฐ๋ผMemory
์ ๋์ผํด์ผ ํฉ๋๋ค. docker inspect์์-1
๋ฅผ ์ด๋ป๊ฒ ์ป์ ์ ์๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.์ด --memory-swap ์ต์ ์ ์ด๋ค cgroup ๊ฐ์ด ๋งคํ๋๋์ง ์๊ณ ์์ต๋๊น?
--memory
์ ๊ณ ์ ํ์๊ธฐ์ง๋memory.limit_in_bytes
cgroup์ v1์์--memory-swap
์ ๊ณ ์ ํ์๊ธฐ์ง๋memory.memsw.limit_in_bytes
cgroup์ v1์์
์ด์ํ๋ค.
๋๋ kops + Debian์ ์ฌ์ฉํ๊ณ ์์๊ณ Docker ๊ฒ์ฌ๋ ์ค์ ๋ฉ๋ชจ๋ฆฌ์ ์ ํ์ด ์์์ ๋ณด์ฌ์ค๋๋ค
(๋์ปค๋ ์ด์ ์ ๊ฒ์ํ ์ ๋ณด๋ฅผ ๊ฒ์ฌํฉ๋๋ค)
๊ทธ๋ฌ๋ Amazon Linux ์ด๋ฏธ์ง๋ก ์ ํํ๊ณ ์ด๊ฒ์ด ๋ด๊ฐ ์ป์ ๊ฒ์ ๋๋ค.
"Memory": 671088640,
"KernelMemory": 0,
"MemoryReservation": 0,
"MemorySwap": 671088640,
"MemorySwappiness": null,
์ข ๋ ์กฐ์ฌํด๋ณด๊ณ ์ด๊ฒ์ด ๋ฒ๊ทธ์ธ์ง ํ์ธํ๊ฒ ์ต๋๋ค
ํ์ฌ๋ก์๋ ์ด ์ต์ ์ด ๋ด๋ถ์ฉ์ผ๋ก๋ง ์ฌ์ฉ๋ฉ๋๊น?
์, k8์์ ๋ ธ์ถ๋์ง ์์ผ๋ฏ๋ก ์ด ์ต์ ์ ์ค์ ํ ์ ์์ต๋๋ค.
btw, docker inspect์MemorySwap
๋ ์ด๊ฒ ์ ๋ฐ๋ผMemory
์ ๋์ผํด์ผ ํฉ๋๋ค. docker inspect์์-1
๋ฅผ ์ด๋ป๊ฒ ์ป์ ์ ์๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.์ด --memory-swap ์ต์ ์ ์ด๋ค cgroup ๊ฐ์ด ๋งคํ๋๋์ง ์๊ณ ์์ต๋๊น?
--memory
์ ๊ณ ์ ํ์๊ธฐ์ง๋memory.limit_in_bytes
cgroup์ v1์์--memory-swap
์ ๊ณ ์ ํ์๊ธฐ์ง๋memory.memsw.limit_in_bytes
cgroup์ v1์์์ด์ํ๋ค.
๋๋ kops + Debian์ ์ฌ์ฉํ๊ณ ์์๊ณ Docker ๊ฒ์ฌ๋ ์ค์ ๋ฉ๋ชจ๋ฆฌ์ ์ ํ์ด ์์์ ๋ณด์ฌ์ค๋๋ค
(๋์ปค๋ ์ด์ ์ ๊ฒ์ํ ์ ๋ณด๋ฅผ ๊ฒ์ฌํฉ๋๋ค)๊ทธ๋ฌ๋ Amazon Linux ์ด๋ฏธ์ง๋ก ์ ํํ๊ณ ์ด๊ฒ์ด ๋ด๊ฐ ์ป์ ๊ฒ์ ๋๋ค.
"Memory": 671088640, "KernelMemory": 0, "MemoryReservation": 0, "MemorySwap": 671088640, "MemorySwappiness": null,
์ข ๋ ์กฐ์ฌํด๋ณด๊ณ ์ด๊ฒ์ด ๋ฒ๊ทธ์ธ์ง ํ์ธํ๊ฒ ์ต๋๋ค
์ด์ kops์ ๊ณต์ ๋ฐ๋น์ ์ด๋ฏธ์ง์ ์๋ ๋ฌธ์ ๋ฅผ ์ฌํํ ์ ์์ต๋๋ค.
์ด kops ๊ณต์ ์ด๋ฏธ์ง๋ ์ค์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ฌด์ ํ์ผ๋ก ๋ง๋๋ ๊ฒ ๊ฐ์ต๋๋ค
kope.io/k8s-1.15-debian-stretch-amd64-hvm-ebs-2020-01-17
๋ฒ์ ๋จ๊ณ:
๋ด kops ์ธ์คํด์ค ๊ทธ๋ฃน์ ๋ค์๊ณผ ๊ฐ์ด ์ ์๋ฉ๋๋ค.
apiVersion: kops.k8s.io/v1alpha2
kind: InstanceGroup
metadata:
creationTimestamp: "2020-03-12T06:33:09Z"
generation: 5
labels:
kops.k8s.io/cluster: solrcluster.k8s.local
name: node-2
spec:
additionalUserData:
- content: |
#!/bin/sh
sudo cp /etc/fstab /etc/fstab.bak
sudo mkfs -t ext4 /dev/nvme1n1
sudo mkdir /data
sudo mount /dev/nvme1n1 /data
echo '/dev/nvme1n1 /data ext4 defaults,nofail 0 2' | sudo tee -a /etc/fstab
sudo fallocate -l 2G /data/swapfile
sudo chmod 600 /data/swapfile
sudo mkswap /data/swapfile
sudo swapon /data/swapfile
echo '/data/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
sudo sysctl vm.swappiness=10
sudo sysctl vm.overcommit_memory=1
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
echo 'vm.overcommit_memory=1' | sudo tee -a /etc/sysctl.conf
name: myscript.sh
type: text/x-shellscript
image: kope.io/k8s-1.15-debian-stretch-amd64-hvm-ebs-2020-01-17
instanceProtection: true
kubelet:
failSwapOn: false
machineType: t3.micro
๋จ๊ณ:
ํด๋ฌ์คํฐ๊ฐ ๊ฐ๋๋๊ณ ์คํ๋ ํ.
๋ค์ ๋ฆฌ์์ค ์ค์ ์ผ๋ก Solr Helm ์ฐจํธ ๋ฅผ ๋ฐฐํฌํฉ๋๋ค.
resources:
limits:
cpu: "1"
memory: 640Mi
requests:
cpu: 100m
memory: 256Mi
** ๋ค๋ฅธ ๋ชจ๋ Pod๋ ์๋ํด์ผ ํฉ๋๋ค.
์ปจํ
์ด๋ ID๋ฅผ ์ฐพ๊ธฐ ์ํด ์ปจํ
์ด๋ ๋์ด
sudo docker container ls
์ปจํ
์ด๋์ ๋ฉ๋ชจ๋ฆฌ ๋งค๊ฐ๋ณ์ ๊ฒ์ฌ
sudo docker inspect d67a72bba427 | grep Memory
"Memory": 671088640,
"KernelMemory": 0,
"MemoryReservation": 0,
"MemorySwap": -1,
"MemorySwappiness": null,
๋ฌธ์ ๋ฅผ ์ด๋๊ฐ์ ์ ์ถํด์ผ ํฉ๋๊น? k8s ๋๋ kops?
๋จ๊ณ:
- ํด๋ฌ์คํฐ๊ฐ ๊ฐ๋๋๊ณ ์คํ๋ ํ.
- ๋ค์ ๋ฆฌ์์ค ์ค์ ์ผ๋ก Solr Helm ์ฐจํธ ๋ฅผ ๋ฐฐํฌํฉ๋๋ค.
resources: limits: cpu: "1" memory: 640Mi requests: cpu: 100m memory: 256Mi
** ๋ค๋ฅธ ๋ชจ๋ Pod๋ ์๋ํด์ผ ํฉ๋๋ค.
- ์ปจํ ์ด๋ ID๋ฅผ ์ฐพ๊ธฐ ์ํด ์ปจํ ์ด๋ ๋์ด
sudo docker container ls
- ์ปจํ ์ด๋์ ๋ฉ๋ชจ๋ฆฌ ๋งค๊ฐ๋ณ์ ๊ฒ์ฌ
sudo docker inspect d67a72bba427 | grep Memory
"Memory": 671088640, "KernelMemory": 0, "MemoryReservation": 0, "MemorySwap": -1, "MemorySwappiness": null,
๋ฌธ์ ๋ฅผ ์ด๋๊ฐ์ ์ ์ถํด์ผ ํฉ๋๊น? k8s ๋๋ kops?
Amazon Linux์์๋ง ์ฌ๋ฐ๋ฅธ ๋์์ ๋ณผ ์ ์์์ ํ์ธํ ์ ์์ต๋๋ค.
ami-0cbc6aae997c6538a
: amzn2-ami-hvm-2.0.20200304.0-x86_64-gp2
"Memory": 671088640,
"CpusetMems": "",
"KernelMemory": 0,
"MemoryReservation": 0,
"MemorySwap": 671088640,
"MemorySwappiness": null,
์ฆ: "MemorySwap" == "๋ฉ๋ชจ๋ฆฌ"
๋ค๋ฅธ ๋ ์ด๋ฏธ์ง๋ ๋ชจ๋ "MemorySwap": -1
๊ฐ์ ์ค์ ์ ์ฌ์ฉํ๋ฏ๋ก ๋ฌด์ ํ ์ค์ ์ฌ์ฉ์ด ๊ฐ๋ฅํฉ๋๋ค.
ami-075e61ad77b1269a7
: k8s-1.15-debian-stretch-amd64-hvm-ebs-2020-01-17ami-09a4a9ce71ff3f20b
: ์ฐ๋ถํฌ/์ด๋ฏธ์ง/hvm-ssd/์ฐ๋ถํฌ-๋ฐ์ด์ค๋-18.04-amd64-server-20200112๊ทธ๋์ k8์ ๋ฌธ์ ๊ฐ ์๋๊น?
์ฌ์ฉ์ ์คํ ๋ฆฌ:
(1) ๋ด ๊ณต๊ธ์ ์ฒด์์ ์ ๊ณตํ ํ๋ก๊ทธ๋จ์ ํ๋ก๊ทธ๋จ ์ฝ๋ ์์ค์ ๋ํ ์ก์ธ์ค๋ฅผ ์๋ฌดํํ๋ ์ธ์ด ๋ฐํ์์ ์ฌ์ฉํฉ๋๋ค. ์ด๋ก ์ธํด ์ด๊ธฐํ ์ ๋ชจ๋ ํ๋ก๊ทธ๋จ ์์ค ์ฝ๋๋ ๋ณ๋์ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ์ ๋ฆฌ๋ฉ๋๋ค. ํ๋ก๊ทธ๋จ์ด ์ด๊ธฐํ๋๊ณ ์ปจํ ์ด๋๊ฐ ์ค๋น ์ํ๊ฐ ๋๋ฉด ์ด ๋ฉ๋ชจ๋ฆฌ์ ์ก์ธ์คํ ์ ์์ต๋๋ค(์ด๋ฅผ ์ฆ๋ช ํ ์๋ ์์ง๋ง ๊ทธ๋ ์ง ์์ต๋๋ค). ๋ํ ํ๋ก๊ทธ๋จ์ ์ฌ์ฉ์ ์ง์ OOM ์ฒ๋ฆฌ๋ฅผ ์ํด ์์ฝํ ๋ช ํ์ด์ง๋ฅผ ํ ๋นํฉ๋๋ค. ์ด ๋ฉ๋ชจ๋ฆฌ๋ ๊ต์ฒดํ ์ ์์ต๋๋ค. ์ด "๋ฐ๋ ๋ฉ๋ชจ๋ฆฌ"๊ฐ ๋ค๋ฅธ ํด๋ฌ์คํฐ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ฐ์ด๋ด๋ ๊ฒ์ ์ํ์ง ์์ต๋๋ค. ๋๋ ์ฃฝ๊ฒ ๋ ๋ฉ๋ชจ๋ฆฌ์ ์์ ์ ํํ๊ฒ ๊ณ์ฐํ ์ ์๊ณ ๊ทธ๊ฒ์ Pod ์ฌ์์ ์ค์ ์์ฒญ์ผ๋ก ๋์ดํ ์ ์์ต๋๋ค.
(2) ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ๊ฐ์๊ธฐ ๋์ด๋๊ฑฐ๋ ์ค์ด๋ค ์ ์๋ ๊ธฐ๊ณ ํ์ต ๋๋ ๋ฐ์ดํฐ ๋ถ์ ์ํฌ๋ก๋๋ฅผ ์คํํ๊ณ ์์ต๋๋ค. ์ด๋ฌํ ์์ฉ ํ๋ก๊ทธ๋จ์ด ์ข ๋ฃ๋์ง ์๊ณ ๊ฒฐ๊ตญ ์ข ๋ฃ๋์ง ์๋ ํ ์๋๊ฐ ๋๋ ค์ ธ๋ ๊ด์ฐฎ์ต๋๋ค. ์ด๋ฌํ ๋ฉ๋ชจ๋ฆฌ ํ์ ์ด ๋ฐ์ํ ๋ ์ถ์ถ์ ์ํํ๊ธฐ ์ํด ์ค์์ผ๋ก ํด๋ฌ์คํฐ๋ฅผ ํ๋ก๋น์ ๋ํ๊ณ ์ถ์ต๋๋ค. ์ด๋ฌํ Pod๋ ๋ฉ๋ชจ๋ฆฌ ๋ฐ ์ค์์ ๋ํ ๋ฎ์ ์์ฒญ, ์ค๊ฐ ๋ฉ๋ชจ๋ฆฌ ์ ํ(๋ฒ ์ด์ค๋ผ์ธ + ํ๋์ ์์ ์ธํธ์ ์ถฉ๋ถํ ์ ์์) ๋ฐ ํฐ ์ค์ ์ ํ์ ๊ฐ์ต๋๋ค.
(3) ๋๋๋ก fork+exec๊ฐ ํ์ํ ์ธํฐํ๋ฆฌํฐ(์: Ruby on Rails)์์ ์น ์๋ฒ๋ฅผ ์คํํ๊ณ ์์ต๋๋ค. ์๊ฒฉํ ๋ฉ๋ชจ๋ฆฌ ๊ณ์ ์ ํ์ฉํ ์ ์๋ ํฌํฌ ์คํจ๋ฅผ ์ด๋ํฉ๋๋ค. ์ปค๋์ด fork์ exec ํธ์ถ ์ฌ์ด์ ํ๋ก์ธ์ค ๋์์ ์ฒ๋ฆฌํ๊ธฐ ์ํด ๋ณด์ฅ๋ ๋ฉ๋ชจ๋ฆฌ ํค๋๋ฃธ์ ๊ฐ๋๋ก ์ค์์ ํ๋ก๋น์ ๋ํ๊ณ ์ถ์ต๋๋ค. vm.swappiness ๊ฐ์ ์ค์ํ์ ๊ทน๋๋ก ์ต์ ํ๋๋ก ์ค์ ํ ์ ์์ผ๋ฉฐ ํ๋ก๋์ ์ค์ ์ค์์ด ์ค์ ๋ก ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ ์์ ์ ์๋ฆฌ๋๋ก ๊ฒฝ๊ณ ๋ฅผ ์ค์ ํ์ต๋๋ค. ํฌ๋ ์ฌ์์ ์ค์ ์์ฒญ์ ์ค์ ํ๊ณ ๋์ผํ ๊ฐ์ผ๋ก ์ ํํฉ๋๋ค.
์ต๊ทผ์ ์ฐ๋ฆฌ๋ ๋ชจ๋ ๋์ปค ๊ธฐ๋ฐ ์๋น์ค๋ฅผ Kubernetes๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๋ ค๊ณ ์๋ํ์ง๋ง ์ง์๋์ง ์๋ ์ค์์ผ๋ก ์ธํด ํ๋ก์ ํธ๋ฅผ ํฌ๊ธฐํด์ผ ํ์ต๋๋ค.
์ค์์ด ํ์ฑํ๋ ์ํ์์ ํ์ฌ ์คํ ์ค์ธ ๊ฒ๊ณผ ๋๊ฐ์ ์์ ์ปจํ ์ด๋๋ฅผ ์ง์ํ๋ ค๋ฉด ํ๋์จ์ด ์์ 3๋ฐฐ๋ฅผ ํ๋ก๋น์ ๋ํด์ผ ํ๋ค๋ ๊ฒ์ ์์์ต๋๋ค.
์ฃผ์ ๋ฌธ์ ๋ ์์ ๋ถํ๊ฐ ์ต๋ 1Gb ์ ๋์ ๋ฉ๋ชจ๋ฆฌ(๋๋ ์ค์)๋ฅผ ์ฌ์ฉํ ์ ์๋ ์ฌ๋ฌ ์ปจํ ์ด๋๋ก ๊ตฌ์ฑ๋์ด ์์ง๋ง ์ ์์ ์ผ๋ก ์๋ํ ๋ ์ผ๋ฐ์ ์ผ๋ก ์ฝ 50Mb ์ ๋๋ฅผ ์ฌ์ฉํ๋ค๋ ๊ฒ์ ๋๋ค.
์ค์์ ํ ์ ์๋ค๋ ๊ฒ์ ํฐ '์์ '์ ์ฒ๋ฆฌํด์ผ ํ ๋ ์ค์ ๋ธ๋ก์ ์ฌ์ฉํ ์ ์๋ ๋์ ์ฒ๋ฆฌํด์ผ ํ ์ ์๋ ๊ฐ๋ฅํ ๊ฐ์ฅ ํฐ ๋ก๋๋ฅผ ์ํด ๋ชจ๋ ๊ฒ์ ์ค๊ณํด์ผ ํ๋ค๋ ๊ฒ์ ์๋ฏธํ์ต๋๋ค.
์ฐ๋ฆฌ๋ ๊ฒฐ๊ตญ Kubernetes๋ก์ ๋ง์ด๊ทธ๋ ์ด์ ์ ํฌ๊ธฐํ๊ณ ์ค์์ด ํฅํ ์ง์๋ ๊ฒ์ด๋ผ๋ ํฌ๋ง์ผ๋ก ๋น๋ถ๊ฐ ๋ชจ๋ ๊ฒ์ Swarm์ผ๋ก ์ด๋ํ์ต๋๋ค.
์ฃผ์ ๋ฌธ์ ๋ ์์ ๋ถํ๊ฐ ์ต๋ 1Gb ์ ๋์ ๋ฉ๋ชจ๋ฆฌ(๋๋ ์ค์)๋ฅผ ์ฌ์ฉํ ์ ์๋ ์ฌ๋ฌ ์ปจํ ์ด๋๋ก ๊ตฌ์ฑ๋์ด ์์ง๋ง ์ ์์ ์ผ๋ก ์๋ํ ๋ ์ผ๋ฐ์ ์ผ๋ก ์ฝ 50Mb ์ ๋๋ฅผ ์ฌ์ฉํ๋ค๋ ๊ฒ์ ๋๋ค.
์ด๋ฌํ ์ปจํ ์ด๋์์ ์คํ๋๋ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ฏฟ์ ์ ์์ ์ ๋๋ก ์ ๋๋ก ์์ฑ๋์ง ์์๋ค๊ณ ๊ฐํ ๋งํ ์ ์์ต๋๋ค.
์ด๋ฌํ ์ปจํ ์ด๋์์ ์คํ๋๋ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ฏฟ์ ์ ์์ ์ ๋๋ก ์ ๋๋ก ์์ฑ๋์ง ์์๋ค๊ณ ๊ฐํ ๋งํ ์ ์์ต๋๋ค.
์ด๊ฒ์ ์ผ์ข ์ ๊ด๋ จ์ฑ์ด ์์ผ๋ฉฐ ์๊ฐ๋ฝ์ผ๋ก ๊ฐ๋ฆฌํค๋ ๊ฒ์ ๊ฑฐ์ ๊ฑด์ค์ ์ด์ง ์์ต๋๋ค. Kubernetes ์์ฝ์์คํ ์ ๊ด๋ฒ์ํ ์ ํ๋ฆฌ์ผ์ด์ ํ๋กํ์ ์ง์ํ๋๋ก ๊ตฌ์ถ๋์์ผ๋ฉฐ ์ด๋ฌํ ํ๋กํ ์ค ํ๋๋ฅผ ์ ํํ๋ ๊ฒ์ ์๋ฏธ๊ฐ ์์ต๋๋ค.
์ฃผ์ ๋ฌธ์ ๋ ์์ ๋ถํ๊ฐ ์ต๋ 1Gb ์ ๋์ ๋ฉ๋ชจ๋ฆฌ(๋๋ ์ค์)๋ฅผ ์ฌ์ฉํ ์ ์๋ ์ฌ๋ฌ ์ปจํ ์ด๋๋ก ๊ตฌ์ฑ๋์ด ์์ง๋ง ์ ์์ ์ผ๋ก ์๋ํ ๋ ์ผ๋ฐ์ ์ผ๋ก ์ฝ 50Mb ์ ๋๋ฅผ ์ฌ์ฉํ๋ค๋ ๊ฒ์ ๋๋ค.
์ด๋ฌํ ์ปจํ ์ด๋์์ ์คํ๋๋ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ฏฟ์ ์ ์์ ์ ๋๋ก ์ ๋๋ก ์์ฑ๋์ง ์์๋ค๊ณ ๊ฐํ ๋งํ ์ ์์ต๋๋ค.
lol, ์ด๊ฒ์ ์ปค๋ ๊ธฐ๋ฅ์ด๋ฉฐ ์์ฉ ํ๋ก๊ทธ๋จ์ shm ํ์ผ์์ madvise(2)
๋ฅผ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ madvise syscall์ ์ฐจ๋จํ์ง ์์ต๋๋ค.
๋ฐ๋ผ์ ์ฌ์ฉ์๊ฐ ๋์์ธ์์ ์ด ๊ธฐ๋ฅ์ ํ์ฉํ ์ ์์ผ๋ฏ๋ก "๋งค์ฐ ํํธ์์ด ์์ฑ๋์์ต๋๋ค"๋ผ๊ณ ๋งํ ์ ์์ต๋๋ค.
์ฃผ์ ๋ฌธ์ ๋ ์์ ๋ถํ๊ฐ ์ต๋ 1Gb ์ ๋์ ๋ฉ๋ชจ๋ฆฌ(๋๋ ์ค์)๋ฅผ ์ฌ์ฉํ ์ ์๋ ์ฌ๋ฌ ์ปจํ ์ด๋๋ก ๊ตฌ์ฑ๋์ด ์์ง๋ง ์ ์์ ์ผ๋ก ์๋ํ ๋ ์ผ๋ฐ์ ์ผ๋ก ์ฝ 50Mb ์ ๋๋ฅผ ์ฌ์ฉํ๋ค๋ ๊ฒ์ ๋๋ค.
์ด๋ฌํ ์ปจํ ์ด๋์์ ์คํ๋๋ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ฏฟ์ ์ ์์ ์ ๋๋ก ์ ๋๋ก ์์ฑ๋์ง ์์๋ค๊ณ ๊ฐํ ๋งํ ์ ์์ต๋๋ค.
๊ทํ์ ์๋ต์ ๋ง์ ๊ฐ๋ฐ์๊ฐ ์์ ํ๋ ์์ ๋ถํ๋ฅผ ์ดํดํ์ง ๋ชปํ๋ค๋ ๊ฒ์ ๋ํ๋ ๋๋ค.
๋ด๊ฐ ์ธ๊ธํ ์ํฌ๋ก๋๋ ์ฌ์ฉ์๊ฐ ์ ๊ณตํ๋ ๋ค์ํ ํฌ๊ธฐ์ ๋ฐ์ดํฐ ์ธํธ๋ฅผ ๋ค๋ฃจ๋ฏ๋ก ๊ด๋ฒ์ํ ๋ฆฌ์์ค ์๊ตฌ ์ฌํญ์ด ํ์ํฉ๋๋ค.
๋ฌผ๋ก ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ์ ์ผ๊ด๋๊ฒ ์ ์งํ๊ธฐ ์ํด ๋ฉ๋ชจ๋ฆฌ ๋งคํ๋ ํ์ผ์ _ํ ์ ์์ต๋๋ค_. ๊ทธ๋ฐ ๋ค์ ๋ฉ๋ชจ๋ฆฌ ๋งคํ ์์ฒด๋ฅผ ์ฌ์ฉํ๋๋ก ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ค์ ์์ฑํด์ผ ํฉ๋๋ค. ์ฌ๊ธฐ์๋ ๊ฑฐ์ ๋ชจ๋ ๊ธฐ์กด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํฌํจ๋ฉ๋๋ค.
๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๋ ๋ณธ์ง์ ์ผ๋ก ์ปค๋์์ ๊ด๋ฆฌํ๋ ๊ฒ๋ณด๋ค ์ฑ๋ฅ์ด ๋จ์ด์ง๋ ์ ํ๋ฆฌ์ผ์ด์ ํน์ ํ์ด์ง ํ์ผ์ ์์ฑํ์ ๊ฒ์ ๋๋ค.
์ ํจํ ์ฌ์ฉ ์ฌ๋ก๊ฐ ์์ต๋๋ค. kubeadm์ ํฌํจ๋ ์จํ๋ ๋ฏธ์ค ์ ํ์ธ Linux ๋ฐฐํฌํ์ ๊ฐ๋ฐ ์ค์ ๋๋ค. ์ค๊ณ์ ์ํ์ ํ์ฅ์ด ์์ต๋๋ค. ๊ธฐํ์ฃผ์์ ๋ฉ๋ชจ๋ฆฌ ํผํฌ์์ ์ด์๋จ๊ณ ์ฌ์ ํ ๊ธฐ๋ฅ(๊ทธ๋ฌ๋ ๋๋ฆผ) ํ๋ ค๋ฉด ํ์คํ swap ์ด ํ์ํฉ๋๋ค .
kubeadm
๋ฅผ ์ค์นํ๋ ค๋ฉด๋ค์ ๋ด์ฉ์ผ๋ก /etc/systemd/system/kubelet.service.d/20-allow-swap.conf
ํ์ผ์ ๋ง๋ญ๋๋ค.
[Service]
Environment="KUBELET_EXTRA_ARGS=--fail-swap-on=false"
์ด์
sudo systemctl daemon-reload
--ignore-preflight-errors=Swap
ํ๋๊ทธ๋ก kubeadm
์ด๊ธฐํ
kubeadm init --ignore-preflight-errors=Swap
์์งํ ์ํํธ์จ์ด ๊ฐ๋ฐ์๋ก์, ์๊ฐ์ ๋ฏผ๊ฐํ ์ํฌ๋ก๋๊ฐ ์๋ ์์คํ ํฌ๋๊ฐ ์ค์์ด ์๋ ๋์์ ์์ฒญํ๊ณ ๋ค๋ฅธ ์ํฌ๋ก๋(๊ธฐ๋ณธ์ ์ผ๋ก)๊ฐ ์ต์ ์ ๋ฒ์ฃผ๋ก ํธ์๋๋ ๊ฒ์ด ์๋ฒฝํ๊ฒ ํฉ๋ฆฌ์ ์ผ๋ก ๋ณด์ ๋๋ค. ๋ชจ๋ ๊ณ ๋ฏผ์ด ํด๊ฒฐ๋์ง ์์๊น์?
๋ด ์์ ์ ํ์์ ๋ฐ๋ผ ๋ง์ ์ฑ์ด ์บ์์ ์ด์ ์ ์ป์ต๋๋ค. ์ฆ, ์ฑ์ด ๊ฐ์๊ธฐ ๋ง์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ์๋ก ํ๋ ๊ฒฝ์ฐ ํด๋น ์ฑ์ด ์๋ก์ด ์ํฌ๋ก๋์ ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ์ ํ์ฉํ๋ ๊ฒ๋ณด๋ค ๋ ๋ฎ์ ๋ฉ๋ชจ๋ฆฌ ์๋ ฅ์ ๋ํ ์์ฒญ์ ์๋ตํ์ง ์๋ ๊ฒฝ์ฐ ๊ฐ์ฅ ์ค๋๋ ์บ์๋ฅผ ๋์คํฌ์ ํธ์ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ๋ก ๋ฒ์คํธ๋ฅผ ์ง์ํ๊ณ ๋กค๋ง ๋ฐฐํฌ๋ฅผ ์ํ ์ถ๊ฐ ๊ธฐ๋ฅ๊ณผ ์ ์ฌ์ ์ธ ๋ ธ๋ ์ค๋ฅ์ ๋ํ ์ถ๊ฐ ๊ธฐ๋ฅ.
@metatic ์ ๋ค์๊ณผ
๋ฌผ๋ก , ์ฐ๋ฆฌ๋ ์ผ๊ด์ฑ์๋ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ์ ์ ์งํ๊ธฐ ์ํด ๋ฉ๋ชจ๋ฆฌ ๋งคํ ๋ ํ์ผ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ๋ฉ๋ชจ๋ฆฌ ๋งคํ ์์ฒด๋ฅผ ์ฌ์ฉํ๋๋ก ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ค์ ์์ฑํด์ผ ํฉ๋๋ค. ์ฌ๊ธฐ์๋ ๊ฑฐ์ ๋ชจ๋ ๊ธฐ์กด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํฌํจ๋ฉ๋๋ค.
Linux ํ์ค C ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์๋ฅผ ๋์ฒดํ๋๋ก ์ค๊ณ๋์์ต๋๋ค. malloc
, realloc
๋ฐ free
๋ ํด๋น ๋ชฉ์ ์ ์ํด ํฌ์ธํฐ๋ฅผ ํตํด ํธ์ถ๋ฉ๋๋ค. ๋ฐ๋ผ์ mmapped ํ์ผ์์ ํ ๋นํ๋๋ก ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ ์ํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ LD_PRELOADํ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๋ ๋ณธ์ง์ ์ผ๋ก ์ปค๋์์ ๊ด๋ฆฌํ๋ ๊ฒ๋ณด๋ค ์ฑ๋ฅ์ด ๋จ์ด์ง๋ ์ ํ๋ฆฌ์ผ์ด์ ํน์ ํ์ด์ง ํ์ผ์ ์์ฑํ์ ๊ฒ์ ๋๋ค.
์ปค๋์์ ๋งค์ฐ ๋์ผํ ์ฝ๋๋ก ๊ด๋ฆฌ๋๊ธฐ ๋๋ฌธ์ ์ค์ ๋ก ์ ์์ ์ธ ์ค์๊ณผ ๋๊ฐ์ด ์ํ๋ฉ๋๋ค. ์ ์ผํ ์ฐจ์ด์ ์ ์ฐ์ ์์๋ฅผ ์กฐ์ ํ๊ธฐ ์ํ swappiness ๋งค๊ฐ๋ณ์๊ฐ ์๋ค๋ ๊ฒ์ ๋๋ค.
๋ด๊ฐ ๊ฐ์ง๊ณ ์๋ ์ ์ผํ ๊ณต๊ฐ ์ง๋ฌธ์ ์ด๊ฒ์ด ์ด๋ฏธ ๊ตฌํ๋ ๊ฒ์ธ์ง ์ฌ๋ถ์ ๋๋ค("swapfs" kubelet soft/hard ์ ํ ์ ์ธ) - ๊ตฌ์ฒด์ ์ธ ์ ์ ๋ฐ ์กฐ์น ํญ๋ชฉ์ ์์ฑํ๊ธฐ ์ ์ ์ค์ kubelet/CRI cgroups ์ฝ๋๋ฅผ ์ฝ์ด์ผ ํฉ๋๋ค. .
@์ต๊ฑฐ์ฌ๋ฆฌ์ค ,
ํ๋์ ํ์ธํ๊ธฐ ์ํด ์ฃผ๋ณ์ ๋๋ฌ๋ณธ ์ ์ด ์์ต๋๊น? ๊ทธ๋ ๋ค๋ฉด ํด์๋๋ ๋งํฌ๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๊น?
๊ฐ์ฌ ํด์,
1์
ํ๋์ ํ์ธํ๊ธฐ ์ํด ์ฃผ๋ณ์ ๋๋ฌ๋ณธ ์ ์ด ์์ต๋๊น? ๊ทธ๋ ๋ค๋ฉด ํด์๋๋ ๋งํฌ๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๊น?
๋๋ํ์ง ์์๋ค. (๋์ปค ์ฝ๋๋ฅผ ์กฐ๊ธ ํ๊ณ ๋ค์์ง๋ง ์ง๊ธ์ฏค์ด๋ฉด ๋ชจ๋ ๊ฒ์ ์์ด๋ฒ๋ ธ๊ณ ๋ค์ ์์ํด์ผ ํ ๊ฒ์ ๋๋ค)
๋ค๋ฅธ ์์๋ด์ฌ์๋ค๋ ํ์ํฉ๋๋ค! ๋ด๊ฐ ์ด ์ผ์ ํ๊ฒ ๋ค๊ณ ๋งํ๋ฉด์ ๋๊ตฐ๊ฐ์๊ฒ์ ์ฐ์๋ฅผ ํ์น์ง ์์์ผ๋ฉด ์ข๊ฒ ๋ค.
@metick ์ ์คํ ๋ฆฌ์ ์ถ๊ฐํ๋ ค๋ฉด:
ํ์ฌ Kubernetes์์ ์คํ๋๋ Gigalixir๋ฅผ ํธ์คํธ๋ก ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ์น์ฑ์ ๋๋ค. ๋๋ก๋ ํด๋ผ์ด์ธํธ๊ฐ ์ฌ์ง์ ์ผ๊ด ์ ๋ก๋ํ๋ฏ๋ก ๋ด ์ฑ์์ ์ฌ๋ฌ ImageMagick ํ๋ก์ธ์ค๋ฅผ ์คํํ์ฌ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํฉ๋๋ค. ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ๊ธ์ฆํ๊ณ OOM ํฌ๋ฌ๊ฐ ์คํ๋๊ณ ๋ด ์ฑ์ด ๋ค์ด๋๊ณ (์ ์) ์ ๋ก๋๊ฐ ์ค๋จ๋ฉ๋๋ค.
๋๋ ์คํ์ดํฌ ์ฌ์ฉ๋ ๋๋ฌธ์ Gigalixir์ ๋ด๊ฐ ํด์ผ ํ๋ ๊ฒ๋ณด๋ค ํจ์ฌ ๋ ๋ง์ ๋น์ฉ์ ์ง๋ถํด์ผ ํฉ๋๋ค. ๋ค๋ฅธ ์ฌ๋๋ค์ด ์ธ๊ธํ๋ฏ์ด.
๋์์ธ ๊ด์ ์์ ์ค์์ ์ข์ํ์ง ์์ ์๋ ์์ง๋ง ๊ทํ์ ๊ฒฐ์ ์ ์ฌ์ ๊ฐ๋ค์๊ฒ ๋น์ฉ์ ์ด๋ํ๊ณ ์์ต๋๋ค. ์ด๋ ๋ญ๋น์ ๋๋ค.
์์ ํ์ธ์. :)
์ด๊ฒ์ ์ ์๊ฒ๋ ๋งค์ฐ ํฐ ๋ฌธ์ ์
๋๋ค. ์ ์ฌ์ฉ ์ฌ๋ก์์๋ ๋๋ถ๋ถ ~100MB๋ฅผ ์ฌ์ฉํ๋ ํฌ๋๋ฅผ ์คํํด์ผ ํ์ง๋ง ๋๋๋ก ์ฌ์ฉ์๊ฐ ํน์ ์ด๋ฒคํธ๋ฅผ ํธ๋ฆฌ๊ฑฐํ๋ฉด ๋ค์ ๋๋กญ๋ฐฑํ๊ธฐ ์ ์ ๋ช ๋ถ ๋์ ์ต๋ 2GB์ RAM์ ๋ฒ์คํธํ ์ ์์ต๋๋ค. ์๋์, ์๋ชป ์์ฑ๋์๊ธฐ ๋๋ฌธ์ด ์๋๋ผ ์์
๋ถํ์ ํ์ค์
๋๋ค.)
์ ๋ ์ค์์ด ์๋ 16GB ์์คํ
์์ ํ ๋ฒ์ ๊ฑฐ์ 100๊ฐ์ ์ด๋ฌํ ์ํฌ๋ก๋๋ฅผ ์คํํฉ๋๋ค. ์ ํ ์๋ํ์ง ์๊ธฐ ๋๋ฌธ์ ํด๋น ์ํฌ๋ก๋๋ฅผ Kubernetes๋ก ์ด๋ํ ์ ์์ต๋๋ค. ๊ทธ๋์ ์ง๊ธ์ ๋ด ๋ฉ์ธ ์ฑ์ด Kubernetes์์ ์คํ๋๋ ๋์ ๋น-kubernetes ์์คํ
์์ ์ด๋ฌํ ์ํฌ๋ก๋๋ฅผ ์คํํ๋ ์์ฒด ์ค์ผ์คํธ๋ ์ดํฐ๊ฐ ์์ผ๋ฉฐ, ์ด๋ k8s๋ก์ ๋ง์ด๊ทธ๋ ์ด์
๋ชฉ์ ์ ๋ฌดํจํํฉ๋๋ค. ์ค์์ด ์์ผ๋ฉด ์ฑ์ด ์ข
๋ฃ๋๊ฑฐ๋ ์ฑ์ด ๋ฒ์คํธํ ์ ์๋(๋๋ ๊ทธ๋ ์ง ์์ ์ ์๋) ๋ช ๋ถ ๋์ ์ฌ์ฉ ๊ฐ๋ฅํ RAM์ ํญ์ ๋ง์ด ๋ญ๋นํด์ผ ํฉ๋๋ค.
ํฌ๋์ CPU๋ฅผ ์กฐ์ ํ๋ CPU ์ ํ์ ์ค์ ํ ์ ์๋ ๊ฒฝ์ฐ ํฌ๋์์ ์ฌ์ฉํ๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์กฐ์ ํ๋ ๋ฉ๋ชจ๋ฆฌ ์ ํ์ ์ค์ ํ ์ ์์ด์ผ ํฉ๋๋ค. ๋ฉ๋ชจ๋ฆฌ ์ ํ์ ๋๋ฌํ์ ๋ ํฌ๋๋ฅผ ์ฃฝ์ด๋ ๊ฒ์ ์ค์ ๋ CPU ์ ํ๋ณด๋ค ๋ ๋ง์ CPU ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ํ๋๋ฅผ ์ฃฝ์ด๋ ๊ฒ๋งํผ์ด๋ ํฐ๋ฌด๋ ์์ต๋๋ค(์ฃ์กํ์ง๋ง ๋ชจ๋ ํฌ๋๊ฐ ๊ฒฐ๊ณผ ์์ด ์ค๋จ๋ ์ ์๋ ๋ณต์ ๋ณธ์ ์๋๋๋ค).
Kubernetes๋ ์ ์ฒด ํด๋ฌ์คํฐ์ ์ ์ฒด ์ฑ๋ฅ์ ์ํฅ์ ์ค ์ ์๊ธฐ ๋๋ฌธ์ ๋
ธ๋์ ์ค์ ์ธํธ์ ํจ๊ป ์๋ํ ์ ์์ต๋๋ค. ์ด์์ ์ผ๋ก๋ ํฌ๋ ์์ฒด์ ํด๋น ์ปจํ
์ด๋ ๋ด์ ํ๋ก์ธ์ค๋ง ์ค์๋๋ ํฌ๋ ์์ค ์ค์ ํ์ผ์ด ์์ด์ผ ํฉ๋๋ค. ์ด๊ฒ์ ์ด๋ก ์ ์ผ๋ก CPU ์ ํ์ด ์ ํํ๋ ๊ฒ์ฒ๋ผ ๋ฉ๋ชจ๋ฆฌ ์ ํ์ ์ด๊ณผํ๋ ํฌ๋์ RAM ์ฌ์ฉ๋ ๋ฐ ์ฑ๋ฅ(์ค์ํ์ผ๋ก ์ธํด)์ ์ ํํฉ๋๋ค.
๋ถํํ๋ cgroup์ด ์ค์ ํ์ผ์ ์ง์ ํ ์ ์๋ ๊ฒ ๊ฐ์ง๋ ์๊ณ ์ค์ ์ํ๋ง ์ง์ ํ ์ ์์ผ๋ฉฐ ์ปค๋์ด "mem ์ฌ์ฉ๋์ด ์ด ํ๋๋ฅผ ์ด๊ณผํ๋ฉด ์ค์"ํ๋๋ก ์ง์ํ ์ ์์ต๋๋ค. ์ก์ธ์ค ๋ฐ ๊ธฐํ ์ธก์ ํญ๋ชฉ.
๊ทธ๋ฌ๋ ๊ทธ ๋์ ๋ ธ๋์ ์ค์์ด ์กด์ฌํ์ง ์๋๋ก ํ๊ณ ์ ํ์ด ์ค์ ๋์ง ์์ ํฌ๋์ ๋ํด swappiness๋ฅผ 0์ผ๋ก ์ค์ ํ๊ณ ์ ํ์ด ์ค์ ๋๋ฉด(๋๋ "swapInsteadOfKill"์ด๋ผ๊ณ ๋งํ๋ ์ผ๋ถ ๋ค๋ฅธ ์ฌ์ ํ๋) ๋ค์์ ์ค์ ํฉ๋๋ค. 0์ด ์๋ ๊ฐ์ผ๋ก์ ์ค์ ๊ฐ๋ฅ์ฑ?
"์ค์ ์ฌ๋ถ"์ ๋ํ ๋ ผ์ ์ธ์๋ @pai911 ์ด ์ค๋ช ํ ๋์์ด k8 ํ์์ ๋ ์ด์ ํด๊ฒฐ๋์ง
kubelet์ด docker ๋ฐ๋ชฌ ๋ฉ๋ชจ๋ฆฌ ์ค์ ๊ณผ ๊ด๋ จํ์ฌ ๋ค๋ฅด๊ฒ ๋์ํ๋ ๊ฒ(๊ทธ๋ฆฌ๊ณ ์์์ ์ธ๊ธํ ์ฝ๋๋ฅผ ๋ฐ๋ฅด์ง ์๋ ์ผ๋ถ OS์์)์ ํ์ธํ ์ ์์ต๋๋ค. ์ฐ๋ฆฌ ํด๋ฌ์คํฐ๋ SUSE Linux์์ ์คํ๋๋ฉฐ https://github.com/kubernetes/kubernetes/issues/53533#issuecomment -598056151์์ ์ธ๊ธํ ๊ฒ๊ณผ ๋์ผํ ๋ฌด์ ํ ์ค์ ์ฌ์ฉ์ ๊ฒฝํํ๊ณ ์์ต๋๋ค.
OS ์ธ๋ถ ์ ๋ณด: SUSE Linux Enterprise Server 12 SP4
- Linux 4.12.14-95.45-default
์ด์จ๋ k8s์์ Swap์ ๋ํ ์ ์ ํ ์ง์์ด ์์ผ๋ฉด ๊ธฐ๋ณธ OS์ ๊ด๊ณ์์ด kubelet์ด Docker ๋ฉ๋ชจ๋ฆฌ ์ค์ ์ ์ผ๊ด๋๊ฒ ์ฒ๋ฆฌํ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
๋๋ 1.21์์ ์ด๊ฒ์ ์ถ์งํ๋ ๋ฐ ๋์์ด ๋๋ ์ปค๋ฎค๋ํฐ์ ์๊ตฌ๋ ์์ ๋ด์ฌ์๊ฐ ์๋์ง ํ์ธํ๊ธฐ ์ํด ์์ ์ ์ค์์ ์ค์ ํ์ต๋๋ค. 2017๋ ์ ์ธ๊ธํ๋ฏ์ด ์ค์์ ์ง์ํ๋ ๋ฐ ์ด์๊ฐ ์์ต๋๋ค. kubelet ์ ๊ฑฐ, ํฌ๋ ์ฐ์ ์์, ํฌ๋ ์๋น์ค ํ์ง์ ํผ๋ํ์ง ์๋๋ก ํด์ผ ํ๋ฉฐ, ์ค์ํ๊ฒ๋ ํฌ๋๊ฐ ์ค์์ ํ์ฉํ๋์ง ์ฌ๋ถ๋ฅผ ๋งํ ์ ์์ด์ผ ํฉ๋๋ค. ์ด๋ฌํ ๋ชจ๋ ์ฌํญ์ ํฌ๋๋ฅผ ํด๋ํ ์ ์๋๋ก ํ๋ ๋ฐ ์ค์ํฉ๋๋ค.
์ต๊ทผ์๋ NUMA ์ ๋ ฌ ๋ฉ๋ชจ๋ฆฌ์ ๊ฐ์ ์์ ์ ๋ง๋๋ ๋ฐ ๋ง์ ์๋์ง๊ฐ ์ง์ค๋์ด ์์ง๋ง ์ฑ๋ฅ์ ๋ ๋ฏผ๊ฐํ๊ณ ์ด ๊ณต๊ฐ์ ์์ผ๋ก ๋์๊ฐ๋ ๋ฐ ๋์์ด ๋๋๋ก ๋๊ธฐ๋ฅผ ๋ถ์ฌํ๋ ์ฌ๋๋ค์ด ์๋ค๋ฉด ์ค๊ณ๋ฅผ ์์ํ๋ ๋ฐ ๋์์ด ๋์์ผ๋ฉด ํฉ๋๋ค. ์ด ๊ณต๊ฐ์์ ์์ธํ KEP.
์ต๊ทผ์ ์ผ์ด ๋๋ฌด ๋ฐ๋น ์ ์ปค๋ฎค๋ํฐ ํ๋ก์ธ์ค๋ฅผ ๋์ฐํ๊ฒ ์ ๋ฐ๋ผ๊ฐ์ง ๋ชปํ์ต๋๋ค. Slack ์ฑ๋์ ๊ฐ์ ํ์ง ์๊ณ ๋ ์ฐธ์ฌํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์ต๋๊น?
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๊ธฐ๋ณธ์ ์ผ๋ก ์ค์์ ์ง์ํ์ง ์์ต๋๊น? ์ด ๋ง์ ๋ฃ๊ณ ๋๋์ต๋๋ค. Kubernetes๊ฐ ์ ์ฑ๊ธฐ๋ฅผ ๋ง์ดํ ์ค๋น๊ฐ ๋์๋ค๊ณ ์๊ฐํ๋์? ์ค์์ ๊ทธ ๊ธฐ๋ฅ ์ค ํ๋์ ๋๋ค.
์ด๊ฒ์ ๋๋ถ๋ถ์ ๊ฐ๋ฐฉํ ์ฌ์ฉ ์ฌ๋ก์์ ์ค์ ๋ก ์ ํ ์ฌํญ์ด ์๋๋๋ค. VMM์ด ๋นํ์ฑ ํ์ด์ง๋ฅผ ์ ํํ๋ฉด์ Unix ์์ฝ์์คํ ์ด ์คํ๋๋๋ก ์ค๊ณ๋ ๋ฐฉ์์ ๋๋ค.
์ค์์ด ์๊ฑฐ๋ ๋ฉ๋ชจ๋ฆฌ ์ ํ์ด ์๋ ์ ํ์ด ์๋ ๊ฒฝ์ฐ์๋ ์ธ์ ๋ ์ง ์ค์์ ์ ์งํ๊ณ ํ์ด์ง์ ์์ํ ๋ ๋ ๋ง์ ํธ์คํธ๋ฅผ ์คํ์ ํ์ฌ ๋น์ฉ์ ์ ์ฝํ ๊ฒ์ ๋๋ค.
๋๊ตฐ๊ฐ ๋ช ํํ ํ ์ ์์ต๋๊น? ๋ฉ๋ชจ๋ฆฌ ์ ๊ฑฐ ๋ฌธ์ ๋ ํฌ๋ ์ ์์์ ๋ฉ๋ชจ๋ฆฌ ์ ํ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ง ๋ฌธ์ ์ด์ง๋ง ๊ทธ๋ ์ง ์์ผ๋ฉด ๊ด์ฐฎ์ต๋๊น?
์์ฉ ํ๋ก๊ทธ๋จ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์๋ํ๋ ๋ฐฉ์์ ์ ์ดํ ์ ์๋ ํ๊ฒฝ์์ ์์ ํ๋ ๊ฒ์ด ์ข์ผ๋ฏ๋ก ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ๋ฎ์ ๊ฑฑ์ ํ ํ์๊ฐ ์์ง๋ง ๋๋ถ๋ถ์ ์์ฉ ํ๋ก๊ทธ๋จ์๋ ๋นํ์ฑ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ๋ง์ด ์์ต๋๋ค.
์์งํ ๋งํด์ ์ต๊ทผ ์ค์ ์์ด ์๋ฒ๋ฅผ ์คํํ๋ ค๋ ์ด๋ฌํ ์์ง์์ 40๋ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ์ค๊ณ๋ฅผ ๋ฌด์ํ๋ฉด์ ์ฌ๋๋ค์ ๋ ํฐ ๋ฉ๋ชจ๋ฆฌ ์ธ์คํด์ค๋ก ๊ฐ์ ํ๋ ค๋ PaaS ์ ๊ณต์ ์ฒด์ ์ํด ์ฃผ๋๋์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ค์ ๋ก ์ปค๋์ ์ด๋ค ๋ฉ๋ชจ๋ฆฌ ํ์ด์ง๊ฐ ํ์ฑ ์ํ์ธ์ง ์๋์ง๋ฅผ ์๋ ๋ฐ ๋งค์ฐ ๋ฅ์ํฉ๋๋ค.