Π Π§Π΅Π»ΡΠ±ΠΈΠ½ΡΠΊ ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΠΆΠ΄Π°Ρ ΡΡΠ΅ΡΠΈ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡΠ΅ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΈ Sysadminka, ΠΈ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½Π°ΡΠ° ΠΎΡ ΡΡΡ Π½Π°ΠΏΡΠ°Π²ΠΈΡ Π΄ΠΎΠΊΠ»Π°Π΄ Π·Π° Π½Π°ΡΠ΅ΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° 1Π‘-ΠΠΈΡΡΠΈΠΊΡ Π² Kubernetes.
ΠΠΈΡΡΠΈΠΊΡ, Kubernetes, Ceph β ΠΎΡΠ»ΠΈΡΠ½Π° ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ?
Π©Π΅ ΡΠ°Π·ΠΊΠ°ΠΆΠ° ΠΊΠ°ΠΊ ΡΡΠ±ΡΠ°Ρ ΠΌΠ΅ ΡΠ°Π±ΠΎΡΠ΅ΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΡ Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π°.
Π₯Π°ΠΉΠ΄Π΅ Π΄Π° Π·Π°ΠΏΠΎΡΠ²Π°ΠΌΠ΅!

Π‘ΡΠ΅ΡΠ°ΡΠ° ΡΠ΅ ΠΏΡΠΎΠ²Π΅Π΄Π΅ Π½Π° 18 Π°ΠΏΡΠΈΠ» Π² Π§Π΅Π»ΡΠ±ΠΈΠ½ΡΠΊ. ΠΠ° Π½Π°ΡΠΈΡΠ΅ ΡΡΠ΅ΡΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ Π² ΠΈ Π΄Π° ΡΠ΅ Π·Π°ΠΏΠΎΠ·Π½Π°Π΅ΡΠ΅ Ρ .
ΠΠΊΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° Π΄ΠΎΠΉΠ΄Π΅ΡΠ΅ ΠΏΡΠΈ Π½Π°Ρ Ρ Π΄ΠΎΠΊΠ»Π°Π΄ ΠΈΠ»ΠΈ ΠΊΠ°ΡΠΎ ΡΠ»ΡΡΠ°ΡΠ΅Π» β Π²Π΅Π»ΠΊΠ°ΠΌ, ΠΏΠΈΡΠ΅ΡΠ΅ Π½Π° vadim.isakanov@gmail.com ΠΈ Π² Π’Π΅Π»Π΅Π³ΡΠ°ΠΌ t.me/vadimisakanov.
ΠΠΎΡΡ Π΄ΠΎΠΊΠ»Π°Π΄
Π Π΅ΡΠ΅Π½ΠΈΠ΅ βΠΠΈΡΡΠΈΠΊΡ Π² Kubernetes, Π²Π΅ΡΡΠΈΡ Southbridge 1.0β
Π©Π΅ ΡΠ°Π·ΠΊΠ°ΠΆΠ° Π·Π° Π½Π°ΡΠ΅ΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π² ΡΠΎΡΠΌΠ°Ρ βΠ·Π° Π½Π°ΡΠΈΠ½Π°Π΅ΡΠΈ Π² Kubernetesβ, ΠΊΠ°ΠΊΡΠΎ Π±Π΅ΡΠ΅ Π½Π° ΡΡΠ΅ΡΠ°ΡΠ°. ΠΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΠΌ, ΡΠ΅ Π΄ΡΠΌΠΈΡΠ΅ ΠΠΈΡΡΠΈΠΊΡ, Docker, Kubernetes, Ceph ΡΠ° Π²ΠΈ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΈ ΠΏΠΎΠ½Π΅ Π½Π° Π½ΠΈΠ²ΠΎ ΡΡΠ°ΡΠΈΠΈ Π² Wikipedia.
ΠΠ°ΠΊΠ²ΠΎ Π²ΡΡΡΠ½ΠΎΡΡ ΠΈΠΌΠ° Π³ΠΎΡΠΎΠ²ΠΎ Π·Π° ΠΠΈΡΡΠΈΠΊΡ Π² Kubernetes?
Π ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ ΠΏΠΎΡΡΠΈ Π½ΡΠΌΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΡΠ°Π±ΠΎΡΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΠΈΡΡΠΈΠΊΡ Π² Kubernetes.
ΠΠ°ΠΌΠ΅ΡΠΈ ΡΠ°ΠΌΠΎ ΡΠ°ΠΊΠΈΠ²Π° ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΈ:
ΠΠΎΠΊΠ»Π°Π΄ Π½Π° ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡΡ Π‘Π΅ΡΠ±ΡΠ» ΠΈ ΠΠ½ΡΠΎΠ½ Π’ΡΠ·Π»ΡΠΊΠΎΠ² ΠΎΡ Qsoft:

ΠΡΠ΅ΠΏΠΎΡΡΡΠ²Π°ΠΌ Π΄Π° Π³ΠΎ ΠΈΠ·ΡΠ»ΡΡΠ°ΡΠ΅.
Π Π°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» .
ΠΠ°ΠΌΠ΅ΡΠΈΡ
ΠΎΡΠ΅ .
ΠΠΈΠΈΠΈβ¦ Π²ΡΡΡΠ½ΠΎΡΡ, Π²ΡΠΈΡΠΊΠΎ.
ΠΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π°Π²Π°ΠΌ, ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎΡΠΎ Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΡΠ΅ΡΠ΅Π½ΠΈΡΡΠ° ΠΏΠΎ Π»ΠΈΠ½ΠΊΠΎΠ²Π΅ΡΠ΅ ΠΏΠΎ-Π³ΠΎΡΠ΅ Π½Π΅ ΡΠΌΠ΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°Π»ΠΈ π
ΠΠ΅ΠΆΠ΄Ρ Π΄ΡΡΠ³ΠΎΡΠΎ, ΠΏΡΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ°ΡΠ° Π½Π° Π½Π°ΡΠ΅ΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π·Π³ΠΎΠ²Π°ΡΡΡ
Ρ ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡΡ Π‘Π΅ΡΠ±ΡΠ», ΡΠΎΠ³Π°Π²Π° Π½Π΅Π³ΠΎΠ²ΠΈΡΡ Π΄ΠΎΠΊΠ»Π°Π΄ Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ Π±Π΅ΡΠ΅ Π½Π°Π»ΠΈΡΠ΅Π½, Π·Π°ΡΠΎΠ²Π° Π² ΠΌΠΎΠΈΡΠ΅ ΡΠ»Π°ΠΉΠ΄ΠΎΠ²Π΅ ΠΈΠΌΠ° ΡΠΎΡΠΊΠ° βΠΠΈΡΡΠΈΠΊΡ Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Kubernetesβ.
ΠΠΎ ΡΠ΅Π³Π° ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΡΠΎΠ²ΠΈ Docker ΠΎΠ±ΡΠ°Π·ΠΈ Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΠΠΈΡΡΠΈΠΊΡ Π² Docker:
ΠΠΎΡΡΠ°ΡΡΡΠ½ΠΈ Π»ΠΈ ΡΠ° Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π° ΠΠΈΡΡΠΈΠΊΡ Π² Kubernetes?
ΠΠ΅. ΠΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π°Ρ ΡΠ΅ΡΠ΅Π½ΠΈ.
Π ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΡΡΡΠΎΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅ Ρ ΠΠΈΡΡΠΈΠΊΡ Π² Kubernetes?
ΠΡΡΠ²ΠΈΡΡ β Π³ΠΎΡΠΎΠ²ΠΈΡΠ΅ ΠΎΠ±ΡΠ°Π·ΠΈ ΠΎΡ Dockerhub Π½Π΅ ΡΠ° ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈ Π·Π° Kubernetes.
ΠΠΊΠΎ ΠΈΡΠΊΠ°ΠΌΠ΅ Π΄Π° ΠΈΠ·Π³ΡΠ°Π΄ΠΈΠΌ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ½Π° Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ° (Π° Π² Kubernetes ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΈΡΠΊΠ°ΠΌΠ΅), ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π² Kubernetes ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΎ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ ΠΈ Π΄Π° ΡΠ΅ ΠΏΠΎΡΡΠΈΠ³Π½Π΅ ΡΠΎΠ²Π°, ΡΠ΅ Π²ΡΠ΅ΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Π΅Π΄Π½Π° ΠΌΠ°Π»ΠΊΠ° ΡΡΠ½ΠΊΡΠΈΡ (ΠΈ Π΄Π° Ρ ΠΏΡΠ°Π²ΠΈ Π΄ΠΎΠ±ΡΠ΅). ΠΠ°ΡΠΎ ΡΠ°ΠΌΠΎ Π΅Π΄Π½Π°? Π ΠΊΡΠ°ΡΡΠ΅ β ΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΠΏΠΎ-ΠΏΡΠΎΡΡΠΎ, ΡΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΠΎ-Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΎ.
ΠΠΊΠΎ ΠΏΠΎ-Π΄ΡΠ»Π³ΠΎ β ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΡΠ΅ ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ, ΠΌΠΎΠ»Ρ:
Docker ΠΎΠ±ΡΠ°Π·ΠΈΡΠ΅ Π² Dockerhub ΠΎΡΠ½ΠΎΠ²Π½ΠΎ ΡΠ° ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ΠΈ ΠΏΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ° βΠ²ΡΠΈΡΠΊΠΎ Π² Π΅Π΄Π½ΠΎβ, Π·Π°ΡΠΎΠ²Π° ΡΠ΅ Π½Π°Π»ΠΎΠΆΠΈ Π²ΡΠ΅ ΠΏΠ°ΠΊ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ ΡΠΎΠ±ΡΡΠ²Π΅Π½ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄ ΠΈ Π΄ΠΎΡΠΈ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΈΡΠ΅ ΠΎΡ Π½ΡΠ»Π°.
ΠΡΠΎΡΠΈΡΡ β ΠΊΠΎΠ΄ΡΡ Π½Π° ΡΠ°ΠΉΡΠ° ΡΠ΅ ΠΏΠΎΠΏΡΠ°Π²Ρ ΠΎΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΈΠ²Π½Π°ΡΠ° ΠΏΠ°Π½Π΅Π».
Π‘ΡΠ·Π΄Π°Π΄ΠΎΡ ΠΌΠ΅ Π½ΠΎΠ² ΡΠ°Π·Π΄Π΅Π» Π½Π° ΡΠ°ΠΉΡΠ° β ΠΊΠΎΠ΄ΡΡ Π±Π΅ΡΠ΅ ΠΎΠ±Π½ΠΎΠ²Π΅Π½ (Π΄ΠΎΠ±Π°Π²Π΅Π½Π° Π±Π΅ΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Ρ ΠΈΠΌΠ΅ΡΠΎ Π½Π° Π½ΠΎΠ²ΠΈΡ ΡΠ°Π·Π΄Π΅Π»).
ΠΡΠΎΠΌΠ΅Π½ΠΈΡ ΠΌΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΡΠ° Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΠΎΡ Π°Π΄ΠΌΠΈΠ½ ΠΏΠ°Π½Π΅Π»Π° β ΠΊΠΎΠ΄ΡΡ ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ.
Kubernetes Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Ρ ΡΠΎΠ²Π° ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅; ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π°Ρ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΈ (Stateless).
ΠΡΠΈΡΠΈΠ½Π°ΡΠ°: Π²ΡΠ΅ΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ (ΠΏΠΎΡΠΎΠΊ) Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π° ΡΠ°ΠΌΠΎ ΡΠ°ΡΡ ΠΎΡ ΡΡΠ°ΡΠΈΠΊΠ°. ΠΠΊΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ ΠΊΠΎΠ΄Π° ΡΠ°ΠΌΠΎ Π² Π΅Π΄ΠΈΠ½ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ (ΠΏΠΎΡΠΎΠΊ), ΠΊΠΎΠ΄ΡΡ ΡΠ΅ Π΅ ΡΠ°Π·Π»ΠΈΡΠ΅Π½ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΠΈΡΠ΅ ΠΏΠΎΡΠΎΡΠΈ, ΡΠ°ΠΉΡΡΡ ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ ΠΏΠΎ ΡΠ°Π·Π»ΠΈΡΠ΅Π½ Π½Π°ΡΠΈΠ½, Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ ΡΠ΅ ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π²Π΅ΡΡΠΈΠΈ Π½Π° ΡΠ°ΠΉΡΠ°. Π’Π°ΠΊΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠΈ.
Π’ΡΠ΅ΡΠ°ΡΠ° β ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ΡΠΈΠΌ Π²ΡΠΏΡΠΎΡΠ° Ρ Π΄Π΅ΠΏΠ»ΠΎΡ.
ΠΠΊΠΎ ΠΈΠΌΠ°ΠΌΠ΅ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ ΠΈ Π΅Π΄ΠΈΠ½ βΠΊΠ»Π°ΡΠΈΡΠ΅ΡΠΊΠΈβ ΡΡΡΠ²ΡΡ, Π²ΡΠΈΡΠΊΠΎ Π΅ ΡΡΠ²ΡΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎ: ΡΠ°Π·Π³ΡΡΡΠ°ΠΌΠ΅ Π½ΠΎΠ²Π°ΡΠ° ΠΊΠΎΠ΄ΠΎΠ²Π° Π±Π°Π·Π°, ΠΏΡΠ°Π²ΠΈΠΌ ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ Π½Π° ΠΠ, ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠ²Π°ΠΌΠ΅ ΡΡΠ°ΡΠΈΠΊΠ° Π½Π° Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° ΠΊΠΎΠ΄Π°. ΠΡΠ΅Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ΡΠΎ ΡΡΠ°Π²Π° ΠΌΠΈΠ³Π½ΠΎΠ²Π΅Π½ΠΎ.
ΠΠΊΠΎ ΠΈΠΌΠ°ΠΌΠ΅ ΡΠ°ΠΉΡ Π² Kubernetes, ΡΠ°Π·Π΄Π΅Π»Π΅Π½ Π½Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·ΠΈ, Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Ρ ΠΊΠΎΠ΄ β ΠΎΡ
. Π’ΡΡΠ±Π²Π° Π΄Π° ΡΡΠ±Π΅ΡΠ΅ΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅ Ρ Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° ΠΊΠΎΠ΄Π°, Π΄Π° Π³ΠΈ Π²Π½Π΅Π΄ΡΠΈΠΌ Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠ°ΡΠΈΡΠ΅, ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ Π΄Π° ΠΈΠ·Π²ΡΡΡΠΈΠΌ ΠΌΠΈΠ³ΡΠ°ΡΠΈΡΡΠ° Π½Π° ΠΠ ΠΈ ΠΈΠ΄Π΅Π°Π»Π½ΠΎ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ ΡΠΎΠ²Π° Π½Π΅Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΠΌΠΎ Π·Π° ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅Π»ΠΈΡΠ΅. ΠΠ° ΡΠ°ΡΡΠΈΠ΅, Kubernetes Π½ΠΈ ΠΏΠΎΠΌΠ°Π³Π° Π² ΡΠΎΠ²Π°, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΠΉΠΊΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π²ΠΈΠ΄ΠΎΠ²Π΅ Π΄Π΅ΠΏΠ»ΠΎΠΉ.
Π§Π΅ΡΠ²ΡΡΡΠ°ΡΠ° β ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ΡΠΈΠΌ Π²ΡΠΏΡΠΎΡΠ° Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΡΠ°ΡΠΈΠΊΠ°ΡΠ°.
ΠΠΊΠΎ Π²Π°ΡΠΈΡΡ ΡΠ°ΠΉΡ ΡΠ΅ΠΆΠΈ βΠ΅Π΄Π²Π°β 10 Π³ΠΈΠ³Π°Π±Π°ΠΉΡΠ° ΠΈ Π³ΠΎ ΡΠ°Π·Π³ΡΡΡΠ°ΡΠ΅ Π½Π°ΠΏΡΠ»Π½ΠΎ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ, ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Ρ ΡΠ΅Π³Π»ΠΎ 10 Π³ΠΈΠ³Π°Π±Π°ΠΉΡΠ°, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΡΠ΅ Π΄Π΅ΠΏΠ»ΠΎΡΡ Π²Π΅ΡΠ½ΠΎ.
Π’ΡΡΠ±Π²Π° Π΄Π° ΡΡΡ
ΡΠ°Π½ΡΠ²Π°ΠΌΠ΅ Π½Π°ΠΉ-βΡΠ΅ΠΆΠΊΠΈΡΠ΅β ΡΠ°ΡΡΠΈ Π½Π° ΡΠ°ΠΉΡΠ° ΠΈΠ·Π²ΡΠ½ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅ ΠΈ Π²ΡΠ·Π½ΠΈΠΊΠ²Π° Π²ΡΠΏΡΠΎΡΡΡ ΠΊΠ°ΠΊ Π΄Π° Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ.
ΠΠ°ΠΊΠ²ΠΎ Π»ΠΈΠΏΡΠ²Π° Π² Π½Π°ΡΠ΅ΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅.
Π¦Π΅Π»ΠΈΡΡ ΠΊΠΎΠ΄ Π½Π° ΠΠΈΡΡΠΈΠΊΡ Π½Π΅ Π΅ ΡΠ°Π·ΡΡΠ·Π°Π½ Π½Π° ΠΌΠΈΠΊΡΠΎΡΡΠ½ΠΊΡΠΈΠΈ/ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·Π½ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ (ΡΠ°ΠΊΠ°, ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡΡΠ° Π΄Π° Π΅ ΠΎΡΠ΄Π΅Π»Π½ΠΎ, ΠΌΠΎΠ΄ΡΠ»ΡΡ Π·Π° ΠΎΠ½Π»Π°ΠΉΠ½ ΠΌΠ°Π³Π°Π·ΠΈΠ½ Π΄Π° Π΅ ΠΎΡΠ΄Π΅Π»Π½ΠΎ ΠΈ Ρ.Π½.). Π¦ΡΠ»Π°ΡΠ° ΠΊΠΎΠ΄ΠΎΠ²Π° Π±Π°Π·Π° Ρ ΡΡΡ ΡΠ°Π½ΡΠ²Π°ΠΌΠ΅ Π²ΡΠ² Π²ΡΠ΅ΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΈΠ·ΡΡΠ»ΠΎ.
ΠΠ°Π·Π°ΡΠ° Π² Kubernetes ΡΡΡΠΎ Π½Π΅ ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π° (Π²ΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ ΡΡΠΌ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π» ΡΠ΅ΡΠ΅Π½ΠΈΡ Ρ Π±Π°Π·Π° Π² Kubernetes Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°ΡΠΈΡΠ΅ ΡΡΠ΅Π΄ΠΈ, Π½ΠΎ Π½Π΅ ΠΈ Π·Π° ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡ).
ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΈΡΠ΅ Π½Π° ΡΠ°ΠΉΡΠ° Π²ΡΠ΅ ΠΏΠ°ΠΊ ΡΠ΅ Π·Π°Π±Π΅Π»Π΅ΠΆΠ°Ρ, ΡΠ΅ ΡΠ°ΠΉΡΡΡ ΡΠ°Π±ΠΎΡΠΈ Π² Kubernetes. Π€ΡΠ½ΠΊΡΠΈΡΡΠ° βΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°β Π½Π΅ ΡΠ°Π±ΠΎΡΠΈ ΠΊΠΎΡΠ΅ΠΊΡΠ½ΠΎ, Π·Π° Π΄Π° ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠ°ΡΠ΅ ΠΊΠΎΠ΄Π° Π½Π° ΡΠ°ΠΉΡΠ° ΠΎΡ Π°Π΄ΠΌΠΈΠ½ ΠΏΠ°Π½Π΅Π»Π°, ΠΏΡΡΠ²ΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π½Π°ΡΠΈΡΠ½Π΅ΡΠ΅ Π±ΡΡΠΎΠ½Π° βΠΈΡΠΊΠ°ΠΌ Π΄Π° ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠ°ΠΌ ΠΊΠΎΠ΄Π°β.
Π‘ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅ ΡΠ΅ΡΠΈΡ ΠΌΠ΅, Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡΠ° ΠΎΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·Π½ΠΎΡΡΠ° ΡΠ΅ ΡΠ°Π·Π±ΡΠ°Ρ ΠΌΠ΅, ΡΠ΅Π»ΡΠ° Π΅ ΡΡΠ½Π° β Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΠΌ ΡΠ°Π±ΠΎΡΠ΅ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΠΈΡΡΠΈΠΊΡ Π² Kubernetes, Π·Π°ΠΏΠ°Π·Π²Π°ΠΉΠΊΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅ Π½Π° ΠΠΈΡΡΠΈΠΊΡ ΠΈ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π°ΡΠ° Π½Π° Kubernetes. ΠΠ°ΠΏΠΎΡΠ²Π°ΠΌΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ°.
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°
ΠΠ½ΠΎΠ³ΠΎ βΡΠ°Π±ΠΎΡΠ΅ΡΠΈβ ΠΏΠΎΠ΄ΠΎΠ²Π΅ Ρ ΡΠ΅Π±ΡΡΡΠ²ΡΡ (workerβΠΈ).
ΠΠ΄ΠΈΠ½ ΠΏΠΎΠ΄ Ρ cron Π·Π°Π΄Π°ΡΠΈ (Π·Π°Π΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½ΠΎ ΡΠ°ΠΌΠΎ Π΅Π΄ΠΈΠ½).
ΠΠ΄ΠΈΠ½ upgrade ΠΏΠΎΠ΄ Π·Π° ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ΄Π° Π½Π° ΡΠ°ΠΉΡΠ° ΠΎΡ Π°Π΄ΠΌΠΈΠ½ ΠΏΠ°Π½Π΅Π»Π° (ΡΡΡΠΎ Π·Π°Π΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½ΠΎ ΡΠ°ΠΌΠΎ Π΅Π΄ΠΈΠ½).

Π Π°Π·ΡΠ΅ΡΠ°Π²Π°ΠΌΠ΅ Π²ΡΠΏΡΠΎΡΠΈ:
- ΠΡΠ΄Π΅ Π΄Π° ΡΡΡ ΡΠ°Π½ΡΠ²Π°ΠΌΠ΅ ΡΠ΅ΡΠΈΠΈΡΠ΅?
- ΠΡΠ΄Π΅ Π΄Π° ΡΡΡ ΡΠ°Π½ΡΠ²Π°ΠΌΠ΅ ΠΊΠ΅ΡΠ°?
- ΠΡΠ΄Π΅ Π΄Π° ΡΡΡ ΡΠ°Π½ΡΠ²Π°ΠΌΠ΅ ΡΡΠ°ΡΠΈΠΊΠ°ΡΠ°, Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΡΡ ΡΠ°Π½ΡΠ²Π°ΠΌΠ΅ Π³ΠΈΠ³Π°Π±Π°ΠΉΡΠΈ ΡΡΠ°ΡΠΈΡΠ½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² ΠΊΡΠΏΡΠΈΠ½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ?
- ΠΠ°ΠΊ ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ?
Docker ΠΎΠ±ΡΠ°Π·
ΠΠ°ΠΏΠΎΡΠ²Π°ΠΌΠ΅ ΡΡΡ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° Docker ΠΎΠ±ΡΠ°Π·.
ΠΠ΄Π΅Π°Π»Π½ΠΈΡΡ Π²Π°ΡΠΈΠ°Π½Ρ Π΅ Π΄Π° ΠΈΠΌΠ°ΠΌΠ΅ Π΅Π΄ΠΈΠ½ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»Π΅Π½ ΠΎΠ±ΡΠ°Π·, Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ ΠΈ worker ΠΏΠΎΠ΄ΠΎΠ²Π΅, ΠΈ ΠΏΠΎΠ΄ΠΎΠ²Π΅ Ρ cron Π·Π°Π΄Π°ΡΠΈ, ΠΈ upgrade ΠΏΠΎΠ΄ΠΎΠ²Π΅.
.
Π Π½Π΅Π³ΠΎ Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½ nginx, apache/php-fpm (ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ ΠΏΡΠΈ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ), msmtp Π·Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° ΠΈΠΌΠ΅ΠΉΠ»ΠΈ ΠΈ cron.
ΠΡΠΈ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΎΠ±ΡΠ°Π·Π°, Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ /app ΡΠ΅ ΠΊΠΎΠΏΠΈΡΠ° ΡΡΠ»Π°ΡΠ° ΠΊΠΎΠ΄ΠΎΠ²Π° Π±Π°Π·Π° Π½Π° ΡΠ°ΠΉΡΠ° (Ρ ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠ΅Π·ΠΈ ΡΠ°ΡΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΈΠ·Π½Π΅ΡΠ΅ΠΌ Π² ΠΎΡΠ΄Π΅Π»Π½ΠΎ ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅).
ΠΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·Π½ΠΎΡΡ, ΡΡΠ»ΡΠ³ΠΈ
worker ΠΏΠΎΠ΄ΠΎΠ²Π΅:
- ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Ρ nginx + ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ apache/php-fpm + msmtp
- ΠΠ΅ ΡΡΠΏΡΡ ΠΌΠ΅ Π΄Π° ΠΈΠ·Π½Π΅ΡΠ΅ΠΌ msmtp Π² ΠΎΡΠ΄Π΅Π»Π΅Π½ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡ, ΠΠΈΡΡΠΈΠΊΡ Π·Π°ΠΏΠΎΡΠ²Π° Π΄Π° ΡΠ΅ Π²ΡΠ·ΠΌΡΡΠ°Π²Π°, ΡΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠ° ΠΈΠΌΠ΅ΠΉΠ»ΠΈ.
- ΠΡΠ² Π²ΡΠ΅ΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π΅ Π½Π°Π»ΠΈΡΠ½Π° ΡΡΠ»Π°ΡΠ° ΠΊΠΎΠ΄ΠΎΠ²Π° Π±Π°Π·Π°.
- ΠΠ°Π±ΡΠ°Π½Π° Π·Π° ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° ΠΊΠΎΠ΄Π° Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅.
cron ΠΏΠΎΠ΄:
- ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Ρ apache, php, cron
- Π²ΠΊΠ»ΡΡΠ²Π° ΡΡΠ»Π°ΡΠ° ΠΊΠΎΠ΄ΠΎΠ²Π° Π±Π°Π·Π°
- Π·Π°Π±ΡΠ°Π½Π° Π·Π° ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° ΠΊΠΎΠ΄Π° Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅
upgrade ΠΏΠΎΠ΄:
- ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Ρ nginx + ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ apache/php-fpm + msmtp
- Π½ΡΠΌΠ° Π·Π°Π±ΡΠ°Π½Π° Π·Π° ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° ΠΊΠΎΠ΄Π° Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅
Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π½Π° ΡΠ΅ΡΠΈΠΈΡΠ΅
Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π½Π° ΠΊΠ΅ΡΠ° Π½Π° ΠΠΈΡΡΠΈΠΊΡ
ΠΡΠ΅ Π΅ Π²Π°ΠΆΠ½ΠΎ: ΠΏΠ°ΡΠΎΠ»ΠΈΡΠ΅ Π·Π° ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ Π΄ΠΎ Π²ΡΠΈΡΠΊΠΎ, ΠΎΡ Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ Π΄ΠΎ ΠΈΠΌΠ΅ΠΉΠ»ΠΈΡΠ΅, ΡΡΡ ΡΠ°Π½ΡΠ²Π°ΠΌΠ΅ Π² kubernetes secrets. ΠΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ Π±ΠΎΠ½ΡΡ, ΠΏΠ°ΡΠΎΠ»ΠΈΡΠ΅ ΡΠ° Π²ΠΈΠ΄ΠΈΠΌΠΈ ΡΠ°ΠΌΠΎ Π·Π° ΠΎΠ½Π΅Π·ΠΈ, Π½Π° ΠΊΠΎΠΈΡΠΎ Π΄Π°Π²Π°ΠΌΠ΅ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΠ΅ΠΊΡΠ΅ΡΠΈΡΠ΅, Π° Π½Π΅ Π·Π° Π²ΡΠΈΡΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΠΌΠ°Ρ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΠΊΠΎΠ΄ΠΎΠ²Π°ΡΠ° Π±Π°Π·Π° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ°.
Π₯ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π·Π° ΡΡΠ°ΡΠΈΠΊΠ°ΡΠ°
ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π²ΡΠΈΡΠΊΠΎ: ceph, nfs (Π½ΠΎ nfs Π½Π΅ ΡΠ΅ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π° Π·Π° ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡ), ΠΌΡΠ΅ΠΆΠΎΠ²ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΎΡ βΠΎΠ±Π»Π°ΡΠ½ΠΈβ Π΄ΠΎΡΡΠ°Π²ΡΠΈΡΠΈ ΠΈ Π΄Ρ.
Π₯ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ ΡΠ²ΡΡΠ·Π°Π½ΠΎ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡΠ° /upload/ Π½Π° ΡΠ°ΠΉΡΠ° ΠΈ Π² Π΄ΡΡΠ³ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ ΡΡΡ ΡΡΠ°ΡΠΈΠΊΠ°ΡΠ°.
ΠΠ°Π·Π° Π΄Π°Π½Π½ΠΈ.
ΠΠ° ΡΠ»Π΅ΡΠ½Π΅Π½ΠΈΠ΅ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π°ΠΌΠ΅ Π΄Π° ΠΈΠ·Π½Π΅ΡΠ΅ΡΠ΅ Π±Π°Π·Π°ΡΠ° ΠΈΠ·Π²ΡΠ½ Kubernetes. ΠΠ°Π·Π°ΡΠ° Π² Kubernetes β ΠΎΡΠ΄Π΅Π»Π½Π° ΡΠ»ΠΎΠΆΠ½Π° Π·Π°Π΄Π°ΡΠ°, ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ ΡΡ Π΅ΠΌΠ°ΡΠ° Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎ-ΡΠ»ΠΎΠΆΠ½Π°.
Π₯ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π½Π° ΡΠ΅ΡΠΈΠΈΡΠ΅
ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ memcached π
Π’ΠΎΠΉ Π΄ΠΎΠ±ΡΠ΅ ΡΠ΅ ΡΠΏΡΠ°Π²Ρ Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ΅ΡΠΈΠΈ, ΠΊΠ»Π°ΡΡΠ΅ΡΠΈΠ·ΠΈΡΠ° ΡΠ΅, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΠ΅ "Π½Π°ΡΠΈΠ²Π½ΠΎ" ΠΊΠ°ΡΠΎ session.save_path Π² php. Π’Π°Π·ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎ Π΅ Π΄ΠΎΠΊΠ°Π·Π°Π»Π° ΡΠ²ΠΎΡΡΠ° Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡ Π² ΠΊΠ»Π°ΡΠΈΡΠ΅ΡΠΊΠ°ΡΠ° ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠ½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Ρ ΠΌΠ΅ ΠΊΠ»ΡΡΡΠ΅ΡΠΈ Ρ Π³ΠΎΠ»ΡΠΌ Π±ΡΠΎΠΉ ΡΠ΅Π± ΡΡΡΠ²ΡΡΠΈ. ΠΠ° Π΄Π΅ΠΏΠ»ΠΎΠΉΠ²Π°Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ helm.
$ helm install stable/memcached --name sessionphp.ini β ΡΡΠΊ Π² ΠΎΠ±ΡΠ°Π·Π° ΡΠ° Π·Π°Π΄Π°Π΄Π΅Π½ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅ Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ΅ΡΠΈΠΈ Π² memcached
ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ
ΠΌΠ΅ Environment Variables Π·Π° ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π·Π° Ρ
ΠΎΡΡΠΎΠ²Π΅ΡΠ΅ Ρ memcached .
Π’ΠΎΠ²Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π΅Π΄ΠΈΠ½ ΠΈ ΡΡΡΠΈ ΠΊΠΎΠ΄ Π² ΡΡΠ΅Π΄ΠΈΡΠ΅ dev, stage, test, prod (ΠΈΠΌΠ΅Π½Π°ΡΠ° Π½Π° Ρ
ΠΎΡΡΠΎΠ²Π΅ΡΠ΅ Π² memcached ΡΠ΅ ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ°Π²Π°Ρ, Π΅ΡΠΎ Π·Π°ΡΠΎ Π·Π° Π²ΡΡΠΊΠ° ΡΡΠ΅Π΄Π° ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΡΠ΅Π΄Π°Π²Π°ΠΌΠ΅ ΡΠ½ΠΈΠΊΠ°Π»Π½ΠΎ ΠΈΠΌΠ΅ Π½Π° Ρ
ΠΎΡΡΠΎΠ²Π΅ΡΠ΅ Π·Π° ΡΠ΅ΡΠΈΠΈ).
ΠΠ΅Ρ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Bitrix
ΠΡΠΆΠ΄Π°Π΅ΠΌ ΡΠ΅ ΠΎΡ ΡΡΡΠΎΠΉΡΠΈΠ²ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅, Π² ΠΊΠΎΠ΅ΡΠΎ Π²ΡΠΈΡΠΊΠΈ ΠΏΠΎΠ΄ΠΎΠ²Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΏΠΈΡΠ°Ρ ΠΈ Π΄Π° ΡΠ΅ΡΠ°Ρ.
Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ memcached.
Π’ΠΎΠ²Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π° ΠΎΡ ΡΠ°ΠΌΠΈΡ Bitrix.
$ helm install stable/memcached --name cachebitrix/.settings_extra.php β ΡΡΠΊ Π² Bitrix ΡΠ΅ Π·Π°Π΄Π°Π²Π° ΠΊΡΠ΄Π΅ ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π° ΠΊΠ΅ΡΠ°
Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Environment Variables.
ΠΡΠΎΠ½ Π·Π°Π΄Π°ΡΠΈ
ΠΠΌΠ° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΡΠΎΠ½ Π·Π°Π΄Π°ΡΠΈ Π² Kubernetes.
- ΠΎΡΠ΄Π΅Π»Π΅Π½ deployment Ρ ΠΏΠΎΠ΄ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΡΠΎΠ½ Π·Π°Π΄Π°ΡΠΈ
- cronjob Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΡΠΎΠ½ Π·Π°Π΄Π°ΡΠΈ (Π°ΠΊΠΎ Π΅ ΡΠ΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ β Ρ wget , ΠΈΠ»ΠΈ kubectl exec Π² Π΅Π΄ΠΈΠ½ ΠΎΡ worker ΠΏΠΎΠ΄ΠΎΠ²Π΅ΡΠ΅ ΠΈ Ρ.Π½.)
- ΠΈ Ρ.Π½.
ΠΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠΏΠΎΡΠΈ Π·Π° Π½Π°ΠΉ-Π΄ΠΎΠ±ΡΠΈΡ Π²Π°ΡΠΈΠ°Π½Ρ, Π½ΠΎ Π² ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ ΠΈΠ·Π±ΡΠ°Ρ ΠΌΠ΅ "ΠΎΡΠ΄Π΅Π»Π΅Π½ deployment Ρ ΠΏΠΎΠ΄ΠΎΠ²Π΅ Π·Π° ΠΊΡΠΎΠ½ Π·Π°Π΄Π°ΡΠΈ"
ΠΠ°ΠΊ Π΅ Π½Π°ΠΏΡΠ°Π²Π΅Π½ΠΎ:
- ΠΊΡΠΎΠ½ Π·Π°Π΄Π°ΡΠΈΡΠ΅ Π΄ΠΎΠ±Π°Π²ΡΠΌΠ΅ ΡΡΠ΅Π· ConfigMap ΠΈΠ»ΠΈ ΡΡΠ΅Π· ΡΠ°ΠΉΠ»Π° config/addcron
- Π² Π΅Π΄ΠΈΠ½ Π΅ΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΡΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, ΠΈΠ΄Π΅Π½ΡΠΈΡΠ΅Π½ Π½Π° worker ΠΏΠΎΠ΄Π° + ΡΠ°Π·ΡΠ΅ΡΠ°Π²Π°ΠΌΠ΅ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΡΠΎΠ½ Π·Π°Π΄Π°ΡΠΈ Π² Π½Π΅Π³ΠΎ
- ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠ΅ ΡΡΡΠ°ΡΠ° ΠΊΠΎΠ΄ΠΎΠ²Π° Π±Π°Π·Π°, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠ½ΠΈΡΠΈΠΊΠ°ΡΠΈΡΡΠ° ΡΠ±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Π΅ ΠΏΡΠΎΡΡΠ°
ΠΠ°ΠΊΠ²ΠΎ Π΄ΠΎΠ±ΡΠΎ ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅:
- ΠΈΠΌΠ°ΠΌΠ΅ ΡΠ°Π±ΠΎΡΠ΅ΡΠΈ ΠΊΡΠΎΠ½ Π·Π°Π΄Π°ΡΠΈ Π² ΡΡΠ΅Π΄Π°, ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½Π° Π½Π° ΡΡΠ΅Π΄Π°ΡΠ° Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ (docker)
- ΠΊΡΠΎΠ½ Π·Π°Π΄Π°ΡΠΈΡΠ΅ Π½Π΅ Π΅ Π½ΡΠΆΠ½ΠΎ Π΄Π° "ΠΏΡΠ΅ΠΏΠΈΡΠ²Π°ΠΌΠ΅" Π·Π° Kubernetes, ΡΠ΅ ΡΠ°Π±ΠΎΡΡΡ Π² ΡΡΡΠΈΡ Π²ΠΈΠ΄ ΠΈ Π² ΡΡΡΠ°ΡΠ° ΠΊΠΎΠ΄ΠΎΠ²Π° Π±Π°Π·Π°, ΠΊΠ°ΠΊΡΠΎ ΠΏΡΠ΅Π΄ΠΈ
- ΠΊΡΠΎΠ½ Π·Π°Π΄Π°ΡΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π΄ΠΎΠ±Π°Π²ΡΡ Π²ΡΠΈΡΠΊΠΈ ΡΠ»Π΅Π½ΠΎΠ²Π΅ Π½Π° Π΅ΠΊΠΈΠΏΠ° Ρ ΠΏΡΠ°Π²Π° Π·Π° commit Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π°ΡΠ° ΠΊΠ»ΠΎΠ½ΠΊΠ°, Π° Π½Π΅ ΡΠ°ΠΌΠΎ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈ
ΠΠΎΠ΄ΡΠ» Southbridge K8SDeploy ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ΄Π° ΠΎΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡΠΊΠΈΡ ΠΏΠ°Π½Π΅Π»
ΠΠΈΠ΄ΡΡ
ΡΠ΅ Π»ΠΈ, ΡΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΠΌ Π·Π° ΡΠΏΠ³ΡΠ΅ΠΉΠ΄ Π½Π° ΠΏΠΎΠ΄Π°?
Π ΠΊΠ°ΠΊ Π΄Π° Π½Π°ΡΠΎΡΠΈΠΌ ΡΡΠ°ΡΠΈΠΊΠ° ΠΊΡΠΌ Π½Π΅Π³ΠΎ?
Π£ΡΠ°, Π½Π°ΠΏΠΈΡΠ°Ρ
ΠΌΠ΅ ΠΌΠΎΠ΄ΡΠ» Π·Π° ΡΠΎΠ²Π° Π½Π° php π Π’ΠΎΠ²Π° Π΅ ΠΌΠ°Π»ΡΠΊ ΠΊΠ»Π°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΌΠΎΠ΄ΡΠ» Π·Π° Bitrix. ΠΡΠ΅ ΠΎΡΠ΅ Π½Π΅ Π΅ Π² ΠΎΡΠΊΡΠΈΡ Π΄ΠΎΡΡΡΠΏ, Π½ΠΎ ΠΏΠ»Π°Π½ΠΈΡΠ°ΠΌΠ΅ Π΄Π° Π³ΠΎ ΠΎΡΠ²ΠΎΡΠΈΠΌ.
ΠΠΎΠ΄ΡΠ»ΡΡ ΡΠ΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ° ΠΊΠ°ΡΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ ΠΌΠΎΠ΄ΡΠ» Π² Bitrix:

Π ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΏΠΎ ΡΠ»Π΅Π΄Π½ΠΈΡ Π½Π°ΡΠΈΠ½:

Π’ΠΎΠ²Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π·Π°Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° cookie, ΠΊΠΎΡΡΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠ° Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ° Π½Π° ΡΠ°ΠΉΡΠ° ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π° Kubernetes Π΄Π° ΠΏΡΠ΅Π½Π°ΡΠΎΡΠ²Π° ΡΡΠ°ΡΠΈΠΊΠ° ΠΊΡΠΌ upgrade pod.
ΠΠΎΠ³Π°ΡΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ ΡΠ° Π·Π°Π²ΡΡΡΠ΅Π½ΠΈ, ΡΡΡΠ±Π²Π° Π΄Π° Π½Π°ΡΠΈΡΠ½Π΅ΡΠ΅ git push, ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π² ΠΊΠΎΠ΄Π° ΡΠ΅ Π±ΡΠ΄Π°Ρ ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ΠΈ Π² git, ΡΠ»Π΅Π΄ ΠΊΠΎΠ΅ΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΡΠ΅ ΠΈΠ·Π³ΡΠ°Π΄ΠΈ ΠΎΠ±ΡΠ°Π· Ρ Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° ΠΊΠΎΠ΄Π° ΠΈ ΡΠ΅ Π³ΠΎ "ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»ΠΈ" Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ°, Π·Π°ΠΌΠ΅Π½ΡΠΉΠΊΠΈ ΡΡΠ°ΡΠΈΡΠ΅ ΠΏΠΎΠ΄ΠΎΠ²Π΅.
ΠΠ°, ΠΌΠ°Π»ΠΊΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ, Π½ΠΎ ΠΏΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ Π·Π°ΠΏΠ°Π·Π²Π°ΠΌΠ΅ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ½Π°ΡΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΈ Π½Π΅ ΠΎΡΠ½Π΅ΠΌΠ°ΠΌΠ΅ ΠΎΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ Π½Π° ΠΠΈΡΡΠΈΠΊΡ Π»ΡΠ±ΠΈΠΌΠ°ΡΠ° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π΄Π° ΠΊΠΎΡΠΈΠ³ΠΈΡΠ°Ρ ΠΊΠΎΠ΄Π° ΠΎΡ Π°Π΄ΠΌΠΈΠ½ ΠΏΠ°Π½Π΅Π»Π°. Π ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ°, ΡΠΎΠ²Π° Π΅ ΠΎΠΏΡΠΈΡ, Π·Π°Π΄Π°ΡΠ°ΡΠ° Π·Π° ΠΊΠΎΡΠ΅ΠΊΡΠΈΡ Π½Π° ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΡΠ΅ΡΠ΅Π½Π° ΠΈ ΠΏΠΎ Π΄ΡΡΠ³ Π½Π°ΡΠΈΠ½.
Helm ΡΠ°ΡΡ
ΠΠ° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² Kubernetes ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ½ΠΈΡ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡ Helm.
ΠΠ° Π½Π°ΡΠ΅ΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΠΈΡΡΠΈΠΊΡ Π² Kubernetes, Π‘Π΅ΡΠ³Π΅ΠΉ ΠΠΎΠ½Π΄Π°ΡΠ΅Π², Π½Π°ΡΠΈΡΡ Π²ΠΎΠ΄Π΅Ρ ΡΠΈΡΡΠ΅ΠΌΠ΅Π½ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ, Π½Π°ΠΏΠΈΡΠ° ΡΠΏΠ΅ΡΠΈΠ°Π»Π΅Π½ Helm ΡΠ°ΡΡ.
Π’ΠΎΠΉ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° worker, upgrade, cron ΠΏΠΎΠ΄ΠΎΠ²Π΅, Π½Π°ΡΡΡΠΎΠΉΠ²Π° ingress-ΠΈ, ΡΡΠ»ΡΠ³ΠΈ, ΠΏΡΠ΅Π΄Π°Π²Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ ΠΎΡ Kubernetes secrets Π² ΠΏΠΎΠ΄ΠΎΠ²Π΅ΡΠ΅.
ΠΠΎΠ΄Π° ΡΡΡ ΡΠ°Π½ΡΠ²Π°ΠΌΠ΅ Π² Gitlab ΠΈ ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΡΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° Helm ΠΎΡ Gitlab.
Π ΠΊΡΠ°ΡΡΠ΅, ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΡΠ°ΠΊΠ°
$ helm upgrade --install project .helm --set image=registrygitlab.local/k8s/bitrix -f .helm/values.yaml --wait --timeout 300 --debug --tiller-namespace=productionHelm ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° "Π±Π΅Π·ΡΠ΅Π²Π΅Π½" ΠΎΡΠΊΠ°Ρ, Π°ΠΊΠΎ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° Π΄Π΅ΠΏΠ»ΠΎΠΉΠΌΠ΅Π½ΡΠ° Π½Π΅ΡΠΎ Π½Π΅ Π΅ Π½Π°ΡΠ΅Π΄. ΠΡΠΈΡΡΠ½ΠΎ Π΅, ΠΊΠΎΠ³Π°ΡΠΎ Π½Π΅ Π²ΠΈΠ΅ ΠΏΠ°Π½ΠΈΠΊΡΠΎΡΠ°Π½ΠΎ "ΠΏΠΎΠΏΡΠ°Π²ΡΡΠ΅ ΠΊΠΎΠ΄Π° ΠΏΠΎ ftp, Π·Π°ΡΠΎΡΠΎ production Π΅ ΠΏΠ°Π΄Π½Π°Π»", Π° Kubernetes Π³ΠΎ ΠΏΡΠ°Π²ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π±Π΅Π· Π΄Π°ΡΠ½ΡΠ°ΠΉΠΌ.
ΠΠ΅ΠΏΠ»ΠΎΠΉ
ΠΠ°, Π½ΠΈΠ΅ ΡΠΌΠ΅ ΡΠ΅Π½ΠΎΠ²Π΅ Π½Π° Gitlab & Gitlab CI, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π³ΠΎ π
ΠΡΠΈ commit Π² Gitlab Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ°, Gitlab ΡΡΠ°ΡΡΠΈΡΠ° ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½, ΠΊΠΎΠΉΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅ΡΠΎ Π½Π° Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° ΡΡΠ΅Π΄Π°ΡΠ°.
Π‘ΡΡΠΏΠΊΠΈ:
- build (ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°ΠΌΠ΅ Π½ΠΎΠ² Docker ΠΎΠ±ΡΠ°Π·)
- test (ΡΠ΅ΡΡΠ²Π°ΠΌΠ΅)
- clean up (ΠΏΡΠ΅ΠΌΠ°Ρ Π²Π°ΠΌΠ΅ ΡΠ΅ΡΡΠΎΠ²Π°ΡΠ° ΡΡΠ΅Π΄Π°)
- push (ΠΈΠ·ΠΏΡΠ°ΡΠ°ΠΌΠ΅ Π³ΠΎ Π² Docker registry)
- deploy (ΡΠ°Π·Π³ΡΡΡΠ°ΠΌΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π² Kubernetes ΡΡΠ΅Π· Helm).

Π£ΡΠ°, Π³ΠΎΡΠΎΠ²ΠΎ, Π²Π½Π΅Π΄ΡΡΠ²Π°ΠΌΠ΅!
ΠΠ»ΠΈ Π·Π°Π΄Π°Π²Π°ΠΌΠ΅ Π²ΡΠΏΡΠΎΡΠΈ, Π°ΠΊΠΎ ΠΈΠΌΠ°.
Π ΡΠ°ΠΊΠ°, ΠΊΠ°ΠΊΠ²ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΡ ΠΌΠ΅
ΠΡ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠ° Π³Π»Π΅Π΄Π½Π° ΡΠΎΡΠΊΠ°:
- Π΄ΠΎΠΊΠ΅ΡΠΈΠ·ΠΈΡΠ°Ρ ΠΌΠ΅ ΠΠΈΡΡΠΈΠΊΡ;
- βΡΠ°Π·ΡΡΠ·Π°Ρ ΠΌΠ΅β ΠΠΈΡΡΠΈΠΊΡ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ, Π²ΡΠ΅ΠΊΠΈ ΠΎΡ ΠΊΠΎΠΈΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ;
- ΠΏΠΎΡΡΠΈΠ³Π½Π°Ρ ΠΌΠ΅ stateless ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅;
- ΡΠ΅ΡΠΈΡ ΠΌΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΠΈΡΡΠΈΠΊΡ Π² Kubernetes;
- Π²ΡΠΈΡΠΊΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° ΠΠΈΡΡΠΈΠΊΡ ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠΈΡ Π° Π΄Π° ΡΠ°Π±ΠΎΡΡΡ (ΠΏΠΎΡΡΠΈ Π²ΡΠΈΡΠΊΠΈΡΠ΅);
- ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΈΡ ΠΌΠ΅ Π΄Π΅ΠΏΠ»ΠΎΠΉ Π² Kubernetes ΠΈ ΠΎΡΠΊΠ°Ρ ΠΌΠ΅ΠΆΠ΄Ρ Π²Π΅ΡΡΠΈΠΈΡΠ΅.
ΠΡ Π±ΠΈΠ·Π½Π΅Ρ Π³Π»Π΅Π΄Π½Π° ΡΠΎΡΠΊΠ°:
- ΠΎΡΠΊΠ°Π·ΠΎΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡ;
- ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π½Π° Kubernetes (Π»Π΅ΡΠ½Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ Gitlab CI, Π±Π΅Π·ΡΠ΅Π²Π΅Π½ Π΄Π΅ΠΏΠ»ΠΎΠΉ, ΠΈ Ρ.Π½.);
- ΠΏΠ°ΡΠΎΠ»ΠΈ Π² ΡΠ΅ΠΊΡΠ΅ΡΠΈΡΠ΅ (Π²ΠΈΠ΄ΠΈΠΌΠΈ ΡΠ°ΠΌΠΎ Π·Π° ΡΠ΅Π·ΠΈ, Π½Π° ΠΊΠΎΠΈΡΠΎ Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΠΏΠ°ΡΠΎΠ»ΠΈΡΠ΅);
- Π£Π΄ΠΎΠ±Π½ΠΎ Π΅ Π΄Π° ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π°Ρ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΡΡΠ΅Π΄ΠΈ (Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°, ΡΠ΅ΡΡΠΎΠ²Π΅ ΠΈ Π΄Ρ.) Π²ΡΡΡΠ΅ Π² Π΅Π΄Π½Π° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com
