ΠΠΎΡΡΡΠΏΠ½Π° Π΅ Π²Π΅ΡΡΠΈΡ Π½Π° ΡΠ²ΠΎΠ±ΠΎΠ΄Π½Π°ΡΠ° PaaS ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Cozystack 0.40, ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½Π° Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° Kubernetes. ΠΡΠΎΠ΅ΠΊΡΡΡ Π΅ Π½Π°ΡΠΎΡΠ΅Π½ ΠΊΡΠΌ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΠ½Π΅ Π½Π° Π³ΠΎΡΠΎΠ²Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π·Π° Ρ ΠΎΡΡΠΈΠ½Π³ Π΄ΠΎΡΡΠ°Π²ΡΠΈΡΠΈ ΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΠ°ΡΡΠ½ΠΈ ΠΈ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΈ ΠΎΠ±Π»Π°ΡΠΈ. ΠΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° ΡΠ΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π½Π° ΡΡΡΠ²ΡΡΠΈ ΠΈ ΠΎΠ±Ρ Π²Π°ΡΠ° Π²ΡΠΈΡΠΊΠΈ Π°ΡΠΏΠ΅ΠΊΡΠΈ Π½Π° ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ°ΡΠ° Π½Π° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π·Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΠ½Π΅ Π½Π° ΡΠΏΡΠ°Π²Π»ΡΠ²Π°Π½ΠΈ ΡΡΠ»ΡΠ³ΠΈ. Cozystack ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΠ½Π΅ Π½Π° Kubernetes ΠΊΠ»ΡΡΡΠ΅ΡΠΈ, Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ Π²ΠΈΡΡΡΠ°Π»Π½ΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈ. ΠΠΎΠ΄ΡΡ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Π΅ Π½Π°Π»ΠΈΡΠ΅Π½ Π½Π° GitHub ΠΈ ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΡ Apache-2.0.
ΠΠ°ΡΠΎ ΠΎΡΠ½ΠΎΠ²Π΅Π½ ΡΡΠ΅ΠΊ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Talos Linux ΠΈ Flux CD. ΠΠ±ΡΠ°Π·ΠΈΡΠ΅ ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°, ΡΠ΄ΡΠΎΡΠΎ ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΡΠ΅ ΡΠΎΡΠΌΠΈΡΠ°Ρ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΈ ΡΠ΅ ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°Ρ Π°ΡΠΎΠΌΠ°ΡΠ½ΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠ΅ ΠΈΠ·Π±Π΅Π³Π½Π°Ρ ΡΠ°ΠΊΠΈΠ²Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ ΠΊΠ°ΡΠΎ dkms ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ΅Π½ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡ, ΠΈ Π³Π°ΡΠ°Π½ΡΠΈΡΠ° ΡΡΠ°Π±ΠΈΠ»Π½Π°ΡΠ° ΡΠ°Π±ΠΎΡΠ°. ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΡΠ΅ ΠΏΡΠΎΡΡ ΠΌΠ΅ΡΠΎΠ΄ Π·Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ Π² ΠΏΡΠ°Π·Π΅Π½ Π΄Π°ΡΠ° ΡΠ΅Π½ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° PXE ΠΈ debian-ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΎΡ talos-bootstrap. Π ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎ ΠΊΠ»ΠΈΠΊ Π΄Π° ΡΠ°Π·Π²ΠΈΠ²Π°ΡΠ΅ Kafka, FerretDB, PostgreSQL, Cilium, Grafana, Victoria Metrics ΠΈ Π΄ΡΡΠ³ΠΈ ΡΡΠ»ΡΠ³ΠΈ.
ΠΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Π²ΠΊΠ»ΡΡΠ²Π° ΡΠ²ΠΎΠ±ΠΎΠ΄Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²Π°ΡΠ° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° (fabric) Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° Kube-OVN, ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Cilium Π·Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΌΡΠ΅ΠΆΠ°ΡΠ° Π½Π° ΡΡΠ»ΡΠ³ΠΈΡΠ΅, MetalLB Π·Π° Π°Π½ΠΎΠ½ΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ»ΡΠ³ΠΈΡΠ΅ Π½Π°Π²ΡΠ½. Π‘ΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΎ Π½Π° LINSTOR, ΠΊΡΠ΄Π΅ΡΠΎ ΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ZFS ΠΊΠ°ΡΠΎ Π±Π°Π·ΠΎΠ² ΡΠ»ΠΎΠΉ Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈ DRBD Π·Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ. ΠΠΌΠ° ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½ ΡΡΠ΅ΠΊ Π·Π° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° VictoriaMetrics ΠΈ Grafana. ΠΠ° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° Π²ΠΈΡΡΡΠ°Π»Π½ΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΡΠ° KubeVirt, ΠΊΠΎΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠ»Π°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΠΈΡΡΡΠ°Π»Π½ΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅ Π½Π° Kubernetes ΠΈ Π²Π΅ΡΠ΅ ΠΈΠΌΠ° Π²ΡΠΈΡΠΊΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Ρ Cluster API Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΏΡΠ°Π²Π»ΡΠ²Π°Π½ΠΈ Kubernetes ΠΊΠ»ΡΡΡΠ΅ΡΠΈ Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° "ΠΆΠ΅Π»Π΅Π·Π½ΠΈΡ" Kubernetes ΠΊΠ»ΡΡΡΠ΅Ρ.
Π Π½ΠΎΠ²ΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅:
- ΠΠΎΠ±Π°Π²Π΅Π½ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ LINSTOR Π·Π° ΠΎΠΏΡΠΈΠΌΠ°Π»Π½ΠΎ ΡΠ°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° pod-ΠΎΠ²Π΅. Π‘ΠΎΠ±ΡΡΠ²Π΅Π½ΠΈΡΡ Β«scheduler extenderΒ» Π·Π° Kubernetes ΡΠ°Π±ΠΎΡΠΈ ΡΡΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈΡ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ Π½Π° Kubernetes ΠΈ ΠΏΠΎΠΌΠ°Π³Π° ΠΎΠΏΡΠΈΠΌΠ°Π»Π½ΠΎ Π΄Π° ΡΠ°Π·ΠΏΠΎΠ»Π°Π³Π° pod-ΠΎΠ²Π΅ Π½Π° Π²ΡΠ·Π»ΠΈ Ρ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ LINSTOR. ΠΠΎΠ³Π°ΡΠΎ pod ΠΈΠ·ΠΈΡΠΊΠ²Π° ΡΠΎΠΌ LINSTOR, ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΡΡ ΡΠ΅ Π΄ΠΎΠΏΠΈΡΠ²Π° Π΄ΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠ° LINSTOR Π·Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΡΠ½ΠΎΡΠ½ΠΎ Π²ΡΠ·Π»ΠΈΡΠ΅, Π½Π° ΠΊΠΎΠΈΡΠΎ ΠΈΠΌΠ° Π»ΠΎΠΊΠ°Π»Π½ΠΈ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ Π½Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈΡΠ΅ ΡΠΎΠΌΠΎΠ²Π΅. ΠΡΠΈΠΎΡΠΈΡΠ΅Ρ ΡΠ΅ Π΄Π°Π²Π° Π½Π° Π²ΡΠ·Π»ΠΈΡΠ΅, ΠΊΡΠ΄Π΅ΡΠΎ Π΄Π°Π½Π½ΠΈΡΠ΅ Π²Π΅ΡΠ΅ ΠΏΡΠΈΡΡΡΡΠ²Π°Ρ, ΠΊΠΎΠ΅ΡΠΎ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠ° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈΡ ΡΡΠ°ΡΠΈΠΊ ΠΈ ΠΏΠΎΠ²ΠΈΡΠ°Π²Π° I/O ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°. ΠΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΎ admission-Π²Π΅Π±Ρ ΡΠΊ, ΠΊΠΎΠΉΡΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π½Π°ΡΠΎΡΠ²Π° pod-ΠΎΠ²Π΅, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠΈ CSI ΡΠΎΠΌΠΎΠ²Π΅ LINSTOR, ΠΊΡΠΌ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈΡ ΡΠΈ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ, ΠΎΡΠΈΠ³ΡΡΡΠ²Π°ΠΉΠΊΠΈ Π±Π΅Π·ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Π±Π΅Π· ΡΡΡΠ½Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠ°.
- Π₯ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ SeaweedFS SeaweedFS Π΅ ΠΎΠ±Π½ΠΎΠ²Π΅Π½ Π΄ΠΎ Π²Π΅ΡΡΠΈΡ 4.05, Π² ΠΊΠΎΡΡΠΎ Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ S3 ΡΡΠ°ΡΠΈΠΊΡΡ (ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° ΡΡΠ°ΡΠΈΠΊΠ°): Π·Π°ΠΏΠΈΡΠ²Π°Π½ΠΈΡΡΠ° ΡΠ΅Π³Π° ΠΎΡΠΈΠ²Π°Ρ Π½Π° Π½Π°ΠΉ-Π±Π»ΠΈΠ·ΠΊΠΈΡΠ΅ ΡΡΡΠ²ΡΡΠΈ, ΠΊΠΎΠ΅ΡΠΎ Π½Π°ΠΌΠ°Π»ΡΠ²Π° Π·Π°Π±Π°Π²ΡΠ½Π΅ΡΠΎ ΠΈ ΡΡΠΊΠΎΡΡΠ²Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ. Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ Π½ΠΎΠ² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π·Π° Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠ°Π½Π΅ Ρ ΡΠ΅Π± ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΡΠ²Π°Π½Π΅, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΡΠ°Π±ΠΎΡΠ½ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡΠΈ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ Π·Π°Π΄Π°ΡΠΈ. Π Grafana ΡΠ° Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈ ΡΠ°Π±Π»Π°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΠΈ ΡΠ»Π΅Π΄Π΅Π½Π΅ Π½Π° bucket-ΠΈ, API ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°. ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° TLS ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈ Π·Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈΡΠ΅ Π·Π° Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠ°Π½Π΅ ΠΈ ΡΠ°Π±ΠΎΡΠ½ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡΠΈ.
- ΠΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡΡ valuesFrom ΠΎΡ FluxCD Π·Π°ΠΌΠ΅Π½ΠΈ lookup ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅ Π² Helm ΠΊΠ°ΡΡΠΈΡΠ΅. Π’ΠΎΠ²Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΠΎ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠΈΠ³ΡΡΡΠ²Π° ΠΏΠΎ-ΡΠΈΡΡΠΎ ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ ΠΈ ΠΏΡΠ΅ΠΌΠ°Ρ Π²Π° Π½ΡΠΆΠ΄Π°ΡΠ° ΠΎΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠΈ Π·Π° ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»Π½Π° ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ (reconciliation). ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° ΠΎΡ ConfigMaps ΠΈ ΠΏΡΠ΅ΠΏΡΠ°ΡΠΊΠΈΡΠ΅ ΠΊΡΠΌ ΡΡΠ»ΡΠ³ΠΈ ΡΠ΅Π³Π° ΡΠ΅ ΡΠΏΡΠ°Π²Π»ΡΠ²Π° ΡΠ΅Π½ΡΡΠ°Π»Π½ΠΎ ΡΡΠ΅Π· ΠΊΠ»ΡΡΠ° cozystack-values Π²ΡΠ² Π²ΡΡΠΊΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΎΡ ΠΈΠΌΠ΅Π½Π°.
- Π ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈΡΠ΅ Π·Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ LINSTOR Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ° auto-diskful, ΠΊΠΎΡΡΠΎ ΠΏΡΠ΅Π²Π΅ΠΆΠ΄Π° Π±Π΅Π·Π΄ΠΈΡΠΊΠΎΠ²ΠΈ Π²ΡΠ·Π»ΠΈ Π² Π΄ΠΈΡΠΊΠΎΠ²ΠΈ, Π°ΠΊΠΎ ΡΠ΅ Π·Π°Π΄ΡΡΠΆΠ°Ρ ΡΠ΅ΡΡΡΡΠΈ DRBD Π² ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ Primary ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ 30 ΠΌΠΈΠ½ΡΡΠΈ.
- ΠΠ½Π΅Π΄ΡΠ΅Π½ΠΈ ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π²Π΅ΡΡΠΈΠΈΡΠ΅ Π·Π° PostgreSQL, Kubernetes, MariaDB ΠΈ Redis, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π² upstream ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈΡΠ΅ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΈ Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° Π²Π΅ΡΡΠΈΠΈΡΠ΅.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
