αž§αž”αž€αžšαžŽαŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ‚αž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αžΎ Kubernetes

αž§αž”αž€αžšαžŽαŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ‚αž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αžΎ Kubernetes

αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž‘αŸ†αž“αžΎαž”αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαž’αžΆαž‡αžΈαžœαž€αž˜αŸ’αž˜αžŸαŸ†αžαžΆαž“αŸ‹αŸ—αž‡αžΆαž…αŸ’αžšαžΎαž“αŸ” αž€αž»αž„αžαžΊαž“αŸαžš αž“αž·αž„αž’αŸ’αž“αž€αžšαŸ€αž”αž…αŸ†αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž’αŸ’αžœαžΎαž±αŸ’αž™αžœαžΆαž„αžΆαž™αžŸαŸ’αžšαž½αž›αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αŸ’αžœαžΎαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“αž‚αž˜αŸ’αžšαŸ„αž„αž“αŸƒαž—αžΆαž–αžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αžŽαžΆαž˜αž½αž™ αžŸαž˜αŸ’αžšαž½αž›αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αž€αŸ†αžŽαŸ‚αžαŸ’αž˜αžΈ αž’αŸ’αžœαžΎαž±αŸ’αž™αž–αž½αž€αž‚αŸαž€αžΆαž“αŸ‹αžαŸ‚αž’αžΆαž…αž‘αž»αž€αž…αž·αžαŸ’αžαž”αžΆαž“ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž€αŸ’αž“αž»αž„αž–αŸαž›αžαŸ‚αž˜αž½αž™αž–αž½αž€αž‚αŸαž”αž„αŸ’αž€αžΎαžαž”αž‰αŸ’αž αžΆαž”αž“αŸ’αžαŸ‚αž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαŸ” αž‡αžΆαžŠαŸ†αž”αžΌαž„αž’αŸ’αž“αž€αžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž™αž€αž…αž·αžαŸ’αžαž‘αž»αž€αžŠαžΆαž€αŸ‹αž›αžΎαž€αžΌαžŠαžšαž”αžŸαŸ‹αž‚αžΆαžαŸ‹αŸ– αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜ αž‚αž»αžŽαž—αžΆαž– αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž αž—αžΆαž–αž†αžΎαžαž†αžΆαž™ - αž αžΎαž™αž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆαžšαž”αŸ€αž”αžŠαŸ‚αž›αžœαžΆαž“αžΉαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸ…αž€αŸ’αž“αž»αž„ Kubernetes αž“αž·αž„αžšαž”αŸ€αž”αžŸαžΆαž€αž›αŸ’αž”αž„ αž“αž·αž„αž”αŸ†αž”αžΆαžαŸ‹αž€αŸ†αž αž»αžŸαž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž’αŸ’αžœαžΎαž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžŸαžΌαž˜αŸ’αž”αžΈαžαŸ‚αžαž·αž…αžαž½αž…αž”αŸ†αž•αž»αžαŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžœαžΆαž€αŸαž‡αžΆαžšαžΏαž„αž’αž˜αŸ’αž˜αžαžΆαžŠαŸ‚αžš αžŠαŸ‚αž›αž§αž”αž€αžšαžŽαŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Kubernetes αž€αŸ†αž–αž»αž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αž™αŸ‰αžΆαž„αžŸαž€αž˜αŸ’αž˜ αžŠαŸ„αž™αž‡αž½αž™αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸ "αž”αž»αžšαžΆαžŽ" αž”αŸ†αž•αž»αž αž“αž·αž„αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž–αž½αž€αž‚αŸαž•αŸ’αžαŸ„αžαž›αžΎαžšαžΏαž„αžŸαŸ†αžαžΆαž“αŸ‹αŸ”

αž€αžΆαžšαž–αž·αž“αž·αžαŸ’αž™αž‘αžΎαž„αžœαž·αž‰αž“αŸαŸ‡αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž–αŸαžαŸŒαž˜αžΆαž“αžŸαž„αŸ’αžαŸαž”αž’αŸ†αž–αžΈαž§αž”αž€αžšαžŽαŸαž˜αž½αž™αž…αŸ†αž“αž½αž“αžŠαŸ‚αž›αž’αŸ’αžœαžΎαž’αŸ„αž™αž‡αžΈαžœαž·αžαž€αžΆαž“αŸ‹αžαŸ‚αž„αžΆαž™αžŸαŸ’αžšαž½αž›αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ‚αž›αž€αžΌαžŠαžšαž”αžŸαŸ‹αžœαžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸ…αž€αŸ’αž“αž»αž„ pod'ax αž“αŸƒαž€αŸ’αžšαž»αž˜ Kubernetes αŸ”

αž’αŸ’αž“αž€αž‡αŸ†αž“αž½αž™αžŸαžΆαž˜αž‰αŸ’αž‰

Kubectl-αž”αŸ†αž”αžΆαžαŸ‹αž€αŸ†αž αž»αžŸ

  • αžαŸ’αž›αžΉαž˜αžŸαžΆαžšαŸ– αž”αž“αŸ’αžαŸ‚αž˜αž€αž»αž„αžαžΊαž“αŸαžšαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž‘αŸ…αž•αž αž αžΎαž™αž˜αžΎαž›αžαžΆαž˜αžΆαž“αž’αŸ’αžœαžΈαž€αžΎαžαž‘αžΎαž„αž“αŸ…αž€αŸ’αž“αž»αž„αžœαžΆαŸ”.
  • GitHub.
  • αžŸαŸ’αžαž·αžαž· GH αžŸαž„αŸ’αžαŸαž”αŸ– αž•αŸ’αž€αžΆαž™ 715, 54 commits, 9 contributors αŸ”
  • αž—αžΆαžŸαžΆαŸ– αž‘αŸ…αŸ”
  • αž’αžΆαž‡αŸ’αž‰αžΆαž”αŸαžŽαŸ’αžŽαŸ– Apache License 2.0.

αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™αž“αŸαŸ‡αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ kubectl αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž”αž„αŸ’αž€αžΎαžαž€αž»αž„αžαžΊαž“αŸαžšαž”αž“αŸ’αžαŸ‚αž˜αž˜αž½αž™αž“αŸ…αžαžΆαž„αž€αŸ’αž“αž»αž„αž•αžαžŠαŸ‚αž›αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸ αžŠαŸ‚αž›αž“αžΉαž„αž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€ namespace αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž’αž»αž„αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ” αž“αŸ…αž€αŸ’αž“αž»αž„αžœαžΆ αž’αŸ’αž“αž€αž’αžΆαž…αž”αŸ†αž”αžΆαžαŸ‹αž€αŸ†αž αž»αžŸαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžšαž”αžŸαŸ‹αž•αžαŸˆ αž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αž”αžŽαŸ’αžαžΆαž‰ αžŸαŸ’αžαžΆαž”αŸ‹αž…αžšαžΆαž…αžšαž”αžŽαŸ’αžαžΆαž‰ αž’αŸ’αžœαžΎαžŠαžΆαž“αž“αŸƒαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž…αŸ†αžŽαžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαŸ”αž›αŸ”

αž’αŸ’αž“αž€αž€αŸαž’αžΆαž…αž”αŸ’αžαžΌαžšαž‘αŸ…αž’αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ„αž™αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš chroot /proc/PID/root - αž“αŸαŸ‡αž’αžΆαž…αž˜αžΆαž“αž—αžΆαž–αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž€αžΆαžšαž™αž€αžŸαŸ†αž”αž€ root αž“αŸ…αž€αŸ’αž“αž»αž„αž’αž»αž„αžŠαŸ‚αž›αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„ manifest securityContext.runAs.

αž§αž”αž€αžšαžŽαŸαž“αŸαŸ‡αž‚αžΊαžŸαžΆαž˜αž‰αŸ’αž‰ αž“αž·αž„αž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž– αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžœαžΆαž’αžΆαž…αž˜αžΆαž“αž”αŸ’αžšαž™αŸ„αž‡αž“αŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž‚αŸ’αžšαž”αŸ‹αžšαžΌαž”αŸ” αž™αžΎαž„αž”αžΆαž“αžŸαžšαžŸαŸαžšαž”αž“αŸ’αžαŸ‚αž˜αž’αŸ†αž–αžΈαžœαžΆαž“αŸ…αž€αŸ’αž“αž»αž„ αž’αžαŸ’αžαž”αž‘αžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€αŸ”.

αžαŸαž›αŸαž αŸ’αžœαŸ’αžšαŸαž“αžŸαž·αž“

  • αžαŸ’αž›αžΉαž˜αžŸαžΆαžšαŸ– αž•αŸ’αž‘αŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‘αŸ…αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ” αž’αž—αž·αžœαžŒαŸ’αž αž“αž·αž„αž”αŸ†αž”αžΆαžαŸ‹αž€αŸ†αž αž»αžŸαž€αŸ’αž“αž»αž„αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“.
  • αž‚αŸαž αž‘αŸ†αž–αŸαžš; GitHub.
  • αžŸαŸ’αžαž·αžαž· GH αžŸαž„αŸ’αžαŸαž”αŸ– αž•αŸ’αž€αžΆαž™ 2131, 2712 αž”αŸ’αžšαž–αŸ’αžšαžΉαžαŸ’αž, 33 αž’αŸ’αž“αž€αžšαž½αž˜αž…αŸ†αžŽαŸ‚αž€αŸ”
  • αž—αžΆαžŸαžΆαŸ– Python αŸ”
  • αž’αžΆαž‡αŸ’αž‰αžΆαž”αŸαžŽαŸ’αžŽαŸ– Apache License 2.0.

αž‚αŸ†αž“αž·αžαž“αŸƒαž€αžΆαžšαžαŸ’αž‘αžΆαžŸαŸ‹αž…αžΌαž›αž“αŸαŸ‡αž‚αžΊαžŠαžΎαž˜αŸ’αž”αžΈαž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž»αž„αžαžΊαž“αŸαžšαž‡αžΆαž˜αž½αž™αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž“αŸ…αž›αžΎαž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž€αŸ’αž“αž»αž„αžαŸ†αž”αž“αŸ‹ αž αžΎαž™αž”αŸ’αžšαžΌαž€αžŸαŸŠαžΈαž…αžšαžΆαž…αžšαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž–αžΈαž…αž„αŸ’αž€αŸ„αž˜αž‘αŸ…αžœαžΆ αž“αž·αž„αžαŸ’αžšαž‘αž”αŸ‹αž˜αž€αžœαž·αž‰αŸ” αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž“αŸαŸ‡αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αžŠαŸ„αž™αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž€αŸ‚αžŸαž˜αŸ’αžšαž½αž›αž―αž€αžŸαžΆαžšαž“αŸ…αž€αŸ’αž“αž»αž„ IDE αžŠαŸ‚αž›αž’αŸ’αž“αž€αž…αžΌαž›αž…αž·αžαŸ’αžαŸ– αž›αž‘αŸ’αž’αž•αž›αž“αžΉαž„αž˜αžΆαž“αž—αŸ’αž›αžΆαž˜αŸ—αŸ”

αž‚αž»αžŽαžŸαž˜αŸ’αž”αžαŸ’αžαž·αž“αŸƒαž€αžΆαžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αŸ’αž“αž»αž„αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‚αžΊαž—αžΆαž–αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž“αŸƒαž€αžΆαžšαž€αŸ‚αžŸαž˜αŸ’αžšαž½αž› αž“αž·αž„αž›αž‘αŸ’αž’αž•αž›αž—αŸ’αž›αžΆαž˜αŸ— αžŸαž˜αžαŸ’αžαž—αžΆαž–αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αŸ†αž”αžΆαžαŸ‹αž€αŸ†αž αž»αžŸαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžαžΆαž˜αžœαž·αž’αžΈαž’αž˜αŸ’αž˜αžαžΆαŸ” αž€αžΆαžšαž’αŸ’αž›αžΆαž€αŸ‹αž…αž»αŸ‡αž‚αžΊαžαžΆαžœαžΆαž‘αžΆαž˜αž‘αžΆαžšαž›αžΎαž›αŸ’αž”αžΏαž“αž“αŸƒαž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹ αžŠαŸ‚αž›αž‡αžΆαž€αžΆαžšαž€αžαŸ‹αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αž‡αžΆαž–αž·αžŸαŸαžŸαž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ‚αž›αž˜αžΆαž“ RPS αž“αž·αž„αž…αžšαžΆαž…αžšαžŽαŸαžαŸ’αž–αžŸαŸ‹αž‚αž½αžšαžŸαž˜αŸ” αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡αž‘αŸ€αž Telepresence αž˜αžΆαž“αž”αž‰αŸ’αž αžΆαž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž˜αŸ‰αŸ„αž“αž€αž˜αŸ’αžšαž·αžαžŸαŸ†αž‘αŸαž„αž“αŸ…αž›αžΎ Windows αžŠαŸ‚αž›αž’αžΆαž…αž‡αžΆαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž…αŸ’αž”αžΆαžŸαŸ‹αž›αžΆαžŸαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžŠαŸ‚αž›αž‘αž˜αŸ’αž›αžΆαž”αŸ‹αž”αŸ’αžšαžΎαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž“αŸαŸ‡αŸ”

αž™αžΎαž„αž”αžΆαž“αž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€αž”αž‘αž–αž·αžŸαŸ„αž’αž“αŸαžšαž”αžŸαŸ‹αž™αžΎαž„αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αŸ’αžšαžΎ Telepresence αžšαž½αž…αž αžΎαž™ αž“αŸ…αž‘αžΈαž“αŸαŸ‡.

Ksync

  • αžαŸ’αž›αžΉαž˜αžŸαžΆαžšαŸ– αž€αžΆαžšαž’αŸ’αžœαžΎαžŸαž˜αž€αžΆαž›αž€αž˜αŸ’αž˜αžŸαŸ’αž‘αžΎαžšαžαŸ‚αž—αŸ’αž›αžΆαž˜αŸ—αž“αŸƒαž€αžΌαžŠαž‡αžΆαž˜αž½αž™αž€αž»αž„αžαžΊαž“αŸαžšαž“αŸ…αž€αŸ’αž“αž»αž„αž…αž„αŸ’αž€αŸ„αž˜.
  • GitHub.
  • αžŸαŸ’αžαž·αžαž· GH αžŸαž„αŸ’αžαŸαž”αŸ– αž•αŸ’αž€αžΆαž™ 555, 362 commits, 11 contributors αŸ”
  • αž—αžΆαžŸαžΆαŸ– αž‘αŸ…αŸ”
  • αž’αžΆαž‡αŸ’αž‰αžΆαž”αŸαžŽαŸ’αžŽαŸ– Apache License 2.0.

αž§αž”αž€αžšαžŽαŸαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž’αŸ’αžœαžΎαžŸαž˜αž€αžΆαž›αž€αž˜αŸ’αž˜αž˜αžΆαžαž·αž€αžΆαž“αŸƒαžαžαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‡αžΆαž˜αž½αž™αžαžαž―αž€αžŸαžΆαžšαžŠαŸ‚αž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸ…αž€αŸ’αž“αž»αž„αž…αž„αŸ’αž€αŸ„αž˜αŸ” αž§αž”αž€αžšαžŽαŸαž”αŸ‚αž”αž“αŸαŸ‡αž‚αžΊαž›αŸ’αž’αž₯αžαžαŸ’αž…αŸ„αŸ‡αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž€αŸ’αž“αž»αž„αž—αžΆαžŸαžΆαžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŸαŸ’αž‚αŸ’αžšαžΈαž” αžŠαŸ‚αž›αž”αž‰αŸ’αž αžΆαž…αž˜αŸ’αž”αž„αžšαž”αžŸαŸ‹αžœαžΆαž‚αžΊαž€αžΆαžšαž”αž‰αŸ’αž‡αžΌαž“αž€αžΌαžŠαž‘αŸ…αž€αžΆαž“αŸ‹αž€αž»αž„αžαžΊαž“αŸαžšαžŠαŸ‚αž›αž€αŸ†αž–αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ” Ksync αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž…αž“αžΆαž‘αžΎαž„αžŠαžΎαž˜αŸ’αž”αžΈαž”αŸ†αž”αžΆαžαŸ‹αž€αžΆαžšαžˆαžΊαž€αŸ’αž”αžΆαž›αž“αŸαŸ‡αŸ”

αž“αŸ…αž–αŸαž›αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž˜αŸ’αžαž„αžŠαŸ„αž™αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ ksync init DaemonSet αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž”αž„αŸ’αž€αžΎαžβ€‹αž€αŸ’αž“αž»αž„β€‹αž…αž„αŸ’αž€αŸ„αž˜ αžŠαŸ‚αž›β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž”αŸ’αžšαžΎβ€‹αžŠαžΎαž˜αŸ’αž”αžΈβ€‹αžαŸ’αžšαž½αžβ€‹αž–αž·αž“αž·αžαŸ’αž™β€‹αžŸαŸ’αžαžΆαž“αž—αžΆαž–β€‹αž“αŸƒβ€‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’β€‹αž―αž€αžŸαžΆαžšβ€‹αž“αŸƒβ€‹αž€αž»αž„αžŠαž„αŸ‹β€‹αžŠαŸ‚αž›β€‹αž”αžΆαž“β€‹αž‡αŸ’αžšαžΎαžŸαŸ” αž“αŸ…αž›αžΎαž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž€αŸ’αž“αž»αž„αžαŸ†αž”αž“αŸ‹αžšαž”αžŸαŸ‹αž‚αžΆαžαŸ‹ αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ ksync watchαžŠαŸ‚αž›αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ αž“αž·αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž’αŸ’αžœαžΎαžŸαž˜αžΆαž’αž·αžŠαŸ‚αž›αž’αŸ’αžœαžΎαžŸαž˜αž€αžΆαž›αž€αž˜αŸ’αž˜αž―αž€αžŸαžΆαžšαžŠαŸ„αž™αž•αŸ’αž‘αžΆαž›αŸ‹αž‡αžΆαž˜αž½αž™αž…αž„αŸ’αž€αŸ„αž˜αŸ”

αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž“αŸ…αžŸαŸαžŸαžŸαž›αŸ‹αž‚αžΊαžαŸ’αžšαžΌαžœαžŽαŸ‚αž“αžΆαŸ† ksync αž“αžΌαžœαž’αŸ’αžœαžΈαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœ synchronize αž‡αžΆαž˜αž½αž™αž’αŸ’αžœαžΈαŸ” αž§αž‘αžΆαž αžšαžŽαŸαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž“αŸαŸ‡αŸ–

ksync create --name=myproject --namespace=test --selector=app=backend --container=php --reload=false /home/user/myproject/ /var/www/myproject/

...αž“αžΉαž„β€‹αž”αž„αŸ’αž€αžΎαžβ€‹αž’αŸ’αž“αž€β€‹αž˜αžΎαž›β€‹αžˆαŸ’αž˜αŸ„αŸ‡ myprojectαžŠαŸ‚αž›αž“αžΉαž„αžŸαŸ’αžœαŸ‚αž„αžšαž€ pod αžŠαŸ‚αž›αž˜αžΆαž“αžŸαŸ’αž›αžΆαž€ 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 commits, 23 contributors αŸ”
  • αž—αžΆαžŸαžΆαŸ– αž‘αŸ…αŸ”
  • αž’αžΆαž‡αŸ’αž‰αžΆαž”αŸαžŽαŸ’αžŽαŸ– Apache License 2.0.

αž§αž”αž€αžšαžŽαŸαž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž…αž“αžΆαž‘αžΎαž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αŸ†αž”αžΆαžαŸ‹αž€αŸ†αž αž»αžŸαžŠαŸ„αž™αž•αŸ’αž‘αžΆαž›αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž•αžαŸ” αž§αž”αž€αžšαžŽαŸαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž‚αžΊαžŸαžΆαž˜αž‰αŸ’αž‰ αž“αž·αž„αž’αž“αŸ’αžαžšαž€αž˜αŸ’αž˜αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αŸ†αž”αžΆαžαŸ‹αž€αŸ†αž αž»αžŸαžŠαŸ‚αž›αž…αž„αŸ‹αž”αžΆαž“ (αž˜αžΎαž›β€‹αžαžΆαž„β€‹αž€αŸ’αžšαŸ„αž˜) αž“αž·αž„ namespace + pod αž€αŸ’αž“αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ‚αž›αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž€αžΆαžšαž’αŸ’αžœαžΎαž’αž“αŸ’αžαžšαžΆαž‚αž˜αž“αŸαŸ” αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αžΆαŸ†αž‘αŸ’αžšαŸ–

  • delve - αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ Go;
  • GDB - αžαžΆαž˜αžšαž™αŸˆαž‚αŸ„αž›αžŠαŸ…αž–αžΈαž…αž˜αŸ’αž„αžΆαž™ + αž€αžΆαžšαž”αž‰αŸ’αž‡αžΌαž“αž”αž“αŸ’αžαž…αŸ’αžšαž€;
  • αž€αžΆαžšαž”αž‰αŸ’αž‡αžΌαž“αž”αž“αŸ’αžαž…αŸ’αžšαž€ JDWP αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ†αž”αžΆαžαŸ‹αž€αŸ†αž αž»αžŸαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ Java αŸ”

αž“αŸ…αž›αžΎαž•αŸ’αž“αŸ‚αž€ IDE αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαž‚αžΊαž˜αžΆαž“αžαŸ‚αž“αŸ…αž€αŸ’αž“αž»αž„ VScode αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡ (αžŠαŸ„αž™αž”αŸ’αžšαžΎ αž€αžΆαžšαž–αž„αŸ’αžšαžΈαž€αž‘αŸ„αŸ‡αž‡αžΆαž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™ αž•αŸ‚αž“αž€αžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž†αŸ’αž“αžΆαŸ†αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“ (2019) αžšαž½αž˜αž˜αžΆαž“ Eclipse αž“αž·αž„ Intellij αŸ”

αžŠαžΎαž˜αŸ’αž”αžΈαž”αŸ†αž”αžΆαžαŸ‹αž€αŸ†αž αž»αžŸαžŠαŸ†αžŽαžΎαžšαž€αžΆαžš Squash αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž»αž„αžαžΊαž“αŸαžšαžŠαŸ‚αž›αž˜αžΆαž“αžŸαž·αž‘αŸ’αž’αž·αž›αžΎαžαŸ’αž“αžΆαŸ†αž„αž…αž„αŸ’αž€αŸ„αž˜ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžŠαŸ†αž”αžΌαž„αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαžαŸ‚αžŸαŸ’αž‚αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αž―αž„αž’αŸ†αž–αžΈαžŸαž˜αžαŸ’αžαž—αžΆαž– αž…αŸ†αžŽαž»αž…β€‹αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž– αžŠαžΎαž˜αŸ’αž”αžΈαž‡αŸ€αžŸαžœαžΆαž„αž”αž‰αŸ’αž αžΆαžŸαž“αŸ’αžαž·αžŸαž»αžαŸ”

αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‚αŸ’αž“αžΆ

αž…αžΌαžšαž”αž“αŸ’αžαž‘αŸ…αž€αžΆαŸ†αž—αŸ’αž›αžΎαž„αž’αŸ† - αž‚αž˜αŸ’αžšαŸ„αž„ "αž‘αŸ’αžšαž„αŸ‹αž‘αŸ’αžšαžΆαž™αž’αŸ†" αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ€αžαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž…αž“αžΆαž‘αžΎαž„αžŠαžΎαž˜αŸ’αž”αžΈαž”αŸ†αž–αŸαž‰αžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαž‡αžΆαž…αŸ’αžšαžΎαž“αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž—αŸ’αž›αžΆαž˜αŸ—αŸ”

NBαŸ– αž‡αžΆβ€‹αž€αžΆαžšβ€‹αž–αž·αžβ€‹αžŽαžΆαžŸαŸ‹β€‹αž“αŸ…β€‹αž€αŸ’αž“αž»αž„β€‹αž”αž‰αŸ’αž‡αžΈβ€‹αž“αŸαŸ‡ αž˜αžΆαž“β€‹αž€αž“αŸ’αž›αŸ‚αž„β€‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹β€‹αž§αž”αž€αžšαžŽαŸβ€‹αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ Open Source αžšαž”αžŸαŸ‹β€‹αž™αžΎαž„ werf (αž–αžΈαž˜αž»αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸαžŸαŸ’αž‚αžΆαž›αŸ‹αžαžΆαž‡αžΆ dapp) αŸ” αž‘αŸ„αŸ‡αž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™ αž™αžΎαž„αž”αžΆαž“αžŸαžšαžŸαŸαžš αž“αž·αž„αž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈαžœαžΆαž…αŸ’αžšαžΎαž“αž‡αžΆαž„αž˜αž½αž™αžŠαž„αžšαž½αž…αž αžΎαž™ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž αžΎαž™αž”αžΆαž“αžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αžαž˜αž·αž“αž”αž‰αŸ’αž…αžΌαž›αžœαžΆαž‘αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž“αŸ„αŸ‡αž‘αŸαŸ” αžŸαž˜αŸ’αžšαžΆαž”αŸ‹β€‹αž’αŸ’αž“αž€β€‹αžŠαŸ‚αž›β€‹αž…αž„αŸ‹β€‹αžŸαŸ’αž‚αžΆαž›αŸ‹β€‹αžŸαž˜αžαŸ’αžαž—αžΆαž–β€‹αžšαž”αžŸαŸ‹β€‹αžœαžΆβ€‹αž€αžΆαž“αŸ‹αžαŸ‚β€‹αž…αŸ’αž”αžΆαžŸαŸ‹ αž™αžΎαž„β€‹αžŸαžΌαž˜β€‹αžŽαŸ‚αž“αžΆαŸ†β€‹αž±αŸ’αž™β€‹αž’αžΆαž“/αžŸαŸ’αžαžΆαž”αŸ‹β€‹αžšαž”αžΆαž™αž€αžΆαžšαžŽαŸ "werf αž‚αžΊαž‡αžΆαž§αž”αž€αžšαžŽαŸαžšαž”αžŸαŸ‹αž™αžΎαž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ CI/CD αž“αŸ…αž€αŸ’αž“αž»αž„ Kubernetes"αŸ”

DevSpace

  • αžαŸ’αž›αžΉαž˜αžŸαžΆαžšαŸ– αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αžŠαŸ‚αž›αž…αž„αŸ‹αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž’αŸ’αžœαžΎαž€αžΆαžšαž“αŸ… Kubernetes αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž˜αž·αž“αž…αž„αŸ‹αžŸαŸ’αžœαŸ‚αž„αž™αž›αŸ‹αž‡αŸ’αžšαŸ…αž‘αŸ…αž€αŸ’αž“αž»αž„αž–αŸ’αžšαŸƒαžšαž”αžŸαŸ‹αžœαžΆαŸ”.
  • GitHub.
  • αžŸαŸ’αžαž·αžαž· GH αžŸαž„αŸ’αžαŸαž”αŸ– αž•αŸ’αž€αžΆαž™ 630, 1912 αž”αŸ’αžαŸαž‡αŸ’αž‰αžΆ, 13 αž’αŸ’αž“αž€αž…αžΌαž›αžšαž½αž˜αŸ”
  • αž—αžΆαžŸαžΆαŸ– αž‘αŸ…αŸ”
  • αž’αžΆαž‡αŸ’αž‰αžΆαž”αŸαžŽαŸ’αžŽαŸ– Apache License 2.0.

αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž–αžΈαž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“αžŠαŸ‚αž›αž˜αžΆαž“αžˆαŸ’αž˜αŸ„αŸ‡αžŠαžΌαž…αž‚αŸ’αž“αžΆ αžŠαŸ‚αž›αž•αŸ’αžαž›αŸ‹αž€αŸ’αžšαž»αž˜αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž‡αžΆαž˜αž½αž™ Kubernetes αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž€αŸ’αžšαž»αž˜αŸ” αž§αž”αž€αžšαžŽαŸαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž…αž„αŸ’αž€αŸ„αž˜αž–αžΆαžŽαž·αž‡αŸ’αž‡αž€αž˜αŸ’αž˜ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αŸ’αž’αž‡αžΆαž˜αž½αž™αž’αŸ’αž“αž€αžŠαž‘αŸƒαŸ”

αž“αŸ…αž–αŸαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ devspace init αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžαžΆαž‘αž»αž€αž‚αž˜αŸ’αžšαŸ„αž„ αž’αŸ’αž“αž€αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž‡αžΌαž“ (αž’αž“αŸ’αžαžšαž€αž˜αŸ’αž˜)αŸ–

  • αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž€αŸ’αžšαž»αž˜ Kubernetes αžŠαŸ‚αž›αž’αŸ’αžœαžΎαž€αžΆαžš
  • αž”αŸ’αžšαžΎαžŠαŸ‚αž›αž˜αžΆαž“αžŸαŸ’αžšαžΆαž”αŸ‹ Dockerfile (αž¬αž”αž„αŸ’αž€αžΎαžαžαŸ’αž˜αžΈαž˜αž½αž™) αžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαžαž€αž»αž„αžαžΊαž“αŸαžšαžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαžœαžΆ
  • αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαžƒαŸ’αž›αžΆαŸ†αž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αžšαžΌαž”αž—αžΆαž–αž€αž»αž„αžαžΊαž“αŸαžšαŸ”αž›αŸ”

αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž‡αŸ†αž αžΆαž“αžšαŸ€αž”αž…αŸ†αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸαŸ‡ αž’αŸ’αž“αž€αž’αžΆαž…αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžŠαŸ„αž™αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ devspace dev. αžœαžΆβ€‹αž“αžΉαž„β€‹αž”αž„αŸ’αž€αžΎαžβ€‹αž€αž»αž„αžαžΊαž“αŸαžš αž•αŸ’αž‘αž»αž€β€‹αžœαžΆβ€‹αž‘αŸ…β€‹αžƒαŸ’αž›αžΆαŸ†αž„β€‹αžŠαžΆαž€αŸ‹β€‹αž–αž„αŸ’αžšαžΆαž™β€‹αž‘αŸ…β€‹αž…αž„αŸ’αž€αŸ„αž˜ αž αžΎαž™β€‹αž…αžΆαž”αŸ‹β€‹αž•αŸ’αžαžΎαž˜β€‹αž”αž‰αŸ’αž‡αžΌαž“β€‹αž”αž“αŸ’αžβ€‹αž…αŸ’αžšαž€ αž“αž·αž„β€‹αž€αžΆαžšβ€‹αž’αŸ’αžœαžΎβ€‹αžŸαž˜αž€αžΆαž›αž€αž˜αŸ’αž˜β€‹αž€αž»αž„αžαžΊαž“αŸαžšβ€‹αž‡αžΆαž˜αž½αž™β€‹αž“αžΉαž„β€‹αžαžβ€‹αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αŸ”

αž‡αžΆαž‡αž˜αŸ’αžšαžΎαžŸ αž’αŸ’αž“αž€αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‡αž˜αŸ’αžšαž»αž‰αž±αŸ’αž™αž•αŸ’αž›αžΆαžŸαŸ‹αž‘αžΈαžŸαŸ’αžαžΆαž“αžΈαž™αž‘αŸ…αž€αž»αž„αžαžΊαž“αŸαžšαŸ” αž’αŸ’αž“αž€β€‹αž˜αž·αž“β€‹αž‚αž½αžšβ€‹αž”αžŠαž·αžŸαŸαž’β€‹αž‘αŸ αž–αŸ’αžšαŸ„αŸ‡β€‹αžαžΆαž˜β€‹αž–αž·αžβ€‹αž€αž»αž„αžαžΊαž“αŸαžšβ€‹αž…αžΆαž”αŸ‹β€‹αž•αŸ’αžŠαžΎαž˜β€‹αžŠαŸ„αž™β€‹αž–αžΆαž€αŸ’αž™β€‹αž”αž‰αŸ’αž‡αžΆβ€‹αžŠαŸ†αžŽαŸαž€ αž αžΎαž™β€‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹β€‹αž€αžΆαžšβ€‹αžŸαžΆαž€αž›αŸ’αž”αž„β€‹αž–αž·αžβ€‹αž”αŸ’αžšαžΆαž€αžŠβ€‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈβ€‹αžαŸ’αžšαžΌαžœβ€‹αžαŸ‚β€‹αž”αžΎαž€β€‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšβ€‹αžŠαŸ„αž™β€‹αžŠαŸƒαŸ”

αž‘αžΈαž”αŸ†αž•αž»αžαž€αŸ’αžšαž»αž˜ devspace deploy αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ αž“αž·αž„αž αŸαžŠαŸ’αž‹αžΆαžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžŠαŸ‚αž›αž–αžΆαž€αŸ‹αž–αŸαž“αŸ’αž’αž‘αŸ…αž“αžΉαž„αž…αž„αŸ’αž€αŸ„αž˜ αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž“αŸ„αŸ‡αž’αŸ’αžœαžΈαŸ—αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αŸ’αž“αž»αž„αžšαž”αŸ€αž”αž”αŸ’αžšαž™αž»αž‘αŸ’αž’αŸ”

αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž‚αž˜αŸ’αžšαŸ„αž„αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž€αŸ’αž“αž»αž„αž―αž€αžŸαžΆαžšαž˜αž½αž™αŸ” devspace.yaml. αž”αž“αŸ’αžαŸ‚αž˜αž–αžΈαž›αžΎαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž”αžšαž·αžŸαŸ’αžαžΆαž“αž’αž—αž·αžœαžŒαŸ’αžαž“αŸ αž’αŸ’αž“αž€αž€αŸαž’αžΆαž…αžŸαŸ’αžœαŸ‚αž„αžšαž€αž€αžΆαžšαž–αž·αž–αžŽαŸŒαž“αžΆαž’αŸ†αž–αžΈαž αŸαžŠαŸ’αž‹αžΆαžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž“αŸ…αž€αŸ’αž“αž»αž„αžœαžΆ αžŠαŸ‚αž›αžŸαŸ’αžšαžŠαŸ€αž„αž‘αŸ…αž“αžΉαž„αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžš Kubernetes manifests αžŠαŸ‚αž›αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž’αŸ’αžœαžΎαž±αŸ’αž™αžŸαžΆαž˜αž‰αŸ’αž‰αžαŸ’αž›αžΆαŸ†αž„αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ”

αž§αž”αž€αžšαžŽαŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ‚αž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αžΎ Kubernetes
αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜ αž“αž·αž„αžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž›αžŸαŸ†αžαžΆαž“αŸ‹αž“αŸƒαž€αžΆαžšαž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™ DevSpace

αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡ αžœαžΆαž„αžΆαž™αžŸαŸ’αžšαž½αž›αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αž“αŸ’αžαŸ‚αž˜αžŸαž˜αžΆαžŸαž—αžΆαž‚αžŠαŸ‚αž›αž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž‡αžΆαž˜αž»αž“ (αž§αž‘αžΆαž αžšαžŽαŸ MySQL DBMS) αž¬αž‚αŸ†αž“αžΌαžŸαžαžΆαž„ Helm αž‘αŸ…αž‚αž˜αŸ’αžšαŸ„αž„αŸ” αž’αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž“αŸ…αž€αŸ’αž“αž»αž„ αž―αž€αžŸαžΆαžš - αžœαžΆαž˜αž·αž“αžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αž‘αŸαŸ”

Skaffold

  • αž‚αŸαž αž‘αŸ†αž–αŸαžš; GitHub.
  • αžŸαŸ’αžαž·αžαž· GH αžŸαž„αŸ’αžαŸαž”αŸ– αž•αŸ’αž€αžΆαž™ 7423, 4173 αž”αŸ’αžšαž–αŸ’αžšαžΉαžαŸ’αž, 136 αž’αŸ’αž“αž€αž…αžΌαž›αžšαž½αž˜αŸ”
  • αž—αžΆαžŸαžΆαŸ– αž‘αŸ…αŸ”
  • αž’αžΆαž‡αŸ’αž‰αžΆαž”αŸαžŽαŸ’αžŽαŸ– Apache License 2.0.

αž§αž”αž€αžšαžŽαŸαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž“αŸαŸ‡αž–αžΈ Google αž’αŸ‡αž’αžΆαž„αžŠαžΎαž˜αŸ’αž”αžΈαž‚αŸ’αžšαž”αžŠαžŽαŸ’αžαž”αŸ‹αžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžŠαŸ‚αž›αž€αžΌαžŠαž“αžΉαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸ…αž›αžΎαž…αž„αŸ’αž€αŸ„αž˜ Kubernetes αŸ” αž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž”αŸ’αžšαžΎαžœαžΆαž˜αž·αž“αž„αžΆαž™αžŸαŸ’αžšαž½αž›αžŠαžΌαž… devspace αž‘αŸαŸ– αž‚αŸ’αž˜αžΆαž“αž’αž“αŸ’αžαžšαž€αž˜αŸ’αž˜ αž€αžΆαžšαžšαž€αžƒαžΎαž‰αž—αžΆαžŸαžΆ αž“αž·αž„αž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž· Dockerfile αž–αž½αž€αž‚αŸαž“αžΉαž„αž˜αž·αž“αž•αŸ’αžαž›αŸ‹αž‡αžΌαž“αž’αŸ’αž“αž€αž“αŸ…αž‘αžΈαž“αŸαŸ‡αž‘αŸαŸ”

αž‘αŸ„αŸ‡αž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžœαžΆαž˜αž·αž“αž”αŸ†αž—αŸαž™αž’αŸ’αž“αž€αž‘αŸ αž“αŸαŸ‡αž‡αžΆαž’αŸ’αžœαžΈαžŠαŸ‚αž› Skaffold αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž’αŸ’αžœαžΎαŸ–

  • αžαžΆαž˜αžŠαžΆαž“αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž€αžΌαžŠαž”αŸ’αžšαž—αž–αŸ”
  • αž’αŸ’αžœαžΎαžŸαž˜αž€αžΆαž›αž€αž˜αŸ’αž˜αžœαžΆαž‡αžΆαž˜αž½αž™αž“αžΉαž„αž’αž»αž„ pod αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžœαžΆαž˜αž·αž“αžαž˜αŸ’αžšαžΌαžœαž±αŸ’αž™αž˜αžΆαž“αž€αžΆαžšαž•αŸ’αž‚αž»αŸ†αŸ”
  • αž”αŸ’αžšαž˜αžΌαž›αž€αž»αž„αžαžΊαž“αŸαžšαžŠαŸ‚αž›αž˜αžΆαž“αž›αŸαžαž€αžΌαžŠ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž—αžΆαžŸαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž€αž”αŸ’αžšαŸ‚ αž¬αž…αž„αž€αŸ’αžšαž„αžœαžαŸ’αžαž»αž”αž»αžšαžΆαžŽ αž αžΎαž™αžαŸ’αž…αž”αŸ‹αžœαžΆαž‘αŸ…αž€αŸ’αž“αž»αž„αž’αž»αž„αŸ”
  • αžšαžΌαž”αž—αžΆαž–αž›αž‘αŸ’αž’αž•αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž–αž·αž“αž·αžαŸ’αž™αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αžŠαŸ„αž™αž”αŸ’αžšαžΎ αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž’αž»αž„.
  • αž€αžΆαžšαžŠαžΆαž€αŸ‹αžŸαŸ’αž›αžΆαž€ αž“αž·αž„αž”αž„αŸ’αž αŸ„αŸ‡αžšαžΌαž”αž—αžΆαž–αž‘αŸ…αž€αžΆαž“αŸ‹ Docker Registry αŸ”
  • αžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž“αŸ…αž€αŸ’αž“αž»αž„αž…αž„αŸ’αž€αŸ„αž˜αžŠαŸ„αž™αž”αŸ’αžšαžΎ kubectl, Helm αž¬αž”αŸ’αžŠαžΌαžšαžαžΆαž˜αž”αŸ†αžŽαž„αŸ”
  • αž’αž“αž»αžœαžαŸ’αžαž€αžΆαžšαž”αž‰αŸ’αž‡αžΌαž“αž”αž“αŸ’αžαž…αŸ’αžšαž€αŸ”
  • αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αŸ†αž”αžΆαžαŸ‹αž€αŸ†αž αž»αžŸαžŠαŸ‚αž›αž”αžΆαž“αžŸαžšαžŸαŸαžšαž“αŸ…αž€αŸ’αž“αž»αž„ Java, Node.js, Python αŸ”

αž›αŸ†αž αžΌαžšαž€αžΆαžšαž„αžΆαžšαž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αŸ’αžšαŸ‚αž”αŸ’αžšαž½αž›αž•αŸ’αžŸαŸαž„αŸ—αžαŸ’αžšαžΌαžœαž”αžΆαž“αž–αž·αž–αžŽαŸŒαž“αžΆαž™αŸ‰αžΆαž„αž…αŸ’αž”αžΆαžŸαŸ‹αž›αžΆαžŸαŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž―αž€αžŸαžΆαžš skaffold.yaml. αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‚αž˜αŸ’αžšαŸ„αž„αž˜αž½αž™ αž’αŸ’αž“αž€αž€αŸαž’αžΆαž…αž€αŸ†αžŽαžαŸ‹αž‘αž˜αŸ’αžšαž„αŸ‹αž‡αžΆαž…αŸ’αžšαžΎαž“ αžŠαŸ‚αž›αž’αŸ’αž“αž€αž’αžΆαž…αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž•αŸ’αž“αŸ‚αž€αžαŸ’αž›αŸ‡ αž¬αž‘αžΆαŸ†αž„αžŸαŸ’αžšαž»αž„αž“αžΌαžœαžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž›αžŠαŸ†αž‘αžΎαž„ αž“αž·αž„αžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αŸ” αž§αž‘αžΆαž αžšαžŽαŸ αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸ αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αžšαžΌαž”αž—αžΆαž–αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αžŠαŸ‚αž›αž„αžΆαž™αžŸαŸ’αžšαž½αž›αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸ αž“αž·αž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž› αž“αž·αž„αž€αžΆαžšαž•αž›αž·αž - αžαž·αž…αžαž½αž…αž”αŸ†αž•αž»αž (+ αž”αŸ’αžšαžΎ securityContext αž€αž»αž„αžαžΊαž“αŸαžš αž¬αž€αŸ†αžŽαžαŸ‹αž‘αžΎαž„αžœαž·αž‰αž“αžΌαžœαž…αž„αŸ’αž€αŸ„αž˜αžŠαŸ‚αž›αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž“αžΉαž„αžαŸ’αžšαžΌαžœαžŠαžΆαž€αŸ‹αž±αŸ’αž™αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹)αŸ”

αž’αž»αž„ Docker αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžΆαž„αžŸαž„αŸ‹αž€αŸ’αž“αž»αž„αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“ αž¬αž–αžΈαž…αž˜αŸ’αž„αžΆαž™αŸ– αž€αŸ’αž“αž»αž„ Google Cloud Build αž¬αž“αŸ…αž€αŸ’αž“αž»αž„αž…αž„αŸ’αž€αŸ„αž˜αžŠαŸ„αž™αž”αŸ’αžšαžΎ αž€αžΆαž“αžΈαž€αžΌ. Bazel αž“αž·αž„ Jib Maven/Gradle αž€αŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αžΆαŸ†αž‘αŸ’αžšαž•αž„αžŠαŸ‚αžšαŸ” αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŠαžΆαž€αŸ‹αžŸαŸ’αž›αžΆαž€ Skaffold αž‚αžΆαŸ†αž‘αŸ’αžšαž™αž»αž‘αŸ’αž’αžŸαžΆαžŸαŸ’αžšαŸ’αžαž‡αžΆαž…αŸ’αžšαžΎαž“αŸ– αžŠαŸ„αž™ git commit hash, date/time, sha256-sum of sources αž‡αžΆαžŠαžΎαž˜αŸ”

αžŠαŸ„αž™αž‘αŸ‚αž€αž–αžΈαž‚αŸ’αž“αžΆαžœαžΆαž‚αž½αžšαž’αŸ„αž™αž™αž€αž…αž·αžαŸ’αžαž‘αž»αž€αžŠαžΆαž€αŸ‹αž…αŸ†αž–αŸ„αŸ‡αž›αž‘αŸ’αž’αž—αžΆαž–αž“αŸƒαž€αžΆαžšαžŸαžΆαž€αž›αŸ’αž”αž„αž’αž»αž„αŸ” αž€αŸ’αžšαž”αžαŸαžŽαŸ’αžŒαž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž€αž»αž„αžαžΊαž“αŸαžšαžŠαŸ‚αž›αž”αžΆαž“αžšαŸ€αž”αžšαžΆαž”αŸ‹αžšαž½αž…αž αžΎαž™αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹αžŠαžΌαž…αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸˆ

  • αž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž“αŸ…αž€αŸ’αž“αž»αž„αž”αžšαž·αž”αž‘αž“αŸƒαž€αž»αž„αžαžΊαž“αŸαžšαž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαžαžΆαž˜αžŠαžΆαž“αžŸαŸ’αžαžΆαž“αž—αžΆαž–αž…αŸαž‰ αž“αž·αž„αž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αž›αž‘αŸ’αž’αž•αž›αž’αžαŸ’αžαž”αž‘αž“αŸƒαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαŸ”
  • αž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αžœαžαŸ’αžαž˜αžΆαž“αžšαž”αžŸαŸ‹αž―αž€αžŸαžΆαžšαž“αŸ…αž€αŸ’αž“αž»αž„αž€αž»αž„αžαžΊαž“αŸαžš αž“αž·αž„αž€αžΆαžšαž•αŸ’αž‚αžΌαž•αŸ’αž‚αž„αž‚αž»αžŽαž›αž€αŸ’αžαžŽαŸˆαžŠαŸ‚αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αŸ”
  • αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž˜αžΆαžαž·αž€αžΆαž―αž€αžŸαžΆαžšαžŠαŸ„αž™αž”αŸ’αžšαžΎαž€αž“αŸ’αžŸαŸ„αž˜αž’αž˜αŸ’αž˜αžαžΆαŸ”
  • αž€αžΆαžšαž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹αž‘αž·αž“αŸ’αž“αž“αŸαž™αž˜αŸαžαžΆαžšαžΌαž”αž—αžΆαž– (ENV, ENTRYPOINT, VOLUMES αž›β€‹αž›αŸ”)αŸ”
  • αž€αŸ†αž–αž»αž„αž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αž—αžΆαž–αžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆαž“αŸƒαž’αžΆαž‡αŸ’αž‰αžΆαž”αŸαžŽαŸ’αžŽαŸ”

αž€αžΆαžšβ€‹αž’αŸ’αžœαžΎβ€‹αžŸαž˜αž€αžΆαž›αž€αž˜αŸ’αž˜β€‹αž―αž€αžŸαžΆαžšβ€‹αž‡αžΆαž˜αž½αž™β€‹αž€αž»αž„αžαžΊαž“αŸαžšβ€‹αž˜αž·αž“β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž’αž“αž»αžœαžαŸ’αžβ€‹αžαžΆαž˜β€‹αžœαž·αž’αžΈβ€‹αžŠαŸβ€‹αž›αŸ’αž’β€‹αž”αŸ†αž•αž»αžβ€‹αž‘αŸαŸ– Skaffold αž‚αŸ’αžšαžΆαž“αŸ‹β€‹αžαŸ‚β€‹αž”αž„αŸ’αž€αžΎαžβ€‹αž”αŸαžŽαŸ’αžŽαžŸαžΆαžšβ€‹αž‡αžΆαž˜αž½αž™β€‹αž”αŸ’αžšαž—αž–β€‹αž…αž˜αŸ’αž›αž„β€‹αžœαžΆ αž αžΎαž™β€‹αžŸαŸ’αžšαžΆαž™β€‹αžœαžΆβ€‹αž€αŸ’αž“αž»αž„β€‹αž’αž»αž„ (tar αžαŸ’αžšαžΌαžœαžαŸ‚β€‹αžŠαŸ†αž‘αžΎαž„)αŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž€αž·αž…αŸ’αž…αž€αžΆαžšαž…αž˜αŸ’αž”αž„αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž‚αžΊαž€αžΆαžšαž’αŸ’αžœαžΎαžŸαž˜αž€αžΆαž›αž€αž˜αŸ’αž˜αž€αžΌαžŠ αžœαžΆαž‡αžΆαž€αžΆαžšαž”αŸ’αžšαžŸαžΎαžšαž€αŸ’αž“αž»αž„αž€αžΆαžšαžšαž€αž˜αžΎαž›αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž―αž€αž‘αŸαžŸ (ksync)αŸ”

αž§αž”αž€αžšαžŽαŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ‚αž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αžΎ Kubernetes
αžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž›αžŸαŸ†αžαžΆαž“αŸ‹αž“αŸƒαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš Skaffold

αž‡αžΆαž‘αžΌαž‘αŸ… αž§αž”αž€αžšαžŽαŸαž˜αž·αž“αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž’αŸ’αžœαžΎαž’αžšαžΌαž”αžΈαž–αžΈ Kubernetes manifests αž“αž·αž„αž˜αž·αž“αž˜αžΆαž“αž’αž“αŸ’αžαžšαž€αž˜αŸ’αž˜αžŽαžΆαž˜αž½αž™αž‘αŸ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžœαžΆαž αžΆαž€αŸ‹αžŠαžΌαž…αž‡αžΆαž–αž·αž”αžΆαž€αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αŸ’αžœαžΎαž‡αžΆαž˜αŸ’αž…αžΆαžŸαŸ‹αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž“αŸαŸ‡αž€αŸαž‡αžΆαž’αžαŸ’αžαž”αŸ’αžšαž™αŸ„αž‡αž“αŸαžšαž”αžŸαŸ‹αžœαžΆαž•αž„αžŠαŸ‚αžš - αžŸαŸαžšαžΈαž—αžΆαž–αž“αŸƒαžŸαž€αž˜αŸ’αž˜αž—αžΆαž–αž€αžΆαž“αŸ‹αžαŸ‚αž…αŸ’αžšαžΎαž“αŸ”

αžŸαž½αž“

  • αž‚αŸαž αž‘αŸ†αž–αŸαžš; 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 αž•αŸ’αžαž›αŸ‹αž±αŸ’αž™αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž“αžΌαžœαž•αŸ’αž‘αžΆαŸ†αž„αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžŠαŸαžŸαŸ’αžšαžŸαŸ‹αžŸαŸ’αž’αžΆαž (αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž“αŸ…αž€αŸ’αž“αž»αž„ αžŸαŸ’αžαžΆαž“αž—αžΆαž–αž–αž·αžŸαŸ„αž’αž“αŸ) αžŠαŸ‚αž›αž”αž„αŸ’αž αžΆαž‰αž€αŸ’αžšαžΆαž αŸ’αžœαž‚αž˜αŸ’αžšαŸ„αž„αŸ– αžŸαž˜αžΆαžŸαž’αžΆαžαž» αž›αŸ†αžŠαžΆαž”αŸ‹αž“αŸƒαž€αžΆαžšαžŠαŸ†αž‘αžΎαž„ αž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž—αžΆαžšαž€αž·αž…αŸ’αž… αž“αž·αž„αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αž αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹ αž“αž·αž„αž—αžΆαž–αž’αžΆαžŸαŸ’αžšαŸαž™αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαŸ” αž“αŸ…αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž»αž€αžšαž€αžαžΆαž˜αž’αŸŠαžΈαž“αž’αžΊαžŽαž·αž αž’αŸ’αž“αž€αž’αžΆαž…αž˜αžΎαž›αž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αž“αŸƒαžŸαž˜αžΆαžŸαž’αžΆαžαž»αž‚αž˜αŸ’αžšαŸ„αž„αž‘αžΆαŸ†αž„αž’αžŸαŸ‹ αž αžΎαž™αž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αžαžΆαžαžΎαžŸαž˜αžΆαžŸαž’αžΆαžαž»αžŽαžΆαž˜αž½αž™αž…αŸαž‰αž›αž‘αŸ’αž’αž•αž›αžαžΆαž˜αžšαž™αŸˆ HTTP (αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž‡αžΆαž€αžΆαžšαž–αž·αž αž’αž“αž’αžΆαž“αž…αžΌαž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαž€αžΆαžŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžœαžΆ)αŸ”

αž§αž”αž€αžšαžŽαŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ‚αž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αžΎ Kubernetes
αž”αž“αŸ’αž‘αŸ‡αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαž½αž“αž…αŸ’αž”αžΆαžš

αž§αž”αž€αžšαžŽαŸαž“αŸαŸ‡αž€αŸαž˜αžΆαž“αžšαž”αŸ€αž”αž•αŸ’αž‘αž»αž€αž‘αžΎαž„αžœαž·αž‰αž€αŸ’αžαŸ…αž•αž„αžŠαŸ‚αžš αžŠαŸ‚αž›αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž’αŸ’αžœαžΎαžŸαž˜αž€αžΆαž›αž€αž˜αŸ’αž˜αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžŸαŸ’αž‚αŸ’αžšαžΈαž”αž‡αžΆαž˜αž½αž™αž€αž»αž„αžαžΊαž“αŸαžšαž“αŸ…αž€αŸ’αž“αž»αž„αž…αž„αŸ’αž€αŸ„αž˜ αž”αž„αŸ’αž€αžΎαž“αž›αŸ’αž”αžΏαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αŸ‚αž€αŸ†αž αž»αžŸαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž™αŸ‰αžΆαž„αžαŸ’αž›αžΆαŸ†αž„αŸ” αžŸαž½αž“αž˜αžΆαž“αž€αž“αŸ’αž›αŸ‚αž„αž›αŸ’αž’αŸ” αž―αž€αžŸαžΆαžš αž“αž·αž„αž˜αž·αž“αž’αžΆαž€αŸ’αžšαž€αŸ‹ αžŸαŸ†αžŽαž»αŸ†αž“αŸƒαž§αž‘αžΆαž αžšαžŽαŸαž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž†αžΆαž”αŸ‹αž”αŸ’αžšαžΎαžœαžΆ αž αžΎαž™αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž”αŸ’αžšαžΎαžœαžΆαŸ” αž“αž·αž™αžΆαž™αž’αžΈαž‰αŸ’αž…αžΉαž„ αž‘αžΎαž”αžαŸ‚αžαŸ’αž˜αžΈαŸ—αž“αŸαŸ‡ αž™αžΎαž„αž”αžΆαž“αž…αž»αŸ‡αž•αŸ’αžŸαžΆαž™ αž€αžΆαžšαž”αž€αž”αŸ’αžšαŸ‚αž’αžαŸ’αžαž”αž‘ αž–αžΈαž’αŸ’αž“αž€αž“αž·αž–αž“αŸ’αž’αžšαž”αžŸαŸ‹αžαŸ’αž›αž½αž“αŸ”

αžŸαŸαž…αž€αŸ’αžαžΈαžŸαž“αŸ’αž“αž·αžŠαŸ’αž‹αžΆαž“

αž‡αžΆβ€‹αž€αžΆαžšβ€‹αž–αž·αžβ€‹αžŽαžΆαžŸαŸ‹ αž”αž‰αŸ’αž‡αžΈβ€‹αž§αž”αž€αžšαžŽαŸβ€‹αž“αŸαŸ‡β€‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹β€‹αž€αžΆαžšβ€‹αž”αž„αŸ’αž€αžΎαž αž“αž·αž„β€‹αž€αžΆαžšβ€‹αž”αŸ†αž”αžΆαžαŸ‹β€‹αž€αŸ†αž αž»αžŸβ€‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈβ€‹αž€αŸ’αž“αž»αž„ Kubernetes αž˜αž·αž“β€‹αž˜αžΆαž“β€‹αž€αŸ†αžŽαžαŸ‹β€‹αž…αŸ†αž–αŸ„αŸ‡β€‹αž‘αŸαŸ” αž˜αžΆαž“αž§αž”αž€αžšαžŽαŸαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž˜αžΆαž“αž”αŸ’αžšαž™αŸ„αž‡αž“αŸ αž“αž·αž„αž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„αž‡αžΆαž…αŸ’αžšαžΎαž“αž‘αŸ€αžαžŠαŸ‚αž›αžŸαž€αŸ’αžαž·αžŸαž˜ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆαž’αžαŸ’αžαž”αž‘αžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€αž‘αŸ αž™αŸ‰αžΆαž„αž αŸ„αž…αžŽαžΆαžŸαŸ‹αž€αŸαž˜αžΆαž“αž€αžΆαžšαž›αžΎαž€αž‘αžΎαž„αž•αž„αžŠαŸ‚αžšαŸ” αž”αŸ’αžšαžΆαž”αŸ‹β€‹αž™αžΎαž„β€‹αž–αžΈβ€‹αž’αŸ’αžœαžΈβ€‹αžŠαŸ‚αž›β€‹αž’αŸ’αž“αž€β€‹αž”αŸ’αžšαžΎ αž”αž‰αŸ’αž αžΆβ€‹αž’αŸ’αžœαžΈβ€‹αžŠαŸ‚αž›β€‹αž’αŸ’αž“αž€β€‹αž”αžΆαž“β€‹αž‡αž½αž” αž“αž·αž„β€‹αžšαž”αŸ€αž”β€‹αžŠαŸ‚αž›β€‹αž’αŸ’αž“αž€β€‹αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™β€‹αžœαžΆ!

PS

αžŸαžΌαž˜αž’αžΆαž“αž•αž„αžŠαŸ‚αžšαž“αŸ…αž›αžΎαž”αŸ’αž›αž€αŸ‹αžšαž”αžŸαŸ‹αž™αžΎαž„αŸ–

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹