- Slurm αα·αααΆα’αα»ααααΆαα±ααα’αααα αΌααα αααα»ααααααΆααα Kubernetes α¬αααααα’α ααααααΉαααααα’αααα
- α’αααα αΌααα½ααααααΆαα α·αααα ααΆαβααβααα»ααααΆαβααΆααβααα»αααααβαααβαα·αβααΆαβαααβα’αααΈβααααΈ α¬βαα·αβααΆαβαααααααΆαβαααα αΆβααααβαααα½αα ααΆαααααααΆαααα·ααααααααΆαααααααααααααααααααΌα (βααααα·αααΎα’αααααΆαα’αΆααααααααΆ Slurm αα·αααααΉαα’ααα ααΎαααΉααααααααααα»ααααααααααα·αβ) ααααΌαααΆαααααΎααααΆαααααααα»αααααααααΆαα αααααααΆαααααααααΆααααΆααΆααααΆααααΆααααααΆααααααΆααααααααΆααααΎαα
- Slurm αααααΆααααΉααααααααΉααααα αα ααΎααααααααΆαα St. Selectel αααααΆα’αααα§αααααααα’α α·ααααααααααααααΎα αα·αααααΉααααααααααααααααΆααααααααααααα»ααααααα ααα»ααααααααΆαααααααααααα·ααΈαααααΆαααααα½ααααααα
- ααΎααααα»ααα·ααΆαα‘αΎααα·αααΌα Slurm ααΌαααααΆα (ααααααΈ 9-11 αααααααΆ) αα·αααααΆααααααα·ααΈααααΈα DevOps Slurm (ααααααΈ 4-6 αααααααΆ)α
ααΎ Slurm ααΊααΆα’αααΈ α αΎαααΎααΆααΆαααααΆααααααΌααααΆαααΌα ααααα ?
ααΆαααΈαα½αααααΆααα»α ααΎαααΆααααααΎαα‘αΎαααΌααααα·αααααΆαααααΎαααααα·ααααΆαα ααΎ Kubernetes α αα αααα»αααααΈα αΆ '18, Slurm-1 ααΆαααΎαα‘αΎα: ααΆαααααΆαααΆαα½αααΉαααΆα prepresentation αααα (αα ααααααααα αΆαααααΌαααΆααααα αααα ααΎααΆα) ααΆαα½αααΉααααα αΆαααα αΆαααααααΆα αααΎαα ααΆαααΆααααααα½ααα½αα α’αααα αΌααα½ααα Slurm ααααΌα ααΌα ααΆ Fellowship of the Ring αα ααααΆααααααααΆαα αα·ααα ααα
αααααΊααΆα’αααΈααα Slurm-1 ααΎααα
αα Slurm ααααΌα αααα·αααααΆαααΆαα MegaSlurm ααΆαααΎαααα ααΎαβααΆαβαα½αβααα»αααβα’αααΈβαααααΆαααβα’αααΈβαααβαα½αααβα αΆααβα’αΆαααααα α αΎαβαα βααβαα»ααΆ ααΎαβααΆαβααΎαβααααβαα·ααααΆβααααα·αβααααα βααΆαβααααΎβααααβα’αααβα αΌααα½αβα ααΆβααΆαβααααΆαβααΆβααααΉαααα·ααΆαααβααβαα½αβα±ααβα αΆααβα’αΆαααααα ααα»ααααβααΆαβααβααααα ααααΉαααααΆα 19 α§αααΆ ααΎαααΆααααα ααααααα·ααααΆααααα·αααααααα·αααααΆαα ααΆαα½αααΉααααααα·ααααΆ αα·ααααααααα·αααααααα»αααααααΆα
ααααα½αααααΆα Slurm ααΆαααααΆααααααΌαααααΆαααα
- Docker αα·α Anisble ααααΌαααΆαααα
ααααΈαααααα·ααΈααααΆαα α αΎαααΆαααααΎαααααα·ααααΆααΆαα’ααΈαααΊαα·αααΆα
ααααα‘ααα
- ααΆααααα
ααααα½ααα
αα
αααααααααα½ααα·ααααααααααΆααααα αΆαααα»ααα·ααααΆα
- ααΆαααα·αα₯α‘αΌααααααΆαααΆαααΆααααααααααα·ααΈααΆαααααα
αααα»αααααααααΎα Slurm α€
ααα·αααααααΈα’αααα αΌααα½α
αααααααααΆαα½ααααααααΌαααΆααααααα α’αααα αΌααα½α 170 ααΆαααα ααΎ Slurm ααΌαααααΆα 75 αα ααΎ MegaSlurm α
αααααααααΆαα - α€
ααα»ααα 101 ααΆαα αααα»αα
αααα 170 ααΆααααΆααααααααααααααα·αααααα’α
ααΎ Kubernetes ααΆαααΆαα
αααΆααααΆαααα?
41 - αααα»ααα·αααΆααααα k8s αα
α‘αΎααα ααα»αααααααα»αααΎααααααααααααααΌαααΈαα
α£α¦ - αααα»αβαα·αβααααΆαα k36s ααΈαα»αβααβαα ααα»ααααβα₯α‘αΌαβαααα»αβαααβααΎαβα αΎαα
23 - αααα»αααααΆαα k8s ααΈαα»ααα ααα»ααααα₯α‘αΌααααα»αααΉαααΆααααα
αααΆααα
α‘- αααα»αβαα·αβααΆαβαααβα’αααΈβααααΈβααα
0 - αααα»ααα·ααααα’αααΈααΆααα’ααα’αααΈ k8s α
ααΎα’αααα αΌαα α·αααα’αΆααααααααΈαααα Slurm αααΆαααΌα ααααα ?
ααα»ααα 16 ααΆαααα·αααΆ Slurm ααΆααααα½αααα αα·αααΊα α αΎαααα»ααα 14 ααΆαααα·αααΆααΆαα·ααΆαααα αα·αααΏαα ααααΆααααααααΉαααααΌααααααΆαααα αααα
ααΎα’αααααΆααααααααΆααααα αΆαααα’αααααΉααα Slurm ααΆαα½ααα?
90 - ααΆαα
11 - ααα
ααα αααΆααααΌα
ααα»ααα 40 ααΆααααΆααααααααααααααα·αααααα’α ααα»ααα 2 ααΆααααΆααα·ααΆαααΆααΆααΆααααα½ααααα αΎαααΊαα ααα»ααα 1 ααΆαααα·αααΆααααααααΆααααα αΆαααααΆααααΉααα Mega α αα ααααα·αα’αΈααα
ααΆααα·αα·αααααΆαααα·α
ααααα·αααΎαα St. Petersburg Slurm αααα»ααααα»αααα ααΆαα αααΎαααΆαα’αααα αΆααααααΎαααααΌα αααααΆαααααα Moscow Slurm ααα»ααααα½αα ααα½αααααΆαααΆααααα Kubernetes αα½α α αΎαα ααΆααααα½αααααα·ααααααααΆα αααΎααααααααΎα±ααα’ααααα·αα
ααααα·αααΎαα ααΆααααααΊαααΊα αα½αααααΆααα½αααΆαα αααααΆαααααΎαααΉαααααα»ααααα»αααααααααααΎαααα αα ααΈαααα»αααΌααααΌ αα½αααααΆααα½ααα½α α αΎαααΆα ααα»α’αααΈααΆαααΆααΎαααααΎα±ααααααΎααααααααΎα α αΎααα·ααα kubespray ααΎαα αααβααΆβαααα·αβαα·ααααβααααβααα»αααβαααβαααααΆαβα αΎαα
ααΆαα’αα»ααααααΊαα·ααΆα ααα»αααααΆαααα α»αα αααΎα α αΎαααΆαα·αααΆα’ααα αΆαααααΆααα α’αααααααΌαααααααΎαα»αααααααα»ααα·ααααΆ αα·αααααα αααα»ααααααΌαα·ααα
ααΎααα½ααααααααΆαααα αΆαααΌαααααααααααΎααΆαααα½αααΆααα·ααααΆαααααα ααααααααααΎααΆαααΆαααααΈ Github ααΆααΎαα αααααΊααΆααΈαα·α - ααΎαααΆαααΆαααααααΆααααα»ααααααααΆαααααΆαααα αα 200 α ααααααα αααα»α Selectel cloud α ααααΆαααααΆααααΆαααααα αααααΆα αα·ααααααααααααααα½ααααααααΆααααΏααααααα
ααα ααααΈαααααΆαα’αααΈ Slurm αα Selectel
β
αααααα 25 β½
αααααα·ααΈ:
αααααΆαααααΈ 1α ααΆαααααΆαα’αααΈ Kubernetes αααΆαααΆαα»ααααΆααα
- ααΆαααααΆαα’αααΈαα
αα
αααα·ααααΆ k8s α ααΆααα·αααααΆ, αααααα·ααΈ, αααα·α
- αα, αα»αα
αααα, ααΆαααΆαααααααΆα, ααααΆαααα, α’ααΈαα αααα, PV, PVC, ConfigMap, αααααΆαα
αααααΆαααααΈ 2α ααΆααα
ααΆα
ααααα ααΆαα»ααααααααΆααα ααΆαα’ααα±αααα α»α αααααΆα k8s
- ααΆααα
ααΆα
ααααα ααΆαα»ααααααααΆααα ααΆαα’ααα±αα
ααααααα α»α
- αααααΆα k8s
αααααΆαααααΈ 3α Kubespray ααΆααααααααΌα αα·αααΆααααααΎαα
ααααα Kubernetes
- Kubespray ααΆαααααααα
ααΆαααααααα αα·αααΆααααααααΌαααα
ααααα Kubernetes
αααααΆααα #4α ααααα·αααααα Kubernetes Abstractions
- DaemonSet, StatefulSet, RBAC, Job, CronJob, Pod Scheduling, InitContainer
αααααΆαααααΈα₯α ααααΆααααααααα»ααα αα·ααααααα·ααΈ
- αα·αααααΆαααΌαα
αααα·ααΈααΆαααααααααααααααΆαααααΆααααα NodePort vs LoadBalancer vs Ingress
- α§ααααααααααΆ Ingress (Nginx): ααααΎα±ααααΆααα»αααααΆαα
ααΆα
αα
αΌα
- α’ααααααααααααα ααα½αααΆααα·ααααΆαααααα SSL/TLS αααααααααααααααα·
αααααΆαααααΈα¦α ααΆαααααΆαα’αααΈαα½ααα»ααααα·ααΆα
αααααΆαααααΈα§α ααΆαααα‘αΎα cert-manager
αααααΆαααααΈ α¨α Cephα "ααααΎααΌα ααααααα»αααααΎ" ααΆαααα‘αΎα
αααααΆαααααΈα©α ααΆαααΆααααΎ αα·αααΆααααα½ααα·αα·ααα
- ααΆααααα½ααα·αα·αααα
ααααα Prometheus
- ααΆαβααΆααβααΎβααΆβαααα»αβ, ααααΆααβααααΆα / αααααα / Kibana
αααααΆαααααΈα‘α α ααΆαααααΎαα αα α»ααααααααΆαα ααααα
αααααΆαααααΈ α‘α‘α ααΆαααΆαααΆααααααα ααΆαααΆαααααααα·ααΈ αα·αααΆααα±ααααααΎαααΆαααΆα ααααα
αααααα·ααααΆαα ααΎ Docker αα·α Ansible αα ααΎ stepik.org ααααΌαααΆααα½ααααα αΌααααα»ααααααα
β
αααααα 45 β½
αααααα·ααΈ:
αααααΆαααααΈ 1α ααΆαααααΆαα’αααΈ Git
- ααΆααααααααΆααΌαααααΆα git init, commit, add, diff, log, status, pull, push
- αααα
αααα·ααΆααΆααααα»ααααααα α’αα»ααΆαααααΆααααααα
- ααα αΌα Git, ααΆααΆαα·αααααΆα, αααα
αΌαααααΆααΌααα»αααααΆααααα
- ααααΎααΆαααΆαα½α repo ααΈα
ααααΆαα
αααΎαα
αααααΆαααααΈ α’α ααΆαααΆαααΆαααα»αααΆαα½α Git
- ααα αΌα GitHub
- αα, ααα
αα, ααΆαααααΎ
- αααααα ααΆαα
ααααααΆα ααΆααααΈαααααααα’αααΈ Gitflow αα·αααα αΌαααααααααααΆααααααΉααααα»α
αααααΆαααααΈ α£α ααΆαααααΆαα’αααΈ CI/CD α
ααααααααααααααααα·αααα
- ααααααααααααα·αααααα
αααα»α git (bots, ααΆαααααΆαα’αααΈ CI, hooks)
- α§ααααα (bash, make, gradle)
- αααααΆααααα‘αΎααααα
ααα αα·ααααααα·ααΈαααααα½ααααα
αααα»α IT
αααααΆαααααΈα€α CI/CDα ααααΎααΆαααΆαα½α Gitlab
- ααΆαααα, ααΆααααα, ααΆαααααααΆα
- ααααΆααααΆα, α’ααα, ααΆααααααααααααΆαααααα·ααααα· (αα, ααα, αα½ααααα
αΌα)
αααααΆαααααΈ α₯α ααααΎααΆαααΆαα½ααααααα·ααΈααΆαααααααα’αα·αααααα
- ααΎααααααααααΆααΈααααΌαα
αααα»α Python (αα½αααΆααααΆαααααΎααααα)
- ααΆαααααΎααααΆαα docker-compose αααα»αααΆαα’αα·αααααα
αααααΆαααααΈα¦α α αααααΆαα
ααΆααααααααααΆααΌα
- IaC: αα·ααα
αα·αα αααααΆαα
ααΆααααααααααΆααΌα
- IaC αααααααΎ Terraform ααΆα§ααΆα ααα
- IaC ααααΎ Ansible ααΆα§ααΆα ααα
- ααΆαααααΆαα’αααΆα
ααΆααααααΆα
- α’αα»ααααααΆααααααΎαααααα
ααα Ansible
- ααΆααααα»αααΆαααααααα
ααΆαααααααα ααΆααα ααΆα ααααααααααααα·αααααααααα·ααΈ
αααααΆαααααΈα§α ααΆαααααΎαααααα αααααΆαα
ααΆαααααααα
- ααΆαααααΎααααα αα·αααΆααα½ααααα
αΌαααΆαααααααααΆααααΆαα½α Molecule αα·α Gitlab CI
αααααΆαααααΈ α¨α ααααααααααααα·ααααααααΆααααααΎααααΆαααΈααα
- ααΆααααααΌαααΌαααΆα
- PXE αα·α DHCP
αααααΆαααααΈα©α ααααααααααααα·ααααα αααααΆαα
ααΆαααααααα
- α§ααΆα αααααααααΆα αααααΆαα
ααΆαααααααααααααΆααααΆαα’αα»ααααΆαααΎαααΆαααΈααα
- ChatOps (ααΆααα½ααααα
αΌαα’αααααΆαααΆαααααΆααααΆαα½αααααα)
αααααΆαααααΈα‘α α ααααααααααααα·αααααα»ααααα·ααΆα
- α
α»αα αααααααΆααΎααααα»αα»ααΆα CI/CD
- ααΆααααααααΆαααΆαααααααα
αααααΆαααααΈα‘α‘α ααΆααααα½ααα·αα·ααα
- αα·ααααααα SLA, SLO, Error Budget αα·αααΆααααα½αα±ααααααΆα
ααααααααααΈαα·αα SRE
- SRE: ααΆαα’αα»ααααααΆααααα½ααα·αα·ααα SLI αα·α SLO
- SRE: ααΆαα’αα»ααααααΆαααααΎααααΆαα Error Budget
- SRE: ααΆαααααΆα αα·αααΆααααααααααααααα»αααααα·ααααα·ααΆα (apigateway, service mesh, circuit breakers)
- ααΆααααα½ααα·αα·αααααααααααα αΌαααααα αα·ααααααΆααα’αα·αααααα
ααααα: www.habr.com