- Slurm์ ์ฌ์ฉํ๋ฉด Kubernetes ์ฃผ์ ์ ๋ํด ์์ธํ ์์๋ณด๊ฑฐ๋ ์ง์์ ํฅ์ํ ์ ์์ต๋๋ค.
- ์ฐธ๊ฐ์๋ค์ ํ๋ณตํฉ๋๋ค. ์๋ก์ด ๊ฒ์ ๋ฐฐ์ฐ์ง ๋ชปํ๊ฑฐ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ง ๋ชปํ ์ฌ๋๋ค์ ์์์ ๋ถ๊ณผํฉ๋๋ค. ์ฒซ๋ ์ ๋ฌด์กฐ๊ฑด ํ๋ถ(โ์ฌ๋ผ์ด ์์ ์๊ฒ ์ ํฉํ์ง ์๋ค๊ณ ์๊ฐ๋๋ฉด ํฐ์ผ ์ ์ก์ ํ๋ถํด ๋๋ฆฝ๋๋คโ)์ ๋จ ํ ์ฌ๋๋ง ์ฌ์ฉํ๋ฉฐ ์์ ์ ๊ฐ์ ์ ๊ณผ๋ํ๊ฐํ๋ค๋ ๊ฒ์ ์ ๋นํํ๋ค.
- ๋ค์ Slurm์ XNUMX์ ์ด ์ํธํํ ๋ฅด๋ถ๋ฅดํฌ์์ ์ด๋ฆด ์์ ์ ๋๋ค. ์ฐ๋ฆฌ์ ์๊ตฌ ํ์์์ธ Selectel์ ์คํ ๋์ฉ ํด๋ผ์ฐ๋๋ฟ๋ง ์๋๋ผ ์์ฒด ํ์์ค๋ ์ ๊ณตํฉ๋๋ค.
- ๊ธฐ๋ณธ Slurm(9์ 11~4์ผ)์ ๋ฐ๋ณตํ๊ณ DevOps Slurm(6์ XNUMX~XNUMX์ผ)์ด๋ผ๋ ์๋ก์ด ํ๋ก๊ทธ๋จ์ ๋์ ํฉ๋๋ค.
Slurm์ ๋ฌด์์ด๊ณ ์ด๋ป๊ฒ ๋ฐ๋์๋์?
18๋ ์ , ์ฐ๋ฆฌ๋ Kubernetes์ ๋ํ ๊ฐ์ข๋ฅผ ์งํํ์๋ ์์ด๋์ด๋ฅผ ๋์ต๋๋ค. 1๋ XNUMX์, Slurm-XNUMX์ด ์ด๋ ธ์ต๋๋ค. ์ด๋ ต๊ณ ์ง์์ ์ธ ํ๋ฆฌ์ ํ ์ด์ (๋ฌด๋์์ ํ๋ฆฌ์ ํ ์ด์ ์ด ๋๋ ํ)๊ณผ ์ผ์์ ์ธ ๋ฌธ์ ๊ฐ ๋ง์์ต๋๋ค. ์ํ์ ๋จ๊ฒฐํฉ๋๋ค. ๋ฐ์ง ์์ ๋์ฒ๋ผ ์ฒซ ๋ฒ์งธ Slurm ์ฐธ๊ฐ์๋ ์ฌ์ ํ ์๋ก ์ํตํฉ๋๋ค.
์ด๊ฒ์ด Slurm-1์ ๋ชจ์ต์
๋๋ค
์ฒซ ๋ฒ์งธ Slurm์์ MegaSlurm์ ๊ฐ์ตํ๋ค๋ ์์ด๋์ด๊ฐ ํ์ํ์ต๋๋ค. ์ฌ๋๋ค์๊ฒ ๊ด์ฌ ์๋ ์ฃผ์ ๊ฐ ๋ฌด์์ธ์ง ๋ฌผ์๊ณ , 19์์๋ '์ฐธ๊ฐ์์ ์์ฒญ์ผ๋ก' ๊ณ ๊ธ ๊ฐ์ข๋ฅผ ์ด์์ต๋๋ค. ํฅ๋ฏธ๋กญ์ง๋ง ์ผํ์ฑ ์ด๋ฒคํธ๋ก ํ๋ช ๋์์ต๋๋ค. XNUMX๋ XNUMX์๊น์ง ์ฐ๋ฆฌ๋ ์์ฒด ๋ ผ๋ฆฌ์ ๋ด๋ถ ์ญ์ฌ๋ฅผ ๊ฐ์ถ ์ค์ ๊ณ ๊ธ ๊ณผ์ ์ ์ค๋นํ์ต๋๋ค.
ํ ํด ๋์ Slurm์ ์กฐ์ง์ ์ผ๋ก ๋ณํํ์ต๋๋ค.
โ Docker์ Anisble์ด ๋ฉ์ธ ํ๋ก๊ทธ๋จ์์ ์ ๊ฑฐ๋๊ณ ๋ณ๋์ ์จ๋ผ์ธ ๊ฐ์ข๊ฐ ๋ง๋ค์ด์ก์ต๋๋ค.
โ ํ์๋ค์ด ํ์ต ํด๋ฌ์คํฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ๋์์ด ๋๋ ๊ธฐ์ ์ง์์ ์กฐ์งํ์ต๋๋ค.
โ ์ด์ ์ฐ์ฌ๋ ๋ฐฉ๋ฒ๋ก ์ ์ง์์ ๋ฐ์ต๋๋ค.
Slurm 4๋ฅผ ๋ง๋ ํ
์ฐธ๊ฐ์ ํผ๋๋ฐฑ
๋ ๋ค๋ฅธ ๊ธฐ๋ก์ด ์ธ์์ก์ต๋๋ค. ๊ธฐ๋ณธ Slurm ์ฐธ๊ฐ์๋ 170๋ช , MegaSlurm ์ฐธ๊ฐ์๋ 75๋ช ์ ๋๋ค.
์ฌ๋ผ-4
101๋ช
์ค 170๋ช
์ด ํผ๋๋ฐฑ ์์์ ์์ฑํ์ต๋๋ค.
Kubernetes๊ฐ ๋ช
ํํด์ก๋์?
41 โ ์์ง k8์ ์ดํดํ์ง ๋ชปํ์ง๋ง ์ด๋๋ฅผ ํํค์ณ์ผ ํ ์ง ์ ์ ์์ต๋๋ค.
36 โ ์ด์ ์๋ k8์ ๋ชฐ๋๋๋ฐ ์ด์ ๋ ์์์ด์.
23 โ ์ด์ ์๋ k8์ ์์์ง๋ง ์ง๊ธ์ ๋ ์ ์๊ณ ์์ต๋๋ค.
1 - ์๋ก์ด ๊ฒ์ ๋ฐฐ์ฐ์ง ๋ชปํ์ต๋๋ค.
0 โ k8์ ๋ํด ์๋ฌด๊ฒ๋ ์ดํดํ์ง ๋ชปํ์ต๋๋ค.
Slurm์ ๊ฐ๋๋ ์ด๋ป์ต๋๊น?
16๋ช ์ Slurm์ด ๋๋ฌด ์ฝ๊ณ ๋๋ฆฌ๋ค๊ณ ์๊ฐํ๊ณ , 14๋ช ์ ๋๋ฌด ์ด๋ ต๊ณ ๋น ๋ฅด๋ค๊ณ ์๊ฐํ์ต๋๋ค. ๋๋จธ์ง ๋ถ๋ถ์๋ ๋ฑ ๋ง์ต๋๋ค.
Slurm์ ์์ํ๋ ค๊ณ ํ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ จ๋์?
90 - ๋ค.
11 - ์๋์.
๋ฉ๊ฐ์ฌ๋ผ
40๋ช ์ด ํผ๋๋ฐฑ ์์์ ์์ฑํ์ต๋๋ค. 2๋ช ์ด ๋๋ฌด ์ฝ๊ณ ๋๋ฆฌ๋ค๊ณ ํ๋๊ตฐ์. 1๋ช ์ ๋ฉ๊ฐ๋ก ๊ฐ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ง ๋ชปํ์ต๋๋ค. ๋๋จธ์ง๋ ๊ด์ฐฎ์ต๋๋ค.
์ฐ์ฌ ๋ฆฌ๋ทฐ
XNUMX์ ์ํธํํ ๋ฅด๋ถ๋ฅดํฌ Slurm์ ๋๋ถ๋ถ ์ด๋ณด์๊ฐ ์์๋ค๋ฉด ๋ชจ์คํฌ๋ฐ Slurm์์๋ ์ด๋ฏธ ๋ง์ ์ฌ๋๋ค์ด Kubernetes๋ฅผ ์ฌ์ฉํด ๋ณธ ์ ์ด ์์์ต๋๋ค. ์๊ฐํ๊ฒ ๋ง๋๋ ๊ณ ๊ธ์ง๋ฌธ์ด ๋ง์์ต๋๋ค.
์ํธํํ ๋ฅด๋ถ๋ฅดํฌ์์ ์ฐ๋ฆฌ๊ฐ ์ธ์ kubespray ํฌํฌ๋ฅผ ๊ฒ์ํ ๊ฒ์ธ์ง ๋ฌผ์ผ๋ฉด ๋ชจ์คํฌ๋ฐ์์๋ ์ ์๋ kubespray๋ฅผ ๊ฐ์ ธ๊ฐ์ง ์๊ณ ํฌํฌ๋ฅผ ์ฌ์ฉํ๊ฒ ๋ค๊ณ ์ ์ํ๋์ง ์ด๋ฏธ ๋ฌผ์์ต๋๋ค. ์ด๊ฒ์ ์ด๋ฏธ ์ค๋ ๋ค์ ๋นํ์ ์ฌ๊ณ ์ด๋ค.
์ฐ์ต์ ์ด๋ ค์ ๊ณ , ์ฌ๋๋ค์ ์ค์๋ฅผ ๋ง์ด ํ์ต๋๋ค. ์ ๋ง ์ข์ ์ผ์ ๋๋ค. ์ค์๋ ์ ํฌ ์ค์๊ฐ ์๋๋ผ ๊ณต๋ถํ ๋ ํด์ผ ํฉ๋๋ค.
์ธ์ฆ์ ํ๋ ์ ํ, Github ๋ค์ด๋ก๋ ์ ํ ๋ฑ์ด ์ ๊ธฐ์ ์ผ๋ก ๋ฐ์ํ์ต๋๋ค. ์ด๊ฒ์ด ๋ฐ๋ก ์ธ์์ ๋๋ค. ์ฐ๋ฆฌ๋ Selectel ํด๋ผ์ฐ๋์ ์ฝ 200๊ฐ์ ํด๋ฌ์คํฐ๋ฅผ ๋์์ ๋ฐฐํฌํ์ต๋๋ค. ์ด๋ฅผ ์ํด ์์๊ณผ ํ๊ณ๋ฅผ ์ค๋นํ๋ ์ฌ๋์ ์๋ฌด๋ ์์ต๋๋ค.
Selectel์์ Slurm ๋ฐํ
โ
๊ฐ๊ฒฉ: 25 000 โฝ
ํ๋ก๊ทธ๋จ :
์ฃผ์ #1: Kubernetes ์๊ฐ, ์ฃผ์ ๊ตฌ์ฑ ์์
โ k8s ๊ธฐ์ ์๊ฐ. ์ค๋ช
, ์ ์ฉ, ๊ฐ๋
โ ํฌ๋, ReplicaSet, ๋ฐฐํฌ, ์๋น์ค, ์์ , PV, PVC, ConfigMap, ๋น๋ฐ
์ฃผ์ 2: ํด๋ฌ์คํฐ ์ค๊ณ, ์ฃผ์ ๊ตฌ์ฑ ์์, ๋ด๊ฒฐํจ์ฑ, k8s ๋คํธ์ํฌ
โ ํด๋ฌ์คํฐ ์ค๊ณ, ์ฃผ์ ๊ตฌ์ฑ ์์, ๋ด๊ฒฐํจ์ฑ
- k8s ๋คํธ์ํฌ
์ฃผ์ #3: Kubespray, Kubernetes ํด๋ฌ์คํฐ ์กฐ์ ๋ฐ ์ค์
โ Kubespray, Kubernetes ํด๋ฌ์คํฐ ๊ตฌ์ฑ ๋ฐ ์กฐ์
์ฃผ์ #4: ๊ณ ๊ธ Kubernetes ์ถ์ํ
- DaemonSet, StatefulSet, RBAC, Job, CronJob, ํฌ๋ ์ค์ผ์ค๋ง, InitContainer
์ฃผ์ #5: ์๋น์ค ๋ฐ ์ ํ๋ฆฌ์ผ์ด์
๊ฒ์
โ ์๋น์ค ๊ฒ์ ๋ฐฉ๋ฒ ๊ฐ์: NodePort, LoadBalancer, Ingress
โ ์์ ์ปจํธ๋กค๋ฌ(Nginx): ์์ ํธ๋ํฝ ๊ท ํ ์กฐ์
โ Cert-manager: SSL/TLS ์ธ์ฆ์ ์๋ ํ๋
์ฃผ์ #6: Helm ์๊ฐ
์ฃผ์ #7: cert-manager ์ค์น
์ฃผ์ #8: Ceph: โ๋ด๊ฐ ํ๋ ๋๋ก ํ๊ธฐโ ์ค์น
์ฃผ์ #9: ๋ก๊น
๋ฐ ๋ชจ๋ํฐ๋ง
โ ํด๋ฌ์คํฐ ๋ชจ๋ํฐ๋ง, ํ๋ก๋ฉํ
์ฐ์ค
โ ํด๋ฌ์คํฐ ๋ก๊น
, Fluentd/Elastic/Kibana
์ฃผ์ #10: ํด๋ฌ์คํฐ ์ ๋ฐ์ดํธ
์ฃผ์ 11: ์ค๋ฌด ์์ , ์ ํ๋ฆฌ์ผ์ด์ ๋ํนํ ๋ฐ ํด๋ฌ์คํฐ ์คํ
stepik.org์ Docker ๋ฐ Ansible ๊ฐ์ข๊ฐ ๊ฐ๊ฒฉ์ ํฌํจ๋์ด ์์ต๋๋ค.
โ
๊ฐ๊ฒฉ: 45 000 โฝ
ํ๋ก๊ทธ๋จ :
์ฃผ์ #1: Git ์๊ฐ
โ ๊ธฐ๋ณธ ๋ช
๋ น git init, commit, add, diff, log, status, pull, push
โ ๋ก์ปฌ ํ๊ฒฝ ์ค์ : ์ค์ ๊ถ์ฅ ์ฌํญ
โ Git ํ๋ฆ, ๋ถ๊ธฐ ๋ฐ ํ๊ทธ, ๋ณํฉ ์ ๋ต
โ ์ฌ๋ฌ ์๊ฒฉ ์ ์ฅ์๋ก ์์
์ฃผ์ #2: Git์ ์ฌ์ฉํ ํ์ํฌ
โ GitHub ํ๋ฆ
โ ํฌํฌ, ์ ๊ฑฐ, ํ ์์ฒญ
โ ํ๊ณผ ๊ด๋ จ๋ Gitflow ๋ฐ ๊ธฐํ ํ๋ฆ์ ๋ํ ์ถฉ๋, ๋ฆด๋ฆฌ์ค๋ฅผ ๋ค์ ํ ๋ฒ
์ฃผ์ #3: ์๋ํ์ ๋ํ CI/CD ์๊ฐ
โ Git ์๋ํ(๋ด, CI ์๊ฐ, ํํฌ)
โ ๋๊ตฌ(bash, make, gradle)
โ ๊ณต์ฅ ์กฐ๋ฆฝ ๋ผ์ธ ๋ฐ IT ๋ถ์ผ์ ์ ์ฉ
์ฃผ์ #4: CI/CD: Gitlab ์์
โ ๋น๋, ํ
์คํธ, ๋ฐฐํฌ
โ ๋จ๊ณ, ๋ณ์, ์คํ ์ ์ด(only, when, include)
์ฃผ์ #5: ๊ฐ๋ฐ ๊ด์ ์์ ์ ํ๋ฆฌ์ผ์ด์
์์
โ Python์ผ๋ก ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ์์ฑํฉ๋๋ค(ํ
์คํธ ํฌํจ).
โ ๊ฐ๋ฐ ์ docker-compose ์ฌ์ฉ
์ฃผ์ #6: ์ฝ๋ํ ์ธํ๋ผ
โ IaC: ์ฝ๋ํ ์ธํ๋ผ์ ๋ํ ์ ๊ทผ ๋ฐฉ์
โ Terraform์ ์๋ก ์ฌ์ฉํ๋ IaC
โ Ansible์ ์๋ก ์ฌ์ฉํ๋ IaC
โ ๋ฉฑ๋ฑ์ฑ, ์ ์ธ์ฑ
โ Ansible ํ๋ ์ด๋ถ ์์ฑ ์ฐ์ต
โ ๊ตฌ์ฑ ์ ์ฅ, ํ์
, ์ ํ๋ฆฌ์ผ์ด์
์๋ํ
์ฃผ์ #7: ์ธํ๋ผ ํ
์คํธ
โ Molecule ๋ฐ Gitlab CI๋ฅผ ์ฌ์ฉํ ํ
์คํธ ๋ฐ ์ง์์ ์ธ ํตํฉ
์ฃผ์ 8: ์๋ฒ ์ฌ๋ฆฌ๊ธฐ ์๋ํ
โ ์ด๋ฏธ์ง ์์ง
- PXE ๋ฐ DHCP
์ฃผ์ #9: ์ธํ๋ผ ์๋ํ
โ ์๋ฒ ์ธ์ฆ์ ์ํ ์ธํ๋ผ ์๋น์ค์ ์
โ ChatOps(์ธ์คํดํธ ๋ฉ์ ์ ์ ํ์ดํ๋ผ์ธ ํตํฉ)
์ฃผ์ #10: ๋ณด์ ์๋ํ
โ CI/CD ์ํฐํฉํธ ์๋ช
โ ์ทจ์ฝ์ ์ค์บ๋
์ฃผ์ #11: ๋ชจ๋ํฐ๋ง
โ SRE ์ธ๊ณ์ SLA, SLO, ์ค๋ฅ ์์ฐ ๋ฐ ๊ธฐํ ๋ฌด์์ด ์ฉ์ด ์ ์
โ SRE: SLI ๋ฐ SLO ๋ชจ๋ํฐ๋ง ์ค์ต
โ SRE: Error Budget ํ์ฉ ์ค์ต
- SRE: ์ธํฐ๋ฝํธ ๋ฐ ์ด์ ๋ถํ ๊ด๋ฆฌ(apigateway, ์๋น์ค ๋ฉ์, ํ๋ก ์ฐจ๋จ๊ธฐ)
โ ํ์ดํ๋ผ์ธ ๋ฐ ๊ฐ๋ฐ ์งํ ๋ชจ๋ํฐ๋ง
์ถ์ฒ : habr.com