Π Π§Π΅Π»ΡΠ±ΠΈΠ½ΡΠΊΠ΅ ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΠΆΠ΄Π°Ρ ΠΌΠΈΡΠ°ΠΏΠΈ Π·Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΈ Sysadminka, ΠΈ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ ΠΎΡ ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡ Π½Π°ΡΠ΅ΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° 1C-Bitrix Π² Kubernetes.
Bitrix, Kubernetes, Ceph β ΠΎΡΠ»ΠΈΡΠ½Π° ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ?
ΠΠ΅ΠΊΠ° Π²ΠΈ ΡΠ°Π·ΠΊΠ°ΠΆΠ° ΠΊΠ°ΠΊ ΡΡΠ±ΡΠ°Ρ ΠΌΠ΅ ΡΠ°Π±ΠΎΡΠ΅ΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΡ Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π°.
ΠΠ° ΡΡΡΠ³Π²Π°ΠΌΠ΅!

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

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

Π Π΅ΡΠ°Π²Π°ΠΌΠ΅ Π²ΡΠΏΡΠΎΡΠΈΡΠ΅:
- ΠΡΠ΄Π΅ Π΄Π° ΡΡΡ ΡΠ°Π½ΡΠ²Π°ΠΌΠ΅ ΡΠ΅ΡΠΈΠΈΡΠ΅?
- ΠΡΠ΄Π΅ Π΄Π° ΡΡΡ ΡΠ°Π½ΡΠ²Π°ΠΌΠ΅ ΠΊΠ΅ΡΠ°?
- ΠΡΠ΄Π΅ Π΄Π° ΡΡΡ ΡΠ°Π½ΡΠ²Π°ΠΌΠ΅ ΡΡΠ°ΡΠΈΠΊΠ°ΡΠ°? ΠΠ΅ Π΅ ΡΠ΄Π°ΡΠ½ΠΎ Π΄Π° ΠΏΠΎΡΡΠ°Π²ΡΠΌΠ΅ Π³ΠΈΠ³Π°Π±Π°ΠΉΡΠΈ ΡΡΠ°ΡΠΈΡΠ½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π² ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ.
- ΠΠ°ΠΊ ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ?
Docker ΠΎΠ±ΡΠ°Π·
ΠΠ°ΠΏΠΎΡΠ²Π°ΠΌΠ΅ ΡΡΡ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° Docker ΠΎΠ±ΡΠ°Π·.
ΠΠ΄Π΅Π°Π»Π½ΠΈΡΡ Π²Π°ΡΠΈΠ°Π½Ρ Π΅ Π΄Π° ΠΈΠΌΠ°ΠΌΠ΅ Π΅Π΄ΠΈΠ½ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»Π΅Π½ ΠΎΠ±ΡΠ°Π·, ΠΎΡ ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ ΠΊΠ°ΠΊΡΠΎ ΡΠ°Π±ΠΎΡΠ½ΠΈ ΠΏΠΎΠ΄ΠΎΠ²Π΅, ΡΠ°ΠΊΠ° ΠΈ ΠΏΠΎΠ΄ΠΎΠ²Π΅ Ρ ΠΊΡΠΎΠ½ Π·Π°Π΄Π°ΡΠΈ, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΡΠΏΠ³ΡΠ΅ΠΉΠ΄ ΠΏΠΎΠ΄ΠΎΠ²Π΅.
.
Π Π½Π΅Π³ΠΎ Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½ nginx, apache/php-fpm (ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·Π±Π΅ΡΠ΅ ΠΏΡΠΈ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ΡΠΎ), msmtp Π·Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° ΠΈΠΌΠ΅ΠΉΠ»ΠΈ ΠΈ cron.
ΠΡΠΈ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΎΠ±ΡΠ°Π·Π°, ΡΠ΅Π»ΠΈΡΡ ΠΊΠΎΠ΄ΠΎΠ² Π±Π°Π·Π° Π½Π° ΡΠ°ΠΉΡΠ° ΡΠ΅ ΠΊΠΎΠΏΠΈΡΠ° Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ /app (Ρ ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠ΅Π·ΠΈ ΡΠ°ΡΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΈΠ·Π½Π΅ΡΠ΅ΠΌ Π² ΠΎΡΠ΄Π΅Π»Π½ΠΎ ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅).
ΠΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ½ΠΎΡΡ, ΡΡΠ»ΡΠ³ΠΈ
ΡΠ°Π±ΠΎΡΠ½ΠΈ ΠΏΠΎΠ΄ΠΎΠ²Π΅:
- ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Ρ 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 Π² ΡΡΡ
ΡΠ΅ ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ°Π²Π°Ρ, Π·Π°ΡΠΎΠ²Π° Π·Π° Π²ΡΡΠΊΠ° ΡΡΠ΅Π΄Π° ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΡΠ΅Π΄Π°Π²Π°ΠΌΠ΅ ΡΠ½ΠΈΠΊΠ°Π»Π½ΠΎ ΠΈΠΌΠ΅ Π½Π° Ρ
ΠΎΡΡΠΎΠ²Π΅ΡΠ΅ Π·Π° ΡΠ΅ΡΠΈΠΈΡΠ΅).
Π₯ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π·Π° ΠΊΠ΅Ρ ΠΠΈΡΡΠΈΠΊΡ
ΠΡΠΆΠ΄Π°Π΅ΠΌ ΡΠ΅ ΠΎΡ ΡΡΡΠΎΠΉΡΠΈΠ²Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅, Π² ΠΊΠΎΡΡΠΎ Π²ΡΠΈΡΠΊΠΈ ΠΏΠΎΠ΄ΠΎΠ²Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π·Π°ΠΏΠΈΡΠ²Π°Ρ ΠΈ ΠΎΡ ΠΊΠΎΡΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ΡΠ°Ρ.
Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ memcached.
Π’ΠΎΠ²Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΅ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ°Π½ΠΎ ΠΎΡ ΡΠ°ΠΌΠΈΡ ΠΠΈΡΡΠΈΠΊΡ.
$ helm install stable/memcached --name cachebitrix/.settings_extra.php β ΡΡΠΊ Π² ΠΠΈΡΡΠΈΠΊΡ ΡΠ΅ Π·Π°Π΄Π°Π²Π° ΠΊΡΠ΄Π΅ ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π° ΠΊΠ΅ΡΠ°
Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Environment Variables.
ΠΡΠΎΠ½ Π·Π°Π΄Π°ΡΠΈ
ΠΠΌΠ° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΡΠΎΠ½ Π·Π°Π΄Π°ΡΠΈΡΠ΅ Π² Kubernetes.
- ΠΎΡΠ΄Π΅Π»Π΅Π½Π΄Π΅ΠΏΠ»ΠΎΠΉΠΌΠ΅Π½Ρ Ρ ΠΏΠΎΠ΄ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΡΠΎΠ½ Π·Π°Π΄Π°ΡΠΈΡΠ΅
- cronjob Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΡΠΎΠ½ Π·Π°Π΄Π°ΡΠΈΡΠ΅ (Π°ΠΊΠΎ Π΅ ΡΠ΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ β Ρ wget , ΠΈΠ»ΠΈ kubectl exec Π²ΡΡΡΠ΅ Π² Π΅Π΄ΠΈΠ½ ΠΎΡ worker ΠΏΠΎΠ΄ΠΎΠ²Π΅ΡΠ΅ ΠΈ Ρ.Π½.)
- ΠΈ Ρ.Π½.
ΠΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΠΏΠΎΡΠΈΠΌ Π·Π° Π½Π°ΠΉ-Π΄ΠΎΠ±ΡΠΈΡ Π½Π°ΡΠΈΠ½, Π½ΠΎ Π² ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ ΠΈΠ·Π±ΡΠ°Ρ ΠΌΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΠ° "ΠΎΡΠ΄Π΅Π»Π΅Π½ Π΄Π΅ΠΏΠ»ΠΎΠΉΠΌΠ΅Π½Ρ Ρ ΠΏΠΎΠ΄ΠΎΠ²Π΅ Π·Π° ΠΊΡΠΎΠ½ Π·Π°Π΄Π°ΡΠΈΡΠ΅".
ΠΠ°ΠΊ Π΅ Π½Π°ΠΏΡΠ°Π²Π΅Π½ΠΎ:
- ΠΊΡΠΎΠ½ Π·Π°Π΄Π°ΡΠΈΡΠ΅ Π΄ΠΎΠ±Π°Π²ΡΠΌΠ΅ ΡΡΠ΅Π· ConfigMap ΠΈΠ»ΠΈ ΠΏΡΠ΅Π· ΡΠ°ΠΉΠ»Π° config/addcron
- Π²ΡΠ·Π»Π°Π³Π°ΠΌΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Ρ Π΅Π΄ΠΈΠ½ Π΅ΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ, ΠΈΠ΄Π΅Π½ΡΠΈΡΠ΅Π½ Π½Π° worker ΠΏΠΎΠ΄Π° + ΡΠ°Π·ΡΠ΅ΡΠ°Π²Π°ΠΌΠ΅ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΡΠΎΠ½ Π·Π°Π΄Π°ΡΠΈΡΠ΅ Π² Π½Π΅Π³ΠΎ
- ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠ΅ ΡΡΡΠ°ΡΠ° ΠΊΠΎΠ΄ΠΎΠ²Π° Π±Π°Π·Π°, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠ½ΠΈΡΠΈΠΊΠ°ΡΠΈΡΡΠ°, ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Π΅ ΠΏΡΠΎΡΡΠΎ
ΠΠ°ΠΊΠ²ΠΈ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅:
- ΠΈΠΌΠ°ΠΌΠ΅ ΡΠ°Π±ΠΎΡΠ΅ΡΠΈ ΠΊΡΠΎΠ½ Π·Π°Π΄Π°ΡΠΈ Π² ΡΡΠ΅Π΄Π°, ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½Π° Π½Π° ΡΠ°Π·ΠΈ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ (docker)
- ΠΊΡΠΎΠ½ Π·Π°Π΄Π°ΡΠΈΡΠ΅ Π½Π΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ "ΠΏΡΠ΅ΠΏΠΈΡΠ²Π°Ρ" Π·Π° Kubernetes, ΡΠ΅ ΡΠ°Π±ΠΎΡΡΡ ΠΏΠΎ ΡΡΡΠΈΡ Π½Π°ΡΠΈΠ½ ΠΈ ΡΡΡ ΡΡΡΠ°ΡΠ° ΠΊΠΎΠ΄ΠΎΠ²Π° Π±Π°Π·Π°, ΠΊΠ°ΠΊΡΠΎ ΠΏΡΠ΅Π΄ΠΈ
- ΠΊΡΠΎΠ½ Π·Π°Π΄Π°ΡΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π΄ΠΎΠ±Π°Π²ΡΡ Π²ΡΠΈΡΠΊΠΈ ΡΠ»Π΅Π½ΠΎΠ²Π΅ Π½Π° Π΅ΠΊΠΈΠΏΠ° Ρ ΠΏΡΠ°Π²Π° Π·Π° commit Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π°ΡΠ° ΠΊΠ»ΠΎΠ½ΠΊΠ°, Π° Π½Π΅ ΡΠ°ΠΌΠΎ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΈΡΠ΅
ΠΠΎΠ΄ΡΠ»ΡΡ Southbridge K8SDeploy ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ΄Π° ΠΎΡ Π°Π΄ΠΌΠΈΠ½ ΠΏΠ°Π½Π΅Π»Π°
ΠΠΈΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΡ
ΠΌΠ΅ Π·Π° ΡΠΏΠ³ΡΠ΅ΠΉΠ΄ Π½Π° ΠΏΠΎΠ΄Π°?
Π ΠΊΠ°ΠΊ Π΄Π° Π½Π°ΡΠΎΡΠΈΠΌ ΡΡΠ°ΡΠΈΠΊΠ° ΡΠ°ΠΌ?
Π£ΡΠ°, Π½Π°ΠΏΠΈΡΠ°Ρ
ΠΌΠ΅ ΠΌΠΎΠ΄ΡΠ» Π·Π° ΡΠΎΠ²Π° Π½Π° php π Π’ΠΎΠ²Π° Π΅ ΠΌΠ°Π»ΡΠΊ ΠΊΠ»Π°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΌΠΎΠ΄ΡΠ» Π·Π° ΠΠΈΡΡΠΈΠΊΡ. ΠΡΠ΅ Π½Π΅ Π΅ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎ, Π½ΠΎ ΠΏΠ»Π°Π½ΠΈΡΠ°ΠΌΠ΅ Π΄Π° Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ.
ΠΠΎΠ΄ΡΠ»ΡΡ ΡΠ΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ° ΠΊΠ°ΡΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ ΠΌΠΎΠ΄ΡΠ» Π² ΠΠΈΡΡΠΈΠΊΡ:

Π ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΡΠ°ΠΊΠ°:

Π’ΠΎΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° Π·Π°Π΄Π°Π΄Π΅ΡΠ΅ cookie, ΠΊΠΎΡΡΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠ° Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ° Π½Π° ΡΠ°ΠΉΡΠ° ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π° Kubernetes Π΄Π° Π½Π°ΡΠΎΡΠ²Π° ΡΡΠ°ΡΠΈΠΊΠ° ΠΊΡΠΌ Π°ΠΏΠ΄Π΅ΠΉΡ ΠΏΠΎΠ΄Π°.
ΠΠΎΠ³Π°ΡΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ ΡΠ° Π·Π°Π²ΡΡΡΠ΅Π½ΠΈ, ΡΡΡΠ±Π²Π° Π΄Π° Π½Π°ΡΠΈΡΠ½Π΅ΡΠ΅ 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, Π·Π°ΡΠΎΡΠΎ ΠΏΡΠΎΠ΄ Π΅ ΠΏΠ°Π΄Π½Π°Π»β, Π° Kubernetes Π³ΠΎ ΠΏΡΠ°Π²ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ, Π±Π΅Π· Π²ΡΠ΅ΠΌΠ΅ Π½Π° Π½Π΅ΡΠ°Π±ΠΎΡΠ°.
ΠΠ΅ΠΏΠ»ΠΎΠΉ
ΠΠ°, Π½ΠΈΠ΅ ΡΠΌΠ΅ ΡΠ΅Π½ΠΎΠ²Π΅ Π½Π° Gitlab & Gitlab CI, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π³ΠΎ π
ΠΡΠΈ ΠΊΠΎΠΌΠΈΡ Π² Gitlab Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Gitlab ΡΡΠ°ΡΡΠΈΡΠ° ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½, ΠΊΠΎΠΉΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅ΡΠΎ Π½Π° Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° ΡΡΠ΅Π΄Π°ΡΠ°.
ΠΡΠ°ΠΏΠΈ:
- build (ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°ΠΌΠ΅ Π½ΠΎΠ² Docker ΠΎΠ±ΡΠ°Π·)
- test (ΡΠ΅ΡΡΠ²Π°ΠΌΠ΅)
- clean up (ΠΈΠ·ΡΡΠΈΠ²Π°ΠΌΠ΅ ΡΠ΅ΡΡΠΎΠ²Π°ΡΠ° ΡΡΠ΅Π΄Π°)
- push (ΠΈΠ·ΠΏΡΠ°ΡΠ°ΠΌΠ΅ Π³ΠΎ Π² Docker registry)
- deploy (ΡΠ°Π·Π³ΡΡΡΠ°ΠΌΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π² Kubernetes ΡΡΠ΅Π· Helm).

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