Slurm: Kubernetes αž–αžΉαž„αž•αŸ’αž’αŸ‚αž€αžαŸ’αž›αžΆαŸ†αž„αŸ” αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ αž“αž·αž„αž”αŸ’αžšαžΆαž€αŸ‹αžšαž„αŸ’αžœαžΆαž“αŸ‹

αž“αŸ…αžαŸ’αž„αŸƒαž‘αžΈ 27-29 αžαŸ‚αž§αžŸαž—αžΆ αž™αžΎαž„αž€αŸ†αž–αž»αž„αžšαŸ€αž”αž…αŸ† Slurm αž‘αžΈαž”αž½αž“αŸ– αž–αžΉαž„αž•αŸ’αž’αŸ‚αž€αžαŸ’αž›αžΆαŸ†αž„αž›αžΎ Kubernetes αŸ”

Slurm: Kubernetes αž–αžΉαž„αž•αŸ’αž’αŸ‚αž€αžαŸ’αž›αžΆαŸ†αž„αŸ” αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ αž“αž·αž„αž”αŸ’αžšαžΆαž€αŸ‹αžšαž„αŸ’αžœαžΆαž“αŸ‹

αž”αŸ’αžšαžΆαž€αŸ‹αžšαž„αŸ’αžœαžΆαž“αŸ‹αŸ– αžœαž‚αŸ’αž‚αžŸαž·αž€αŸ’αžŸαžΆαžαžΆαž˜αž’αŸŠαžΈαž“αž’αžΊαžŽαž·αžαž›αžΎ Docker, Ansible, Ceph
αž™αžΎαž„αž”αžΆαž“αž˜αž€αž–αžΈαž”αŸ’αžšαž’αžΆαž“αž”αž‘ Slurm αžŠαŸ‚αž›αž˜αžΆαž“αžŸαžΆαžšαŸˆαžŸαŸ†αžαžΆαž“αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™ Kubernetes αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž˜αž·αž“αž‘αžΆαž€αŸ‹αž‘αž„αžŠαŸ„αž™αž•αŸ’αž‘αžΆαž›αŸ‹αž‡αžΆαž˜αž½αž™ k8s αž‘αŸαŸ” αžαžΎαž’αŸ’αžœαžΎαžŠαžΌαž…αž˜αŸ’αžαŸαž…, αž αŸαžαž»αž’αŸ’αžœαžΈαž“αž·αž„αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž”αžΆαž“αž€αžΎαžαž‘αžΎαž„ - αž“αŸ…αž€αŸ’αžšαŸ„αž˜αž€αžΆαžšαž€αžΆαžαŸ‹αŸ”
αž’αŸ’αž“αž€αž…αžΌαž›αžšαž½αž˜ Slurm 4 αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αžΉαž„αž˜αžΆαž“αžŸαž·αž‘αŸ’αž’αž·αž…αžΌαž›αžšαŸ€αž“αžœαž‚αŸ’αž‚αž‘αžΆαŸ†αž„αž“αŸαŸ‡αŸ”

αžŸαž„αž›αž»αž™αžœαž·αž‰αž–αŸαž‰αž“αŸ…αžαŸ’αž„αŸƒαžŠαŸ†αž”αžΌαž„
αž“αŸ… St. Petersburg Slurm αž’αŸ’αž“αž€αž…αžΌαž›αžšαž½αž˜αž–αžΈαžšαž“αžΆαž€αŸ‹αž”αžΆαž“αž…αžΆαž€αž…αŸαž‰ αž€αžΆαžšαž–αž·αž“αž·αžαŸ’αž™αž’αžœαž·αž‡αŸ’αž‡αž˜αžΆαž“αžαŸ’αž›αžΆαŸ†αž„. αžαžΎαžαŸ’αž‰αž»αŸ†αžŸαŸ„αž€αžŸαŸ’αžŠαžΆαž™αž™αŸ‰αžΆαž„αžŽαžΆαžŠαŸ‚αž›αžœαžΆαž˜αž·αž“αž’αžΆαž…αž‘αŸ…αžšαž½αž…αž‘αŸαž€αŸ’αž“αž»αž„αž€αžΆαžšαžαŸ’αžšαž›αž”αŸ‹αž‘αŸ…αž–αŸαž›αžœαŸαž›αžΆ αž“αž·αž„αž…αŸ‚αž€αž•αŸ’αž›αžΌαžœαž‡αžΆαž˜αž½αž™αž–αž½αž€αž‚αŸαžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αž€αžΆαžšαž‘αžΆαž˜αž‘αžΆαžšαž‘αŸ…αžœαž·αž‰αž‘αŸ…αž˜αž€αŸ”
αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αžšαž€αžƒαžΎαž‰αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž’αŸ’αž“αž€αž–αž·αžαž‡αžΆαž˜αž·αž“αž…αžΌαž›αž…αž·αžαŸ’αžαž’αŸ†αž–αžΈ Slurm, αžαŸ’αž„αŸƒβ€‹αžŠαŸ†αž”αžΌαž„ αžŸαžšαžŸαŸαžšαž‘αŸ…αž’αŸ’αž“αž€αžšαŸ€αž”αž…αŸ†αžŽαžΆαž˜αž½αž™αŸ” αž™αžΎαž„β€‹αž“αžΉαž„β€‹αž”αž·αž‘β€‹αž€αžΆαžšβ€‹αž…αžΌαž›β€‹αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ αž“αž·αž„β€‹αžŸαž„β€‹αž”αŸ’αžšαžΆαž€αŸ‹β€‹αžœαž·αž‰β€‹αž“αžΌαžœβ€‹αžαž˜αŸ’αž›αŸƒβ€‹αž€αžΆαžšβ€‹αž…αžΌαž›αžšαž½αž˜β€‹αž–αŸαž‰αž›αŸαž‰αŸ”

αž‘αžΈαž”αŸ’αžšαžΉαž€αŸ’αžŸαžΆαž”αž…αŸ’αž…αŸαž€αž‘αŸαžŸ
αž”αžΎαž’αŸ’αž“αž€αžŽαžΆαžŠαžΉαž„ αžŒαžΈαž˜αžΈαž‘αŸ’αžšαžΈαžŸαŸŠαžΈαž˜αŸ‰αžΌαžŽαžΌαžœ (αž‚αžΆαžαŸ‹αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž€αŸ’αž›αžΉαž”αž“αŸƒαž“αžΆαž™αž€αž”αž…αŸ’αž…αŸαž€αž‘αŸαžŸ) αž™αžΎαž„αž”αžΆαž“αž’αž‰αŸ’αž‡αžΎαž‰αž‚αžΆαžαŸ‹αž‘αŸ… Slurm (αžŠαžΎαž˜αŸ’αž”αžΈαžŸαž·αž€αŸ’αžŸαžΆαž˜αž·αž“αž˜αŸ‚αž“αžŠαžΎαž˜αŸ’αž”αžΈαžŸαž˜αŸ’αžαŸ‚αž„) αŸ” αž›αŸ„αž€β€‹αž”αžΆαž“β€‹αžŸαž“αŸ’αž™αžΆβ€‹αžαžΆβ€‹αž“αžΉαž„β€‹αžŽαŸ‚αž“αžΆαŸ†β€‹αž’αŸ’αž“αž€β€‹αžšαžΆαž›αŸ‹β€‹αž‚αŸ’αž“αžΆαŸ” αž“αŸαŸ‡αž‘αŸ†αž“αž„αž‡αžΆαž˜αž·αž“αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž…αŸ†αž–αŸ„αŸ‡αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„ αž“αž·αž„αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžœαžΆαž“αžΉαž„αž‚αž½αžšαž±αŸ’αž™αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαžαŸ’αž›αžΆαŸ†αž„αž…αŸ†αž–αŸ„αŸ‡αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž•αŸ’αž“αŸ‚αž€αž–αŸαžαŸŒαž˜αžΆαž“αžœαž·αž‘αŸ’αž™αžΆαŸ”

Slurm αž‚αžΊαž‡αžΆαž’αŸ’αžœαžΈ

Slurm: Kubernetes αž–αžΉαž„αž•αŸ’αž’αŸ‚αž€αžαŸ’αž›αžΆαŸ†αž„αŸ” αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ αž“αž·αž„αž”αŸ’αžšαžΆαž€αŸ‹αžšαž„αŸ’αžœαžΆαž“αŸ‹

Slurm-4: αžœαž‚αŸ’αž‚αžŸαž·αž€αŸ’αžŸαžΆαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“ (27-29 αž§αžŸαž—αžΆ)
αžšαž…αž“αžΆαž‘αžΎαž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αžŠαŸ‚αž›αžƒαžΎαž‰ Kubernetes αž‡αžΆαž›αžΎαž€αžŠαŸ†αž”αžΌαž„ αž¬αž…αž„αŸ‹αž’αŸ’αžœαžΎαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž…αŸ†αžŽαŸαŸ‡αžŠαžΉαž„αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαŸ”
αž’αŸ’αž“αž€αž…αžΌαž›αžšαž½αž˜αž˜αŸ’αž“αžΆαž€αŸ‹αŸ—αž“αžΉαž„αž”αž„αŸ’αž€αžΎαžαž…αž„αŸ’αž€αŸ„αž˜αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαž“αŸ…αž€αŸ’αž“αž»αž„ Selectel cloud αž αžΎαž™αžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž“αŸ…αž‘αžΈαž“αŸ„αŸ‡αŸ”

αžαž˜αŸ’αž›αŸƒ: 25 αž–αžΆαž“αŸ‹

αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž“αŸαŸ‡

αž”αŸ’αžšαž’αžΆαž“αž”αž‘αž‘αžΈ 1αŸ– αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž’αŸ†αž–αžΈ Kubernetes αžŸαž˜αžΆαžŸαž’αžΆαžαž»αžŸαŸ†αžαžΆαž“αŸ‹αŸ—
β€’ αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž’αŸ†αž–αžΈαž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆ k8s αŸ” αž€αžΆαžšαž–αž·αž–αžŽαŸŒαž“αžΆ, αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ, αž‚αŸ†αž“αž·αž
β€’ Pod, ReplicaSet, Deployment, Service, Ingress, PV, PVC, ConfigMap, Secret
β€’ αž’αž“αž»αžœαžαŸ’αž

αž”αŸ’αžšαž’αžΆαž“αž”αž‘αž‘αžΈ 2αŸ– αž€αžΆαžšαžšαž…αž“αžΆαž…αž„αŸ’αž€αŸ„αž˜ αž’αžΆαžαž»αž•αŸ’αžŸαŸ†αžŸαŸ†αžαžΆαž“αŸ‹αŸ— αž€αžΆαžšαž’αžαŸ‹αž±αž“αž€αŸ†αž αž»αžŸ αž”αžŽαŸ’αžαžΆαž‰ k8s
β€’ αž€αžΆαžšαžšαž…αž“αžΆαž…αž„αŸ’αž€αŸ„αž˜ αž’αžΆαžαž»αž•αŸ’αžŸαŸ†αžŸαŸ†αžαžΆαž“αŸ‹αŸ— αž—αžΆαž–αž’αžαŸ‹αž’αŸ’αž˜αžαŸ‹αž…αŸ†αž–αŸ„αŸ‡αž€αŸ†αž αž»αžŸ
β€’ αž”αžŽαŸ’αžαžΆαž‰ k8s

αž”αŸ’αžšαž’αžΆαž“αž”αž‘αž‘αžΈ 3αŸ– Kubespray αž€αžΆαžšαž›αŸƒαžαž˜αŸ’αžšαžΌαžœ αž“αž·αž„αž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαž…αž„αŸ’αž€αŸ„αž˜ Kubernetes
β€’ Kubespray αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ αž“αž·αž„αž€αžΆαžšαž›αŸƒαžαž˜αŸ’αžšαžΌαžœαž“αŸƒαž…αž„αŸ’αž€αŸ„αž˜ Kubernetes
β€’ αž’αž“αž»αžœαžαŸ’αž

αž”αŸ’αžšαž’αžΆαž“αž”αž‘αž‘αžΈαŸ€αŸ– Ceph αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„αž…αž„αŸ’αž€αŸ„αž˜ αž“αž·αž„αž›αž€αŸ’αžαžŽαŸˆαž–αž·αžŸαŸαžŸαž“αŸƒαž€αžΆαžšαž„αžΆαžšαž€αŸ’αž“αž»αž„αž•αž›αž·αžαž€αž˜αŸ’αž˜
β€’ Ceph αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„αž…αž„αŸ’αž€αŸ„αž˜ αž“αž·αž„αž›αž€αŸ’αžαžŽαŸˆαž–αž·αžŸαŸαžŸαž“αŸƒαž€αžΆαžšαž’αŸ’αžœαžΎαž€αžΆαžšαž“αŸ…αž€αŸ’αž“αž»αž„αž•αž›αž·αžαž€αž˜αŸ’αž˜
β€’ αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαŸ– αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„ ceph

αž”αŸ’αžšαž’αžΆαž“αž”αž‘ #5αŸ– αž€αž˜αŸ’αžšαž·αžαžαŸ’αž–αžŸαŸ‹ Kubernetes Abstractions
β€’ DaemonSet, StatefulSet, RBAC, Job, CronJob, Pod Scheduling, InitContainer

αž”αŸ’αžšαž’αžΆαž“αž”αž‘αž‘αžΈαŸ¦αŸ– αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž’αŸ†αž–αžΈαž˜αž½αž€αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–
β€’ αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž’αŸ†αž–αžΈ Helm
β€’ αž’αž“αž»αžœαžαŸ’αž

αž”αŸ’αžšαž’αžΆαž“αž”αž‘αž‘αžΈαŸ₯αŸ– αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž– αž“αž·αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ
β€’ αž‘αž·αžŠαŸ’αž‹αž—αžΆαž–αž‘αžΌαž‘αŸ…αž“αŸƒαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž•αŸ’αžŸαž–αŸ’αžœαž•αŸ’αžŸαžΆαž™αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αŸ– NodePort vs LoadBalancer vs Ingress
β€’ αž§αž”αž€αžšαžŽαŸαž”αž‰αŸ’αž‡αžΆ Ingress (Nginx): αž’αŸ’αžœαžΎαž±αŸ’αž™αž˜αžΆαž“αžαž»αž›αŸ’αž™αž—αžΆαž–αž…αžšαžΆαž…αžšαž…αžΌαž›
β€’ αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αŸ– αž‘αž‘αž½αž›αž”αžΆαž“αžœαž·αž‰αŸ’αž‰αžΆαž”αž“αž”αžαŸ’αžš SSL/TLS αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·
β€’ αž’αž“αž»αžœαžαŸ’αž

αž”αŸ’αžšαž’αžΆαž“αž”αž‘αž‘αžΈαŸ©αŸ– αž€αžΆαžšαž€αžΆαž”αŸ‹αžˆαžΎ αž“αž·αž„αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™
β€’ αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž…αž„αŸ’αž€αŸ„αž˜ Prometheus
β€’ αž€αžΆαžšαž€αžΆαž”αŸ‹αžˆαžΎαž‡αžΆαž€αŸ’αžšαž»αž˜, αžŸαŸ’αž‘αžΆαžαŸ‹αž‡αŸ†αž“αžΆαž‰/αž”αžαŸ‹αž”αŸ‚αž“/αž‚αžΈαž”αžΆαžŽαžΆ
β€’ αž’αž“αž»αžœαžαŸ’αž

αž”αŸ’αžšαž’αžΆαž“αž”αž‘αž‘αžΈαŸ©αŸ– CI/CD αž€αžΆαžšαž€αžŸαžΆαž„αž€αžΆαžšαžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αžŠαž›αŸ‹αž…αž„αŸ’αž€αŸ„αž˜αž–αžΈαžŠαŸ†αž”αžΌαž„

αž”αŸ’αžšαž’αžΆαž“αž”αž‘αž‘αžΈ αŸ‘αŸ‘αŸ– αž€αžΆαžšαž„αžΆαžšαž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„ αž€αžΆαžšαžŠαžΆαž€αŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ αž“αž·αž„αžŠαžΆαž€αŸ‹αž±αŸ’αž™αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‡αžΆαž…αž„αŸ’αž€αŸ„αž˜

αž‚αŸαž αž‘αŸ†αž–αŸαžš Slurm

MegaSlurm: αžœαž‚αŸ’αž‚αžŸαž·αž€αŸ’αžŸαžΆαž€αž˜αŸ’αžšαž·αžαžαŸ’αž–αžŸαŸ‹ (αžαŸ’αž„αŸƒαž‘αžΈ 31 αž§αžŸαž—αžΆ αžŠαž›αŸ‹αžαŸ’αž„αŸƒαž‘αžΈ 2 αžαŸ‚αž˜αž·αžαž»αž“αžΆ)
αžšαž…αž“αžΆαž‘αžΎαž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžœαž·αžŸαŸ’αžœαž€αžš αž“αž·αž„αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αžš Kubernetes αž€αŸαžŠαžΌαž…αž‡αžΆαž“αž·αžŸαŸ’αžŸαž·αžαž”αž‰αŸ’αž…αž”αŸ‹αž€αžΆαžšαžŸαž·αž€αŸ’αžŸαžΆαžαŸ’αž“αžΆαž€αŸ‹αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αŸ”
αž™αžΎαž„αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž…αž„αŸ’αž€αŸ„αž˜ αžŠαžΎαž˜αŸ’αž”αžΈαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž€αžΆαžšαž’αžΆαž”αŸ‹αžŠαŸαžαž“αŸƒαž’αžΆαžαž»αž•αŸ’αžŸαŸ†αž“αŸƒαž…αž„αŸ’αž€αŸ„αž˜αž€αŸ’αž“αž»αž„αž–αŸαž›αžŠαŸ†αžŽαžΆαž›αž‚αŸ’αž“αžΆ αž“αž·αž„αž€αžΆαžšαžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αž‘αŸ…αž€αžΆαž“αŸ‹αž…αž„αŸ’αž€αŸ„αž˜αŸ”

αžαž˜αŸ’αž›αŸƒ: 60 αž–αžΆαž“αŸ‹ (45 αž–αžΆαž“αŸ‹αž“αžΆαž€αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž…αžΌαž›αžšαž½αž˜ Slurm-4)

αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž“αŸαŸ‡

αž”αŸ’αžšαž’αžΆαž“αž”αž‘αž‘αžΈ αŸ‘αŸ– αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸƒαž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαž…αž„αŸ’αž€αŸ„αž˜αž”αžšαžΆαž‡αŸαž™αž–αžΈαžαžΆαž„αž€αŸ’αž“αž»αž„
β€’ αž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™ Kubespray
β€’ αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„αžŸαž˜αžΆαžŸαž’αžΆαžαž»αž”αž“αŸ’αžαŸ‚αž˜
β€’ αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž…αž„αŸ’αž€αŸ„αž˜ αž“αž·αž„αž€αžΆαžšαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆ
β€’ αž’αž“αž»αžœαžαŸ’αž

αž”αŸ’αžšαž’αžΆαž“αž”αž‘αž‘αžΈ 2αŸ– αž€αžΆαžšαž’αž“αž»αž‰αŸ’αž‰αžΆαžαž€αŸ’αž“αž»αž„αž…αž„αŸ’αž€αŸ„αž˜αžŠαŸ„αž™αž”αŸ’αžšαžΎαž’αŸ’αž“αž€αž•αŸ’αžαž›αŸ‹αžŸαŸαžœαžΆαžαžΆαž„αž€αŸ’αžšαŸ…
β€’ LDAP (Nginx + Python)
β€’ ODC (Dex + Gangway)
β€’ αž’αž“αž»αžœαžαŸ’αž

αž”αŸ’αžšαž’αžΆαž“αž”αž‘αž‘αžΈ αŸ£αŸ– αž‚αŸ„αž›αž“αž™αŸ„αž”αžΆαž™αž”αžŽαŸ’αžαžΆαž‰
β€’ αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž’αŸ†αž–αžΈ CNI
β€’ αž‚αŸ„αž›αž€αžΆαžšαžŽαŸαžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αž”αžŽαŸ’αžαžΆαž‰
β€’ αž’αž“αž»αžœαžαŸ’αž

αž”αŸ’αžšαž’αžΆαž“αž”αž‘αž‘αžΈαŸ€αŸ– αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ‚αž›αž˜αžΆαž“αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž– αž“αž·αž„αžαŸ’αž–αžŸαŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž…αž„αŸ’αž€αŸ„αž˜
β€’ PodSecurityPolicy
β€’ PodDisruptionBudget

αž”αŸ’αžšαž’αžΆαž“αž”αž‘αž‘αžΈ αŸ₯αŸ– Kubernetes αŸ” αžαŸ„αŸ‡αž˜αžΎαž›αž“αŸ…αž€αŸ’αžšαŸ„αž˜αž€αŸ’αžšαžŽαžΆαžαŸ‹
β€’ αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž§αž”αž€αžšαžŽαŸαž”αž‰αŸ’αž‡αžΆ
β€’ αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžš αž“αž·αž„ CRDs
β€’ αž’αž“αž»αžœαžαŸ’αž

αž”αŸ’αžšαž’αžΆαž“αž”αž‘αž‘αžΈαŸ¦αŸ– αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ‚αž›αž˜αžΆαž“αžŸαŸ’αžαžΆαž“αž—αžΆαž–αž“αŸ…αž€αŸ’αž“αž»αž„αž…αž„αŸ’αž€αŸ„αž˜
β€’ αž€αžΆαžšαž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αžŽαŸ’αžαž»αŸ†αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ„αž™αž”αŸ’αžšαžΎ PostgreSQL αž‡αžΆαž§αž‘αžΆαž αžšαžŽαŸ
β€’ αž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αŸ’αžšαž»αž˜ RabbitMQ
β€’ αž’αž“αž»αžœαžαŸ’αž

αž”αŸ’αžšαž’αžΆαž“αž”αž‘αž‘αžΈαŸ§αŸ– αžšαž€αŸ’αžŸαžΆαž’αžΆαžαŸŒαž€αŸ†αž”αžΆαŸ†αž„
β€’ αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž’αžΆαžαŸŒαž€αŸ†αž”αžΆαŸ†αž„αž“αŸ…αž€αŸ’αž“αž»αž„ Kubernetes
β€’ αžαž»αžŠαŸαž€

αž”αŸ’αžšαž’αžΆαž“αž”αž‘αž‘αžΈ αŸ¨αŸ– αž§αž”αž€αžšαžŽαŸαžœαžΆαžŸαŸ‹αžŸαŸ’αž‘αž„αŸ‹αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž•αŸ’αžαŸαž€
β€’ αž‘αŸ’αžšαžΉαžŸαŸ’αžαžΈ
β€’ αž’αž“αž»αžœαžαŸ’αž

αž”αŸ’αžšαž’αžΆαž“αž”αž‘αž‘αžΈαŸ©αŸ– αž€αžΆαžšαž”αž˜αŸ’αžšαž»αž„αž‘αž»αž€ αž“αž·αž„αž€αžΆαžšαžŸαž„αŸ’αž‚αŸ’αžšαŸ„αŸ‡αž‚αŸ’αžšαŸ„αŸ‡αž˜αž αž“αŸ’αžαžšαžΆαž™
β€’ αž€αžΆαžšαž”αž˜αŸ’αžšαž»αž„αž‘αž»αž€ αž“αž·αž„αž€αžΆαžšαžŸαŸ’αžαžΆαžšαž…αž„αŸ’αž€αŸ„αž˜αžŠαŸ„αž™αž”αŸ’αžšαžΎ Heptio Velero (ធតីត Ark) αž“αž·αž„αž›αŸ”
β€’ αž’αž“αž»αžœαžαŸ’αž

αž”αŸ’αžšαž’αžΆαž“αž”αž‘αž‘αžΈαŸ‘αŸ αŸ– αž€αžΆαžšαžŠαžΆαž€αŸ‹αž±αŸ’αž™αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ
β€’ αž›αžΈαž“
β€’ αž§αž”αž€αžšαžŽαŸαž‚αŸ†αžšαžΌ αž“αž·αž„αž€αžΆαžšαžŠαžΆαž€αŸ‹αž±αŸ’αž™αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹
β€’ αž™αž»αž‘αŸ’αž’αžŸαžΆαžŸαŸ’αžαŸ’αžšαžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™

αž”αŸ’αžšαž’αžΆαž“αž”αž‘αž‘αžΈ αŸ‘αŸ‘αŸ– αž€αžΆαžšαž„αžΆαžšαž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„
β€’ αž€αžΆαžšαž€αžŸαžΆαž„ CI/CD αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŠαžΆαž€αŸ‹αž±αŸ’αž™αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ
β€’ αž€αžΆαžšαž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αž…αž„αŸ’αž€αŸ„αž˜

αž‚αŸαž αž‘αŸ†αž–αŸαžš MegaSlurm

Docker, Ansible αž“αž·αž„ Ceph

Slurm: Kubernetes αž–αžΉαž„αž•αŸ’αž’αŸ‚αž€αžαŸ’αž›αžΆαŸ†αž„αŸ” αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ αž“αž·αž„αž”αŸ’αžšαžΆαž€αŸ‹αžšαž„αŸ’αžœαžΆαž“αŸ‹

αžŠαŸ†αžŽαžΎαžšαž€αž˜αŸ’αžŸαžΆαž“αŸ’αžαž”αŸ’αžšαžœαžαŸ’αžαž·αžŸαžΆαžŸαŸ’αžαŸ’αžš

Slurm αžŠαŸ†αž”αžΌαž„αž‚αžΊαž‡αžΆαž€αžΆαžšαž–αž·αžŸαŸ„αž’αž“αŸαŸ” αžœαžΆαž‚αŸ’αž˜αž·αž“αž”αžΆαž“αž”αž‰αŸ’αž…αž”αŸ‹αž”αž‘αž”αž„αŸ’αž αžΆαž‰αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαž™αŸ‰αžΆαž„αž–αž·αžαž”αŸ’αžšαžΆαž€αžŠαž“αŸ…αž›αžΎαž†αžΆαž€ αž αžΎαž™αž“αŸ…αž€αŸ’αž“αž»αž„αž‘αžŸαŸ’αžŸαž“αž·αž€αž‡αž“αž’αž„αŸ’αž‚αž»αž™αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αž˜αŸ’αžšαž·αžαž˜αž½αž™ αžŠαŸ‚αž›αžŠαž›αŸ‹αž–αŸαž›αžαŸ’αžšαžΌαžœαž’αž‰αŸ’αž‡αžΎαž‰αž–αž½αž€αž‚αŸαž’αŸ’αžœαžΎαž‡αžΆαžœαžΆαž‚αŸ’αž˜αž·αž“αŸ”

αžœαž‚αŸ’αž‚αžŸαž·αž€αŸ’αžŸαžΆαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž–αž·αžαž”αŸ’αžšαžΆαž€αžŠαž”αžΆαž“αž€αžΎαžαž‘αžΎαž„αž“αŸ… Slurm αž‘αžΈαž–αžΈαžšαŸ– 80% αž“αŸƒαž’αŸ’αž“αž€αž…αžΌαž›αžšαž½αž˜αž”αžΆαž“αžƒαžΎαž‰ Kubernetes αž‡αžΆαž›αžΎαž€αžŠαŸ†αž”αžΌαž„ αž αžΎαž™αž‘αžΈαž”αžΈαž˜αž·αž“αžŠαŸ‚αž›αž”αžΆαž“αž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™ Docker αž‘αŸαŸ”
αžœαžΆαž…αŸ’αž”αžΆαžŸαŸ‹αžŽαžΆαžŸαŸ‹αžαžΆαžαžΎαžœαžΆαž–αž·αž”αžΆαž€αž”αŸ‰αž»αžŽαŸ’αžŽαžΆαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž˜αž“αž»αžŸαŸ’αžŸαž€αŸ’αž“αž»αž„αž€αžΆαžšαžŸαŸ’αžαžΆαž”αŸ‹αž€αžΆαžšαž”αž„αŸ’αžšαŸ€αž“αž’αŸ†αž–αžΈ Docker αž“αŸ…αž–αŸαž›αž–αŸ’αžšαžΉαž€ αž αžΎαž™αž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αžœαžΆαž“αŸ…αž€αŸ’αž“αž»αž„αžšαž”αŸ€αž”αž”αŸ’αžšαž™αž»αž‘αŸ’αž’αž“αŸ…αž–αŸαž›αž›αŸ’αž„αžΆαž…αŸ”
Ceph αž”αžŽαŸ’αžαžΆαž›αž±αŸ’αž™αž˜αžΆαž“αž€αžΆαžšαž›αŸ†αž”αžΆαž€αž‡αžΆαž…αŸ’αžšαžΎαž“αŸ” αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡αž‘αŸ…αž‘αŸ€αž αž˜αžΆαž“αž˜αž“αž»αžŸαŸ’αžŸ 20 αž“αžΆαž€αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž‘αžŸαŸ’αžŸαž“αž·αž€αž‡αž“αžŠαŸ‚αž›αž”αŸ’αžšαžΆαž€αžŠαž‡αžΆαžαŸ’αžšαžΌαžœαž€αžΆαžšαž–αž“αŸ’αž™αž›αŸ‹ Ceph αž αžΎαž™ 60 αž“αžΆαž€αŸ‹αž‘αŸ€αžαžŠαŸ‚αž›αž˜αž·αž“αžαŸ’αžšαžΌαžœαž€αžΆαžš Ceph αž‘αžΆαž›αŸ‹αžαŸ‚αžŸαŸ„αŸ‡αŸ”

αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Slurm αž‘αžΈαž”αžΈ αž™αžΎαž„αž”αžΆαž“αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžš Docker αž“αž·αž„ Ansible αž‘αŸ…αž‡αžΆ webinars αžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€ αžŠαŸ„αž™αž•αŸ’αžαž›αŸ‹αž–αŸαž›αžœαŸαž›αžΆαž”αž“αŸ’αžαŸ‚αž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Kubernetes αŸ” αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αžΆαž“αž”αŸ’αžšαŸ‚αž€αŸ’αž›αžΆαž™αž‘αŸ…αž‡αžΆαž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„αž€αŸ’αž“αž»αž„αžαŸ’αž›αžΉαž˜αžŸαžΆαžš αž“αž·αž„αž˜αž·αž“αž˜αžΆαž“αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαŸ– αž€αžΆαžšαž”αž„αŸ’αžšαŸ€αž“αž˜αž·αž“αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž…αŸ†αž–αŸ„αŸ‡αž”αž»αžšαžŸαžŠαŸ‚αž›αž˜αžΆαž“αž”αž‘αž–αž·αžŸαŸ„αž’αž“αŸ αž αžΎαž™αž€αžΆαžšαž–αž·αž—αžΆαž€αŸ’αžŸαžΆαž‚αžΊαž˜αž·αž“αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž…αŸ†αž–αŸ„αŸ‡αž’αŸ’αž“αž€αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžŠαŸ†αž”αžΌαž„αž‘αžΎαž™αŸ”

αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Slurm αž‘αžΈαž”αž½αž“ αž™αžΎαž„αž”αžΆαž“αž’αŸ’αžœαžΎαžœαž‚αŸ’αž‚αžŸαž·αž€αŸ’αžŸαžΆαžαžΆαž˜αž’αŸŠαžΈαž“αž’αžΊαžŽαž·αžαž›αžΎ Docker, Ansible αž“αž·αž„ Ceph αŸ” αž‚αŸ†αž“αž·αžαž“αŸαŸ‡αž‚αžΊαžŸαžΆαž˜αž‰αŸ’αž‰αŸ– αž’αŸ’αž“αž€αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž€αžΆαžšαžœαžΆαž“αžΉαž„αž’αŸ’αžœαžΎαžœαž‚αŸ’αž‚αžŸαž·αž€αŸ’αžŸαžΆαžŠαŸ„αž™αž‚αž·αž αž’αŸ’αž“αž€αžŠαŸ‚αž›αž˜αž·αž“αžαŸ’αžšαžΌαžœαž€αžΆαžšαžœαžΆαž“αžΉαž„αž˜αž·αž“αž’αžΎαž–αžΎαžŠαŸ„αž™αžŸαŸ’αž„αž”αŸ‹αžŸαŸ’αž„αžΆαžαŸ‹αŸ” αžŠαŸ„αž™αžœαž·αž“αž·αž…αŸ’αž†αŸαž™αžŠαŸ„αž™αž€αŸ’αžšαž»αž˜αž’αŸ’αž“αž€αžŸαžΆαž€αž›αŸ’αž”αž„ αžœαž‚αŸ’αž‚αžŸαž·αž€αŸ’αžŸαžΆ Docker αž…αŸ†αžŽαžΆαž™αž–αŸαž› 6-8 αž˜αŸ‰αŸ„αž„αŸ” Ansible αž“αž·αž„ Ceph αž˜αž·αž“αž‘αžΆαž“αŸ‹αž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„αž“αŸ…αž‘αžΎαž™αž‘αŸαŸ”

αž€αžΆαžšαž”αžŠαž·αžŸαŸαž’αŸ–

  • αžœαž‚αŸ’αž‚αžŸαž·αž€αŸ’αžŸαžΆαž–αž·αžŸαŸ„αž’αž“αŸαŸ” αž€αžΆαžšαžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αžαžαŸ’αž›αŸ‡αž”αŸ’αžšαž αŸ‚αž›αž‡αžΆαž˜αž·αž“αž‡αŸ„αž‚αž‡αŸαž™αž‘αŸαŸ”
  • αžœαŸαž‘αž·αž€αžΆ (Stepik.org) αž‚αžΊαž†αŸ… αž αžΎαž™αž™αžΎαž„αž˜αž·αž“αž”αžΆαž“αž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αžœαžΆαž–αžΈαž˜αž»αž“αž˜αž€αž‘αŸαŸ” αžœαžΆβ€‹αž”αŸ’αžšαž αŸ‚αž›β€‹αž‡αžΆβ€‹αž“αžΉαž„β€‹αž˜αžΆαž“β€‹αž€αžΆαžšβ€‹αžšαžŠαž·αž”αžšαžŠαž»αž”β€‹αŸ”
  • αžœαž‚αŸ’αž‚αžŸαž·αž€αŸ’αžŸαžΆαž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžΆαž€αž›αŸ’αž”αž„αžαŸ‚αž›αžΎαž”αž»αž‚αŸ’αž‚αž›αž·αž€ Southbridge αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ” αž”αŸ’αžšαžΆαž€αžŠαžŽαžΆαžŸαŸ‹ αž’αŸ’αž“αž€αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αž‰αŸ’αž…αž”αŸ‹αž’αŸ’αžœαžΈαž˜αž½αž™αž“αŸ…αž–αŸαž›αž’αŸ’αž“αž€αž‘αŸ…αŸ”

Slurm: Kubernetes αž–αžΉαž„αž•αŸ’αž’αŸ‚αž€αžαŸ’αž›αžΆαŸ†αž„αŸ” αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ αž“αž·αž„αž”αŸ’αžšαžΆαž€αŸ‹αžšαž„αŸ’αžœαžΆαž“αŸ‹

αž“αŸ…αžαŸ’αž„αŸƒαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž‡αž‡αŸ‚αž€αž“αŸƒ Slurm αžŠαŸ†αž”αžΌαž„αž–αž½αž€αž‚αŸαž…αž„αž…αžΆαŸ†αžαžΆαžαžΎαžœαžΆαž‘αžΌαž™ αž“αž·αž„αžŸαž”αŸ’αž”αžΆαž™αž”αŸ‰αž»αžŽαŸ’αžŽαžΆ αž”αžΎαž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαž˜αžΆαž“αž—αžΆαž–αž—αŸαž™αžšαž“αŸ’αž’αžαŸ‹αž€αŸ’αž“αž»αž„αžŸαŸ’αžαžΆαž”αŸαž“αž€αŸαžŠαŸ„αž™αŸ” αž’αŸ’αž“αž€αžŠαŸ†αž”αžΌαž„αžŠαŸ‚αž›αž‘αž‘αž½αž›αž”αžΆαž“αž€αžΆαžšαž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž™αŸ‰αžΆαž„αžšαžŸαŸ‹αžšαžœαžΎαž€αž”αŸ†αž•αž»αžαŸ” αžαŸ„αŸ‡αž˜αžΎαž›αžαžΆαžαžΎαž˜αžΆαž“αž’αŸ’αžœαžΈαž€αžΎαžαž‘αžΎαž„αž…αŸ†αž–αŸ„αŸ‡αžŸαž·αžŸαŸ’αžŸαžŠαŸ†αž”αžΌαž„αž“αŸƒαžœαž‚αŸ’αž‚αžŸαž·αž€αŸ’αžŸαžΆαžαžΆαž˜αž’αŸŠαžΈαž“αž’αžΊαžŽαž·αžαŸ” πŸ™‚

Slurm: Kubernetes αž–αžΉαž„αž•αŸ’αž’αŸ‚αž€αžαŸ’αž›αžΆαŸ†αž„αŸ” αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ αž“αž·αž„αž”αŸ’αžšαžΆαž€αŸ‹αžšαž„αŸ’αžœαžΆαž“αŸ‹

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹