- Slurm ã䜿çšãããšãKubernetes ã®ãããã¯ã«åãçµã¿ãç¥èãåäžãããããšãã§ããŸãã
- åå è ã¯å€§æºè¶³ã§ãã æ°ããããšãåŠã°ãªãã£ãããåé¡ã解決ããŠããªã人ã¯ã»ãã®ãããã§ãã åæ¥ã®ç¡æ¡ä»¶è¿éïŒãã¹ã©ãŒã ãèªåã«åããªããšæããããã±ãã代ãå šé¡è¿éããŸããïŒãå©çšããã®ã¯ãã£ãXNUMX人ã§ãèªåã®åãé倧è©äŸ¡ããŠããããšãæ£åœåããã
- 次åã®ã¹ã©ãŒã ã¯XNUMXæäžæ¬ã«ãµã³ã¯ãããã«ãã«ã¯ã§éå¬ãããã åžžèšã¹ãã³ãµãŒã§ããã»ã¬ã¯ãã«ã¯ãã¹ã¿ã³ãçšã®ã¯ã©ãŠãã ãã§ãªããèªç€Ÿã®äŒè°å®€ãæäŸããŠããŸãã
- åºæ¬ç㪠Slurm (9 æ 11 ïœ 4 æ¥) ãç¹°ãè¿ããæ°ããããã°ã©ã ã§ãã DevOps Slurm (6 æ XNUMX ïœ XNUMX æ¥) ãå°å ¥ããŸãã
Slurm ãšã¯äœã§ãã?ãŸãã©ã®ããã«å€åããŸããã?
18 幎åãç§ãã¡ã¯ Kubernetes ã«é¢ããã³ãŒã¹ãå®æœãããšããã¢ã€ãã¢ãæãã€ããŸããã 1 幎 XNUMX æã«ãSlurm-XNUMX ãéå¬ãããŸãããããã¯å°é£ã§ãç¶ç¶çãªãã¬ãŒã³ããŒã·ã§ã³ (ã¹ããŒãžã§ã®ãã¬ãŒã³ããŒã·ã§ã³ãçµäºãããšã) ããããæ¥åžžçãªåé¡ãå±±ã»ã©ãããŸããã è©Šç·Žã¯å£çµããŸããæåã®ã¹ã©ãŒã ã®åå è ã¯ããã§ããŒã·ããã»ãªãã»ã¶ã»ãªã³ã°ãšåæ§ã«ãäŸç¶ãšããŠäºãã«ã³ãã¥ãã±ãŒã·ã§ã³ããšã£ãŠããŸãã
Slurm-1ã¯ãããªæãã§ãã
æåã®ã¹ã©ãŒã ã§ã¯ãã¡ã¬ã¹ã©ãŒã ãéå¬ãããšããã¢ã€ãã¢ãçãŸããŸããã èå³ã®ããããŒããèãã19æã«ã¯ãåå è ã®ãªã¯ãšã¹ãã«ãããäžçŽè¬åº§ãéå¬ããŸããã ããã¯èå³æ·±ããã®ã§ããããäžåºŠéãã®ã€ãã³ãã§ããã XNUMX 幎 XNUMX æãŸã§ã«ãç¬èªã®ããžãã¯ãšå éšå±¥æŽãåããçã®äžçŽã³ãŒã¹ãæºåããŸããã
ãã® XNUMX 幎ã®éã«ãSlurm ã¯çµç¹çã«å€åããŸããã
â Docker ãš Anisble ã¯ã¡ã€ã³ ããã°ã©ã ããåé€ãããå¥åã®ãªã³ã©ã€ã³ ã³ãŒã¹ãäœæãããŸããã
â åŠçã®åŠç¿ã¯ã©ã¹ã¿ãŒã®ãã©ãã«ã·ã¥ãŒãã£ã³ã°ãæ¯æŽããçµç¹çãªãã¯ãã«ã« ãµããŒãã
â è¬æŒè
ã¯æ¹æ³è«çãªãµããŒããåŸãããããã«ãªããŸããã
Slurm 4 ãäœã£ãããŒã
åå è ããã®ãã£ãŒãããã¯
ããŒã·ã㯠ã¹ã©ãŒã ã«ã¯ 170 åãã¡ã¬ã¹ã©ãŒã ã«ã¯ 75 åã®åå è ãšãããå¥ã®èšé²ãæš¹ç«ãããŸããã
ã¹ã©ãŒã -4
101 äººäž 170 人ããã£ãŒããã㯠ãã©ãŒã ã«èšå
¥ããŸããã
Kubernetes ã¯æããã«ãªããŸããã?
41 â k8s ã«ã€ããŠã¯ãŸã ç解ããŠããŸããããã©ããæãã°ãããã¯ããããŸããã
36 â 以å㯠k8s ã«ã€ããŠç¥ããŸããã§ããããä»ã§ã¯ç解ã§ããŸããã
23 â k8s ã«ã€ããŠã¯ä»¥åããç¥ã£ãŠããŸããããä»ã§ã¯ããã«è©³ãããªããŸããã
1 - æ°ããããšã¯äœãåŠã¹ãŸããã§ããã
0 â k8s ã«ã€ããŠäœãç解ã§ããŸããã§ããã
Slurmã®æ¿ããã¯ã©ãã§ããïŒ
16 人ã Slurm ã¯ç°¡åãããŠé ããšèããŠããã14 人ã¯é£ããããŠéããšèããŠããŸãã äŒæ©ã«ã¡ããã©ããã§ãã
ã¹ã©ãŒã ã«åå ããããšããŠããåé¡ã¯è§£æ±ºããŸããã?
90 - ã¯ãã
11 - ãããã
ã¡ã¬ã¹ã©ãŒã
40 人ããã£ãŒããã㯠ãã©ãŒã ã«èšå ¥ããŸããã 2人ã¯ç°¡åãããŠé ãã£ããšèšããŸããã 1 人㯠Mega ã«è¡ãéã®åé¡ã解決ã§ããŸããã§ããã æ®ãã¯åé¡ãããŸããã
ã¹ããŒã«ãŒã®ã¬ãã¥ãŒ
XNUMX æã®ãµã³ã¯ãããã«ãã«ã¯ã®ã¹ã©ãŒã ã§ã¯ã»ãšãã©ãåå¿è ã ã£ããšããããã¢ã¹ã¯ã¯ã®ã¹ã©ãŒã ã§ã¯ãã§ã«å€§å¢ã®äººã Kubernetes ãè©ŠããŠããŸããã èããããããé«åºŠãªè³ªåããããããããŸããã
ãµã³ã¯ãããã«ãã«ã¯ã§åœŒããç§ãã¡ã®kubesprayã®ãã©ãŒã¯ããã€å ¬éããã®ãå°ãããªããã¢ã¹ã¯ã¯ã§ã¯ãã§ã«ããªããªãªãžãã«ã®kubesprayã䜿ããã«ç§ãã¡ã®ãã©ãŒã¯ã䜿çšããããšãææ¡ããã®ããå°ããŠããŸãã ããã¯ããããã«ã·ãã¢ã®æ¹å€çæèã§ãã
ç·Žç¿ã¯é£ããã人ã ã¯ããããã®ééããç¯ããŸããããããã¯çŽ æŽãããããšã§ããééããç¯ãå¿ èŠãããã®ã¯æŠéäžã§ã¯ãªããå匷äžã§ãã
蚌ææžã®ååŸã®å¶éãGithub ããã®ããŠã³ããŒãã®å¶éãªã©ã«å®æçã«ééããŸããã ããã人çã§ããç§ãã¡ã¯ãSelectel ã¯ã©ãŠãã«çŽ 200 ã®ã¯ã©ã¹ã¿ãŒãåæã«ãããã€ããŸããã ãã®ããã«èªåã®ãªãœãŒã¹ãšéçãæºåããŠãã人ã¯èª°ãããŸããã
Selectel ã§ã® Slurm ã®ãç¥ãã
â
äŸ¡æ Œ: 25 âœ
ããã°ã©ã ïŒ
ããã㯠#1: Kubernetes ã®æŠèŠãäž»èŠã³ã³ããŒãã³ã
â k8s ãã¯ãããžãŒã®çŽ¹ä»ã 説æãã¢ããªã±ãŒã·ã§ã³ãæŠå¿µ
â ããããReplicaSetããããã€ã¡ã³ãããµãŒãã¹ãã€ã³ã°ã¬ã¹ãPVãPVCãConfigMapãã·ãŒã¯ã¬ãã
ããã㯠No. 2: ã¯ã©ã¹ã¿ãŒèšèšãäž»èŠã³ã³ããŒãã³ãããã©ãŒã«ã ãã¬ã©ã³ã¹ãk8s ãããã¯ãŒã¯
â ã¯ã©ã¹ã¿èšèšãäž»èŠã³ã³ããŒãã³ããèé害æ§
â k8sãããã¯ãŒã¯
ããã㯠#3: KubesprayãKubernetes ã¯ã©ã¹ã¿ãŒã®ãã¥ãŒãã³ã°ãšã»ããã¢ãã
â KubesprayãKubernetes ã¯ã©ã¹ã¿ãŒã®æ§æãšèª¿æŽ
ããã㯠#4: é«åºŠãª Kubernetes æœè±¡å
- DaemonSetãStatefulSetãRBACããžã§ããCronJobãããã ã¹ã±ãžã¥ãŒãªã³ã°ãInitContainer
ããã㯠#5: ãµãŒãã¹ãšã¢ããªã±ãŒã·ã§ã³ã®å
Ž
â ãµãŒãã¹å
¬éæ¹æ³ã®æŠèŠ: NodePortãLoadBalancerãIngress
â Ingress ã³ã³ãããŒã©ãŒ (Nginx): åä¿¡ãã©ãã£ãã¯ã®ãã©ã³ã¹ããšã
â Сert-manager: SSL/TLS 蚌ææžãèªåçã«ååŸããŸã
ããã㯠#6: Helm ã®æŠèŠ
ããã㯠#7: cert-manager ã®ã€ã³ã¹ããŒã«
ããã㯠#8: Ceph: ãdo as I doãã€ã³ã¹ããŒã«
ããã㯠#9: ãã®ã³ã°ãšã¢ãã¿ãªã³ã°
â ã¯ã©ã¹ã¿ãŒç£èŠãPrometheus
â ã¯ã©ã¹ã¿ãŒãã®ã³ã°ãFluentd/Elastic/Kibana
ããã㯠#10: ã¯ã©ã¹ã¿ãŒã®æŽæ°
ããã㯠No. 11: å®è·µçãªäœæ¥ãã¢ããªã±ãŒã·ã§ã³ã® Docker åãšã¯ã©ã¹ã¿ãŒãžã®èµ·å
stepik.org ã® Docker ãš Ansible ã®ã³ãŒã¹ã¯æéã«å«ãŸããŠããŸãã
â
äŸ¡æ Œ: 45 âœ
ããã°ã©ã ïŒ
ããã㯠#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 ã®äœ¿çš
â æ§ç¯ããã¹ããå±é
â ã¹ããŒãžãå€æ°ãå®è¡å¶åŸ¡ (ã®ã¿ããã€ãå«ã)
ããã㯠#5: éçºã®èŠ³ç¹ããã¢ããªã±ãŒã·ã§ã³ãæäœãã
â Python ã§ãã€ã¯ããµãŒãã¹ãäœæããŸã (ãã¹ããå«ã)
â éçºã§ã® docker-compose ã®äœ¿çš
ããã㯠#6: ã³ãŒããšããŠã®ã€ã³ãã©ã¹ãã©ã¯ãã£
â IaC: ã³ãŒããšããŠã®ã€ã³ãã©ã¹ãã©ã¯ãã£ãžã®ã¢ãããŒã
â Terraform ãäŸãšããŠäœ¿çšãã IaC
â Ansible ãäŸãšããŠäœ¿çšãã IaC
â ã¹ãçæ§ã宣èšæ§
â Ansible ãã¬ã€ããã¯ã®äœæãç·Žç¿ãã
â æ§æã¹ãã¬ãŒãžãã³ã©ãã¬ãŒã·ã§ã³ãã¢ããªã±ãŒã·ã§ã³ã®èªåå
ããã㯠#7: ã€ã³ãã©ã¹ãã©ã¯ãã£ã®ãã¹ã
â Molecule ããã³ Gitlab CI ãšã®ãã¹ããšç¶ç¶ççµ±å
ãããã¯ãã®8: ãµãŒããŒæ§ç¯ã®èªåå
â ç»åã®åé
- PXE ãš DHCP
ããã㯠#9: ã€ã³ãã©ã¹ãã©ã¯ãã£ã®èªåå
â ãµãŒããŒäžã®èªå¯ã®ããã®ã€ã³ãã©ã¹ãã©ã¯ã㣠ãµãŒãã¹ã®äŸ
â ChatOps (ã€ã³ã¹ã¿ã³ã ã¡ãã»ã³ãžã£ãŒãšãã€ãã©ã€ã³ã®çµ±å)
ããã㯠#10: ã»ãã¥ãªãã£ã®èªåå
â CI/CD ææç©ã®çœ²å
â è匱æ§ã¹ãã£ã³
ããã㯠#11: ã¢ãã¿ãªã³ã°
â SLAãSLOããšã©ãŒããžã§ãããããã³ SRE ã®äžçã®ãã®ä»ã®æãããçšèªã®å®çŸ©
â SRE: SLI ããã³ SLO ã¢ãã¿ãªã³ã°ã®å®è·µ
â SRE: ãšã©ãŒ ããžã§ããã®äœ¿çšæ¹æ³
- SRE: å²ã蟌ã¿ããã³éçšè² è·ç®¡ç (ApigatewayããµãŒãã¹ ã¡ãã·ã¥ããµãŒããã ãã¬ãŒã«ãŒ)
â ãã€ãã©ã€ã³ãšéçºææšã®ã¢ãã¿ãªã³ã°
åºæïŒ habr.com