αž€αŸ†αž αž»αžŸαž‘αžΌαž‘αŸ… 10 αž“αŸ…αž–αŸαž›αž”αŸ’αžšαžΎ Kubernetes

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

αž€αŸ†αž αž»αžŸαž‘αžΌαž‘αŸ… 10 αž“αŸ…αž–αŸαž›αž”αŸ’αžšαžΎ Kubernetes

αž€αŸ’αž“αž»αž„αžšαž™αŸˆαž–αŸαž›αž‡αžΆαž…αŸ’αžšαžΎαž“αž†αŸ’αž“αžΆαŸ†αž“αŸƒαž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ Kubernetes αž™αžΎαž„αž”αžΆαž“αž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž€αŸ’αžšαž»αž˜αž˜αž½αž™αž…αŸ†αž“αž½αž“αž’αŸ† (αž‘αžΆαŸ†αž„αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„ αž“αž·αž„αž˜αž·αž“αž’αžΆαž…αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž”αžΆαž“ - αž“αŸ…αž›αžΎ GCP, AWS αž“αž·αž„ Azure)αŸ” αž™αžΌαžšαŸ—αž‘αŸ… αž™αžΎαž„αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž€αžαŸ‹αžŸαŸ†αž‚αžΆαž›αŸ‹αžαžΆ αž€αŸ†αž αž»αžŸαžαŸ’αž›αŸ‡αž€αžΎαžαž‘αžΎαž„αžŠαžŠαŸ‚αž›αŸ—αŸ” αž‘αŸ„αŸ‡αž‡αžΆαž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™αžœαžΆαž˜αž·αž“αž˜αžΆαž“αž€αžΆαžšαžαŸ’αž˜αžΆαžŸαŸ‹αž’αŸ€αž“αž€αŸ’αž“αž»αž„αžšαžΏαž„αž“αŸαŸ‡αž‘αŸ: αž™αžΎαž„αž”αžΆαž“αž’αŸ’αžœαžΎαžŠαŸ„αž™αžαŸ’αž›αž½αž“αž―αž„αž—αžΆαž‚αž…αŸ’αžšαžΎαž“!

αž’αžαŸ’αžαž”αž‘β€‹αž˜αžΆαž“β€‹αž€αŸ†αž αž»αžŸβ€‹αž‘αžΌαž‘αŸ…β€‹αž”αŸ†αž•αž»αž αž αžΎαž™β€‹αž€αŸβ€‹αž“αž·αž™αžΆαž™β€‹αž’αŸ†αž–αžΈβ€‹αžšαž”αŸ€αž”β€‹αž€αŸ‚β€‹αž€αŸ†αž αž»αžŸβ€‹αž‘αžΆαŸ†αž„αž“αŸ„αŸ‡β€‹αž•αž„αžŠαŸ‚αžšαŸ”

1. αž’αž“αž’αžΆαž“αŸ– αžŸαŸ†αžŽαžΎ αž“αž·αž„αžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹

αž’αžΆαžαž»αž“αŸαŸ‡αž–αž·αžαž‡αžΆαžŸαž˜αž“αžΉαž„αž‘αž‘αž½αž›αž”αžΆαž“αž€αžΆαžšαž™αž€αž…αž·αžαŸ’αžαž‘αž»αž€αžŠαžΆαž€αŸ‹ αž“αž·αž„αž€αž“αŸ’αž›αŸ‚αž„αžŠαŸ†αž”αžΌαž„αž”αŸ†αž•αž»αžαž€αŸ’αž“αž»αž„αž”αž‰αŸ’αž‡αžΈαŸ”

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

αž€αžΆαžšαžαž·αžαžαŸ†αž”αŸ’αžšαžΉαž„αž”αŸ’αžšαŸ‚αž„αž›αŸ’αž’αž”αŸ†αž•αž»αž (αž™αŸ‰αžΆαž„αžαŸ’αž›αžΆαŸ†αž„ αž˜αž·αž“αž˜αžΆαž“ αž”αžΆαž“αžŽαŸ‚αž“αžΆαŸ†):

resources: {}

αžŸαŸ†αžŽαžΎ CPU αž‘αžΆαž”αžαŸ’αž›αžΆαŸ†αž„ (αžαŸ’αž›αžΆαŸ†αž„αžŽαžΆαžŸαŸ‹ αž˜αž·αž“αž˜αžΆαž“ αž”αžΆαž“αžŽαŸ‚αž“αžΆαŸ†):

   resources:
      Requests:
        cpu: "1m"

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

αž€αžΆαžšαž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž…αŸ’αžšαžΎαž“αž–αŸαž€ (αž αž½αžŸαž…αž·αžαŸ’αž) αž”αž‰αŸ’αž αžΆαž€αžΆαžšαž…αž„αž…αžΆαŸ†αž’αžΆαž…αž“αžΆαŸ†αž±αŸ’αž™αž˜αžΆαž“αž”αž‰αŸ’αž αžΆαž’αŸ†αŸ” αž€αžΆαžšαžˆαžΆαž“αžŠαž›αŸ‹αžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹αž“αŸƒαžŸαŸŠαžΈαž—αžΈαž™αžΌ αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž€αžΆαžšαžšαŸ†αž›αž„αžœαžŠαŸ’αžαž“αžΆαž‘αž·αž€αžΆ αžαžŽαŸˆαž–αŸαž›αžŠαŸ‚αž›αž€αžΆαžšαžˆαžΆαž“αžŠαž›αŸ‹αžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹αž“αŸƒαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž“αŸ„αŸ‡ αž“αžΆαŸ†αž±αŸ’αž™αžŸαž˜αŸ’αž›αžΆαž”αŸ‹αž•αžαŸ” αžαžΎαž’αŸ’αž“αž€αž’αŸ’αž›αžΆαž”αŸ‹αžŸαž„αŸ’αž€αŸαžαž‘αŸ? OOMkill? αž”αžΆαž‘ αž“αŸ„αŸ‡αž αžΎαž™αž‡αžΆαž’αŸ’αžœαžΈαžŠαŸ‚αž›αž™αžΎαž„αž€αŸ†αž–αž»αž„αž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈαŸ”

αžαžΎαž’αŸ’αž“αž€αž…αž„αŸ‹αž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αž›αž‘αŸ’αž’αž—αžΆαž–αž“αŸƒαž€αžΆαžšαž€αžΎαžαž‘αžΎαž„αž“αŸαŸ‡αž‘αŸ? αž€αž»αŸ†αž”αŸ‚αž„αž…αŸ‚αž€αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž…αŸ’αžšαžΎαž“αž–αŸαž€ αž αžΎαž™αž”αŸ’αžšαžΎαž€αžΆαžšαž’αžΆαž“αžΆ QoS (αž‚αž»αžŽαž—αžΆαž–αž“αŸƒαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜) αžŠαŸ„αž™αž€αŸ†αžŽαžαŸ‹αžŸαŸ†αžŽαžΎαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžŠαž›αŸ‹αžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹ (αžŠαžΌαž…αž€αŸ’αž“αž»αž„αž§αž‘αžΆαž αžšαžŽαŸαžαžΆαž„αž€αŸ’αžšαŸ„αž˜)αŸ” αžŸαžΌαž˜αž’αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž’αŸ†αž–αžΈαžšαžΏαž„αž“αŸαŸ‡αž“αŸ…αž€αŸ’αž“αž»αž„ αž”αž‘αž”αž„αŸ’αž αžΆαž‰ Henning Jacobs (αž”αŸ’αžšαž’αžΆαž“αžœαž·αžŸαŸ’αžœαž€αžš Zalando) αŸ”

αž’αžΆαž…αž•αŸ’αž‘αž»αŸ‡αž”αžΆαž“αŸ” (αž±αž€αžΆαžŸαžαŸ’αž–αžŸαŸ‹αž€αŸ’αž“αž»αž„αž€αžΆαžšαžŸαž˜αŸ’αž›αžΆαž”αŸ‹ OOM)αŸ–

   resources:
      requests:
        memory: "128Mi"
        cpu: "500m"
      limits:
        memory: "256Mi"
        cpu: 2

αž’αžΆαž“αžΆ:

   resources:
      requests:
        memory: "128Mi"
        cpu: 2
      limits:
        memory: "128Mi"
        cpu: 2

αžαžΎβ€‹αž’αŸ’αžœαžΈβ€‹αž“αžΉαž„β€‹αž’αžΆαž…β€‹αž‡αž½αž™β€‹αž”αžΆαž“β€‹αž–αŸαž›β€‹αž”αž„αŸ’αž€αžΎαžβ€‹αž’αž“αž’αžΆαž“?

αžŠαŸ„αž™αž˜αžΆαž“αž‡αŸ†αž“αž½αž™αž–αžΈ αž˜αŸ‰αŸ‚αžαŸ’αžš - αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ αž’αŸ’αž“αž€αž’αžΆαž…αžƒαžΎαž‰αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž’αž“αž’αžΆαž“ CPU αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“ αž“αž·αž„αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžŠαŸ„αž™αž•αž (αž“αž·αž„αž’αž»αž„αž•αŸ’αž‘αž»αž€αž“αŸ…αžαžΆαž„αž€αŸ’αž“αž»αž„αž–αž½αž€αžœαžΆ)αŸ” αž—αžΆαž‚αž…αŸ’αžšαžΎαž“ αž’αŸ’αž“αž€αž€αŸ†αž–αž»αž„αž”αŸ’αžšαžΎαžœαžΆαžšαž½αž…αž αžΎαž™αŸ” αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸ–

kubectl top pods
kubectl top pods --containers
kubectl top nodes

αž‘αŸ„αŸ‡αž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™ αž–αž½αž€αž‚αŸαž”αž„αŸ’αž αžΆαž‰αžαŸ‚αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ” αžœαžΆαž’αžΆαž…αž•αŸ’αžαž›αŸ‹αž±αŸ’αž™αž’αŸ’αž“αž€αž“αžΌαžœαž‚αŸ†αž“αž·αžαžšαžŠαž»αž”αž“αŸƒαž›αŸ†αžŠαžΆαž”αŸ‹αž“αŸƒαžšαŸ‰αž·αž…αž‘αŸαžšαž”αŸ‰αž»αž“αŸ’αžαŸ‚αž“αŸ…αž‘αžΈαž”αŸ†αž•αž»αžαž’αŸ’αž“αž€αž“αžΉαž„αžαŸ’αžšαžΌαžœαž€αžΆαžš αž”αŸ’αžšαžœαžαŸ’αžαž·αž“αŸƒαž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžšαž„αŸ’αžœαžΆαžŸαŸ‹αžαžΆαž˜αž–αŸαž›αžœαŸαž›αžΆ (αžŠαžΎαž˜αŸ’αž”αžΈαž†αŸ’αž›αžΎαž™αžŸαŸ†αžŽαž½αžšαžŠαžΌαž…αž‡αžΆαŸ– "αžαžΎαž€αžΆαžšαž•αŸ’αž‘αž»αž€αžŸαŸŠαžΈαž—αžΈαž™αžΌαžαŸ’αž–αžŸαŸ‹αž”αŸ†αž•αž»αžαž‚αžΊαž‡αžΆαž’αŸ’αžœαžΈ?", "αžαžΎαž’αŸ’αžœαžΈαž‡αžΆαž”αž“αŸ’αž‘αž»αž€αž€αžΆαž›αž–αžΈαž–αŸ’αžšαžΉαž€αž˜αž·αž‰?" αŸ”αž›αŸ”) αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž“αŸαŸ‡αž’αŸ’αž“αž€αž’αžΆαž…αž”αŸ’αžšαžΎ Prometheus, DataDog αž“αž·αž„αž§αž”αž€αžšαžŽαŸαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ” αž–αž½αž€αž‚αŸαž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž‘αž‘αž½αž›αž”αžΆαž“αž˜αŸ‰αŸ‚αžαŸ’αžšαž–αžΈ metrics-server αž αžΎαž™αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž–αž½αž€αžœαžΆ αž αžΎαž™αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž’αžΆαž…αžŸαž½αžšαž–αž½αž€αž‚αŸ αž“αž·αž„αžšαŸ€αž”αž…αŸ†αžœαžΆαžαžΆαž˜αžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαŸ”

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

αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžαžΆαž˜αž–αž›αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž”αŸ’αžšαž€αž”αžŠαŸ„αž™αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆαž€αž·αž…αŸ’αž…αž€αžΆαžšαž„αžΆαž™αžŸαŸ’αžšαž½αž›αž“αŸ„αŸ‡αž‘αŸαŸ” αžœαžΆαžŠαžΌαž…αž‡αžΆαž›αŸαž„ Tetris αž‚αŸ’αžšαž”αŸ‹αž–αŸαž›αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž€αŸ†αž–αž»αž„αž…αŸ†αžŽαžΆαž™αž…αŸ’αžšαžΎαž“αž–αŸαž€αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαžΆαž˜αž–αž›αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž‡αžΆαž˜αž’αŸ’αž™αž˜αž‘αžΆαž” (αž“αž·αž™αžΆαž™αžαžΆ ~10%) αž™αžΎαž„αžŸαžΌαž˜αžŽαŸ‚αž“αžΆαŸ†αž±αŸ’αž™αž˜αžΎαž›αž•αž›αž·αžαž•αž›αžŠαŸ‚αž›αž˜αžΆαž“αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž›αžΎ AWS Fargate ឬ Virtual KubeletαŸ” αž–αž½αž€αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αž“αŸ…αž›αžΎαž‚αŸ†αžšαžΌαžœαž·αž€αŸ’αž€αž™αž”αžαŸ’αžšαžŠαŸ‚αž›αž˜αž·αž“αž”αŸ’αžšαžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ/αž”αž„αŸ‹αž”αŸ’αžšαžΆαž€αŸ‹αž€αŸ’αž“αž»αž„αž˜αž½αž™αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ αžŠαŸ‚αž›αž’αžΆαž…αž”αŸ’αžšαŸ‚αž‘αŸ…αž‡αžΆαžαŸ„αž€αž‡αžΆαž„αž“αŸ…αž€αŸ’αž“αž»αž„αž›αž€αŸ’αžαžαžŽαŸ’αžŒαž”αŸ‚αž”αž“αŸαŸ‡αŸ”

2. αž€αžΆαžšαžŸαŸŠαžΎαž”αž’αž„αŸ’αž€αŸαžαž—αžΆαž–αžšαžŸαŸ‹αžšαžœαžΎαž€ αž“αž·αž„αž€αžΆαžšαžαŸ’αžšαŸ€αž˜αžαŸ’αž›αž½αž“

αžαžΆαž˜αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜ αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž—αžΆαž–αžšαžŸαŸ‹αžšαžœαžΎαž€ αž“αž·αž„αž€αžΆαžšαžαŸ’αžšαŸ€αž˜αžαŸ’αž›αž½αž“αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αžΎαž€αž“αŸ…αž€αŸ’αž“αž»αž„ Kubernetes αž‘αŸαŸ” αž αžΎαž™αž–αŸαž›αžαŸ’αž›αŸ‡αž–αž½αž€αž‚αŸαž—αŸ’αž›αŸαž…αž”αžΎαž€...

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

αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž‘αžΆαŸ†αž„αž“αŸαŸ‡αž…αŸ’αžšαžΎαž“αžαŸ‚αž…αŸ’αžšαž‘αŸ†αž‡αžΆαž˜αž½αž™αž‚αŸ’αž“αžΆαŸ–

  • αž—αžΆαž–αžšαžŸαŸ‹αžšαžœαžΎαž€ - αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™ "αž€αžΆαžšαžšαžŸαŸ‹αžšαžΆαž“αž˜αžΆαž“αž‡αžΈαžœαž·αž" αžŠαŸ‚αž›αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž•αžαž‘αžΎαž„αžœαž·αž‰αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžœαžΆαž”αžšαžΆαž‡αŸαž™αŸ”
  • αž€αžΆαžšαžαŸ’αžšαŸ€αž˜αžαŸ’αž›αž½αž“αŸ” - αž–αž·αž“αž·αžαŸ’αž™αž€αžΆαžšαžαŸ’αžšαŸ€αž˜αžαŸ’αž›αž½αž“ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžœαžΆαž”αžšαžΆαž‡αŸαž™ αžœαžΆαž“αžΉαž„αž•αŸ’αžαžΆαž…αŸ‹ pod αž–αžΈαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ Kubernetes (αžœαžΆαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž–αž·αž“αž·αžαŸ’αž™αžŠαŸ„αž™αž”αŸ’αžšαžΎ kubectl get endpoints) αž αžΎαž™αž…αžšαžΆαž…αžšαžŽαŸαž˜αž·αž“αž˜αž€αžŠαž›αŸ‹αžœαžΆαž‘αŸ αžšαž αžΌαžαžŠαž›αŸ‹αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αž…αž”αŸ‹αžŠαŸ„αž™αž‡αŸ„αž‚αž‡αŸαž™αŸ”

αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž‘αžΆαŸ†αž„αž–αžΈαžšαž“αŸαŸ‡αŸ” αž’αž“αž»αžœαžαŸ’αžαž€αŸ’αž“αž»αž„αž’αŸ†αž‘αž»αž„αž–αŸαž›αžœαžŠαŸ’αžαž‡αžΈαžœαž·αžαž‘αžΆαŸ†αž„αž˜αžΌαž›αž“αŸƒ POD. αžœαžΆβ€‹αž–αž·αžαž‡αžΆβ€‹αžŸαŸ†αžαžΆαž“αŸ‹αžŽαžΆαžŸαŸ‹αŸ”

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

αž˜αž½αž™β€‹αž‘αŸ€αžβ€‹αž‚αžΊβ€‹αž›αž‘αŸ’αž’αž—αžΆαž–β€‹αž“αŸƒβ€‹αž€αžΆαžšβ€‹αžšαž€β€‹αžƒαžΎαž‰β€‹αžαžΆβ€‹αž…αžšαžΆαž…αžšαžŽαŸβ€‹αž“αŸ…β€‹αž›αžΎ pod αž‚αžΊβ€‹αž›αžΎαžŸβ€‹αž…αŸ†αžŽαž»αŸ‡β€‹αž“αž·αž„ αž•αŸ’αž‘αž»αž€αž›αžΎαžŸαž‘αž˜αŸ’αž„αž“αŸ‹ (ឬ pod αž’αž“αž»αžœαžαŸ’αžαž€αžΆαžšαž‚αžŽαž“αžΆαžŠαŸ‚αž›αž–αžΉαž„αž•αŸ’αž’αŸ‚αž€αžαŸ’αž›αžΆαŸ†αž„αž›αžΎαž’αž“αž’αžΆαž“) αŸ” αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž“αŸαŸ‡αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž€αžΆαžšαžαŸ’αžšαŸ€αž˜αžαŸ’αž›αž½αž“αž‡αž½αž™ αž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αž€αžΆαžšαž•αŸ’αž‘αž»αž€αž“αŸ…αž›αžΎαž•αžΎαž„αž αžΎαž™ "αžαŸ’αžšαž‡αžΆαž€αŸ‹" αžœαžΆαŸ”. αž€αžΆαžšαž”αž‰αŸ’αž…αž”αŸ‹αžŠαŸ„αž™αž‡αŸ„αž‚αž‡αŸαž™αž“αŸƒαž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž€αžΆαžšαžαŸ’αžšαŸ€αž˜αžαŸ’αž›αž½αž“αž“αžΆαž–αŸαž›αž’αž“αžΆαž‚αžαž’αž“αž»αž‰αŸ’αž‰αžΆαž αž”αž„αŸ’αž€αžΎαž“αž€αžΆαžšαž•αŸ’αž‘αž»αž€αž“αŸ…αž›αžΎ pod αž˜αŸ’αžαž„αž‘αŸ€αž. αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž“αŸαŸ‡ (αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž€αžΆαžšαžαŸ’αžšαŸ€αž˜αžαŸ’αž›αž½αž“αž”αžšαžΆαž‡αŸαž™) αž€αžΆαžšαž”αžšαžΆαž‡αŸαž™αž“αŸƒαž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž—αžΆαž–αžšαžŸαŸ‹αžšαžΆαž“αž˜αžΆαž“αž‡αžΈαžœαž·αžαž“αžΉαž„αž•αŸ’αž‘αž»αž™αž‚αŸ’αž“αžΆαž™αŸ‰αžΆαž„αžαŸ’αž›αžΆαŸ†αž„αŸ” αž αŸαžαž»αž’αŸ’αžœαžΈβ€‹αž”αžΆαž“β€‹αž‡αžΆβ€‹αž…αžΆαž”αŸ‹αž•αŸ’αžŠαžΎαž˜β€‹αž•αžβ€‹αžŠαŸ‚αž›β€‹αž˜αžΆαž“β€‹αžŸαž»αžαž—αžΆαž–β€‹αž›αŸ’αž’ αž“αž·αž„β€‹αžαž·αžαžαŸ†β€‹αž’αŸ’αžœαžΎαž€αžΆαžšβ€‹αž‘αžΎαž„αžœαž·αž‰?

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

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

3. LoadBalancer αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸαžœαžΆ HTTP αž“αžΈαž˜αž½αž™αŸ—

αž—αžΆαž‚αž…αŸ’αžšαžΎαž“ αž’αŸ’αž“αž€αž˜αžΆαž“αžŸαŸαžœαžΆ HTTP αž“αŸ…αž€αŸ’αž“αž»αž„αž…αž„αŸ’αž€αŸ„αž˜αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ αžŠαŸ‚αž›αž’αŸ’αž“αž€αž…αž„αŸ‹αž”αž‰αŸ’αž‡αžΌαž“αž”αž“αŸ’αžαž‘αŸ…αž€αžΆαž“αŸ‹αž–αž·αž—αž–αžαžΆαž„αž€αŸ’αžšαŸ…αŸ”

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž”αžΎαž€αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžŠαžΌαž…αž‡αžΆ type: LoadBalancerαž§αž”αž€αžšαžŽαŸαž”αž‰αŸ’αž‡αžΆαžšαž”αžŸαŸ‹αžœαžΆ (αž’αžΆαžŸαŸ’αžšαŸαž™αž›αžΎαž’αŸ’αž“αž€αž•αŸ’αžαž›αŸ‹αžŸαŸαžœαžΆ) αž“αžΉαž„αž•αŸ’αžαž›αŸ‹ αž“αž·αž„αž…αžšαž…αžΆαžš LoadBalancer αžαžΆαž„αž€αŸ’αžšαŸ… (αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αžΎ L7 αž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžŸαžΌαž˜αŸ’αž”αžΈαžαŸ‚αž“αŸ…αž›αžΎ L4) αž αžΎαž™αžœαžΆαž’αžΆαž…αž”αŸ‰αŸ‡αž–αžΆαž›αŸ‹αžŠαž›αŸ‹αž€αžΆαžšαž…αŸ†αžŽαžΆαž™ (αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“ IPv4 αž‹αž·αžαž·αžœαž“αŸ’αžαžαžΆαž„αž€αŸ’αžšαŸ… αžαžΆαž˜αž–αž›αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžš αž€αžΆαžšαž…αŸαž‰αžœαž·αž€αŸ’αž€αž™αž”αžαŸ’αžšαž€αŸ’αž“αž»αž„αž˜αž½αž™αžœαž·αž“αžΆαž‘αžΈαŸ” ) αžŠαŸ„αž™αžŸαžΆαžšαžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαž’αž“αž’αžΆαž“αž”αŸ‚αž”αž“αŸαŸ‡αž…αŸ’αžšαžΎαž“αŸ”

αž€αŸ’αž“αž»αž„β€‹αž€αžšαžŽαžΈβ€‹αž“αŸαŸ‡ αžœαžΆβ€‹αž‡αžΆβ€‹αž‘αžΌαž‡αžΈαžαž›β€‹αž‡αžΆαž„β€‹αž€αŸ’αž“αž»αž„β€‹αž€αžΆαžšβ€‹αž”αŸ’αžšαžΎβ€‹αž§αž”αž€αžšαžŽαŸβ€‹αžαž»αž›αŸ’αž™αž—αžΆαž–β€‹αž”αž“αŸ’αž‘αž»αž€β€‹αžαžΆαž„β€‹αž€αŸ’αžšαŸ…β€‹αž˜αž½αž™β€‹αžŠαŸ„αž™β€‹αž€αžΆαžšβ€‹αž”αžΎαž€β€‹αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ type: NodePort. αž¬αž”αŸ’αžšαžŸαžΎαžšαž‡αžΆαž„αž“αŸαŸ‡ αž–αž„αŸ’αžšαžΈαž€αž’αŸ’αžœαžΈαž˜αž½αž™αžŠαžΌαž…αž‡αžΆ nginx-ingress-controller (ឬ αžαŸ’αžšαŸαž αŸ’αžœαž·αž€) αžŠαŸ‚αž›αž“αžΉαž„αž€αŸ’αž›αžΆαž™αž‡αžΆαžαŸ‚αž˜αž½αž™αž‚αžαŸ‹ NodePort αž…αŸ†αžŽαž»αž…αž”αž‰αŸ’αž…αž”αŸ‹αžŠαŸ‚αž›αž—αŸ’αž‡αžΆαž”αŸ‹αž‡αžΆαž˜αž½αž™αž§αž”αž€αžšαžŽαŸαžαž»αž›αŸ’αž™αž—αžΆαž–αž”αž“αŸ’αž‘αž»αž€αžαžΆαž„αž€αŸ’αžšαŸ… αž αžΎαž™αž“αžΉαž„αž”αž‰αŸ’αž‡αžΌαž“αž…αžšαžΆαž…αžšαž€αŸ’αž“αž»αž„αž…αž„αŸ’αž€αŸ„αž˜αžŠαŸ„αž™αž”αŸ’αžšαžΎ αž…αžΌαž›- αž’αž“αž’αžΆαž“ Kubernetes αŸ”

αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž€αŸ’αž“αž»αž„αž€αŸ’αžšαž»αž˜ (αž˜αžΈαž€αŸ’αžšαžΌ) αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαžŠαŸ‚αž›αž˜αžΆαž“αž’αž“αŸ’αžαžšαž€αž˜αŸ’αž˜αž‡αžΆαž˜αž½αž™αž‚αŸ’αž“αžΆαž’αžΆαž… "αž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„" αžŠαŸ„αž™αž”αŸ’αžšαžΎαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžŠαžΌαž…αž‡αžΆ ClusterIP αž“αž·αž„αž™αž“αŸ’αžαž€αžΆαžšαžŸαŸ’αžœαŸ‚αž„αžšαž€αžŸαŸαžœαžΆαžŠαŸ‚αž›αž—αŸ’αž‡αžΆαž”αŸ‹αž˜αž€αž‡αžΆαž˜αž½αž™αžαžΆαž˜αžšαž™αŸˆ DNS αŸ” αž€αž»αŸ†αž”αŸ’αžšαžΎ DNS/IP αžŸαžΆαž’αžΆαžšαžŽαŸˆαžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸ αž–αŸ’αžšαŸ„αŸ‡αžœαžΆαž’αžΆαž…αž”αŸ‰αŸ‡αž–αžΆαž›αŸ‹αžŠαž›αŸ‹αž—αžΆαž–αž™αžΊαžαž™αŸ‰αžΆαžœ αž“αž·αž„αž”αž„αŸ’αž€αžΎαž“αžαž˜αŸ’αž›αŸƒαžŸαŸαžœαžΆαž–αž–αž€αŸ”

4. αž€αžΆαžšαž’αŸ’αžœαžΎαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“αž…αž„αŸ’αž€αŸ„αž˜αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αžŠαŸ„αž™αž˜αž·αž“αž‚αž·αžαž–αžΈαž›αž€αŸ’αžαžŽαŸˆαž–αž·αžŸαŸαžŸαžšαž”αžŸαŸ‹αžœαžΆαŸ”

αž“αŸ…αž–αŸαž›αž”αž“αŸ’αžαŸ‚αž˜αžαŸ’αž“αžΆαŸ†αž„αž‘αŸ… αž“αž·αž„αž™αž€αž–αž½αž€αžœαžΆαž…αŸαž‰αž–αžΈαž…αž„αŸ’αž€αŸ„αž˜ αž’αŸ’αž“αž€αž˜αž·αž“αž‚αž½αžšαž–αžΉαž„αž•αŸ’αž’αŸ‚αž€αž›αžΎαž€αžΆαžšαžœαžΆαžŸαŸ‹αžœαŸ‚αž„αž‡αžΆαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž˜αž½αž™αž…αŸ†αž“αž½αž“αžŠαžΌαž…αž‡αžΆαž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžŸαŸŠαžΈαž—αžΈαž™αžΌαž“αŸ…αž›αžΎαžαŸ’αž“αžΆαŸ†αž„αž‘αžΆαŸ†αž„αž“αŸ„αŸ‡αž“αŸ„αŸ‡αž‘αŸαŸ” αž€αžΆαžšαž’αŸ’αžœαžΎαž•αŸ‚αž“αž€αžΆαžš Pod αžαŸ’αžšαžΌαžœαžαŸ‚αž™αž€αž‘αŸ…αž€αŸ’αž“αž»αž„αž‚αžŽαž“αžΈαž‡αžΆαž…αŸ’αžšαžΎαž“αŸ” αž€αžΆαžšαžšαžΉαžαžαŸ’αž”αž·αžαžŠαžΌαž…αž‡αžΆαž—αžΆαž–αžŸαŸ’αž“αž·αž‘αŸ’αž’αžŸαŸ’αž“αžΆαž›αžšαž”αžŸαŸ‹ pod/node, taints αž“αž·αž„αž€αžΆαžšαž’αžαŸ‹αž±αž“, αžŸαŸ†αžŽαžΎαž’αž“αž’αžΆαž“, QoS αž‡αžΆαžŠαžΎαž˜αŸ” αž€αžΆαžšαž”αŸ’αžšαžΎαž§αž”αž€αžšαžŽαŸαžœαžΆαžŸαŸ‹αžŸαŸ’αž‘αž„αŸ‹αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαžαžΆαž„αž€αŸ’αžšαŸ…αžŠαŸ‚αž›αž˜αž·αž“αž‚αž·αžαž‚αžΌαžšαž–αžΈαž—αžΆαž–αžαž»αžŸαž”αŸ’αžšαž€αŸ’αžšαžαžΈαž‘αžΆαŸ†αž„αž“αŸαŸ‡αž’αžΆαž…αž“αžΆαŸ†αž±αŸ’αž™αž˜αžΆαž“αž”αž‰αŸ’αž αžΆαŸ”

αžŸαŸ’αžšαž˜αŸƒαžαžΆαž•αžαž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž˜αž½αž™αž‚αž½αžšαžαŸ‚αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž–αŸαž› αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžαžΆαž˜αž–αž›αžŸαŸŠαžΈαž—αžΈαž™αžΌαžŠαŸ‚αž›αž˜αžΆαž“αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαŸ’αž“αžΎαžŸαž»αŸ†/αž•αŸ’αžαžΆαž…αŸ‹ αž“αž·αž„αž•αž αž‡αžΆαž”αŸ‹αž‚αžΆαŸ†αž„αž“αŸ…αž€αŸ’αž“αž»αž„αžšαžŠαŸ’αž‹αž˜αž½αž™αŸ” Pending. αž§αž”αž€αžšαžŽαŸαž–αž„αŸ’αžšαžΈαž€αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αžαžΆαž„αž€αŸ’αžšαŸ…αž˜αžΎαž›αžƒαžΎαž‰αž€αžΆαžšαž•αŸ’αž‘αž»αž€αžŸαŸŠαžΈαž—αžΈαž™αžΌαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž‡αžΆαž˜αž’αŸ’αž™αž˜ (αž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆαž€αžΆαžšαžŸαŸ’αž“αžΎαžŸαž»αŸ†) αž αžΎαž™αž˜αž·αž“αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž€αžΆαžšαž–αž„αŸ’αžšαžΈαž€αž‘αŸαŸ” (αž–αž„αŸ’αžšαžΈαž€) - αž˜αž·αž“αž”αž“αŸ’αžαŸ‚αž˜αžαŸ’αž“αžΆαŸ†αž„αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ” αž‡αžΆαž›αž‘αŸ’αž’αž•αž› αž•αžαž“αŸαŸ‡αž“αžΉαž„αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž–αŸαž›αž‘αŸαŸ”

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

αž–αŸαž‰αž“αž·αž™αž˜αž™αŸ‰αžΆαž„αžαŸ’αž›αžΆαŸ†αž„αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαž αž‚αž˜αž“αŸ Kubernetes cluster-autoscaler. αžœαžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αžΎαž…αž„αŸ’αž€αŸ„αž˜ αž‚αžΆαŸ†αž‘αŸ’αžš APIs αž–αžΈαž’αŸ’αž“αž€αž•αŸ’αžαž›αŸ‹αžŸαŸαžœαžΆαž–αž–αž€αž’αŸ†αŸ— αž–αž·αž…αžΆαžšαžŽαžΆαž›αžΎαž€αžΆαžšαžšαžΉαžαž”αž“αŸ’αžαžΉαž„αž‘αžΆαŸ†αž„αž’αžŸαŸ‹ αž“αž·αž„αž’αžΆαž…αž’αŸ’αžœαžΎαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαžαžΆαž„αž›αžΎαŸ” αžœαžΆαž€αŸαž’αžΆαž…αž’αŸ’αžœαžΎαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“αž”αžΆαž“αž•αž„αžŠαŸ‚αžš αžαžŽαŸˆαž–αŸαž›αžŠαŸ‚αž›αžšαž€αŸ’αžŸαžΆαžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹αžŠαŸ‚αž›αž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž‘αžΆαŸ†αž„αž’αžŸαŸ‹ αžŠαŸ„αž™αž αŸαžαž»αž“αŸαŸ‡αž€αžΆαžšαžŸαž“αŸ’αžŸαŸ†αž”αŸ’αžšαžΆαž€αŸ‹ (αžŠαŸ‚αž›αž“αžΉαž„αžαŸ’αžšαžΌαžœαž…αŸ†αžŽαžΆαž™αž›αžΎαžŸαž˜αžαŸ’αžαž—αžΆαž–αžŠαŸ‚αž›αž˜αž·αž“αž”αŸ’αžšαžΎ)αŸ”

5. αž€αžΆαžšαž’αŸ’αžœαŸαžŸαž”αŸ’αžšαž αŸ‚αžŸαžŸαž˜αžαŸ’αžαž—αžΆαž– IAM/RBAC

αž”αŸ’αžšαž™αŸαžαŸ’αž“αž…αŸ†αž–αŸ„αŸ‡αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ IAM αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž’αžΆαžαŸŒαž€αŸ†αž”αžΆαŸ†αž„αž‡αžΆαž”αŸ‹αž›αžΆαž”αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αž·αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ. αžšαŸ€αž”αž…αŸ†αž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎαž”αžŽαŸ’αžαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“αžŠαŸ„αž™αž”αŸ’αžšαžΎαžαž½αž“αžΆαž‘αžΈ αž“αž·αž„αž‚αžŽαž“αžΈαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ (αž‚αžŽαž“αžΈαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜).

αž‡αžΆαžšαžΏαž™αŸ—αž™αžΎαž„αž‡αž½αž”αž”αŸ’αžšαž‘αŸ‡αž“αžΉαž„αž€αžΆαžšαž–αž·αžαžŠαŸ‚αž›αžαžΆαžŸαŸ„αž…αžΌαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš (αž“αž·αž„αž’αžΆαžαŸŒαž€αŸ†αž”αžΆαŸ†αž„) αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžšαžŸαŸαžšαž€αžΌαžŠαžšαžΉαž„αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ αž€αŸαžŠαžΌαž…αž‡αžΆαž€αžΆαžšαž’αŸ’αžœαŸαžŸαž”αŸ’αžšαž αŸ‚αžŸαž…αŸ†αž–αŸ„αŸ‡αž€αžΆαžšαž”αž„αŸ’αžœαž·αž›αž“αŸƒαž’αžΆαžαŸŒαž€αŸ†αž”αžΆαŸ†αž„ αž”αžΎαž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαž˜αžΆαž“αž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎ Cloud IAM αž€αŸαžŠαŸ„αž™αŸ” αž”αŸ’αžšαžΎαžαž½αž“αžΆαž‘αžΈ IAM αž“αž·αž„αž‚αžŽαž“αžΈαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž‡αŸ†αž“αž½αžŸαž±αŸ’αž™αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžαžΆαž˜αžŠαŸ‚αž›αžŸαž˜αžšαž˜αŸ’αž™αŸ”

αž€αŸ†αž αž»αžŸαž‘αžΌαž‘αŸ… 10 αž“αŸ…αž–αŸαž›αž”αŸ’αžšαžΎ Kubernetes

αž—αŸ’αž›αŸαž…αž’αŸ†αž–αžΈ kube2iam αž αžΎαž™αž‘αŸ…αžαŸ’αžšαž„αŸ‹αž‘αŸ…αžαž½αž“αžΆαž‘αžΈ IAM αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‚αžŽαž“αžΈαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ (αžŠαžΌαž…αžŠαŸ‚αž›αž”αžΆαž“αž–αž·αž–αžŽαŸŒαž“αžΆαž“αŸ…αž€αŸ’αž“αž»αž„ αž…αŸ†αžŽαžΆαŸ†αž“αŸƒαžˆαŸ’αž˜αŸ„αŸ‡αžŠαžΌαž…αž‚αŸ’αž“αžΆαŸ” Ε tΔ›pΓ‘n VranΓ½)αŸ–

apiVersion: v1
kind: ServiceAccount
metadata:
  annotations:
    eks.amazonaws.com/role-arn: arn:aws:iam::123456789012:role/my-app-role
  name: my-serviceaccount
  namespace: default

αž…αŸ†αžŽαžΆαžšαž–αž“αŸ’αž™αž›αŸ‹αž˜αž½αž™αŸ” αž˜αž·αž“αž–αž·αž”αžΆαž€αž‘αŸαž˜αŸ‚αž“αž‘αŸ?

αžŠαžΌαž…αž‚αŸ’αž“αžΆαž“αŸαŸ‡αž•αž„αžŠαŸ‚αžš αž€αž»αŸ†αž•αŸ’αžαž›αŸ‹αžŸαž·αž‘αŸ’αž’αž·αžŠαž›αŸ‹αž‚αžŽαž“αžΈαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ αž“αž·αž„αž€αž˜αŸ’αžšαž„αž–αŸαžαŸŒαž˜αžΆαž“ admin ΠΈ cluster-adminαž”αŸ’αžšαžŸαž·αž“αž”αžΎαž–αž½αž€αž‚αŸαž˜αž·αž“αžαŸ’αžšαžΌαžœαž€αžΆαžšαžœαžΆαŸ” αž“αŸαŸ‡αž–αž·αž”αžΆαž€αž‡αžΆαž„αž”αž“αŸ’αžαž·αž…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž αž‡αžΆαž–αž·αžŸαŸαžŸαž“αŸ…αž€αŸ’αž“αž»αž„ RBAC K8s αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž–αž·αžαž‡αžΆαž˜αžΆαž“αž”αŸ’αžšαž™αŸ„αž‡αž“αŸαŸ”

6. αž€αž»αŸ†αž–αžΉαž„αž•αŸ’αž’αŸ‚αž€αž›αžΎαž€αžΆαžšαž”αŸ’αžšαž†αžΆαŸ†αž„αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž•αž

αžŸαŸ’αžšαž˜αŸƒαžαžΆαž’αŸ’αž“αž€αž˜αžΆαž“αž€αžΆαžšαž…αž˜αŸ’αž›αž„αž…αŸ†αž“αž½αž“αž”αžΈαž“αŸƒαž€αžΆαžšαžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αž˜αž½αž™αž…αŸ†αž“αž½αž“αž“αŸ…αž›αžΎαžαŸ’αž“αžΆαŸ†αž„αž˜αž½αž™αŸ” αžαŸ’αž“αžΆαŸ†αž„αž’αŸ’αž›αžΆαž€αŸ‹αž αžΎαž™αžšαž½αž˜αž‡αžΆαž˜αž½αž™αžœαžΆαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž…αž˜αŸ’αž›αž„αŸ” αžŸαŸ’αžαžΆαž“αž—αžΆαž–αž˜αž·αž“αž›αŸ’αž’αž˜αŸ‚αž“αž‘αŸ? αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž αŸαžαž»αž’αŸ’αžœαžΈαž”αžΆαž“αž‡αžΆαž€αžΆαžšαž…αž˜αŸ’αž›αž„αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸ…αž›αžΎαžαŸ’αž“αžΆαŸ†αž„αžŠαžΌαž…αž‚αŸ’αž“αžΆ? តើ Kubernetes αž‚αž½αžšαžαŸ‚αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž—αžΆαž–αž’αžΆαž…αžšαž€αž”αžΆαž“αžαŸ’αž–αžŸαŸ‹ (HA) αž˜αŸ‚αž“αž‘αŸ?!

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

// ΠΎΠΏΡƒΡ‰Π΅Π½ΠΎ для краткости
      labels:
        app: zk
// ΠΎΠΏΡƒΡ‰Π΅Π½ΠΎ для краткости
      affinity:
        podAntiAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            - labelSelector:
                matchExpressions:
                  - key: "app"
                    operator: In
                    values:
                    - zk
              topologyKey: "kubernetes.io/hostname"

αž’αžŸαŸ‹αž αžΎαž™αŸ” αž₯αž‘αžΌαžœαž“αŸαŸ‡ pods αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž–αŸαž›αž“αŸ…αž›αžΎαžαŸ’αž“αžΆαŸ†αž„αž•αŸ’αžŸαŸαž„αž‚αŸ’αž“αžΆ (αž›αž€αŸ’αžαžαžŽαŸ’αžŒαž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αžαŸ‚αž€αŸ’αž“αž»αž„αž’αŸ†αž‘αž»αž„αž–αŸαž›αž€αŸ†αžŽαžαŸ‹αž–αŸαž›αžœαŸαž›αžΆ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž˜αž·αž“αž˜αŸ‚αž“αž€αŸ’αž“αž»αž„αž’αŸ†αž‘αž»αž„αž–αŸαž›αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαž‘αŸ - αž αŸαžαž»αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž αžΎαž™ requiredDuringSchedulingIgnoredDuringExecution).

αž“αŸ…αž‘αžΈαž“αŸαŸ‡αž™αžΎαž„αž€αŸ†αž–αž»αž„αž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈ podAntiAffinity αž“αŸ…αž›αžΎαžαŸ’αž“αžΆαŸ†αž„αž•αŸ’αžŸαŸαž„αŸ—αž‚αŸ’αž“αžΆαŸ– topologyKey: "kubernetes.io/hostname", - αž αžΎαž™αž˜αž·αž“αž˜αŸ‚αž“αž’αŸ†αž–αžΈαžαŸ†αž”αž“αŸ‹αžŠαŸ‚αž›αž’αžΆαž…αžšαž€αž”αžΆαž“αž•αŸ’αžŸαŸαž„αž‚αŸ’αž“αžΆαž‘αŸαŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž’αž“αž»αžœαžαŸ’αž HA αž–αŸαž‰αž›αŸαž‰ αž’αŸ’αž“αž€αž“αžΉαž„αžαŸ’αžšαžΌαžœαžŸαŸ’αžœαŸ‚αž„αž™αž›αŸ‹αž±αŸ’αž™αž€αžΆαž“αŸ‹αžαŸ‚αžŸαŸŠαžΈαž‡αž˜αŸ’αžšαŸ…αž‘αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž’αžΆαž“αž”αž‘αž“αŸαŸ‡αŸ”

7. αž˜αž·αž“αž’αžΎαž–αžΎ PodDisruptionBudgets

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

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

apiVersion: policy/v1beta1
kind: PodDisruptionBudget
metadata:
  name: zk-pdb
spec:
  minAvailable: 2
  selector:
    matchLabels:
      app: zookeeper

αž€αŸ’αž“αž»αž„β€‹αž§αž‘αžΆαž αžšαžŽαŸβ€‹αž“αŸαŸ‡ αž’αŸ’αž“αž€β€‹αž€αŸ’αž“αž»αž„β€‹αž“αžΆαž˜β€‹αž‡αžΆβ€‹αž’αŸ’αž“αž€β€‹αž”αŸ’αžšαžΎβ€‹αž…αž„αŸ’αž€αŸ„αž˜ αžŸαžΌαž˜β€‹αžαŸ’αž›αŸ‚αž„β€‹αž‘αŸ…β€‹αž€αžΆαž“αŸ‹β€‹αž’αŸ’αž“αž€β€‹αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αŸ– "ហេ αžαŸ’αž‰αž»αŸ†αž˜αžΆαž“β€‹αžŸαŸαžœαžΆβ€‹αž’αŸ’αž“αž€β€‹αžαŸ‚β€‹αžŸαž½αž“β€‹αžŸαžαŸ’αžœ αž αžΎαž™β€‹αž˜αž·αž“β€‹αžαžΆβ€‹αž’αŸ’αž“αž€β€‹αž’αŸ’αžœαžΎβ€‹αž™αŸ‰αžΆαž„β€‹αžŽαžΆβ€‹αž‘αŸ αžαŸ’αž‰αž»αŸ†β€‹αž…αž„αŸ‹β€‹αž˜αžΆαž“β€‹αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜β€‹αž…αž˜αŸ’αž›αž„β€‹αž™αŸ‰αžΆαž„β€‹αž αŸ„αž…β€‹αžŽαžΆαžŸαŸ‹ 2 αž“αŸαŸ‡β€‹αž‡αžΆαž“αž·αž…αŸ’αž…"αŸ”

αž’αŸ’αž“αž€αž’αžΆαž…αž’αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž’αŸ†αž–αžΈαžšαžΏαž„αž“αŸαŸ‡ αž“αŸ…αž‘αžΈαž“αŸαŸ‡.

8. αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž…αŸ’αžšαžΎαž“ αž¬αž”αžšαž·αžŸαŸ’αžαžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„αž…αž„αŸ’αž€αŸ„αž˜αž‘αžΌαž‘αŸ…αž˜αž½αž™αŸ”

αž…αž“αŸ’αž›αŸ„αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡ Kubernetes (αž…αž“αŸ’αž›αŸ„αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡) αž˜αž·αž“αž•αŸ’αžαž›αŸ‹αž’αŸŠαžΈαžŸαžΌαž‘αž„αŸ‹αžšαžΉαž„αž˜αžΆαŸ†.

αž€αžΆαžšαž™αž›αŸ‹αžαž»αžŸαž‡αžΆαž‘αžΌαž‘αŸ…αž‚αžΊαžαžΆ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αž€αžΆαžšαž•αŸ’αž‘αž»αž€αžŠαŸ‚αž›αž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆαž•αž›αž·αžαž•αž›αž‘αŸ…αž€αŸ’αž“αž»αž„ namespace αž˜αž½αž™ αž“αž·αž„αž€αžΆαžšαž•αŸ’αž‘αž»αž€αž•αž›αž·αžαž•αž›αž‘αŸ…αž˜αž½αž™αž•αŸ’αžŸαŸαž„αž‘αŸ€αž αž“αŸ„αŸ‡αž–αž½αž€αžœαžΆ αž“αžΉαž„αž˜αž·αž“αž˜αžΆαž“αž₯αž‘αŸ’αž’αž·αž–αž›αž›αžΎαž‚αŸ’αž“αžΆαž‘αŸ…αžœαž·αž‰αž‘αŸ…αž˜αž€... αž‘αŸ„αŸ‡αž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™ αž€αž˜αŸ’αžšαž·αžαž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž“αŸƒαž—αžΆαž–αž―αž€αŸ„αž’αžΆαž…αžŸαž˜αŸ’αžšαŸαž…αž”αžΆαž“αžŠαŸ„αž™αž”αŸ’αžšαžΎαžŸαŸ†αžŽαžΎαž’αž“αž’αžΆαž“/αžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹ αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž€αžΌαžαžΆ αž“αž·αž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžαŸ’αž“αžΆαž€αŸ‹αž’αžΆαž‘αž·αž—αžΆαž–αŸ” αž—αžΆαž–αž―αž€αŸ„ "αžšαžΆαž„αž€αžΆαž™" αž˜αž½αž™αž…αŸ†αž“αž½αž“αž“αŸ…αž€αŸ’αž“αž»αž„αž™αž“αŸ’αžαž αŸ„αŸ‡αž‘αž·αž“αŸ’αž“αž“αŸαž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžαž›αŸ‹αžŠαŸ„αž™αž—αžΆαž–αžŸαŸ’αž“αž·αž‘αŸ’αž’αžŸαŸ’αž“αžΆαž› αž€αžΆαžšαž’αžαŸ‹αž±αž“ αž€αžΆαžšαž˜αž·αž“αžŸαž”αŸ’αž”αžΆαž™αž…αž·αžαŸ’αž (αž¬αž’αŸ’αž“αž€αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαžαŸ’αž“αžΆαŸ†αž„) αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž€αžΆαžšαž”αŸ†αž”αŸ‚αž€αž”αŸ‚αž”αž“αŸαŸ‡αž‚αžΊαž–αž·αžαž‡αžΆ αž–αž·αž”αžΆαž€ αž’αž“αž»αžœαžαŸ’αžαŸ”

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

9. αž‚αŸ„αž›αž€αžΆαžšαžŽαŸαž…αžšαžΆαž…αžšαžŽαŸαžαžΆαž„αž€αŸ’αžšαŸ…αŸ– αž…αž„αŸ’αž€αŸ„αž˜

αž‡αžΆαž‰αžΉαž€αž‰αžΆαž”αŸ‹αž™αžΎαž„αžƒαžΎαž‰αžαžΆαž…αžšαžΆαž…αžšαžŽαŸαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž…αž„αŸ’αž€αŸ„αž˜αž€αžΎαžαž‘αžΎαž„αžαžΆαž˜αžšαž™αŸˆαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžŠαžΌαž…αž‡αžΆ NodePort αžŠαŸ‚αž›αž‚αŸ„αž›αž€αžΆαžšαžŽαŸαž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹ externalTrafficPolicy: Cluster... αžœαžΆαž˜αžΆαž“αž“αŸαž™αžαžΆ NodePort αž”αžΎαž€αž“αŸ…αž›αžΎαž‚αŸ’αžšαž”αŸ‹αžαŸ’αž“αžΆαŸ†αž„αž€αŸ’αž“αž»αž„αž…αž„αŸ’αž€αŸ„αž˜ αž αžΎαž™αž’αŸ’αž“αž€αž’αžΆαž…αž”αŸ’αžšαžΎαž–αž½αž€αžœαžΆαžŽαžΆαž˜αž½αž™αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαž’αž“αŸ’αžαžšαž€αž˜αŸ’αž˜αž‡αžΆαž˜αž½αž™αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžŠαŸ‚αž›αž…αž„αŸ‹αž”αžΆαž“ (αžŸαŸ†αžŽαž»αŸ†αž“αŸƒαž•αž)αŸ”

αž€αŸ†αž αž»αžŸαž‘αžΌαž‘αŸ… 10 αž“αŸ…αž–αŸαž›αž”αŸ’αžšαžΎ Kubernetes

αž€αŸ’αž“αž»αž„αž–αŸαž›αž‡αžΆαž˜αž½αž™αž‚αŸ’αž“αžΆαž“αŸαŸ‡ αž•αžαžαž›αž–αž·αžαž”αŸ’αžšαžΆαž€αžŠαžŠαŸ‚αž›αž‘αžΆαž€αŸ‹αž‘αž„αž“αžΉαž„αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ NodePort αžŠαŸ‚αž›αž”αžΆαž“αžšαŸ€αž”αžšαžΆαž”αŸ‹αžαžΆαž„αž›αžΎ αž‡αžΆαž’αž˜αŸ’αž˜αžαžΆαž’αžΆαž…αž”αŸ’αžšαžΎαž”αžΆαž“αžαŸ‚αž›αžΎαžŸαŸαžœαžΆαž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž˜αž½αž™αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ” αžŸαŸ†αžŽαž»αŸ†αžšαž„αž“αŸƒαžαŸ’αž“αžΆαŸ†αž„αž‘αžΆαŸ†αž„αž“αŸαŸ‡. αž˜αŸ’αž™αŸ‰αžΆαž„αžœαž·αž‰αž‘αŸ€αž αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžαŸ’αž‰αž»αŸ†αž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ… node αžŠαŸ‚αž›αž˜αž·αž“αž˜αžΆαž“ pod αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž€αžΆαžš αžœαžΆαž“αžΉαž„αž”αž‰αŸ’αž‡αžΌαž“ traffic αž‘αŸ… node αž•αŸ’αžŸαŸαž„αž‘αŸ€αž αž€αžΆαžšαž”αž“αŸ’αžαŸ‚αž˜αž αž” αž“αž·αž„αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž—αžΆαž–αž™αžΊαžαž™αŸ‰αžΆαžœ (αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžαŸ’αž“αžΆαŸ†αž„αžŸαŸ’αžαž·αžαž“αŸ…αž€αŸ’αž“αž»αž„αžαŸ†αž”αž“αŸ‹αžŠαŸ‚αž›αž’αžΆαž…αžšαž€αž”αžΆαž“/αž˜αž‡αŸ’αžˆαž˜αžŽαŸ’αžŒαž›αž‘αž·αž“αŸ’αž“αž“αŸαž™αž•αŸ’αžŸαŸαž„αŸ—αž‚αŸ’αž“αžΆ αž—αžΆαž–αž™αžΊαžαž™αŸ‰αžΆαžœαž’αžΆαž…αžαŸ’αž–αžŸαŸ‹αžŽαžΆαžŸαŸ‹ αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡ αžαŸ’αž›αŸƒαžŠαžΎαž˜αž…αžšαžΆαž…αžšαž“αžΉαž„αž€αžΎαž“αž‘αžΎαž„)αŸ”

αž˜αŸ’αž™αŸ‰αžΆαž„αžœαž·αž‰αž‘αŸ€αž αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ Kubernetes αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž˜αž½αž™αž˜αžΆαž“αž‚αŸ„αž›αž€αžΆαžšαžŽαŸαž€αŸ†αžŽαžαŸ‹ externalTrafficPolicy: Localαž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€ NodePort αž”αžΎαž€αžαŸ‚αž›αžΎαžαŸ’αž“αžΆαŸ†αž„αž‘αžΆαŸ†αž„αž“αŸ„αŸ‡αžŠαŸ‚αž› pods αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž€αžΆαžšαž–αž·αžαž‡αžΆαž€αŸ†αž–αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ” αž“αŸ…αž–αŸαž›αž”αŸ’αžšαžΎαž§αž”αž€αžšαžŽαŸαžαž»αž›αŸ’αž™αž—αžΆαž–αž”αž“αŸ’αž‘αž»αž€αžαžΆαž„αž€αŸ’αžšαŸ…αžŠαŸ‚αž›αž–αž·αž“αž·αžαŸ’αž™αžŸαŸ’αžαžΆαž“αž—αžΆαž– (αž€αžΆαžšαž–αž·αž“αž·αžαŸ’αž™αžŸαž»αžαž—αžΆαž–) αž…αŸ†αžŽαž»αž…αž”αž‰αŸ’αž…αž”αŸ‹ (αžαžΎαžœαžΆαž’αŸ’αžœαžΎαžŠαžΌαž…αž˜αŸ’αžαŸαž… AWS ELB) αž‚αžΆαžαŸ‹ αž“αžΉαž„αž”αž‰αŸ’αž‡αžΌαž“αž…αžšαžΆαž…αžšαžŽαŸαž‘αŸ…αžαŸ’αž“αžΆαŸ†αž„αž…αžΆαŸ†αž”αžΆαž…αŸ‹αžαŸ‚αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αžŠαŸ‚αž›αž“αžΉαž„αž˜αžΆαž“αž₯αž‘αŸ’αž’αž·αž–αž›αž‡αž“αŸαž›αžΎαž€αžΆαžšαž–αž“αŸ’αž™αžΆαžšαž–αŸαž› αžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαž€αŸ’αž“αž»αž„αž€αžΆαžšαž‚αžŽαž“αžΆ αžœαž·αž€αŸαž™αž”αŸαžαŸ’αžšαž…αŸαž‰ (αž“αž·αž„αžŸαž»αž—αžœαž·αž“αž·αž…αŸ’αž†αŸαž™αž€αŸ†αžŽαžαŸ‹αžŠαžΌαž…αž‚αŸ’αž“αžΆ)αŸ”

αž˜αžΆαž“αž±αž€αžΆαžŸαžαŸ’αž–αžŸαŸ‹αžŠαŸ‚αž›αž’αŸ’αž“αž€αž€αŸ†αž–αž»αž„αž”αŸ’αžšαžΎαž’αŸ’αžœαžΈαž˜αž½αž™αžŠαžΌαž…αž‡αžΆ αžαŸ’αžšαŸαž αŸ’αžœαž·αž€ ឬ nginx-ingress-controller αž‡αžΆαž…αŸ†αžŽαž»αž…αž”αž‰αŸ’αž…αž”αŸ‹ NodePort (ឬ LoadBalancer αžŠαŸ‚αž›αž”αŸ’αžšαžΎ NodePort αž•αž„αžŠαŸ‚αžš) αžŠαžΎαž˜αŸ’αž”αžΈαž”αž‰αŸ’αž‡αžΌαž“αž…αžšαžΆαž…αžšαž…αžΌαž› HTTP αž αžΎαž™αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž‡αž˜αŸ’αžšαžΎαžŸαž“αŸαŸ‡αž’αžΆαž…αž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αž—αžΆαž–αž™αžΊαžαž™αŸ‰αžΆαžœαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸ†αžŽαžΎαž”αŸ‚αž”αž“αŸαŸ‡αŸ”

Π’ αž€αžΆαžšαž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–αž•αŸ’αžŸαžΆαž™αž“αŸαŸ‡αŸ” αž’αŸ’αž“αž€αž’αžΆαž…αžŸαŸ’αžœαŸ‚αž„αž™αž›αŸ‹αž”αž“αŸ’αžαŸ‚αž˜αž’αŸ†αž–αžΈ ExternalTrafficPolicy αž‚αž»αžŽαžŸαž˜αŸ’αž”αžαŸ’αžαž· αž“αž·αž„αž‚αž»αžŽαžœαž·αž”αžαŸ’αžαž·αžšαž”αžŸαŸ‹αžœαžΆαŸ”

10. αž€αž»αŸ†αž…αž„αž‡αžΆαž”αŸ‹αž“αžΉαž„αž…αž„αŸ’αž€αŸ„αž˜ αž αžΎαž™αž€αž»αŸ†αž”αŸ†αž–αžΆαž“αž›αžΎαž™αž“αŸ’αžαž αŸ„αŸ‡αž”αž‰αŸ’αž‡αžΆ

αž€αžΆαž›αž–αžΈαž˜αž»αž“ αžœαžΆαž‡αžΆαž‘αž˜αŸ’αž›αžΆαž”αŸ‹αž€αŸ’αž“αž»αž„αž€αžΆαžšαž αŸ…αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžαžΆαž˜αžˆαŸ’αž˜αŸ„αŸ‡αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαŸ– αž›αŸ„αž€ Anton, HAL9000 αž“αž·αž„ Colossus... αžŸαž–αŸ’αžœαžαŸ’αž„αŸƒαž“αŸαŸ‡αž–αž½αž€αž‚αŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αž‡αŸ†αž“αž½αžŸαžŠαŸ„αž™αž§αž”αž€αžšαžŽαŸαž€αŸ†αžŽαžαŸ‹αž’αžαŸ’αžαžŸαž‰αŸ’αž‰αžΆαžŽαžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαžŠαŸ„αž™αž…αŸƒαžŠαž“αŸ’αž™αŸ” αž‘αŸ„αŸ‡αž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™ αž‘αŸ†αž›αžΆαž”αŸ‹αž“αŸ…αžαŸ‚αž˜αžΆαž“ αž αžΎαž™αž₯αž‘αžΌαžœαž“αŸαŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαž‘αŸ…αž…αž„αŸ’αž€αŸ„αž˜αŸ”

αžšαžΏαž„αž’αž˜αŸ’αž˜αžαžΆ (αž•αŸ’αž’αŸ‚αž€αž›αžΎαž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž–αž·αž)αŸ– αžœαžΆαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž”αžΆαž“αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžŠαŸ„αž™αž—αžŸαŸ’αžαž»αžαžΆαž„αž“αŸƒαž‚αŸ†αž“αž·αž αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž…αž„αŸ’αž€αŸ„αž˜αž˜αžΆαž“αžˆαŸ’αž˜αŸ„αŸ‡αž˜αŸ„αž‘αž“αž—αžΆαž– αž€αžΆαžšβ€‹αž’αŸ’αžœαžΎβ€‹αžαŸβ€‹αžŸαŸ’αžβ€¦ αž‡αžΆαž…αŸ’αžšαžΎαž“αž†αŸ’αž“αžΆαŸ†αž”αžΆαž“αž€αž“αŸ’αž›αž„αž•αž»αžαž‘αŸ…αž αžΎαž™ αž αžΎαž™αžœαžΆαž“αŸ…αžαŸ‚αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž€αŸ’αž“αž»αž„αž•αž›αž·αžαž€αž˜αŸ’αž˜ αž αžΎαž™αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αž“αžΆαžαŸ’αž›αžΆαž…αž”αŸ‰αŸ‡αžœαžΆαŸ”

αž˜αž·αž“αž˜αžΆαž“αž’αŸ’αžœαžΈαžŸαž”αŸ’αž”αžΆαž™αž‘αŸαž’αŸ†αž–αžΈαž…αž„αŸ’αž€αŸ„αž˜αžŠαŸ‚αž›αž”αŸ’αžšαŸ‚αž‘αŸ…αž‡αžΆαžŸαžαŸ’αžœαž…αž·αž‰αŸ’αž…αžΉαž˜ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž™αžΎαž„αžŸαžΌαž˜αžŽαŸ‚αž“αžΆαŸ†αž±αŸ’αž™αžŠαž€αž–αž½αž€αžœαžΆαž…αŸαž‰αž‡αžΆαž”αŸ’αžšαž…αžΆαŸ† αžαžŽαŸˆαž–αŸαž›αž€αŸ†αž–αž»αž„αž’αž“αž»αžœαžαŸ’αž αž€αžΆαžšαžŸαž„αŸ’αž‚αŸ’αžšαŸ„αŸ‡αž‚αŸ’αžšαŸ„αŸ‡αž˜αž αž“αŸ’αžαžšαžΆαž™ (αž“αŸαŸ‡αž“αžΉαž„αž‡αž½αž™ αžœαž·αžŸαŸ’αžœαž€αž˜αŸ’αž˜αžœαžΉαž€αžœαžš - αž”αŸ’αžšαž αŸ‚αž› αž”αž€αž”αŸ’αžšαŸ‚αŸ” ). αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡αž‘αŸ€αžαžœαžΆαž“αžΉαž„αž˜αž·αž“αžˆαžΊαž…αžΆαž”αŸ‹αž€αŸ’αž“αž»αž„αž€αžΆαžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αžΎαžŸαŸ’αžšαž‘αžΆαž”αŸ‹αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž‘αŸαŸ” (αž™αž“αŸ’αžαž αŸ„αŸ‡αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„). αž€αžΆαžšαž—αŸαž™αžαŸ’αž›αžΆαž…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αŸ‰αŸ‡αž‚αžΆαžαŸ‹αž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆαžŸαž‰αŸ’αž‰αžΆαž›αŸ’αž’αž‘αŸαŸ” αž›αŸ” αžŸαŸ’αž›αžΆαž”αŸ‹? αž”αž»αžšαžŸβ€‹αž’αŸ’αž“αž€β€‹αž–αž·αžβ€‹αž‡αžΆβ€‹αž˜αžΆαž“β€‹αž”αž‰αŸ’αž αžΆβ€‹!

αž˜αŸ‰αŸ’αž™αžΆαž„αžœαž·αž‰αž‘αŸ€αž αž’αŸ’αž“αž€αž˜αž·αž“αž‚αž½αžšαž™αž€αžœαžΆαž‘αŸ…αž”αž‰αŸ’αž†αŸ„αžαž‘αžΎαž™αŸ” αž‡αžΆαž˜αž½αž™β€‹αž“αžΉαž„β€‹αž–αŸαž›β€‹αžœαŸαž›αžΆ αžŸαŸ’αžšαž‘αžΆαž”αŸ‹αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž’αžΆαž…αž™αžΊαž. αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž‘αŸ†αž“αž„αž‡αžΆαž“αŸαŸ‡αž‚αžΊαžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αžœαžαŸ’αžαž»αž˜αž½αž™αž…αŸ†αž“αž½αž“αž’αŸ†αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αž€αžΆαžšαž”αž„αŸ’αžœαž·αž›αžšαž”αžŸαŸ‹αžœαžΆ (αžŸαŸ’αžαžΆαž“αž—αžΆαž–αž‘αžΌαž‘αŸ…αž“αŸ…αž–αŸαž›αž”αŸ’αžšαžΎ Helm αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜ αžŠαŸ‚αž›αž‡αžΆαž˜αžΌαž›αž αŸαžαž»αžŠαŸ‚αž›αžŸαŸ’αžαžΆαž“αž—αžΆαž–αžšαž”αžŸαŸ‹αžœαžΆαž“αŸ…αž€αŸ’αž“αž»αž„ configmaps/secrets αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž– - αž‡αžΆαž›αž‘αŸ’αž’αž•αž› αžœαžαŸ’αžαž»αžšαžΆαž”αŸ‹αž–αžΆαž“αŸ‹αž”αžΆαž“αž”αŸ’αžšαž˜αžΌαž›αž•αŸ’αžαž»αŸ†αž“αŸ…αž€αŸ’αž“αž»αž„ αžŸαŸ’αžšαž‘αžΆαž”αŸ‹αžœαžαŸ’αžαž»αž”αž‰αŸ’αž‡αžΆ) αž¬αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž€αŸ‚αžŸαž˜αŸ’αžšαž½αž›αžαŸαžšαž“αŸƒαžœαžαŸ’αžαž» kube-api (αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž’αŸ’αžœαžΎαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž· αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ CI/CD αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™ αž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸ αž§αž”αž€αžšαžŽαŸαž”αž‰αŸ’αž‡αžΆαŸ”αž›αŸ”)αŸ”

αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡ αž™αžΎαž„αžŸαžΌαž˜αžŽαŸ‚αž“αžΆαŸ†αž±αŸ’αž™αž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αž€αž·αž…αŸ’αž…αž–αŸ’αžšαž˜αž–αŸ’αžšαŸ€αž„ SLA/SLO αž‡αžΆαž˜αž½αž™αž’αŸ’αž“αž€αž•αŸ’αžαž›αŸ‹αžŸαŸαžœαžΆ Kubernetes αžŠαŸ‚αž›αž”αžΆαž“αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„ αž αžΎαž™αž™αž€αž…αž·αžαŸ’αžαž‘αž»αž€αžŠαžΆαž€αŸ‹αž›αžΎαž€αžΆαžšαž’αžΆαž“αžΆαŸ” αž’αŸ’αž“αž€αž›αž€αŸ‹αž’αžΆαž…αž’αžΆαž“αžΆαž”αžΆαž“αŸ” αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž—αžΆαž–αž’αžΆαž…αžšαž€αž”αžΆαž“αž“αŸƒαžŸαŸ’αžšαž‘αžΆαž”αŸ‹ (αž¬αžŸαž˜αžΆαžŸαž’αžΆαžαž»αžšαž„αžšαž”αžŸαŸ‹αžœαžΆ) αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆαž€αžΆαžšαž–αž“αŸ’αž™αžΆαžšαž–αŸαž› p99 αž“αŸƒαžŸαŸ†αžŽαžΎαžŠαŸ‚αž›αž’αŸ’αž“αž€αž•αŸ’αž‰αžΎαž‘αŸ…αžœαžΆαž“αŸ„αŸ‡αž‘αŸαŸ” αž“αŸ…αž€αŸ’αž“αž»αž„αž–αžΆαž€αŸ’αž™αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž’αŸ’αž“αž€αž’αžΆαž…αž…αžΌαž› kubectl get nodesαž αžΎαž™αž‘αž‘αž½αž›αž”αžΆαž“αž…αž˜αŸ’αž›αžΎαž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈ 10 αž“αžΆαž‘αžΈαž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡ αž αžΎαž™αž“αŸαŸ‡αž“αžΉαž„αž˜αž·αž“αž‡αžΆαž€αžΆαžšαž”αŸ†αž–αžΆαž“αž›αžΎαž›αž€αŸ’αžαžαžŽαŸ’αžŒαž“αŸƒαž€αž·αž…αŸ’αž…αž–αŸ’αžšαž˜αž–αŸ’αžšαŸ€αž„αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž“αŸ„αŸ‡αž‘αŸαŸ”

11. αž”αŸ’αžšαžΆαž€αŸ‹αžšαž„αŸ’αžœαžΆαž“αŸ‹αŸ– αžŠαŸ„αž™αž”αŸ’αžšαžΎαžŸαŸ’αž›αžΆαž€αž…αž»αž„αž€αŸ’αžšαŸ„αž™αž”αŸ†αž•αž»αžαŸ”

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

ECR αžšαž€αŸ’αžŸαžΆαž—αžΆαž–αž˜αž·αž“αž”αŸ’αžšαŸ‚αž”αŸ’αžšαž½αž›αž“αŸƒαžŸαŸ’αž›αžΆαž€αžšαžΌαž”αž—αžΆαž–; αž™αžΎαž„αžŽαŸ‚αž“αžΆαŸ†αž’αŸ’αž“αž€αž±αŸ’αž™αžŸαŸ’αž‚αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αž’αŸ’αž“αž€αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž˜αž»αžαž„αžΆαžšαžŠαŸαž‚αž½αžšαž±αŸ’αž™αž€αžαŸ‹αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αž“αŸαŸ‡αŸ”

αžŸαž„αŸ’αžαŸαž”

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

αž’αŸ’αž“αž€αž’αžΆαž…αžŸαŸ’αž‚αžΆαž›αŸ‹αž–αžΈαž”αž‘αž–αž·αžŸαŸ„αž’αž“αŸαž˜αž·αž“αž‡αŸ„αž‚αž‡αŸαž™αžšαž”αžŸαŸ‹αž€αŸ’αžšαž»αž˜αž•αŸ’αžŸαŸαž„αŸ—αž“αŸ…αž€αŸ’αž“αž»αž„ αž€αžΆαžšαž”αŸ’αžšαž˜αžΌαž›αž•αŸ’αžŠαž»αŸ†αž“αŸƒαžšαžΏαž„αžšαŸ‰αžΆαžœαž“αŸαŸ‡αŸ” αžŠαŸ„αž™ Henning JacobsαŸ”

αž’αŸ’αž“αž€β€‹αžŠαŸ‚αž›β€‹αž…αž„αŸ‹β€‹αž”αž“αŸ’αžαŸ‚αž˜β€‹αž‘αŸ…β€‹αž€αŸ’αž“αž»αž„β€‹αž”αž‰αŸ’αž‡αžΈβ€‹αž“αŸƒβ€‹αž€αŸ†αž αž»αžŸβ€‹αžŠαŸ‚αž›β€‹αž”αžΆαž“β€‹αž•αŸ’αžŠαž›αŸ‹β€‹αž±αŸ’αž™β€‹αž€αŸ’αž“αž»αž„β€‹αž’αžαŸ’αžαž”αž‘β€‹αž“αŸαŸ‡β€‹αž’αžΆαž…β€‹αž‘αžΆαž€αŸ‹αž‘αž„β€‹αž˜αž€β€‹αž™αžΎαž„β€‹αž“αŸ…β€‹αž›αžΎ Twitter (@MarekBartik, @MstrsObserver).

PS αž–αžΈαž’αŸ’αž“αž€αž”αž€αž”αŸ’αžšαŸ‚

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

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

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