Π‘ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ ΠΊ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ ΡΠ΅ΡΠ°Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π½Π°ΡΡΡΠ½ΡΡ
ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π±ΠΈΠ·Π½Π΅ΡΠ°. ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ ΠΈ ΠΎΡΠΊΠ΅ΡΡΡΠ°ΡΠΎΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π»Π΅Π³ΠΊΠΎ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΡ Π»ΡΠ±ΠΎΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ, ΡΠΏΡΠΎΡΠ°ΡΡ ΡΠ΅Π»ΠΈΠ·Ρ Π½ΠΎΠ²ΡΡ
Π²Π΅ΡΡΠΈΠΉ, Π΄Π΅Π»Π°ΡΡ ΠΈΡ
Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ½ΡΠΌΠΈ, Π½ΠΎ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ². ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°, Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, Π·Π°Π±ΠΎΡΠΈΡ Π΅Π³ΠΎ ΠΊΠΎΠ΄: Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ°, ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ, ΡΠ»Π΅Π³Π°Π½ΡΠ½ΠΎΡΡΡ, β Π° Π½Π΅ ΡΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ ΠΏΠΎΠ΅Π΄Π΅Ρ Π² Kubernetes ΠΈ ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΎΡΠ»Π°ΠΆΠΈΠ²Π°ΡΡ ΠΏΠΎΡΠ»Π΅ Π²Π½Π΅ΡΠ΅Π½ΠΈΡ Π΄Π°ΠΆΠ΅ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΡ
ΠΏΡΠ°Π²ΠΎΠΊ. ΠΠΎΡΠ΅ΠΌΡ Π²Π΅ΡΡΠΌΠ° Π·Π°ΠΊΠΎΠ½ΠΎΠΌΠ΅ΡΠ½ΠΎ ΠΈ ΡΠΎ, ΡΡΠΎ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ Kubernetes, ΠΏΠΎΠΌΠΎΠ³Π°ΡΡΠΈΠ΅ ΡΠ΅ΡΠ°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π΄Π°ΠΆΠ΅ ΡΠ°ΠΌΡΡ
Β«Π°ΡΡ
Π°ΠΈΡΠ½ΡΡ
Β» ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΠΈΠΌ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΡΡΡΡ Π½Π° Π³Π»Π°Π²Π½ΠΎΠΌ.
Π ΡΡΠΎΠΌ ΠΎΠ±Π·ΠΎΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° ΠΊΡΠ°ΡΠΊΠ°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Ρ
, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΏΡΠΎΡΠ°ΡΡ ΠΆΠΈΠ·Π½Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ, ΡΠ΅ΠΉ ΠΊΠΎΠ΄ ΠΊΡΡΡΠΈΡΡΡ Π² podβax Kubernetes-ΠΊΠ»Π°ΡΡΠ΅ΡΠ°.
ΠΡΠΎΡΡΡΠ΅ ΠΏΠΎΠΌΠΎΡΠ½ΠΈΠΊΠΈ
Kubectl-debug
- Π‘ΡΡΡ: Π΄ΠΎΠ±Π°Π²Ρ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π² Pod ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠΈ, ΡΡΠΎ Π² Π½Π΅ΠΌ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ.
-
GitHub . - ΠΡΠ°ΡΠΊΠ°Ρ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ° GH: 715 Π·Π²ΡΠ·Π΄, 54 ΠΊΠΎΠΌΠΌΠΈΡΠ°, 9 ΠΊΠΎΠ½ΡΡΠΈΠ±ΡΡΡΠΎΡΠΎΠ².
- Π―Π·ΡΠΊ: Go.
- ΠΠΈΡΠ΅Π½Π·ΠΈΡ: Apache License 2.0.
ΠΡΠΎΡ ΠΏΠ»Π°Π³ΠΈΠ½ Π΄Π»Ρ kubectl ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π²Π½ΡΡΡΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΡΡΠ΅Π³ΠΎ pod’a Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π΄Π΅Π»ΠΈΡΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΠ΅Π½ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°ΠΌΠΈ. Π Π½Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ ΠΎΡΠ»Π°Π΄ΠΊΡ ΡΠ°Π±ΠΎΡΡ pod’Π°: ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠ°Π±ΠΎΡΡ ΡΠ΅ΡΠΈ, ΠΏΠΎΡΠ»ΡΡΠ°ΡΡ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΡΡΠ°ΡΠΈΠΊ, ΡΠ΄Π΅Π»Π°ΡΡ strace ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΡΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΈ Ρ.ΠΏ.
Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΠ°, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² chroot /proc/PID/root
β ΡΡΠΎ Π±ΡΠ²Π°Π΅Ρ ΠΎΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ root shell Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π² ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ΅ Π²ΡΡΡΠ°Π²Π»Π΅Π½ securityContext.runAs
.
ΠΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΏΡΠΎΡΡ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π΅Π½, ΡΠ°ΠΊ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ. ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎ Π½ΡΠΌ ΠΌΡ ΠΏΠΈΡΠ°Π»ΠΈ Π²
Telepresence
- Π‘ΡΡΡ: ΠΏΠ΅ΡΠ΅Π½Π΅ΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠ²ΠΎΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ. Π Π°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΠΉ ΠΈ ΠΎΡΠ»Π°ΠΆΠΈΠ²Π°ΠΉ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ.
-
Π‘Π°ΠΉΡ ;GitHub . - ΠΡΠ°ΡΠΊΠ°Ρ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ° GH: 2131 Π·Π²Π΅Π·Π΄Π°, 2712 ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², 33 ΠΊΠΎΠ½ΡΡΠΈΠ±ΡΡΡΠΎΡΠ°.
- Π―Π·ΡΠΊ: Python.
- ΠΠΈΡΠ΅Π½Π·ΠΈΡ: Apache License 2.0.
ΠΠ΄Π΅Ρ ΡΡΠΎΠΉ ΠΎΡΠ½Π°ΡΡΠΊΠΈ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² Π·Π°ΠΏΡΡΠΊΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ ΠΈ ΠΏΡΠΎΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π²ΡΠ΅Π³ΠΎ ΡΡΠ°ΡΠΈΠΊΠ° ΠΈΠ· ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Π² Π½Π΅Π³ΠΎ ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π΅ΡΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ, ΠΏΡΠΎΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ ΡΠ°ΠΉΠ»Ρ Π² ΡΠ²ΠΎΠ΅ΠΉ Π»ΡΠ±ΠΈΠΌΠΎΠΉ IDE: ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Π±ΡΠ΄ΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΡΡΠ°Π·Ρ ΠΆΠ΅.
ΠΠ»ΡΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΠΊΠ° β ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ ΠΏΡΠ°Π²ΠΎΠΊ ΠΈ ΠΌΠΎΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΠ»Π°ΠΆΠΈΠ²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ²ΡΡΠ½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ. ΠΠ· ΠΌΠΈΠ½ΡΡΠΎΠ² β ΡΡΠ΅Π±ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΊ ΡΠΊΠΎΡΠΎΡΡΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ, ΡΡΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π·Π°ΠΌΠ΅ΡΠ½ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π²ΡΡΠΎΠΊΠΈΠΌ RPS ΠΈ ΡΡΠ°ΡΠΈΠΊΠΎΠΌ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Ρ Telepresence Π΅ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ volume mounts Π² Windows, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°ΡΡ ΡΠ΅ΡΠ°ΡΡΠΈΠΌ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΠ΅Π»Π΅ΠΌ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΠΏΡΠΈΠ²ΡΠΊΡΠΈΠΌ ΠΊ ΡΡΠΎΠΉ ΠΠ‘.
ΠΡ ΡΠΆΠ΅ Π΄Π΅Π»ΠΈΠ»ΠΈΡΡ ΡΠ²ΠΎΠΈΠΌ ΠΎΠΏΡΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Telepresence
Ksync
- Π‘ΡΡΡ: ΠΏΠΎΡΡΠΈ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½Π°Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠ΄Π° Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠΌ Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅.
-
GitHub . - ΠΡΠ°ΡΠΊΠ°Ρ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ° GH: 555 Π·Π²ΡΠ·Π΄, 362 ΠΊΠΎΠΌΠΌΠΈΡΠ°, 11 ΠΊΠΎΠ½ΡΡΠΈΠ±ΡΡΡΠΎΡΠΎΠ².
- Π―Π·ΡΠΊ: Go.
- ΠΠΈΡΠ΅Π½Π·ΠΈΡ: Apache License 2.0.
Π£ΡΠΈΠ»ΠΈΡΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ Ρ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°, Π·Π°ΠΏΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅. Π’Π°ΠΊΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π½Π° ΡΠΊΡΠΈΠΏΡΠΎΠ²ΡΡ ΡΠ·ΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ ΠΊΠΎΡΠΎΡΡΡ β Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΊΠΎΠ΄ Π² ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ. Ksync ΠΏΡΠΈΠ·Π²Π°Π½ ΡΠ½ΡΡΡ ΡΡΡ Π³ΠΎΠ»ΠΎΠ²Π½ΡΡ Π±ΠΎΠ»Ρ.
ΠΡΠΈ ΠΎΠ΄Π½ΠΎΠΊΡΠ°ΡΠ½ΠΎΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ksync init
Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ DaemonSet, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°. ΠΠ° ΡΠ²ΠΎΠ΅ΠΌ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ksync watch
, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ»Π΅Π΄ΠΈΡ Π·Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠΌΠΈ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ
ΠΡΡΠ°Π΅ΡΡΡ ΠΏΡΠΎΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ksync, ΡΡΠΎ ΠΈ Ρ ΡΠ΅ΠΌ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΠΊΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°:
ksync create --name=myproject --namespace=test --selector=app=backend --container=php --reload=false /home/user/myproject/ /var/www/myproject/
β¦ ΡΠΎΠ·Π΄Π°ΡΡ watcher Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ myproject
, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΊΠ°ΡΡ pod Ρ ΠΌΠ΅ΡΠΊΠΎΠΉ app=backend
ΠΈ ΠΏΡΡΠ°ΡΡΡΡ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ /home/user/myproject/
Ρ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠΌ /var/www/myproject/
Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ php
.
ΠΡΠΎΠ±Π»Π΅ΠΌΡ ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΡ ΠΏΠΎ ksync ΠΈΠ· Π½Π°ΡΠ΅Π³ΠΎ ΠΎΠΏΡΡΠ°:
- ΠΠ° ΡΠ·Π»Π°Ρ
Kubernetes-ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ
overlay2
Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ storage driver Π΄Π»Ρ Docker. ΠΠΈ Ρ ΠΊΠ°ΠΊΠΈΠΌΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΡΠΈΠ»ΠΈΡΠ° ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ. - ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Windows Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΠ‘ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ° watcher’Π° ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠ°Π½Π½ΡΠΉ Π±Π°Π³ Π·Π°ΠΌΠ΅ΡΠ΅Π½ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΊΡΡΠΏΠ½ΡΠΌΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°ΠΌΠΈ β Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΉ. ΠΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ
ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ issue Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅ syncthing, Π½ΠΎ ΠΏΡΠΎΠ³ΡΠ΅ΡΡΠ° ΠΏΠΎ Π½Π΅ΠΌΡ ΠΏΠΎΠΊΠ° (Ρ Π½Π°ΡΠ°Π»Π° ΠΈΡΠ»Ρ) Π½Π΅Ρ. - ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ°ΠΉΠ»
Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠΊΠ°Π·Π°ΡΡ ΠΏΡΡΠΈ ΠΈΠ»ΠΈ ΡΠ°Π±Π»ΠΎΠ½Ρ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ.stignore
app/cache
ΠΈ.git
). - ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ksync Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΠ°ΠΉΠ»ΠΎΠ². ΠΠ»Ρ Node.js ΡΡΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ, Π° Π΄Π»Ρ PHP β ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ ΠΈΠ·Π»ΠΈΡΠ½Π΅. ΠΡΡΡΠ΅ Π²ΡΠΊΠ»ΡΡΠΈΡΡ opcache ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π°Π³
--reload=false
. - ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ΅Π³Π΄Π° ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ Π²
$HOME/.ksync/ksync.yaml
.
Squash
- Π‘ΡΡΡ: ΠΎΡΠ»Π°ΠΆΠΈΠ²Π°ΠΉ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΏΡΡΠΌΠΎ Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅.
-
GitHub . - ΠΡΠ°ΡΠΊΠ°Ρ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ° GH: 1154 Π·Π²ΡΠ·Π΄, 279 ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², 23 ΠΊΠΎΠ½ΡΡΠΈΠ±ΡΡΡΠΎΡΠ°.
- Π―Π·ΡΠΊ: Go.
- ΠΠΈΡΠ΅Π½Π·ΠΈΡ: Apache License 2.0.
ΠΠ°Π½Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² pod’Π°Ρ . Π£ΡΠΈΠ»ΠΈΡΠ° ΠΏΡΠΎΡΡΠ° ΠΈ Π² ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠ±ΡΠ°ΡΡ Π½ΡΠΆΠ½ΡΠΉ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ (ΡΠΌ. Π½ΠΈΠΆΠ΅) ΠΈ namespace + pod, Π² ΠΏΡΠΎΡΠ΅ΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ Π²ΠΌΠ΅ΡΠ°ΡΡΡΡ. Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ:
- delve β Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Go;
- GDB β ΡΠ΅ΡΠ΅Π· target remote + ΠΏΡΠΎΠ±ΡΠΎΡ ΠΏΠΎΡΡΠ°;
- ΠΏΡΠΎΠ±ΡΠΎΡ ΠΏΠΎΡΡΠ° JDWP Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ Java-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
Π‘ΠΎ ΡΡΠΎΡΠΎΠ½Ρ IDE ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π΅ΡΡΡ Π»ΠΈΡΡ Π² VScode (Ρ ΠΏΠΎΠΌΠΎΡΡΡ
ΠΠ»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Squash Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ Π½Π° ΡΠ·Π»Π°Ρ
ΠΊΠ»Π°ΡΡΠ΅ΡΠ° ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΏΠ΅ΡΠ²Π° ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ
ΠΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ
ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ ΠΊ ΡΡΠΆΠ΅Π»ΠΎΠΉ Π°ΡΡΠΈΠ»Π»Π΅ΡΠΈΠΈ β Π±ΠΎΠ»Π΅Π΅ Β«ΠΌΠ°ΡΡΡΠ°Π±Π½ΡΠΌΒ» ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌ, ΠΏΡΠΈΠ·Π²Π°Π½Π½ΡΠΌ ΡΡΠ°Π·Ρ Π·Π°ΠΊΡΡΡΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ².
NB: Π ΡΡΠΎΠΌ ΡΠΏΠΈΡΠΊΠ΅, Π±Π΅Π·ΡΡΠ»ΠΎΠ²Π½ΠΎ, Π΅ΡΡΡ ΠΌΠ΅ΡΡΠΎ ΠΈ Π½Π°ΡΠ΅ΠΉ Open Source-ΡΡΠΈΠ»ΠΈΡΠ΅
DevSpace
- Π‘ΡΡΡ: Π΄Π»Ρ ΡΠ΅Ρ , ΠΊΡΠΎ Ρ ΠΎΡΠ΅Ρ Π½Π°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² Kubernetes, Π½ΠΎ Π½Π΅ Ρ ΠΎΡΠ΅Ρ Π³Π»ΡΠ±ΠΎΠΊΠΎ Π·Π°Π»Π΅Π·Π°ΡΡ Π² Π΅Π³ΠΎ Π΄Π΅Π±ΡΠΈ.
-
GitHub . - ΠΡΠ°ΡΠΊΠ°Ρ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ° GH: 630 Π·Π²ΡΠ·Π΄, 1912 ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², 13 ΠΊΠΎΠ½ΡΡΠΈΠ±ΡΡΡΠΎΡΠΎΠ².
- Π―Π·ΡΠΊ: Go.
- ΠΠΈΡΠ΅Π½Π·ΠΈΡ: Apache License 2.0.
Π Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΡ ΠΎΠ΄Π½ΠΎΠΈΠΌΠ΅Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠ΅ΠΉ managed-ΠΊΠ»Π°ΡΡΠ΅ΡΡ Ρ Kubernetes Π΄Π»Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. Π£ΡΠΈΠ»ΠΈΡΠ° Π±ΡΠ»Π° ΡΠΎΠ·Π΄Π°Π½Π° Π΄Π»Ρ ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΈΡ ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΠ², ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈ Ρ Π»ΡΠ±ΡΠΌΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ.
ΠΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ devspace init
Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ Π²Π°ΠΌ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ°Ρ (Π² ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅):
- Π²ΡΠ±ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΠΈΠΉ Kubernetes-ΠΊΠ»Π°ΡΡΠ΅Ρ,
- ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠΌΠ΅ΡΡΠΈΠΉΡΡ
Dockerfile
(ΠΈΠ»ΠΈ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π½ΠΎΠ²ΡΠΉ) Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Π½Π° Π΅Π³ΠΎ Π±Π°Π·Π΅, - Π²ΡΠ±ΡΠ°ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ°Π·ΠΎΠ² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² ΠΈ Ρ.Π΄.
ΠΠΎΡΠ»Π΅ Π²ΡΠ΅Ρ
ΡΡΠΈΡ
ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΡ
Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΠΈΠ½Π°ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ devspace dev
. ΠΠ½Π° ΡΠΎΠ±Π΅ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, Π·Π°Π³ΡΡΠ·ΠΈΡ Π΅Π³ΠΎ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ, Π²ΡΠΊΠ°ΡΠΈΡ deployment Π² ΠΊΠ»Π°ΡΡΠ΅Ρ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡ ΠΏΡΠΎΠ±ΡΠΎΡ ΠΏΠΎΡΡΠΎΠ² ΠΈ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠΌ.
ΠΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΠΎΠΌ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ. ΠΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ Π½Π΅ ΡΡΠΎΠΈΡ, ΠΏΠΎΡΠΎΠΌΡ ΠΊΠ°ΠΊ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΡΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΡΡΠ°ΡΡΡΠ΅Ρ Ρ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ sleep, Π° Π΄Π»Ρ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π²ΡΡΡΠ½ΡΡ.
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΊΠΎΠΌΠ°Π½Π΄Π° devspace deploy
Π²ΡΠΊΠ°ΡΡΠ²Π°Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ Π½ΠΈΠΌ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ Π² ΠΊΠ»Π°ΡΡΠ΅Ρ, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Π²ΡΠ΅ Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ Π² Π±ΠΎΠ΅Π²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅.
ΠΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° Ρ
ΡΠ°Π½ΠΈΡΡΡ Π² ΡΠ°ΠΉΠ»Π΅ devspace.yaml
. ΠΠΎΠΌΠΈΠΌΠΎ Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π² Π½Π΅ΠΌ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ, ΠΏΠΎΡ
ΠΎΠΆΠ΅Π΅ Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΡ Kubernetes, ΡΠΎΠ»ΡΠΊΠΎ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΠ΅Π½Π½ΡΠ΅.
ΠΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΠ°ΠΏΡ ΡΠ°Π±ΠΎΡΡ Ρ DevSpace
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π² ΠΏΡΠΎΠ΅ΠΊΡ Π»Π΅Π³ΠΊΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΡΠ΅Π΄ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π‘Π£ΠΠ MySQL) ΠΈΠ»ΠΈ Helm-ΡΠ°ΡΡ. ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΡΠΈΡΠ°ΠΉΡΠ΅ Π²
Skaffold
-
Π‘Π°ΠΉΡ ;GitHub . - ΠΡΠ°ΡΠΊΠ°Ρ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ° GH: 7423 Π·Π²Π΅Π·Π΄Ρ, 4173 ΠΊΠΎΠΌΠΌΠΈΡΠ°, 136 ΠΊΠΎΠ½ΡΡΠΈΠ±ΡΡΡΠΎΡΠΎΠ².
- Π―Π·ΡΠΊ: Go.
- ΠΠΈΡΠ΅Π½Π·ΠΈΡ: Apache License 2.0.
ΠΡΠ° ΡΡΠΈΠ»ΠΈΡΠ° ΠΎΡ Google ΠΏΡΠ΅ΡΠ΅Π½Π΄ΡΠ΅Ρ Π½Π° ΡΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΊΡΡΡΡ Π²ΡΠ΅ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°, ΡΠ΅ΠΉ ΠΊΠΎΠ΄ ΡΠ°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°ΡΠ΅ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅ Kubernetes. ΠΠ°ΡΠ°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΈΠΌ Π½Π΅ ΡΠ°ΠΊ ΠΏΡΠΎΡΡΠΎ, ΠΊΠ°ΠΊ devspace’ΠΎΠΌ: Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ·ΡΠΊΠ° ΠΈ Π°Π²ΡΠΎΡΠΎΠ·Π΄Π°Π½ΠΈΡ Dockerfile
Π·Π΄Π΅ΡΡ Π²Π°ΠΌ Π½Π΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ°Ρ.
ΠΠΏΡΠΎΡΠ΅ΠΌ, Π΅ΡΠ»ΠΈ ΡΡΠΎ Π½Π΅ ΠΏΡΠ³Π°Π΅Ρ β Π²ΠΎΡ ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄Π΅Π»Π°ΡΡ Skaffold:
- ΠΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
- Π‘ΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠΌ pod’Π°, Π΅ΡΠ»ΠΈ ΠΎΠ½ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΠ±ΠΎΡΠΊΠΈ.
- Π‘ΠΎΠ±ΠΈΡΠ°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Ρ ΠΊΠΎΠ΄ΠΎΠΌ, Π΅ΡΠ»ΠΈ Π―Π β ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΠΉ, ΠΈΠ»ΠΈ ΠΆΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π°ΡΡΠ΅ΡΠ°ΠΊΡΡ ΠΈ ΡΠΏΠ°ΠΊΠΎΠ²ΡΠ²Π°ΡΡ ΠΈΡ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ.
- ΠΠΎΠ»ΡΡΠΈΠ²ΡΠΈΠ΅ΡΡ ΠΎΠ±ΡΠ°Π·Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ
container-structure-test . - Π’Π΅Π³ΠΈΡΠΎΠ²Π°ΡΡ ΠΈ Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΠΎΠ±ΡΠ°Π·Ρ Π² Docker Registry.
- Π Π°Π·Π²ΠΎΡΠ°ΡΠΈΠ²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ kubectl, Helm ΠΈΠ»ΠΈ kustomize.
- ΠΠ΅Π»Π°ΡΡ ΠΏΡΠΎΠ±ΡΠΎΡ ΠΏΠΎΡΡΠΎΠ².
- ΠΡΠ»Π°ΠΆΠΈΠ²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π½Π° Java, Node.js, Python.
Workflow Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
Π²Π°ΡΠΈΠ°ΡΠΈΡΡ
Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΠΎ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π² ΡΠ°ΠΉΠ»Π΅ skaffold.yaml
. ΠΠ»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΠΈΠ»Π΅ΠΉ, Π² ΠΊΠΎΡΠΎΡΡΡ
ΡΠ°ΡΡΠΈΡΠ½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΡΠ°Π΄ΠΈΠΈ ΡΠ±ΠΎΡΠΊΠΈ ΠΈ Π΄Π΅ΠΏΠ»ΠΎΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΊΠ°Π·Π°ΡΡ ΡΠ΄ΠΎΠ±Π½ΡΠΉ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ°Π·, Π° Π΄Π»Ρ staging ΠΈ production β ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ (+ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ securityContext
Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² ΠΈΠ»ΠΈ ΠΆΠ΅ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΊΠ»Π°ΡΡΠ΅Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΠΎ).
Π‘Π±ΠΎΡΠΊΠ° Docker-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎ: Π²
ΠΡΠ΄Π΅Π»ΡΠ½ΠΎ ΡΡΠΎΠΈΡ ΠΎΡΠΌΠ΅ΡΠΈΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ². Π£ΠΆΠ΅ ΡΠΏΠΎΠΌΡΠ½ΡΡΡΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ container-structure-test ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ:
- ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ exit-ΡΡΠ°ΡΡΡΠΎΠ² ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΎΠΉ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ Β«Π²ΡΡ Π»ΠΎΠΏΠ°Β» ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
- ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π°Π»ΠΈΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅ ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ.
- ΠΠΎΠ½ΡΡΠΎΠ»Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΏΠΎ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΠΌ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌ.
- Π‘Π²Π΅ΡΠΊΠ° ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ
ΠΎΠ±ΡΠ°Π·Π° (
ENV
,ENTRYPOINT
,VOLUMES
ΠΈ Ρ.ΠΏ.). - ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ Π»ΠΈΡΠ΅Π½Π·ΠΈΠΉ.
Π‘ΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠΌ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ ΡΠ°ΠΌΡΠΌ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ: Skaffold ΠΏΡΠΎΡΡΠΎ ΡΠΎΠ·Π΄Π°Π΅Ρ Π°ΡΡ ΠΈΠ² Ρ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠ°ΠΌΠΈ, ΠΊΠΎΠΏΠΈΡΡΠ΅Ρ Π΅Π³ΠΎ ΠΈ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΡΠ²Π°Π΅Ρ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅ (Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ tar). ΠΠΎΡΡΠΎΠΌΡ, Π΅ΡΠ»ΠΈ Π²Π°ΡΠ° ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ Π·Π°Π΄Π°ΡΠ° β Π² ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠ΄Π°, Π»ΡΡΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π² ΡΡΠΎΡΠΎΠ½Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ (ksync).
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΠ°ΠΏΡ ΡΠ°Π±ΠΎΡΡ Skaffold
Π ΡΠ΅Π»ΠΎΠΌ ΠΆΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π°Π±ΡΡΡΠ°Π³ΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΎΡ Kubernetes-ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠΎΠ² ΠΈ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΡΠ»ΠΎΠΆΠ½ΡΠΌ Π΄Π»Ρ ΠΎΡΠ²ΠΎΠ΅Π½ΠΈΡ. ΠΠΎ Π² ΡΡΠΎΠΌ ΠΆΠ΅ ΠΈ Π΅Π³ΠΎ ΠΏΠ»ΡΡ β Π±ΠΎΠ»ΡΡΠ°Ρ ΡΠ²ΠΎΠ±ΠΎΠ΄Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ.
Garden
-
Π‘Π°ΠΉΡ ;GitHub . - ΠΡΠ°ΡΠΊΠ°Ρ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ° GH: 1063 Π·Π²Π΅Π·Π΄Ρ, 1927 ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², 17 ΠΊΠΎΠ½ΡΡΠΈΠ±ΡΡΡΠΎΡΠΎΠ².
- Π―Π·ΡΠΊ: TypeScript (ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΡΡ ΡΠ°Π·Π±ΠΈΡΡ ΠΏΡΠΎΠ΅ΠΊΡ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ Π±ΡΠ΄ΡΡ Π½Π° Go, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ SDK Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ Π½Π° TypeScript/JavaScript ΠΈ Go).
- ΠΠΈΡΠ΅Π½Π·ΠΈΡ: Apache License 2.0.
ΠΠ°ΠΊ ΠΈ Skaffold, Garden Π½Π°ΡΠ΅Π»Π΅Π½ Π½Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ ΠΊΠΎΠ΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² K8s-ΠΊΠ»Π°ΡΡΠ΅Ρ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΡΠΏΠ΅ΡΠ²Π° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΠΈΡΠ°ΡΡ ΡΡΡΡΠΊΡΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π² YAML-ΡΠ°ΠΉΠ»Π΅, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ garden dev
. ΠΠ½Π° ΡΠ΄Π΅Π»Π°Π΅Ρ Π²ΡΡ ΠΌΠ°Π³ΠΈΡ:
- Π‘ΠΎΠ±Π΅ΡΠ΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΡΠ°ΡΡΡΠΌΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
- ΠΡΠΎΠ²Π΅Π΄Π΅Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΠΈ unit-ΡΠ΅ΡΡΡ, Π΅ΡΠ»ΠΈ ΡΠ°ΠΊΠΎΠ²ΡΠ΅ Π±ΡΠ»ΠΈ ΠΎΠΏΠΈΡΠ°Π½Ρ.
- ΠΡΠΊΠ°ΡΠΈΡ Π²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π² ΠΊΠ»Π°ΡΡΠ΅Ρ.
- Π ΡΠ»ΡΡΠ°Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° β Π·Π°Π½ΠΎΠ²ΠΎ Π·Π°ΠΏΡΡΡΠΈΡ Π²Π΅ΡΡ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½.
ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠΏΠΎΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° Π΄Π΅Π»Π°Π΅ΡΡΡ Π½Π° ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ². Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΡΡΠ°Π΄ΠΈΠΈ ΡΠ±ΠΎΡΠΊΠΈ ΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΆΠ΅ Π±ΡΠ»ΠΈ ΡΠ΄Π΅Π»Π°Π½Ρ, ΡΡΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠΊΠΎΡΠΈΡ Π²Π΅ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Garden ΡΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π·Π°ΠΊΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ.
ΠΠΎΠ΄ΡΠ»Π΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, Maven-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, Helm-ΡΠ°ΡΡ, ΠΌΠ°Π½ΠΈΡΠ΅ΡΡ Π΄Π»Ρ kubectl apply
ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ OpenFaaS-ΡΡΠ½ΠΊΡΠΈΡ. ΠΡΠΈΡΠ΅ΠΌ Π»ΡΠ±ΠΎΠΉ ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΡΡΠ½ΡΡΡ ΠΈΠ· ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ Git-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ. ΠΠΎΠ΄ΡΠ»Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ (Π° ΠΌΠΎΠΆΠ΅Ρ ΠΈ Π½Π΅Ρ) ΡΠ΅ΡΠ²ΠΈΡΡ, Π·Π°Π΄Π°ΡΠΈ ΠΈ ΡΠ΅ΡΡΡ. Π‘Π΅ΡΠ²ΠΈΡΡ ΠΈ Π·Π°Π΄Π°ΡΠΈ ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠ΅ΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π΄Π΅ΠΏΠ»ΠΎΡ ΡΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²ΠΈΡΠ°, ΡΠΏΠΎΡΡΠ΄ΠΎΡΠΈΡΡ Π·Π°ΠΏΡΡΠΊ Π·Π°Π΄Π°Π½ΠΈΠΉ ΠΈ ΡΠ΅ΡΡΠΎΠ².
Garden ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΊΡΠ°ΡΠΈΠ²ΡΠΉ dashboard (ΠΏΠΎΠΊΠ° Π²
ΠΠ°Π½Π΅Π»Ρ Π΄Π»Ρ Garden
ΠΡΡΡ Ρ ΡΡΠΎΠ³ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° ΠΈ ΡΠ΅ΠΆΠΈΠΌ hot-reload, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΎΡΡΠΎ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ² Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠΌ Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅, ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎ ΡΡΠΊΠΎΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π£ Garden Ρ
ΠΎΡΠΎΡΠ°Ρ
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π Π°Π·ΡΠΌΠ΅Π΅ΡΡΡ, Π΄Π°Π½Π½ΡΠΌ ΡΠΏΠΈΡΠΊΠΎΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² Kubernetes Π½Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΅ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Π²Π΅ΡΡΠΌΠ° ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ½ΡΡ ΡΡΠΈΠ»ΠΈΡ, Π΄ΠΎΡΡΠΎΠΉΠ½ΡΡ Π΅ΡΠ»ΠΈ Π½Π΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ ΡΡΠ°ΡΡΠΈ, ΡΠΎ β ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ β ΡΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΡ. Π Π°ΡΡΠΊΠ°ΠΆΠΈΡΠ΅, ΡΠ΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ΡΡ Π²Ρ, Ρ ΠΊΠ°ΠΊΠΈΠΌΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ Π²Π°ΠΌ Π΄ΠΎΠ²ΠΎΠ΄ΠΈΠ»ΠΎΡΡ ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ ΠΈ ΠΊΠ°ΠΊ Π²Ρ ΠΈΡ ΡΠ΅ΡΠ°Π»ΠΈ!
P.S.
Π§ΠΈΡΠ°ΠΉΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ Π² Π½Π°ΡΠ΅ΠΌ Π±Π»ΠΎΠ³Π΅:
- Β«
werf β Π½Π°Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ CI/CD Π² Kubernetes (ΠΎΠ±Π·ΠΎΡ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ Π΄ΠΎΠΊΠ»Π°Π΄Π°) Β»; - Β«
Garden v0.10.0: ΠΠ°ΡΠ΅ΠΌΡ Π½ΠΎΡΡΠ±ΡΠΊΡ Π½Π΅ Π½ΡΠΆΠ΅Π½ Kubernetes Β»; - Β«
Kubernetes tips & tricks: ΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΈ Telepresence Β»; - Β«
ΠΠ»Π°Π³ΠΈΠ½ kubectl-debug Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ Π² pod’Π°Ρ Kubernetes Β».
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com