24์ XNUMX์ผ, Kubernetes ๊ณ ๊ธ ์ง์ค ๊ณผ์ ์ธ Slurm Mega๊ฐ ์ข
๋ฃ๋์์ต๋๋ค.
Slurm Mega์ ์์ด๋์ด: ํด๋ฌ์คํฐ ๋ด๋ถ๋ฅผ ์ดํด๋ณด๊ณ , ํ๋ก๋์ ์ฉ ํด๋ฌ์คํฐ ์ค์น ๋ฐ ๊ตฌ์ฑ์ ๋ณต์ก์ฑ์ ์ด๋ก ์ ์ผ๋ก ๋ถ์ํ๊ณ ์ค์ตํ๋ฉฐ("๊ทธ๋ฆฌ ์ฝ์ง ์์ ๋ฐฉ๋ฒ"), ๋ฉ์ปค๋์ฆ์ ๊ณ ๋ คํฉ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณด์ ๋ฐ ๋ด๊ฒฐํจ์ฑ์ ๋ณด์ฅํฉ๋๋ค.
๋ฉ๊ฐ ๋ณด๋์ค: Slurm Basic ๋ฐ Slurm Mega์ ํฉ๊ฒฉํ ์ฌ๋์ ์ํ์ ํฉ๊ฒฉํ๋ ๋ฐ ํ์ํ ๋ชจ๋ ์ง์์ ๋ฐ์ต๋๋ค.
์ฐ์ต์ฉ ํด๋ผ์ฐ๋๋ฅผ ์ ๊ณตํ Selectel์๊ฒ ํน๋ณํ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ๋๋ถ์ ๊ฐ ์ฐธ๊ฐ์๋ ์์ ์ ๋ณธ๊ฒฉ์ ์ธ ํด๋ฌ์คํฐ์์ ์์ ํ์ผ๋ฉฐ ์ด๋ฅผ ์ํด ํฐ์ผ ๊ฐ๊ฒฉ์ 5๋ฌ๋ฌ๋ฅผ ์ถ๊ฐ๋ก ์ถ๊ฐํ ํ์๊ฐ ์์์ต๋๋ค.
์ฌ๋ผ ๋ฉ๊ฐ. ์ฒซ๋ .
Slurm Mega์ ์ฒซ๋ , ์ฐ๋ฆฌ๋ ์ฐธ๊ฐ์๋ค์๊ฒ 4๊ฐ์ง ์ฃผ์ ๋ฅผ ์ ์ํ์ต๋๋ค. Pavel Selivanov๋ ๋ด๋ถ์์ ์ฅ์ ์กฐ์น ํด๋ฌ์คํฐ๋ฅผ ์์ฑํ๋ ํ๋ก์ธ์ค, Kubeadm์ ์์ , ํด๋ฌ์คํฐ ํ ์คํธ ๋ฐ ๋ฌธ์ ํด๊ฒฐ์ ๋ํด ์ด์ผ๊ธฐํ์ต๋๋ค.
์ฒซ ๋ฒ์งธ ์ปคํผ ๋ธ๋ ์ดํฌ. ๋ณดํต์ '์ ์๋ ์ข '์ด์ง๋ง, Slurm์์๋ ํ์๋ค์ด ์ปคํผ๋ฅผ ๋ง์๋ ๋์์๋ ์ ์๋๋ค์ด ๊ณ์ํด์ ์ง๋ฌธ์ ๋ตํด ์ฃผ์ญ๋๋ค.
๊ทธ๋ฆฌ๊ณ "Break II" ๊ตฌ๋ฆ์ด Pavel Selivanov์ ๋จธ๋ฆฌ ์์ ๋ ์๋ค๋ ์ฌ์ค์๋ ๋ถ๊ตฌํ๊ณ ํด์์ ์ทจํ๋ ๊ฒ์ ๊ทธ์ ์ด๋ช
์ด ์๋๋๋ค.
Sergei Bondarev์ Marcel Ibraev๋ ๊ฐ๋จ์ผ๋ก ๊ฐ ์ฐจ๋ก๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ต๋๋ค.
ํด์ ์๊ฐ ๋์ ์ ๋ Sergey Bondarev์๊ฒ ์ ๊ทผํ์ฌ "๊ณ ๊ฐ ํด๋ฌ์คํฐ ์์ ๊ฒฝํ์ ๋ฐํ์ผ๋ก ๋ชจ๋ Kubernetes ์์ง๋์ด์๊ฒ ์ด๋ค ์กฐ์ธ์ ํ์๊ฒ ์ต๋๊น?"๋ผ๊ณ ๋ฌผ์์ต๋๋ค.
Sergey๋ ๋ค์๊ณผ ๊ฐ์ด ๊ฐ๋จํ ์ถ์ฒ์ ํ์ต๋๋ค.์ธํฐ๋ท์์ API ์๋ฒ๋ก์ ์ก์ธ์ค๋ฅผ ์ฐจ๋จํฉ๋๋ค. ๋๋๋ก ๊ถํ์ด ์๋ ์ฌ์ฉ์๊ฐ ํด๋ฌ์คํฐ์ ์ก์ธ์คํ ์ ์๋๋ก ํ์ฉํ๋ ๋ณด์ ์ํ์ด ์๊ธฐ ๋๋ฌธ์ ๋๋ค.ยป
๋ช ๋ถ ํ ์์ ํ ๋ณ์ ๋ง์ ํ Pavel Selivanov๋ "์ธ๋ถ ๊ณต๊ธ์๋ฅผ ์ฌ์ฉํ์ฌ ํด๋ฌ์คํฐ์์ ์ธ์ฆ", ์ฆ LDAP(Nginx + Python) ๋ฐ OIDC(Dex + Gangway)๋ผ๋ ์ฃผ์ ์ ๊ทธ๋ฆผ์์ ํจ๊ป ์ ํฌ์ ๋์ ํ์ต๋๋ค.
๋ค์ ํด์ ์๊ฐ ๋์ Slurm ๊ฐ์ฐ์์ด์ ๊ณต์ธ Kubernetes ๊ด๋ฆฌ์์ธ Marcel Ibraev๋ Kubernetes ์์ง๋์ด๋ค์๊ฒ ๋ค์๊ณผ ๊ฐ์ ์กฐ์ธ์ ํ์ต๋๋ค.๊ฒ์ผ๋ก๋ ์ฌ์ํด ๋ณด์ด์ง๋ง ์ด๋ฐ ์ผ์ด ์์ฃผ ๋ฐ์ํ๋ ๊ฒ์ ์๊ฐํ๋ฉด ๋ชจ๋ ์ฌ๋์ด ์ด๊ฒ์ ๊ณ ๋ คํ์ง๋ ์๋๋ค๋ ์์ฌ์ด ๋ญ๋๋ค. ์ด ์๋ฃจ์ ์ด๋ ์ ์๋ฃจ์ ์ด ์ผ๋ง๋ ํจ๊ณผ์ ์ธ์ง ์๋ ค์ฃผ๋ ์ธํฐ๋ท์ ๋ฐฉ๋ฒ์ ๋งน๋ชฉ์ ์ผ๋ก ๋ฏฟ์ด์๋ ์๋ฉ๋๋ค. Kubernetes์ ๋งฅ๋ฝ์์ ์ด๋ ํน๋ณํ ์๋ฏธ๋ฅผ ๊ฐ์ต๋๋ค. Kubernetes๋ ๋ณต์กํ ์์คํ ์ด๊ณ ์ฌ๊ธฐ์ ํน์ ํ๋ก์ ํธ์์ ํ ์คํธ๋์ง ์์ ์๋ฃจ์ ์ ์ถ๊ฐํ๊ณ ํด๋ฌ์คํฐ ์ค์น๊ฐ ๋ฉ์ง๋ค๋ ์ฌ์ค์ ๋ํด ์ธํฐ๋ท์ ๊ธ์ ์ฌ๋ ธ์์๋ ๋ถ๊ตฌํ๊ณ ๋์ฐํ ๊ฒฐ๊ณผ๋ฅผ ์ด๋ํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ท ํ ์กํ ์ ๊ทผ ๋ฐฉ์์ด ์๋ Kubernetes ์์ฒด๋ง์ผ๋ก๋ ํ๋ก์ ํธ์ ํด๋ฅผ ๋ผ์น ์ ์์ต๋๋ค. "๋ฌ์์์ธ์๊ฒ ์ข์ ๊ฒ์ ๋ ์ผ์ธ์๊ฒ๋ ์ฃฝ์์ ๋๋ค." ๋ฐ๋ผ์ ์ฐ๋ฆฌ๋ ์๋ฃจ์ ์ ์ง์ ๊ตฌํํ๊ธฐ ์ ์ ๋ชจ๋ ์๋ฃจ์ ์ ํ ์คํธํ๊ณ ํ์ธํ๊ณ ํ ์คํธํฉ๋๋ค. ์ด๊ฒ์ด ๋ฐ์ํ ์ ์๋ ๋ชจ๋ ๋์์ค๋ฅผ ๊ณ ๋ คํ ์ ์๋ ์ ์ผํ ๋ฐฉ๋ฒ์ ๋๋ค.".
์ ์ฌ ์์ฌ ํ Sergei Bondarev๊ฐ ์ ํฌ์ ์ฐธ๊ฐํ์ต๋๋ค. ๊ทธ์ ์ฃผ์ ๋ ๋คํธ์ํฌ ์ ์ฑ , ์ฆ CNI ๋ฐ ๋คํธ์ํฌ ๋ณด์ ์ ์ฑ ์ ๋ํ ์๊ฐ์ ๋๋ค.
์ธํฐ๋ท์๋ ๋คํธ์ํฌ ์ ์ฑ ์ ๊ดํ ๊ธฐ์ฌ๊ฐ ๊ฐ๋ํฉ๋๋ค. ๊ด๋ฆฌ์๋ค ์ฌ์ด์์๋ ๋คํธ์ํฌ ์ ์ฑ ์ด ์์ด๋ ๋๋ค๋ ์๊ฒฌ์ด ์์ง๋ง ๋ณด์ ์ ๋ฌธ๊ฐ๋ค์ ์ด ๋๊ตฌ๋ฅผ ์ ๋ง ์ข์ํ๋ฉฐ ๋คํธ์ํฌ ์ ์ฑ ์ ํ์ฑํํ ๊ฒ์ ์๊ตฌํฉ๋๋ค.
Pavel Selivanov๋ "ํด๋ฌ์คํฐ์ ์์ ํ๊ณ ๊ฐ์ฉ์ฑ์ด ๋์ ์ ํ๋ฆฌ์ผ์ด์ "์ด๋ผ๋ ์ฃผ์ ๋ก Sergey Bondarev๋ก๋ถํฐ Kubernetes์ ์งํ๊ถ์ ์ด์ด๋ฐ์์ต๋๋ค. ๊ทธ๊ฐ ๊ฐ์ฅ ์ข์ํ๋ ์ฃผ์ ๋ PodSecurityPolicy, PodDisruptionBudget, LimitRange/ResourceQuota์ ๋๋ค.
Pavel์ด DevOpsConf์์ ์ฐ์คํ Mega์ ์ฃผ์ :
Kubernetes ํด๋ฌ์คํฐ๊ฐ ์ผ๋ง๋ ์ฝ๊ฒ ํดํน๋ ์ ์๋์ง ์ค๋ช
ํ ํ ํ์์ ์ธ ๊ด๋ฆฌ์๋ "์, ์ ๊ฐ ๋งํ์์์. ๊ทํ์ Kubernetes์๋ ๊ตฌ๋ฉ์ด ๊ฐ๋ํฉ๋๋ค."๋ผ๊ณ ๋งํฉ๋๋ค. Pavel์ ํด๋ฌ์คํฐ์์ ๋ณด์์ ๊ตฌ์ฑํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ฉฐ ์ด๋ ต์ง ์์ผ๋ฉฐ ๋ณด์ ์ค์ ์ด ๊ธฐ๋ณธ์ ์ผ๋ก ๋นํ์ฑํ๋์ด ์๋ค๋ ์ ๋ง ์ค๋ช
ํฉ๋๋ค. ์ฑ์ ํ์ ์ธ๋ถ์ ๋ณด
โ ๋๊ฐ ํด๋ฌ์คํฐ๋ฅผ ๊นจ๋จ๋ ธ๋์? ๊ทธ๋ ํด๋ฌ์คํฐ๋ฅผ ๊นจ๋จ ๋ ธ์ต๋๋ค! ์ฌ๊ธฐ์๋ ์๋ฒฝํ๊ฒ ๋ณด์
๋๋ค!
Slurms์์๋ ์ง๋ฃจํ์ง ์๋๋ก ๋ชจ๋ ๊ฒ์ด ๊ฒฐ์ฝ ๊ฐ๋จํ๊ณ ์ฝ์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ฒ์ Telegram์ ๋ชจ๋ ์ฌ๋์๊ฒ ๋ค์ฏ ๋ฒ์งธ ์์ ์ ๋ณด์ฌ ์ฃผ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค.
ะะฐััะตะปั ะะฑัะฐะตะฒ, [22 ะฝะพัะฑ. 2019 ะณ., 16:52:52]:
ะะพะปะปะตะณะธ, ะฒ ะดะฐะฝะฝัะน ะผะพะผะตะฝั ะฝะฐะฑะปัะดะฐัััั ัะฑะพะธ ะฒ ัะฐะฑะพัะต ะขะตะปะตะณัะฐะผ, ะธะผะตะนัะต ััะพ ะฒะฒะธะดั
์ด๊ฒ์ผ๋ก ์ฒซ๋ ์ ๋ฐ๊ณ ์ค์ฉ์ ์ธ ์ง์์ผ๋ก ๊ฐ๋ ์ฐจ์ ๋ง๋ฌด๋ฆฌ๋์์ต๋๋ค. ๋์งธ ๋ ์๋ PostgreSQL์ ์๋ก ๋ค์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค ํด๋ฌ์คํฐ ์์, RabbitMQ ํด๋ฌ์คํฐ ์์, Kubernetes์์ ๋น๋ฐ ๊ด๋ฆฌ ๋ฑ ๋ ๋ง์ ์ฐ์ต์ด ์งํ๋ฉ๋๋ค.
์ฌ๋ผ ๋ฉ๊ฐ. ๋์งธ ๋ .
๋ฐํ์๋ ๋ค์๊ณผ ๊ฐ์ ์ ์พํ ๋ฐํ๋ก ๋์งธ ๋ ์ ์์ํ์ต๋๋ค. โ์ด์ Pavel์ด ๋งํ๋ฏ์ด ์์นจ์๋ ์ง์ ํ ํ๋ ์ฝ์ด๊ฐ ์ฐ๋ฆฌ๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ต๋๋ค. ์ธ๊ณผ ์์ฌ์ ์ธ์ด๋ก ์ฐ๋ฆฌ๋ Kubernetes์ ๋ณธ์ง์ ๋ค์ฌ๋ค๋ณผ ๊ฒ์ ๋๋ค!โ
๋์ค ์ฐ์์ธ์ ๋ค๋ฅธ ์ด์ผ๊ธฐ์ ๋๋ค. Slurm์ ๋ฌธ์ ์ ์ค ํ๋๋ ์ฌ๋๋ค์ด ์ ๋ณด ๊ณผ๋ถํ๋ฅผ ์ฐจ๋จํ๊ณ ์ ์ ๋น ์ง๋ค๋ ๊ฒ์ ๋๋ค. ์ฐ๋ฆฌ๋ ํญ์ ์ด์ ๋ํด ๋ญ๊ฐ๋ฅผ ํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ฐพ๊ณ ์์๊ณ ์ง๋ Slurm์์๋ ์ฒญ์ค๊ณผ ํจ๊ปํ๋ ์์ ๊ฒ์์ด ์ ์๋ํ์ต๋๋ค. ์ด๋ฒ์๋ ํน๋ณํ ํ๋ จ์ ๋ฐ์ ์ฌ๋์ ๊ณ ์ฉํ์ต๋๋ค. ์ฑํ ์๋ 'ํฅ๋ฏธ๋ก์ด ๋ํ'์ ๋ํ ๋๋ด์ด ๋ง์ด ์์์ง๋ง, ์ด๋ ๊ฒ ์ ์พํ ์ฐธ๊ฐ์๋ฅผ ๋ณธ ์ ์ด ์๋ค๋ ์ฌ์ค์ ์ฌ์ ํ โโ๋จ์ ์์ต๋๋ค.
๊ทธ๋ค์ Marcel Ibraev๋ฅผ ๊ตฌํ๋ฌ ์๊ณ ๊ทธ๋ ํด๋ฌ์คํฐ์ ์ํ ์ ์ฅ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฐ๊ตฌํ๊ธฐ ์์ํ์ต๋๋ค. ์ฆ, PostgreSQL์ ์๋ก ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํด๋ฌ์คํฐ๋ฅผ ์์ํ๊ณ RabbitMQ ํด๋ฌ์คํฐ๋ฅผ ์์ํฉ๋๋ค.
์ ์ฌ ์์ฌ ํ Sergey Bondarev๋ K8S ์์ ์ ์์ํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฃผ์ ๋ "๋น๋ฐ ์ ์ง"์์ต๋๋ค. ๋ฉ๋์ ์ค์ปฌ๋ฆฌ๊ฐ ๊ทธ๋ฅผ ๋ฎ์์ต๋๋ค. Kubernetes ๋ฐ Vault์ ๋น๋ฐ ๊ด๋ฆฌ๋ฅผ ์ฐ๊ตฌํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ โ์ง์ค์ ์ ๋๋จธ์ ์๋คโ๋ ๋ง์ฐฌ๊ฐ์ง๋ค.
Pavel Selivanov๊ฐ Horizon Pod Autoscaler์ ๋ํด ์ด์ผ๊ธฐํ๊ธฐ ์์ํ ์ ๋ ๋ฆ๊ฒ๊น์ง ๊ณ์๋์์ต๋๋ค.
์ฌ๋ผ ๋ฉ๊ฐ. ์ธ๋ฒ์งธ ๋ .
Sergei Bondarev๋ ์์นจ๋ถํฐ ๋ ์นด๋กญ๊ณ ์ ์พํ๊ฒ ๋ฐฑ์ ๊ณผ ์คํจ ๋ณต๊ตฌ๋ก ์ฒญ์ค์ ์๊ทนํ์ต๋๋ค. ๊ฐ์ธ์ ์ผ๋ก Heptio Velero์ etcd๋ฅผ ์ด์ฉํ์ฌ ํด๋ฌ์คํฐ์ ๋ฐฑ์ ๊ณผ ๋ณต๊ตฌ๋ฅผ ํ์ธํด๋ณด์์ต๋๋ค.
Sergey๋ ํด๋ฌ์คํฐ ๋ด ์ธ์ฆ์์ ์ฐ๊ฐ ์ํ, ์ฆ kubeadm์ ์ฌ์ฉํ ์ ์ด ์์ญ ์ธ์ฆ์ ๊ฐฑ์ ์ด๋ผ๋ ์ฃผ์ ๋ฅผ ์ด์ด๊ฐ์ต๋๋ค. ์ ์ฌ ์์ฌ ์ง์ ์ ์ฐธ๊ฐ์๋ค์ ์์์ ์๊ทนํ๊ฑฐ๋ ์์ ํ ์์ ๊ธฐ ์ํด Pavel Selivanov๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌ์ ๋ํ ์ฃผ์ ๋ฅผ ์ ๊ธฐํ์ต๋๋ค.
๋ฐฐํฌ ์ ๋ต๋ฟ๋ง ์๋๋ผ ํ ํ๋ฆฟ ์์ฑ ๋ฐ ๋ฐฐํฌ ๋๊ตฌ๋ ๊ณ ๋ ค๋์์ต๋๋ค.
Pavel Selivanov๋ Service Mesh, Istio ์ค์น๋ผ๋ ์๋ก์ด ์ฃผ์ ์ ๋ํด ์ด์ผ๊ธฐํ์ต๋๋ค. ์ฃผ์ ๊ฐ ๋๋ฌด ํ๋ถํด์ ๋ณ๋์ ์ง์ค ๊ณผ์ ์ ์งํํ ์ ์๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค. ์ฐ๋ฆฌ๋ ๊ณํ์ ๋ ผ์ํ๊ณ ์์ต๋๋ค. ๋ฐํ๋ฅผ ๊ณ์ ์ง์ผ๋ด ์ฃผ์๊ธฐ ๋ฐ๋๋๋ค.
๊ฐ์ฅ ์ค์ํ ๊ฒ์ ๋ชจ๋ ๊ฒ์ด ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํ๋ค๋ ๊ฒ์
๋๋ค. ์ด์ ์ฐ์ตํ ์๊ฐ์ด๊ธฐ ๋๋ฌธ์
๋๋ค.
์ ํ๋ฆฌ์ผ์ด์
๋ฐฐํฌ์ ํด๋ฌ์คํฐ ์
๋ฐ์ดํธ๋ฅผ ๋์์ ์คํํ๊ธฐ ์ํ CI/CD ๊ตฌ์ถ. ๊ต์ก ํ๋ก์ ํธ์์๋ ๋ชจ๋ ๊ฒ์ด ์ ์๋ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ธ์์ ๋๋ก ๋๋ผ์์ผ๋ก ๊ฐ๋ ์ฐจ ์์ต๋๋ค.
Slurm์ด ๋น์ ๊ณผ ํจ๊ปํ๊ธธ ๋ฐ๋๋๋ค!
์ถ์ฒ : habr.com