ΠΠΎΠ΄Π΅ΡΠ½ΠΈΡΡ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ ΠΊΡΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈΡΠ΅ ΡΠ΅ΡΠ°Π²Π° ΠΌΠ½ΠΎΠ³ΠΎ Π½Π°Π»Π΅ΠΆΠ°ΡΠΈ Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ. ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅ ΠΈ ΠΎΡΠΊΠ΅ΡΡΡΠ°ΡΠΎΡΠΈΡΠ΅ ΡΠ»Π΅ΡΠ½ΡΠ²Π°Ρ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈ Ρ Π²ΡΡΠΊΠ°ΠΊΠ²Π° ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ, ΠΎΠΏΡΠΎΡΡΡΠ²Π°Ρ ΠΏΡΡΠΊΠ°Π½Π΅ΡΠΎ Π½Π° Π½ΠΎΠ²ΠΈ Π²Π΅ΡΡΠΈΠΈ, ΠΏΡΠ°Π²ΡΡ Π³ΠΈ ΠΏΠΎ-Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΈ, Π½ΠΎ Π² ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ ΡΡΠ·Π΄Π°Π²Π°Ρ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅. ΠΡΠΎΠ³ΡΠ°ΠΌΠΈΡΡΡΡ, Π½Π° ΠΏΡΡΠ²ΠΎ ΠΌΡΡΡΠΎ, ΡΠ΅ Π³ΡΠΈΠΆΠΈ Π·Π° ΡΠ²ΠΎΡ ΠΊΠΎΠ΄: Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ°, ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ, Π΅Π»Π΅Π³Π°Π½ΡΠ½ΠΎΡΡ - Π° Π½Π΅ ΠΊΠ°ΠΊ ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ Π² Kubernetes ΠΈ ΠΊΠ°ΠΊ Π΄Π° Π³ΠΎ ΡΠ΅ΡΡΠ²Π° ΠΈ ΠΎΡΡΡΡΠ°Π½ΡΠ²Π° Π³ΡΠ΅ΡΠΊΠΈ, ΡΠ»Π΅Π΄ ΠΊΠ°ΡΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈ Π΄ΠΎΡΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ ΡΡΡΠΎ ΡΠ°ΠΊΠ° Π΅ ΡΡΠ²ΡΠ΅ΠΌ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½ΠΎ, ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈΡΠ΅ Π·Π° Kubernetes ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Ρ Π°ΠΊΡΠΈΠ²Π½ΠΎ, ΠΏΠΎΠΌΠ°Π³Π°ΠΉΠΊΠΈ Π΄Π° ΡΠ΅ ΡΠ΅ΡΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅ Π΄ΠΎΡΠΈ Π½Π° Π½Π°ΠΉ-βΠ°ΡΡ
Π°ΠΈΡΠ½ΠΈΡΠ΅β ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ ΠΈ ΠΈΠΌ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠ΅ ΡΡΡΡΠ΅Π΄ΠΎΡΠΎΡΠ°Ρ Π²ΡΡΡ
Ρ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΡΠΎ.
Π’ΠΎΠ·ΠΈ ΠΏΡΠ΅Π³Π»Π΅Π΄ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΠΊΡΠ°ΡΠΊΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° Π½ΡΠΊΠΎΠΈ ΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΡΠ»Π΅ΡΠ½ΡΠ²Π°Ρ ΠΆΠΈΠ²ΠΎΡΠ° Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΡ, ΡΠΈΠΉΡΠΎ ΠΊΠΎΠ΄ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Π² pod'ax Π½Π° Kubernetes ΠΊΠ»ΡΡΡΠ΅Ρ.
ΠΡΠΎΡΡΠΈ ΠΏΠΎΠΌΠΎΡΠ½ΠΈΡΠΈ
Kubectl-debug
- ΠΠΎΠ»Π½ΠΈΡ ΡΠ΅Π΄: Π΄ΠΎΠ±Π°Π²Π΅ΡΠ΅ ΡΠ²ΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΊΡΠΌ Pod ΠΈ Π²ΠΈΠΆΡΠ΅ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΠ»ΡΡΠ²Π° Π² Π½Π΅Π³ΠΎ.
-
GitHub . - ΠΡΠ°ΡΠΊΠ° ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ° Π½Π° GH: 715 Π·Π²Π΅Π·Π΄ΠΈ, 54 Π°Π½Π³Π°ΠΆΠΈΡΠ°Π½ΠΈΡ, 9 ΡΡΡΡΡΠ΄Π½ΠΈΡΠΈ.
- ΠΠ·ΠΈΠΊ: Go.
- ΠΠΈΡΠ΅Π½Π·: Apache License 2.0.
Π’ΠΎΠ·ΠΈ ΠΏΠ»ΡΠ³ΠΈΠ½ Π·Π° kubectl Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΡΠ΅ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π΅Π½ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π²ΡΡΡΠ΅ Π² ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ²Π°ΡΠΈΡ Π²ΠΈ ΠΏΠΎΠ΄, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΡΠΏΠΎΠ΄Π΅Π»Ρ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎΡΠΎ ΠΎΡ ΠΈΠΌΠ΅Π½Π° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ° Ρ Π΄ΡΡΠ³ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ. Π Π½Π΅Π³ΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°ΡΠ΅ Π³ΡΠ΅ΡΠΊΠΈ Π² ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΠΌΠΎΠ΄ΡΠ»Π°: Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°ΡΠ΅ ΠΌΡΠ΅ΠΆΠ°ΡΠ°, Π΄Π° ΡΠ»ΡΡΠ°ΡΠ΅ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈΡ ΡΡΠ°ΡΠΈΠΊ, Π΄Π° ΠΏΡΠ°Π²ΠΈΡΠ΅ Π°Π½Π°Π»ΠΈΠ· Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ°, ΠΊΠΎΠΉΡΠΎ Π²ΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ²Π°, ΠΈ Ρ.Π½.
ΠΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠΎ Π΄Π° ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠΈΡΠ΅ ΠΊΡΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ°, ΠΊΠ°ΡΠΎ ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ chroot /proc/PID/root
- ΡΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ root shell Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, Π·Π° ΠΊΠΎΠΉΡΠΎ Π΅ Π·Π°Π΄Π°Π΄Π΅Π½ Π² ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ° securityContext.runAs
.
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡΡ Π΅ ΠΏΡΠΎΡΡ ΠΈ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π΅Π½, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π·Π° Π²ΡΠ΅ΠΊΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ. ΠΠΈΡΠ°Ρ
ΠΌΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ Π·Π° ΡΠΎΠ²Π° Π²
Π’Π΅Π»Π΅ΠΏΡΠΈΡΡΡΡΠ²ΠΈΠ΅
- ΠΠΎΠ»Π½ΠΈΡ ΡΠ΅Π΄: ΠΏΡΠ΅Ρ Π²ΡΡΠ»Π΅ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π²Π°ΡΠΈΡ ΠΊΠΎΠΌΠΏΡΡΡΡ. Π Π°Π·ΡΠ°Π±ΠΎΡΠ²Π°ΠΉΡΠ΅ ΠΈ ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°ΠΉΡΠ΅ Π³ΡΠ΅ΡΠΊΠΈ Π»ΠΎΠΊΠ°Π»Π½ΠΎ.
-
ΠΡΡΡΠΎ ;GitHub . - ΠΡΠ°ΡΠΊΠ° GH ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ°: 2131 Π·Π²Π΅Π·Π΄ΠΈ, 2712 Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½ΡΠΈ, 33 ΡΡΡΡΡΠ΄Π½ΠΈΡΠΈ.
- ΠΠ·ΠΈΠΊ: Python.
- ΠΠΈΡΠ΅Π½Π·: Apache License 2.0.
ΠΠ΄Π΅ΡΡΠ° Π½Π° ΡΠΎΠ·ΠΈ ΠΌΠΎΠ΄ΡΠ» Π΅ ββΠ΄Π° ΡΡΠ°ΡΡΠΈΡΠ° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΡΠ° Π½Π° Π»ΠΎΠΊΠ°Π»Π½ΠΈΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» ΠΈ Π΄Π° ΠΏΡΠΎΠΊΡΠΈΡΠ° ΡΠ΅Π»ΠΈΡ ΡΡΠ°ΡΠΈΠΊ ΠΎΡ ΠΊΠ»ΡΡΡΠ΅ΡΠ° ΠΊΡΠΌ Π½Π΅Π³ΠΎ ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ. Π’ΠΎΠ·ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°ΡΠ΅ Π»ΠΎΠΊΠ°Π»Π½ΠΎ, ΠΊΠ°ΡΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠ°ΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π² Π»ΡΠ±ΠΈΠΌΠ°ΡΠ° ΡΠΈ IDE: ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΡΠ΅ Π±ΡΠ΄Π°Ρ Π½Π°Π»ΠΈΡΠ½ΠΈ Π²Π΅Π΄Π½Π°Π³Π°.
ΠΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π°ΡΠ° Π½Π° Π»ΠΎΠΊΠ°Π»Π½ΠΎΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ° ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎΡΠΎ Π½Π° ΡΠ΅Π΄Π°ΠΊΡΠΈΠΈΡΠ΅ ΠΈ Π½Π΅Π·Π°Π±Π°Π²Π½ΠΈΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈ, Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΏΠΎ ΠΎΠ±ΠΈΡΠ°ΠΉΠ½ΠΈΡ Π½Π°ΡΠΈΠ½. ΠΠ΅Π΄ΠΎΡΡΠ°ΡΡΠΊΡΡ Π΅, ΡΠ΅ Π΅ Π²Π·ΠΈΡΠΊΠ°ΡΠ΅Π»Π΅Π½ ΠΊΡΠΌ ΡΠΊΠΎΡΠΎΡΡΡΠ° Π½Π° Π²ΡΡΠ·ΠΊΠ°ΡΠ°, ΠΊΠΎΠ΅ΡΠΎ Π΅ ΠΎΡΠΎΠ±Π΅Π½ΠΎ Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΠΌΠΎ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ°Π±ΠΎΡΠΈΡΠ΅ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ Π΄ΠΎΡΡΠ° Π²ΠΈΡΠΎΠΊ RPS ΠΈ ΡΡΠ°ΡΠΈΠΊ. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° Telepresence ΠΈΠΌΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Ρ ΠΌΠΎΠ½ΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠΎΠΌΠΎΠ²Π΅ Π² 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/
...ΡΠ΅ ΡΡΠ·Π΄Π°Π΄Π΅ Π½Π°Π±Π»ΡΠ΄Π°ΡΠ΅Π» Ρ ΠΈΠΌΠ΅ myproject
ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΡΡΡΡΠΈ ΠΏΠΎΠ΄ Ρ Π΅ΡΠΈΠΊΠ΅Ρ app=backend
ΠΈ ΠΎΠΏΠΈΡΠ°ΠΉΡΠ΅ Π΄Π° ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΠ°ΡΠ΅ Π»ΠΎΠΊΠ°Π»Π½Π°ΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ /home/user/myproject/
Ρ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ /var/www/myproject/
Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°, Π½Π°ΡΠ΅ΡΠ΅Π½ php
.
ΠΡΠΎΠ±Π»Π΅ΠΌΠΈ ΠΈ Π±Π΅Π»Π΅ΠΆΠΊΠΈ Π·Π° ksync ΠΎΡ Π½Π°ΡΠΈΡ ΠΎΠΏΠΈΡ:
- Π’ΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ½ΠΈ Π²ΡΠ·Π»ΠΈ Π½Π° Kubernetes
overlay2
ΠΊΠ°ΡΠΎ Π΄ΡΠ°ΠΉΠ²Π΅Ρ Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π·Π° Docker. ΠΠΎΠΌΠΎΡΠ½Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° Π½ΡΠΌΠ° Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Ρ Π΄ΡΡΠ³ΠΈ. - ΠΠΎΠ³Π°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Windows ΠΊΠ°ΡΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°, Π½Π°Π±Π»ΡΠ΄Π°ΡΠ΅Π»ΡΡ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π΅ ΡΠ°Π±ΠΎΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ. Π’ΠΎΠ·ΠΈ Π±ΡΠ³ Π±Π΅ΡΠ΅ Π·Π°Π±Π΅Π»ΡΠ·Π°Π½ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ Π³ΠΎΠ»Π΅ΠΌΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ - Ρ Π³ΠΎΠ»ΡΠΌ Π±ΡΠΎΠΉ Π²Π»ΠΎΠΆΠ΅Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ. Π‘ΡΠ·Π΄Π°Π΄ΠΎΡ
ΠΌΠ΅
ΡΡΠΎΡΠ²Π΅ΡΠ΅Π½ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ° Π·Π° ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠ°Π½Π΅, Π½ΠΎ Π²ΡΠ΅ ΠΎΡΠ΅ Π½ΡΠΌΠ° Π½Π°ΠΏΡΠ΅Π΄ΡΠΊ ΠΏΠΎ Π½Π΅Π³ΠΎ (ΠΎΡ Π½Π°ΡΠ°Π»ΠΎΡΠΎ Π½Π° ΡΠ»ΠΈ). - ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ ΡΠ°ΠΉΠ»
Π·Π° Π΄Π° ΠΏΠΎΡΠΎΡΠΈΡΠ΅ ΠΏΡΡΠΈΡΠ° ΠΈΠ»ΠΈ ΡΠ°Π±Π»ΠΎΠ½ΠΈ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠ°Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ.stignore
app/cache
ΠΈ.git
). - ΠΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ksync ΡΠ΅ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΠΏΡΠΈ Π²ΡΡΠΊΠ° ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅. ΠΠ° Node.js ΡΠΎΠ²Π° Π΅ ΡΠ΄ΠΎΠ±Π½ΠΎ, Π½ΠΎ Π·Π° PHP Π΅ Π½Π°ΠΏΡΠ»Π½ΠΎ ΠΈΠ·Π»ΠΈΡΠ½ΠΎ. ΠΠΎ-Π΄ΠΎΠ±ΡΠ΅ Π΅ Π΄Π° ΠΈΠ·ΠΊΠ»ΡΡΠΈΡΠ΅ opcache ΠΈ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΡΠ»Π°Π³Π°
--reload=false
. - ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π²ΠΈΠ½Π°Π³ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΊΠΎΡΠΈΠ³ΠΈΡΠ°Π½Π°
$HOME/.ksync/ksync.yaml
.
ΡΠΊΡΠΎΡ
- ΠΠΎΠ»Π½ΠΈΡ ΡΠ΅Π΄: ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ Π² ΠΏΡΠΎΡΠ΅ΡΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ°.
-
GitHub . - ΠΡΠ°ΡΠΊΠ° GH ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ°: 1154 Π·Π²Π΅Π·Π΄ΠΈ, 279 Π°Π½Π³Π°ΠΆΠΈΡΠ°Π½ΠΈΡ, 23 ΡΡΡΡΡΠ΄Π½ΠΈΡΠΈ.
- ΠΠ·ΠΈΠΊ: Go.
- ΠΠΈΡΠ΅Π½Π·: Apache License 2.0.
Π’ΠΎΠ·ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΅ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π·Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ Π² ΠΏΡΠΎΡΠ΅ΡΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π² pods. ΠΠΎΠΌΠΎΡΠ½Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° Π΅ ΠΏΡΠΎΡΡΠ° ΠΈ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ ΠΆΠ΅Π»Π°Π½ΠΈΡ Π΄Π΅Π±ΡΠ³Π΅Ρ (Π²ΠΈΠΆ ΠΎΡΠ΄ΠΎΠ»Ρ) ΠΈ namespace + pod, Π² ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° ΠΊΠΎΠΉΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅. Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°:
- delve - Π·Π° Go ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ;
- GDB - ΡΡΠ΅Π· ΡΠ΅Π»Π΅Π²ΠΎ Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎ + ΠΏΡΠ΅Π½Π°ΡΠΎΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠΎΡΡΠΎΠ²Π΅;
- JDWP ΠΏΡΠ΅Π½Π°ΡΠΎΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠΎΡΡΠΎΠ²Π΅ Π·Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ Π² Java ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΡ ΡΡΡΠ°Π½Π° Π½Π° IDE ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π΅ Π΄ΠΎΡΡΡΠΏΠ½Π° ΡΠ°ΠΌΠΎ Π²ΡΠ² VScode (ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ
ΠΠ° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ Π² ΠΏΡΠΎΡΠ΅ΡΠΈ, Squash ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π½Π° Π²ΡΠ·Π»ΠΈΡΠ΅ Π½Π° ΠΊΠ»ΡΡΡΠ΅ΡΠ°, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΏΡΡΠ²ΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ Π·Π°ΠΏΠΎΠ·Π½Π°Π΅ΡΠ΅ Ρ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅
Π¦ΡΠ»ΠΎΡΡΠ½ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ
ΠΠ΅ΠΊΠ° Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΠΌ ΠΊΡΠΌ ΡΠ΅ΠΆΠΊΠ°ΡΠ° Π°ΡΡΠΈΠ»Π΅ΡΠΈΡ - ΠΏΠΎ-βΠΌΠ°ΡΠ°Π±Π½ΠΈβ ΠΏΡΠΎΠ΅ΠΊΡΠΈ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈ Π½Π΅Π·Π°Π±Π°Π²Π½ΠΎ Π΄Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡΡΡ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ Π½ΡΠΆΠ΄ΠΈΡΠ΅ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅.
NB: Π ΡΠΎΠ·ΠΈ ΡΠΏΠΈΡΡΠΊ, ΡΠ°Π·Π±ΠΈΡΠ° ΡΠ΅, ΠΈΠΌΠ° ΠΌΡΡΡΠΎ Π·Π° Π½Π°ΡΠ°ΡΠ° ΠΏΠΎΠΌΠΎΡΠ½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄
DevSpace
- ΠΠΎΠ»Π½ΠΈΡ ΡΠ΅Π΄: Π·Π° ΡΠ΅Π·ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΡΠΊΠ°Ρ Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ° Π² Kubernetes, Π½ΠΎ Π½Π΅ ΠΈΡΠΊΠ°Ρ Π΄Π° ΡΠ΅ ΡΠΎΠ²ΡΡ Π΄ΡΠ»Π±ΠΎΠΊΠΎ Π² Π΄ΠΆΡΠ½Π³Π»Π°ΡΠ° ΠΌΡ.
-
GitHub . - ΠΡΠ°ΡΠΊΠ° ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ° Π½Π° GH: 630 Π·Π²Π΅Π·Π΄ΠΈ, 1912 Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½ΡΠΈ, 13 ΡΡΠ°ΡΡΠ½ΠΈΡΠΈ.
- ΠΠ·ΠΈΠΊ: Go.
- ΠΠΈΡΠ΅Π½Π·: Apache License 2.0.
Π Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΡ Π΅Π΄Π½ΠΎΠΈΠΌΠ΅Π½Π½Π°ΡΠ° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ, ΠΊΠΎΡΡΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΡΠΏΡΠ°Π²Π»ΡΠ²Π°Π½ΠΈ ΠΊΠ»ΡΡΡΠ΅ΡΠΈ Ρ Kubernetes Π·Π° Π΅ΠΊΠΈΠΏΠ½ΠΎ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅. ΠΠΎΠΌΠΎΡΠ½Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° Π΅ ΡΡΠ·Π΄Π°Π΄Π΅Π½Π° Π·Π° ΡΡΡΠ³ΠΎΠ²ΡΠΊΠΈ ΠΊΠ»ΡΡΡΠ΅ΡΠΈ, Π½ΠΎ ΡΠ°Π±ΠΎΡΠΈ ΡΡΠ΄Π΅ΡΠ½ΠΎ Ρ Π²ΡΠΈΡΠΊΠΈ Π΄ΡΡΠ³ΠΈ.
ΠΡΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° devspace init
Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠ΅ Π²ΠΈ Π±ΡΠ΄Π°Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈ (ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎ):
- ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ ΡΠ°Π±ΠΎΡΠ΅Ρ ΠΊΠ»ΡΡΡΠ΅Ρ Π½Π° Kubernetes,
- ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈΡΠ΅
Dockerfile
(ΠΈΠ»ΠΈ Π³Π΅Π½Π΅ΡΠΈΡΠ°ΠΉΡΠ΅ Π½ΠΎΠ²), Π·Π° Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° Π½Π΅Π³ΠΎ, - ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π·Π° ΡΡΡ ΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ ΠΈ Π΄Ρ.
Π‘Π»Π΅Π΄ Π²ΡΠΈΡΠΊΠΈ ΡΠ΅Π·ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠ²ΠΈΡΠ΅Π»Π½ΠΈ ΡΡΡΠΏΠΊΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ°, ΠΊΠ°ΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° devspace dev
. Π’ΠΎΠΉ ΡΠ΅ ΠΈΠ·Π³ΡΠ°Π΄ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°, ΡΠ΅ Π³ΠΎ ΠΊΠ°ΡΠΈ Π² Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ, ΡΠ΅ ΡΠ°Π·Π³ΡΡΠ½Π΅ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ΡΠΎ Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ° ΠΈ ΡΠ΅ Π·Π°ΠΏΠΎΡΠ½Π΅ ΠΏΡΠ΅Π½Π°ΡΠΎΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠΎΡΡΠΎΠ²Π΅ ΠΈ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Ρ Π»ΠΎΠΊΠ°Π»Π½Π°ΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ.
ΠΠΎ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΡΠ΅ Π±ΡΠ΄Π΅ΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ°Π½Π΅Π½ΠΈ Π΄Π° ΠΏΡΠ΅ΠΌΠ΅ΡΡΠΈΡΠ΅ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°. ΠΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΎΡΠΊΠ°Π·Π²Π°ΡΠ΅, Π·Π°ΡΠΎΡΠΎ Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»Π½ΠΎΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡΡ Π·Π°ΠΏΠΎΡΠ²Π° Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° Π·Π° Π·Π°ΡΠΏΠΈΠ²Π°Π½Π΅ ΠΈ Π·Π° ΡΠ΅Π°Π»Π½ΠΎ ΡΠ΅ΡΡΠ²Π°Π½Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ° ΡΡΡΠ½ΠΎ.
Π Π½Π°ΠΊΡΠ°Ρ, Π΅ΠΊΠΈΠΏΡΡ devspace deploy
ΡΠ°Π·Π³ΡΡΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΈ ΡΠ²ΡΡΠ·Π°Π½Π°ΡΠ° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΠΊΡΠΌ ΠΊΠ»ΡΡΡΠ΅ΡΠ°, ΡΠ»Π΅Π΄ ΠΊΠΎΠ΅ΡΠΎ Π²ΡΠΈΡΠΊΠΎ Π·Π°ΠΏΠΎΡΠ²Π° Π΄Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ° Π² Π±ΠΎΠ΅Π½ ΡΠ΅ΠΆΠΈΠΌ.
Π¦ΡΠ»Π°ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠ΅ ΡΡΡ
ΡΠ°Π½ΡΠ²Π° Π²ΡΠ² ΡΠ°ΠΉΠ» devspace.yaml
. Π Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΡΠΌ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅ Π½Π° ΡΡΠ΅Π΄Π°ΡΠ° Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°, Π² Π½Π΅Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅ ΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π½Π° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°ΡΠ°, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈΡΠ΅ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠΈ Π½Π° Kubernetes, ΡΠ°ΠΌΠΎ ΡΠ΅ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΎΠΏΡΠΎΡΡΠ΅Π½ΠΎ.
ΠΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ Π΅ΡΠ°ΠΏΠΈ Π½Π° ΡΠ°Π±ΠΎΡΠ° Ρ DevSpace
ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° Π΅ Π»Π΅ΡΠ½ΠΎ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ MySQL DBMS) ΠΈΠ»ΠΈ Helm Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠ° ΠΊΡΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ Π²
Π‘ΠΊΠ΅Π»Π΅
-
ΠΡΡΡΠΎ ;GitHub . - ΠΡΠ°ΡΠΊΠ° GH ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ°: 7423 Π·Π²Π΅Π·Π΄ΠΈ, 4173 Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½ΡΠΈ, 136 ΡΡΡΡΡΠ΄Π½ΠΈΡΠΈ.
- ΠΠ·ΠΈΠΊ: Go.
- ΠΠΈΡΠ΅Π½Π·: Apache License 2.0.
Π’Π°Π·ΠΈ ΠΏΠΎΠΌΠΎΡΠ½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° ΠΎΡ Google ΡΠ²ΡΡΠ΄ΠΈ, ΡΠ΅ ΠΏΠΎΠΊΡΠΈΠ²Π° Π²ΡΠΈΡΠΊΠΈ Π½ΡΠΆΠ΄ΠΈ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΡ, ΡΠΈΠΉΡΠΎ ΠΊΠΎΠ΄ ΠΏΠΎ Π½ΡΠΊΠ°ΠΊΡΠ² Π½Π°ΡΠΈΠ½ ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ Π½Π° Kubernetes ΠΊΠ»ΡΡΡΠ΅Ρ. ΠΠ°ΠΏΠΎΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ ΠΌΡ Π½Π΅ Π΅ ΡΠΎΠ»ΠΊΠΎΠ²Π° Π»Π΅ΡΠ½ΠΎ, ΠΊΠΎΠ»ΠΊΠΎΡΠΎ devspace: Π½ΡΠΌΠ° ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΡΡ, ΠΎΡΠΊΡΠΈΠ²Π°Π½Π΅ Π½Π° Π΅Π·ΠΈΠΊ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Dockerfile
ΡΡΠΊ Π½ΡΠΌΠ° Π΄Π° ΡΠΈ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ°Ρ.
ΠΠΊΠΎ ΠΎΠ±Π°ΡΠ΅ ΡΠΎΠ²Π° Π½Π΅ Π²ΠΈ ΠΏΠ»Π°ΡΠΈ, Π΅ΡΠΎ ΠΊΠ°ΠΊΠ²ΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ Skaffold:
- ΠΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π² ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡ ΠΊΠΎΠ΄.
- Π‘ΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠ°ΠΉΡΠ΅ Π³ΠΎ Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Π½Π° ΠΊΠ°ΠΏΡΡΠ»Π°ΡΠ°, Π°ΠΊΠΎ Π½Π΅ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΡΠ³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅.
- Π‘ΡΠ±ΠΈΡΠ°ΠΉΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Ρ ΠΊΠΎΠ΄, Π°ΠΊΠΎ Π΅Π·ΠΈΠΊΡΡ ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΠ°, ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°ΠΉΡΠ΅ Π°ΡΡΠ΅ΡΠ°ΠΊΡΠΈ ΠΈ Π³ΠΈ ΠΎΠΏΠ°ΠΊΠΎΠ²Π°ΠΉΡΠ΅ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ.
- ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π°
ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ-ΡΡΡΡΠΊΡΡΡΠ°-ΡΠ΅ΡΡ . - ΠΠ°ΡΠΊΠΈΡΠ°Π½Π΅ ΠΈ ΠΊΠ°ΡΠ²Π°Π½Π΅ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² ΡΠ΅Π³ΠΈΡΡΡΡΠ° Π½Π° Docker.
- Π Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΊΠ»ΡΡΡΠ΅Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° kubectl, Helm ΠΈΠ»ΠΈ kustomize.
- ΠΠ·Π²ΡΡΡΠ΅ΡΠ΅ ΠΏΡΠ΅ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° ΠΏΠΎΡΡ.
- ΠΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½Π°ΠΏΠΈΡΠ°Π½ΠΈ Π½Π° Java, Node.js, Python.
Π Π°Π±ΠΎΡΠ½ΠΈΡΡ ΠΏΡΠΎΡΠ΅Ρ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π²Π°ΡΠΈΠ°Π½ΡΠΈ Π΅ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΠΎ ΠΎΠΏΠΈΡΠ°Π½ Π²ΡΠ² ΡΠ°ΠΉΠ»Π° skaffold.yaml
. ΠΠ° Π΅Π΄ΠΈΠ½ ΠΏΡΠΎΠ΅ΠΊΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠΎ Π΄Π° Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°ΡΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΠΎΡΠΈΠ»Π°, Π² ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°ΡΡΠΈΡΠ½ΠΎ ΠΈΠ»ΠΈ Π½Π°ΠΏΡΠ»Π½ΠΎ Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π΅ΡΠ°ΠΏΠΈΡΠ΅ Π½Π° ΡΠ³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅ ΠΈ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°, ΠΏΠΎΡΠΎΡΠ΅ΡΠ΅ Π±Π°Π·ΠΎΠ²ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΡΠ΄ΠΎΠ±Π½ΠΎ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°, Π° Π·Π° ΠΏΠΎΡΡΠ°Π²ΡΠ½Π΅ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎ - ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΎ (+ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ securityContext
ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ ΠΈΠ»ΠΈ ΠΏΡΠ΅Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°ΠΉΡΠ΅ ΠΊΠ»ΡΡΡΠ΅ΡΠ°, Π² ΠΊΠΎΠΉΡΠΎ ΡΠ΅ Π±ΡΠ΄Π΅ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ).
Docker ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ΠΈ Π»ΠΎΠΊΠ°Π»Π½ΠΎ ΠΈΠ»ΠΈ ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ΠΎ: Π²
ΠΡΠ΄Π΅Π»Π½ΠΎ, Π·Π°ΡΠ»ΡΠΆΠ°Π²Π° Π΄Π° ΡΠ΅ ΠΎΡΠ±Π΅Π»Π΅ΠΆΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΡΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ. ΠΠ΅ΡΠ΅ ΡΠΏΠΎΠΌΠ΅Π½Π°ΡΠ°ΡΠ° ΡΠ°ΠΌΠΊΠ° Π·Π° ΡΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΡΡΡΠΊΡΡΡΠ° Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΈ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°:
- ΠΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Ρ ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈ ΡΡΠ°ΡΡΡΠΈ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠ΅ΠΊΡΡΠΎΠ²ΠΈΡ ΠΈΠ·Ρ ΠΎΠ΄ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ°.
- ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΠΈ ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Ρ ΠΏΠΎΡΠΎΡΠ΅Π½ΠΈΡΠ΅ Π°ΡΡΠΈΠ±ΡΡΠΈ.
- ΠΠΎΠ½ΡΡΠΎΠ» Π½Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ°ΠΉΠ»Π° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΈ ΠΈΠ·ΡΠ°Π·ΠΈ.
- ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΠΈΡΠ΅ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ (
ENV
,ENTRYPOINT
,VOLUMES
ΠΈ Π΄ΡΡΠ³ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ). - ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡΠ° Π½Π° Π»ΠΈΡΠ΅Π½Π·Π°.
Π‘ΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Π½Π΅ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° ΠΏΠΎ Π½Π°ΠΉ-ΠΎΠΏΡΠΈΠΌΠ°Π»Π½ΠΈΡ Π½Π°ΡΠΈΠ½: Skaffold ΠΏΡΠΎΡΡΠΎ ΡΡΠ·Π΄Π°Π²Π° Π°ΡΡ ΠΈΠ² Ρ ΠΈΠ·ΡΠΎΡΠ½ΠΈΡΠΈΡΠ΅, ΠΊΠΎΠΏΠΈΡΠ° Π³ΠΎ ΠΈ Π³ΠΎ ΡΠ°Π·ΠΎΠΏΠ°ΠΊΠΎΠ²Π° Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° (ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ tar). ΠΡΠΎ Π·Π°ΡΠΎ, Π°ΠΊΠΎ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° Π²ΠΈ Π·Π°Π΄Π°ΡΠ° Π΅ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΊΠΎΠ΄ΠΎΠ²Π΅, ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅ Π΅ Π΄Π° ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΡΠ΅ ΠΊΡΠΌ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ (ksync).
ΠΡΠ½ΠΎΠ²Π½ΠΈ Π΅ΡΠ°ΠΏΠΈ Π½Π° ΡΠ°Π±ΠΎΡΠ° Π½Π° Skaffold
ΠΠ°ΡΠΎ ΡΡΠ»ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡΡ Π½Π΅ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠ΅ Π°Π±ΡΡΡΠ°Ρ ΠΈΡΠ°ΡΠ΅ ΠΎΡ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠΈΡΠ΅ Π½Π° Kubernetes ΠΈ Π½ΡΠΌΠ° Π½ΠΈΠΊΠ°ΠΊΠ²Π° ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΡΡ, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΡΡΡΠ΄Π΅Π½ Π·Π° ΠΎΠ²Π»Π°Π΄ΡΠ²Π°Π½Π΅. ΠΠΎ ΡΠΎΠ²Π° Π΅ ΠΈ Π½Π΅Π³ΠΎΠ²ΠΎΡΠΎ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²ΠΎ - ΠΏΠΎ-Π³ΠΎΠ»ΡΠΌΠ° ΡΠ²ΠΎΠ±ΠΎΠ΄Π° Π½Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅.
ΠΡΠ°Π΄ΠΈΠ½Π°
-
ΠΡΡΡΠΎ ;GitHub . - ΠΡΠ°ΡΠΊΠ° GH ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ°: 1063 Π·Π²Π΅Π·Π΄ΠΈ, 1927 Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½ΡΠΈ, 17 ΡΡΡΡΡΠ΄Π½ΠΈΡΠΈ.
- ΠΠ·ΠΈΠΊ: TypeScript (ΠΏΠ»Π°Π½ΠΈΡΠ° ΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΡΡ Π΄Π° Π±ΡΠ΄Π΅ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, Π½ΡΠΊΠΎΠΈ ΠΎΡ ΠΊΠΎΠΈΡΠΎ ΡΠ΅ Π±ΡΠ΄Π°Ρ Π² Go, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π΄Π° ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ SDK Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π΄ΠΎΠ±Π°Π²ΠΊΠΈ Π² TypeScript/JavaScript ΠΈ Go).
- ΠΠΈΡΠ΅Π½Π·: Apache License 2.0.
ΠΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° Skaffold, Garden ΠΈΠΌΠ° Π·Π° ΡΠ΅Π» Π΄Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ° ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅ Π½Π° Π΄ΠΎΡΡΠ°Π²ΡΠ½Π΅ Π½Π° ΠΊΠΎΠ΄ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΊΡΠΌ ΠΊΠ»ΡΡΡΠ΅ΡΠ° K8s. ΠΠ° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΠΎΠ²Π°, ΠΏΡΡΠ²ΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΎΠΏΠΈΡΠ΅ΡΠ΅ ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Π² YAML ΡΠ°ΠΉΠ» ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° garden dev
. Π’Ρ ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ ΡΡΠ»Π°ΡΠ° ΠΌΠ°Π³ΠΈΡ:
- Π‘ΡΠ±Π΅ΡΠ΅ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ°ΡΡΠΈ ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
- ΠΡΠΎΠ²Π΅ΠΆΠ΄Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΠΈ ΠΌΠΎΠ΄ΡΠ»Π½ΠΈ ΡΠ΅ΡΡΠΎΠ²Π΅, Π°ΠΊΠΎ ΠΈΠΌΠ° ΠΎΠΏΠΈΡΠ°Π½ΠΈ ΡΠ°ΠΊΠΈΠ²Π°.
- Π Π°Π·Π³ΡΡΡΠ° Π²ΡΠΈΡΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΊΡΠΌ ΠΊΠ»ΡΡΡΠ΅ΡΠ°.
- ΠΠΊΠΎ ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡΡ ΠΊΠΎΠ΄ ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ, ΡΠΎΠ²Π° ΡΠ΅ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ° ΡΠ΅Π»ΠΈΡ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ.
ΠΡΠ½ΠΎΠ²Π½ΠΈΡΡ ΡΠΎΠΊΡΡ ΠΏΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΎΠ·ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΅ ΡΠΏΠΎΠ΄Π΅Π»ΡΠ½Π΅ΡΠΎ Π½Π° ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ ΠΊΠ»ΡΡΡΠ΅Ρ Ρ Π΅ΠΊΠΈΠΏ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°. Π ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ, Π°ΠΊΠΎ Π½ΡΠΊΠΎΠΈ ΠΎΡ ΡΡΡΠΏΠΊΠΈΡΠ΅ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ ΠΈ ΡΠ΅ΡΡΠ²Π°Π½Π΅ Π²Π΅ΡΠ΅ ΡΠ° Π½Π°ΠΏΡΠ°Π²Π΅Π½ΠΈ, ΡΠΎΠ²Π° Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΡΠ΅ ΡΡΠΊΠΎΡΠΈ ΡΠ΅Π»ΠΈΡ ΠΏΡΠΎΡΠ΅Ρ, ΡΡΠΉ ΠΊΠ°ΡΠΎ Garden ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ΅ΡΠΈΡΠ°Π½ΠΈΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈ.
ΠΠΎΠ΄ΡΠ»ΡΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π½Π° Maven, Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠ° Π½Π° Helm, ΠΌΠ°Π½ΠΈΡΠ΅ΡΡ Π·Π° kubectl apply
ΠΈΠ»ΠΈ Π΄ΠΎΡΠΈ ΡΡΠ½ΠΊΡΠΈΡ OpenFaaS. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° Π²ΡΠ΅ΠΊΠΈ ΠΎΡ ΠΌΠΎΠ΄ΡΠ»ΠΈΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ·ΡΠ΅Π³Π»Π΅Π½ ΠΎΡ ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ΠΎ Git Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅. ΠΠ΄ΠΈΠ½ ΠΌΠΎΠ΄ΡΠ» ΠΌΠΎΠΆΠ΅ ΠΈΠ»ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄Π΅ΡΠΈΠ½ΠΈΡΠ° ΡΡΠ»ΡΠ³ΠΈ, Π·Π°Π΄Π°ΡΠΈ ΠΈ ΡΠ΅ΡΡΠΎΠ²Π΅. Π£ΡΠ»ΡΠ³ΠΈΡΠ΅ ΠΈ Π·Π°Π΄Π°ΡΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΈΠΌΠ°Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½Π° ΡΡΠ»ΡΠ³Π° ΠΈ Π΄Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π·Π°Π΄Π°ΡΠΈ ΠΈ ΡΠ΅ΡΡΠΎΠ²Π΅.
Garden ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ ΠΊΡΠ°ΡΠΈΠ²ΠΎ ΡΠ°Π±Π»ΠΎ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ (Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π²
ΠΠ°Π½Π΅Π» Π·Π° Π³ΡΠ°Π΄ΠΈΠ½Π°
Π’ΠΎΠ·ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΡΡΡΠΎ ΠΈΠΌΠ° ΡΠ΅ΠΆΠΈΠΌ Π½Π° Π³ΠΎΡΠ΅ΡΠΎ ΠΏΡΠ΅Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅, ΠΊΠΎΠΉΡΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΠ° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π² ΡΠΊΡΠΈΠΏΡΠ° Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ°, ΠΊΠΎΠ΅ΡΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΡΡΠΊΠΎΡΡΠ²Π° ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ. ΠΡΠ°Π΄ΠΈΠ½Π° ΠΈΠΌΠ° Π΄ΠΎΠ±ΡΡ
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π Π°Π·Π±ΠΈΡΠ° ΡΠ΅, ΡΠΎΠ·ΠΈ ΡΠΏΠΈΡΡΠΊ Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ ΠΈ ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² Kubernetes Π½Π΅ ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ°Π²Π° Π΄ΠΎ. ΠΠΌΠ° ΠΎΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΈ ΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ½ΠΈ ΠΏΠΎΠΌΠΎΡΠ½ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ, ΠΊΠΎΠΈΡΠΎ Π·Π°ΡΠ»ΡΠΆΠ°Π²Π°Ρ, Π°ΠΊΠΎ Π½Π΅ ΠΎΡΠ΄Π΅Π»Π½Π° ΡΡΠ°ΡΠΈΡ, ΡΠΎ ΠΏΠΎΠ½Π΅ ΡΠΏΠΎΠΌΠ΅Π½Π°Π²Π°Π½Π΅. Π Π°Π·ΠΊΠ°ΠΆΠ΅ΡΠ΅ Π½ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅, ΠΊΠ°ΠΊΠ²ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΡΡΠ΅ ΡΡΠ΅ΡΠ°Π»ΠΈ ΠΈ ΠΊΠ°ΠΊ ΡΡΠ΅ Π³ΠΈ ΡΠ°Π·ΡΠ΅ΡΠΈΠ»ΠΈ!
PS
ΠΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ ΡΡΡΠΎ Π² Π½Π°ΡΠΈΡ Π±Π»ΠΎΠ³:
- Β«
werf - Π½Π°ΡΠΈΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π·Π° CI / CD Π² Kubernetes (ΠΎΠ±Ρ ΠΏΡΠ΅Π³Π»Π΅Π΄ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ ΠΎΡΡΠ΅Ρ) Β»; - Β«
Garden v0.10.0: ΠΠ°ΡΠΈΡΡ Π»Π°ΠΏΡΠΎΠΏ Π½Π΅ ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅ ΠΎΡ Kubernetes Β»; - Β«
Π‘ΡΠ²Π΅ΡΠΈ ΠΈ ΡΡΠΈΠΊΠΎΠ²Π΅ Π½Π° Kubernetes: ΠΎΡΠ½ΠΎΡΠ½ΠΎ ΠΌΠ΅ΡΡΠ½ΠΎΡΠΎ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ ΠΈ ΡΠ΅Π»Π΅ΠΏΡΠΈΡΡΡΡΠ²ΠΈΠ΅ΡΠΎ Β»; - Β«
kubectl-debug ΠΏΠ»ΡΠ³ΠΈΠ½ Π·Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ Π² Kubernetes pods ".
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com