αžŸαŸ€αžœαž—αŸ… β€œKubernetes for DevOps”

αžŸαŸ€αžœαž—αŸ… β€œKubernetes for DevOps” αž‡αŸ†αžšαžΆαž”αžŸαž½αžšαž’αŸ’αž“αž€αžŸαŸ’αžšαž»αž€ Khabro! Kubernetes αž‚αžΊαž‡αžΆαž’αžΆαžαž»αžŸαŸ†αžαžΆαž“αŸ‹αž˜αž½αž™αž“αŸƒαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž’αŸαž€αžΌαž‘αžΌαžŸαŸŠαžΈαž–αž–αž€αž‘αŸ†αž“αžΎαž”αŸ” αž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆαž“αŸαŸ‡αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž—αžΆαž–αž‡αžΏαž‡αžΆαž€αŸ‹ αž€αžΆαžšαž’αŸ’αžœαžΎαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“ αž“αž·αž„αž—αžΆαž–αž’αž“αŸ‹αž‘αŸ…αž“αžΉαž„αž“αž·αž˜αŸ’αž˜αž·αžαž€αž»αž„αžαžΊαž“αŸαžšαŸ” John Arundel αž“αž·αž„ Justin Domingus αž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž’αŸαž€αžΌ Kubernetes αž“αž·αž„αžŽαŸ‚αž“αžΆαŸ†αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŠαŸ‚αž›αž”αž„αŸ’αž αžΆαž‰αž±αŸ’αž™αžƒαžΎαž‰αž…αŸ†αž–αŸ„αŸ‡αž”αž‰αŸ’αž αžΆαž”αŸ’αžšαž…αžΆαŸ†αžαŸ’αž„αŸƒαŸ” αž˜αž½αž™αž‡αŸ†αž αžΆαž“αž˜αŸ’αžαž„αŸ— αž’αŸ’αž“αž€αž“αžΉαž„αž”αž„αŸ’αž€αžΎαžαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ cloud-native αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ αž“αž·αž„αž”αž„αŸ’αž€αžΎαžαž αŸαžŠαŸ’αž‹αžΆαžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžŠαžΎαž˜αŸ’αž”αžΈαž‚αžΆαŸ†αž‘αŸ’αžšαžœαžΆ αžšαŸ€αž”αž…αŸ†αž”αžšαž·αž™αžΆαž€αžΆαžŸαž’αž—αž·αžœαžŒαŸ’αžαž“αŸ αž“αž·αž„αž”αŸ†αž–αž„αŸ‹αž…αŸ‚αž€αž…αžΆαž™αž”αž“αŸ’αžαžŠαŸ‚αž›αž“αžΉαž„αž‡αž½αž™αž’αŸ’αž“αž€αž“αŸ…αž–αŸαž›αž’αŸ’αž“αž€αž’αŸ’αžœαžΎαž€αžΆαžšαž›αžΎαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž“αŸ’αž‘αžΆαž”αŸ‹αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ”

β€’ αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž‡αžΆαž˜αž½αž™αž€αž»αž„αžαžΊαž“αŸαžš αž“αž·αž„ Kubernetes αž–αžΈαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‚αŸ’αžšαžΉαŸ‡αŸ– αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž˜αžΆαž“αž”αž‘αž–αž·αžŸαŸ„αž’αž“αŸαž–αž·αžŸαŸαžŸαžŠαžΎαž˜αŸ’αž”αžΈαžšαŸ€αž“αž”αŸ’αžšαž’αžΆαž“αž”αž‘αž“αŸ„αŸ‡αž‘αŸαŸ” β€’ αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αŸ’αžšαž»αž˜αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ αž¬αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ Kubernetes αžŠαŸ‚αž›αž”αžΆαž“αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž–αžΈ Amazon, Google αŸ”αž›αŸ” β€’ αž”αŸ’αžšαžΎ Kubernetes αžŠαžΎαž˜αŸ’αž”αžΈαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžœαžŠαŸ’αžαž‡αžΈαžœαž·αžαž€αž»αž„αžαžΊαž“αŸαžš αž“αž·αž„αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž’αž“αž’αžΆαž“αŸ” β€’ αž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž€αŸ’αžšαž»αž˜αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαž€αžΆαžšαž…αŸ†αžŽαžΆαž™ αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž αž—αžΆαž–αž’αž“αŸ‹ αžαžΆαž˜αž–αž› αž“αž·αž„αž›αž‘αŸ’αž’αž—αžΆαž–αž’αŸ’αžœαžΎαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“αŸ” β€’ αžŸαŸ’αžœαŸ‚αž„αž™αž›αŸ‹αž–αžΈαž§αž”αž€αžšαžŽαŸαž›αŸ’αž’αž”αŸ†αž•αž»αžαžŠαžΎαž˜αŸ’αž”αžΈαž’αž—αž·αžœαžŒαŸ’αž αžŸαžΆαž€αž›αŸ’αž”αž„ αž“αž·αž„αžŠαžΆαž€αŸ‹αž±αŸ’αž™αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ” β€’ αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž§αžŸαŸ’αžŸαžΆαž αž€αž˜αŸ’αž˜αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“ αžŠαžΎαž˜αŸ’αž”αžΈαž’αžΆαž“αžΆαžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž– αž“αž·αž„αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αŸ” β€’ αž’αž“αž»αžœαžαŸ’αžαž‚αŸ„αž›αž€αžΆαžšαžŽαŸ DevOps αž“αŸ…αž‘αžΌαž‘αžΆαŸ†αž„αž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ αžŠαžΎαž˜αŸ’αž”αžΈαž±αŸ’αž™αž€αŸ’αžšαž»αž˜αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž’αžΆαž…αž’αŸ’αžœαžΎαžŸαž€αž˜αŸ’αž˜αž—αžΆαž–αž€αžΆαž“αŸ‹αžαŸ‚αž˜αžΆαž“αž—αžΆαž–αž”αžαŸ‹αž”αŸ‚αž“ រហ័ស αž“αž·αž„αž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αŸ”

αžαžΎαžŸαŸ€αžœαž—αŸ…αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αžŽαžΆ?

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

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

αžαžΎαžŸαŸ€αžœαž—αŸ…αž†αŸ’αž›αžΎαž™αžŸαŸ†αžŽαž½αžšαž’αŸ’αžœαžΈαžαŸ’αž›αŸ‡?

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

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

αž αžΎαž™αž”αŸ’αžšαž αŸ‚αž›αž‡αžΆαžŸαŸ†αžαžΆαž“αŸ‹αž”αŸ†αž•αž»αžαž“αŸƒαžŸαŸ†αžŽαž½αžšαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ–

  • "αžαžΎαžαŸ’αž‰αž»αŸ†αž’αžΆαž…αž”αŸ’αžšαžΎ Kubernetes αžŠαŸ„αž™αž˜αž·αž“αžšαŸ†αžαžΆαž“αž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“αžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ†αžŠαŸ„αž™αžšαž”αŸ€αž”αžŽαžΆ?"

αžŠαž€αžŸαŸ’αžšαž„αŸ‹αŸ” αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ αž“αž·αž„αžœαžαŸ’αžαž»αžŸαž˜αŸ’αž„αžΆαžαŸ‹

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

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

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

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

αž€αŸ†αž–αž»αž„αž’αžΆαž”αŸ‹αžŠαŸαžαžŸαŸ†αž”αž€αž•αž αž“αŸ…αž–αŸαž›αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžš

αžŸαŸ’αžšαž˜αŸƒαžαžΆαž’αŸ’αž“αž€αž˜αžΆαž“αž€αžΆαžšαžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αž“αŸ…αž€αŸ’αž“αž»αž„αž…αž„αŸ’αž€αŸ„αž˜αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ αž αžΎαž™αž’αŸ’αž“αž€αž…αž„αŸ‹αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžαž˜αŸ’αž›αŸƒαž˜αž½αž™αž…αŸ†αž“αž½αž“αž“αŸ…αž€αŸ’αž“αž»αž„ ConfigMap αžšαž”αžŸαŸ‹αžœαžΆαŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž‚αŸ†αž“αžΌαžŸαžαžΆαž„ Helm (αžŸαžΌαž˜αž˜αžΎαž› β€œHelm: Package Manager for Kubernetes” αž“αŸ…αž‘αŸ†αž–αŸαžš 102) αž’αŸ’αž“αž€αž’αžΆαž…αžšαž€αžƒαžΎαž‰αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž· αž αžΎαž™αž•αŸ’αž‘αž»αž€αžŸαŸ†αž”αž€ pod αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž‘αžΎαž„αžœαž·αž‰αž€αŸ’αž“αž»αž„αž›αŸ’αž”αž·αž…αžŠαŸαžŸαŸ’αž’αžΆαžαž˜αž½αž™αŸ” αž”αž“αŸ’αžαŸ‚αž˜αž…αŸ†αžŽαžΆαžšαž–αž“αŸ’αž™αž›αŸ‹αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αž‘αŸ…αž“αžΉαž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž“αŸƒαž€αžΆαžšαžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ–

checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") .
       | sha256sum }}

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

αž‘αž·αž“αŸ’αž“αž“αŸαž™αžšαžŸαžΎαž”αž“αŸ…αž€αŸ’αž“αž»αž„ Kubernetes

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

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

αžŠαžΎαž˜αŸ’αž”αžΈαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜ αžŸαžΌαž˜αž˜αžΎαž›αž€αžΆαžšαž”αž„αŸ’αž αžΆαž‰ Kubernetes αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžœαžαŸ’αžαž»αžŸαž˜αŸ’αž„αžΆαžαŸ‹ (αžŸαžΌαž˜αž˜αžΎαž› hello-secret-env/k8s/secret.yaml)αŸ–

apiVersion: v1
kind: Secret
metadata:
    name: demo-secret
stringData:
    magicWord: xyzzy

αž€αŸ’αž“αž»αž„αž§αž‘αžΆαž αžšαžŽαŸαž“αŸαŸ‡ αžŸαŸ„αž―αž€αž‡αž“αž“αŸƒαž–αžΆαž€αŸ’αž™αžœαŸαž‘αž˜αž“αŸ’αžαž‚αžΊ xyzzy (en.wikipedia.org/wiki/Xyzzy_(computing))αŸ” αž–αžΆαž€αŸ’αž™ xyzzy αž‡αžΆαž‘αžΌαž‘αŸ…αž˜αžΆαž“αž”αŸ’αžšαž™αŸ„αž‡αž“αŸαžαŸ’αž›αžΆαŸ†αž„αžŽαžΆαžŸαŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž–αž·αž—αž–αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαŸ” αžŸαŸ’αžšαžŠαŸ€αž„αž‘αŸ…αž“αžΉαž„ ConfigMap αž’αŸ’αž“αž€αž’αžΆαž…αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αžŸαŸ„ αž“αž·αž„αžαž˜αŸ’αž›αŸƒαž‡αžΆαž…αŸ’αžšαžΎαž“αž“αŸ…αž€αŸ’αž“αž»αž„αžœαžαŸ’αžαž»αžŸαž˜αŸ’αž„αžΆαžαŸ‹αž˜αž½αž™αŸ” αž“αŸ…αž‘αžΈαž“αŸαŸ‡ αžŠαžΎαž˜αŸ’αž”αžΈαž—αžΆαž–αžŸαžΆαž˜αž‰αŸ’αž‰ αž™αžΎαž„αž”αŸ’αžšαžΎαž‚αžΌαžαž˜αŸ’αž›αŸƒαžαž˜αŸ’αž›αŸƒαžαŸ‚αž˜αž½αž™αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ”

αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžœαžαŸ’αžαž»αžŸαž˜αŸ’αž„αžΆαžαŸ‹αž‡αžΆαž’αžαŸαžšαž”αžšαž·αžŸαŸ’αžαžΆαž“

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

spec:
   containers:
       - name: demo
          image: cloudnatived/demo:hello-secret-env
          ports:
             - containerPort: 8888
          env:
             - name: GREETING
               valueFrom:
               secretKeyRef:
                  name: demo-secret
                  key: magicWord

αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžαžΆαž„αž€αŸ’αžšαŸ„αž˜αž“αŸ…αž€αŸ’αž“αž»αž„αžƒαŸ’αž›αžΆαŸ†αž„αžŸαžΆαž€αž›αŸ’αž”αž„ αžŠαžΎαž˜αŸ’αž”αžΈαž’αž“αž»αžœαžαŸ’αž manifestsαŸ–

kubectl apply -f hello-secret-env/k8s/
deployment.extensions "demo" configured
secret "demo-secret" created

αžŠαžΌαž…αž–αžΈαž˜αž»αž“ αž”αž‰αŸ’αž‡αžΌαž“αž…αŸ’αžšαž€αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αŸ…αž€αžΆαž“αŸ‹αž€αžΆαžšαžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™ αžŠαžΎαž˜αŸ’αž”αžΈαž˜αžΎαž›αž›αž‘αŸ’αž’αž•αž›αž“αŸ…αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž»αž€αžšαž€αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ–

kubectl port-forward deploy/demo 9999:8888
Forwarding from 127.0.0.1:9999 -> 8888
Forwarding from [::1]:9999 -> 8888

αž“αŸ…αž–αŸαž›αž”αžΎαž€αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“ localhost:9999/ αž’αŸ’αž“αž€αž‚αž½αžšαžαŸ‚αžƒαžΎαž‰αžŠαžΌαž…αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸ–

The magic word is "xyzzy"

αž€αžΆαžšαžŸαžšαžŸαŸαžšαžœαžαŸ’αžαž»αžŸαž˜αŸ’αž„αžΆαžαŸ‹αž‘αŸ…αž€αŸ’αž“αž»αž„αž―αž€αžŸαžΆαžš

αž€αŸ’αž“αž»αž„αž§αž‘αžΆαž αžšαžŽαŸαž“αŸαŸ‡ αž™αžΎαž„αž“αžΉαž„αž—αŸ’αž‡αžΆαž”αŸ‹αžœαžαŸ’αžαž»αžŸαž˜αŸ’αž„αžΆαžαŸ‹αž‘αŸ…αž€αž»αž„αžαžΊαž“αŸαžšαž‡αžΆαž―αž€αžŸαžΆαžšαŸ” αž›αŸαžαž€αžΌαžŠαž˜αžΆαž“αž‘αžΈαžαžΆαŸ†αž„αž“αŸ…αž€αŸ’αž“αž»αž„αžαžαž―αž€αžŸαžΆαžš hello-secret-file αž“αŸƒαžƒαŸ’αž›αžΆαŸ†αž„αžŸαžΆαž€αž›αŸ’αž”αž„αŸ”

αžŠαžΎαž˜αŸ’αž”αžΈαž—αŸ’αž‡αžΆαž”αŸ‹ Secret αž‡αžΆαž―αž€αžŸαžΆαžš αž™αžΎαž„αž“αžΉαž„αž”αŸ’αžšαžΎαž€αžΆαžšαžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸ–

spec:
   containers:
       - name: demo
          image: cloudnatived/demo:hello-secret-file
          ports:
              - containerPort: 8888
          volumeMounts:
              - name: demo-secret-volume
                mountPath: "/secrets/"
                readOnly: true
   volumes:
      - name: demo-secret-volume
        secret:
           secretName: demo-secret

αžŠαžΌαž…αž“αŸ…αž€αŸ’αž“αž»αž„αž•αŸ’αž“αŸ‚αž€αžšαž„ "αž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαž―αž€αžŸαžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž–αžΈαžœαžαŸ’αžαž» ConfigMap" αž“αŸ…αž›αžΎαž‘αŸ†αŸ” 240 αž™αžΎαž„αž”αž„αŸ’αž€αžΎαžαž€αž˜αŸ’αžšαž·αžαžŸαŸ†αž‘αŸαž„ (αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž“αŸαŸ‡ demo-secret-volume) αž αžΎαž™αž—αŸ’αž‡αžΆαž”αŸ‹αžœαžΆαž‘αŸ…αž€αž»αž„αžαžΊαž“αŸαžšαž€αŸ’αž“αž»αž„αž•αŸ’αž“αŸ‚αž€ volumeMounts αž“αŸƒαž€αžΆαžšαž”αž‰αŸ’αž‡αžΆαž€αŸ‹αŸ” αžœαžΆαž› mountPath αž‚αžΊ /secrets αžŠαžΌαž…αŸ’αž“αŸαŸ‡ Kubernetes αž“αžΉαž„αž”αž„αŸ’αž€αžΎαžαž―αž€αžŸαžΆαžšαž˜αž½αž™αž“αŸ…αž€αŸ’αž“αž»αž„αžαžαž“αŸαŸ‡αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‚αžΌ key/value αž“αžΈαž˜αž½αž™αŸ—αžŠαŸ‚αž›αž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž€αŸ’αž“αž»αž„ Secret objectαŸ”

αž€αŸ’αž“αž»αž„αž§αž‘αžΆαž αžšαžŽαŸαžšαž”αžŸαŸ‹αž™αžΎαž„ αž™αžΎαž„αž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αžαŸ‚αž‚αžΌαžαž˜αŸ’αž›αŸƒ key-value αž˜αž½αž™αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αžŠαŸ‚αž›αž αŸ…αžαžΆ magicWord αžŠαžΌαž…αŸ’αž“αŸαŸ‡ manifest αž“αžΉαž„αž”αž„αŸ’αž€αžΎαž file /secrets/magicWord αžŠαŸ‚αž›αž’αžΆαž“αž”αžΆαž“αžαŸ‚αž˜αž½αž™αž‡αžΆαž˜αž½αž™αž‘αž·αž“αŸ’αž“αž“αŸαž™αžšαžŸαžΎαž”αž“αŸ…αž€αŸ’αž“αž»αž„αž€αž»αž„αžαžΊαž“αŸαžšαŸ”

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž’αž“αž»αžœαžαŸ’αž manifest αž“αŸαŸ‡αžαžΆαž˜αžšαž”αŸ€αž”αžŠαžΌαž…αž‚αŸ’αž“αžΆαž“αžΉαž„αž§αž‘αžΆαž αžšαžŽαŸαž˜αž»αž“ αž’αŸ’αž“αž€αž‚αž½αžšαžαŸ‚αž‘αž‘αž½αž›αž”αžΆαž“αž›αž‘αŸ’αž’αž•αž›αžŠαžΌαž…αž‚αŸ’αž“αžΆαŸ–

The magic word is "xyzzy"

αž€αžΆαžšαž’αžΆαž“αžœαžαŸ’αžαž»αžŸαž˜αŸ’αž„αžΆαžαŸ‹

αž“αŸ…αž€αŸ’αž“αž»αž„αž•αŸ’αž“αŸ‚αž€αž˜αž»αž“ αž™αžΎαž„αž”αžΆαž“αž”αŸ’αžšαžΎαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ kubectl describe αžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž αžΆαž‰αž˜αžΆαžαž·αž€αžΆαž“αŸƒ ConfigMap αŸ” αžαžΎαž’αžΆαž…αž’αŸ’αžœαžΎαžŠαžΌαž…αž‚αŸ’αž“αžΆαž‡αžΆαž˜αž½αž™ Secret αž”αžΆαž“αž‘αŸ?

kubectl describe secret/demo-secret
Name:          demo-secret

Namespace:      default
Labels:             <none>
Annotations:
Type:               Opaque

Data
====
magicWord: 5   bytes

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

αžŠαžΎαž˜αŸ’αž”αžΈαž˜αžΎαž›αž€αŸ†αžŽαŸ‚ YAML αžŠαŸ‚αž›αž”αžΆαž“αž’αŸŠαž·αž“αž€αžΌαžŠαž“αŸƒαž‘αž·αž“αŸ’αž“αž“αŸαž™αžšαžŸαžΎαž” αžŸαžΌαž˜αž”αŸ’αžšαžΎαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ kubectl getαŸ–

kubectl get secret/demo-secret -o yaml
apiVersion: v1
data:
   magicWord: eHl6enk=
kind: Secret
metadata:
...
type: Opaque

αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“ 64

αžαžΎαž’αŸ’αžœαžΈαž‘αŸ…αž‡αžΆ eHl6enk= αžαž»αžŸαž‚αŸ’αž“αžΆαž‘αžΆαŸ†αž„αžŸαŸ’αžšαž»αž„αž–αžΈαžαž˜αŸ’αž›αŸƒαžŠαžΎαž˜αžšαž”αžŸαŸ‹αž™αžΎαž„? αž“αŸαŸ‡αž–αž·αžαž‡αžΆαžœαžαŸ’αžαž»αžŸαž˜αŸ’αž„αžΆαžαŸ‹ αžŠαŸ‚αž›αžαŸ†αžŽαžΆαž„αž±αŸ’αž™αž€αžΆαžšαž’αŸŠαž·αž“αž€αžΌαžŠ base64 αŸ” Base64 αž‚αžΊαž‡αžΆαž‚αŸ’αžšαŸ„αž„αž€αžΆαžšαžŽαŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž’αŸŠαž·αž“αž€αžΌαžŠαž‘αž·αž“αŸ’αž“αž“αŸαž™αž‚αŸ„αž›αž–αžΈαžšαžαžΆαž˜αž’αŸ†αž–αžΎαž…αž·αžαŸ’αžαž‡αžΆαžαŸ’αžŸαŸ‚αž’αž€αŸ’αžŸαžšαŸ”

αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αž–αŸαžαŸŒαž˜αžΆαž“αžšαžŸαžΎαž”αž’αžΆαž…αž‡αžΆαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‚αŸ„αž›αž–αžΈαžš αž“αž·αž„αž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆαž›αž‘αŸ’αž’αž•αž› (αžŠαžΌαž…αž€αžšαžŽαžΈαž‡αžΆαž˜αž½αž™αžŸαŸ„αž’αŸŠαž·αž“αž‚αŸ’αžšαžΈαž” TLS) αžœαžαŸ’αžαž»αžŸαž˜αŸ’αž„αžΆαžαŸ‹αžαŸ‚αž„αžαŸ‚αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž‡αžΆαž‘αž˜αŸ’αžšαž„αŸ‹ base64αŸ”

αž’αžαŸ’αžαž”αž‘ beHl6enk= αž‚αžΊαž‡αžΆαž€αŸ†αžŽαŸ‚αžŠαŸ‚αž›αž”αžΆαž“αž’αŸŠαž·αž“αž€αžΌαžŠ base64 αž“αŸƒαž–αžΆαž€αŸ’αž™αžŸαŸ†αž„αžΆαžαŸ‹ xyzzy αžšαž”αžŸαŸ‹αž™αžΎαž„αŸ” αž’αŸ’αž“αž€αž’αžΆαž…αž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹αžœαžΆαžŠαŸ„αž™αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ base64 β€”αžŒαž·αž€αžΌαžŠαž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸ’αžαžΆαž“αžΈαž™αŸ–

echo "eHl6enk=" | base64 --decode
xyzzy

αžŠαžΌαž…αŸ’αž“αŸαŸ‡ αžαžŽαŸˆαž–αŸαž›αžŠαŸ‚αž› Kubernetes αž€αžΆαžšαž–αžΆαžšαž’αŸ’αž“αž€αž–αžΈαž€αžΆαžšαž”αž‰αŸ’αž…αŸαž‰αž‘αž·αž“αŸ’αž“αž“αŸαž™αžšαžŸαžΎαž”αžŠαŸ„αž™αž…αŸƒαžŠαž“αŸ’αž™αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸ’αžαžΆαž“αžΈαž™ αž¬αž―αž€αžŸαžΆαžšαž€αŸ†αžŽαžαŸ‹αž αŸαžαž» αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž”αžΆαž“αž’αžΆαž“αž€αžΆαžšαž’αž“αž»αž‰αŸ’αž‰αžΆαžαž›αžΎαžœαžαŸ’αžαž»αžŸαž˜αŸ’αž„αžΆαžαŸ‹αž€αŸ’αž“αž»αž„αž…αž“αŸ’αž›αŸ„αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹ αž‘αž·αž“αŸ’αž“αž“αŸαž™αž“αŸ„αŸ‡αž’αžΆαž…αž‡αžΆαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“ 64ed αž αžΎαž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŒαž·αž€αžΌαžŠαž‡αžΆαž”αž“αŸ’αžαž”αž“αŸ’αž‘αžΆαž”αŸ‹αŸ”

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

echo xyzzy | base64
eHl6enkK

αž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎαžœαžαŸ’αžαž»αžŸαž˜αŸ’αž„αžΆαžαŸ‹

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

αž€αžΆαžšαž’αŸŠαž·αž“αž‚αŸ’αžšαžΈαž”αž‘αž·αž“αŸ’αž“αž“αŸαž™αž’αž€αž˜αŸ’αž˜

αž…αž»αŸ‡αž’αŸ’αž“αž€αžŠαŸ‚αž›αž˜αžΆαž“αžŸαž·αž‘αŸ’αž’αž·αž…αžΌαž›αž”αŸ’αžšαžΎαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™ etcd αžŠαŸ‚αž› Kubernetes αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž–αŸαžαŸŒαž˜αžΆαž“αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžšαž”αžŸαŸ‹αžœαžΆ? αžαžΎαž–αž½αž€αž‚αŸαž’αžΆαž…αž’αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αžšαžŸαžΎαž”αžŠαŸ„αž™αž˜αž·αž“αž˜αžΆαž“αžŸαž·αž‘αŸ’αž’αž·αž’αžΆαž“αžœαžαŸ’αžαž»αžŸαž˜αŸ’αž„αžΆαžαŸ‹αžαžΆαž˜αžšαž™αŸˆ API αž”αžΆαž“αž‘αŸ?

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

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

kubectl describe pod -n kube-system -l component=kube-apiserver |grep encryption
        --experimental-encryption-provider-config=...

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

αž€αžΆαžšαžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŸαž˜αŸ’αž„αžΆαžαŸ‹

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

kind: Secret
metadata:
    annotations:
        "helm.sh/resource-policy": keep

αž™αž»αž‘αŸ’αž’αžŸαžΆαžŸαŸ’αžαŸ’αžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžœαžαŸ’αžαž»αžŸαž˜αŸ’αž„αžΆαžαŸ‹

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

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

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

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

αž’αŸ†αž–αžΈαž’αŸ’αž“αž€αž“αž·αž–αž“αŸ’αž’

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

Justin Domingus - αžœαž·αžŸαŸ’αžœαž€αžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŠαŸ‚αž›αž’αŸ’αžœαžΎαž€αžΆαžšαž“αŸ…αž€αŸ’αž“αž»αž„αž”αžšαž·αž™αžΆαž€αžΆαžŸ DevOps αž‡αžΆαž˜αž½αž™ Kubernetes αž“αž·αž„αž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆαž–αž–αž€αŸ” αž‚αžΆαžαŸ‹αž…αžΌαž›αž…αž·αžαŸ’αžαž…αŸ†αžŽαžΆαž™αž–αŸαž›αž“αŸ…αžαžΆαž„αž€αŸ’αžšαŸ… αž•αžΉαž€αž€αžΆαž αŸ’αžœαŸ αž€αŸ’αžαžΆαž˜ αž“αž·αž„αž’αž„αŸ’αž‚αž»αž™αž“αŸ…αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαŸ” αžšαžŸαŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž‘αžΈαž€αŸ’αžšαž»αž„ Seattle αžšαžŠαŸ’αž‹ Washington αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž†αŸ’αž˜αžΆαžŠαŸαž’αžŸαŸ’αž…αžΆαžšαŸ’αž™αž˜αž½αž™αž€αŸ’αž”αžΆαž› αž“αž·αž„αž—αžšαž·αž™αžΆαžŠαŸαž’αžŸαŸ’αž…αžΆαžšαŸ’αž™ αž“αž·αž„αž˜αž·αžαŸ’αžαž›αŸ’αž’αž”αŸ†αž•αž»αžαž‚αžΊ Adrienne αŸ”

Β» αž–αŸαžαŸŒαž˜αžΆαž“αž›αŸ†αž’αž·αžαž’αŸ†αž–αžΈαžŸαŸ€αžœαž—αŸ… αž’αžΆαž…αžšαž€αž”αžΆαž“αž“αŸ… αž‚αŸαž αž‘αŸ†αž–αŸαžšαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–αž•αŸ’αžŸαžΆαž™
Β» αžαžΆαžšαžΆαž„αž˜αžΆαžαž·αž€αžΆ
Β» αžŸαž˜αŸ’αžšαž„αŸ‹

αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Khabrozhiteley αž€αžΆαžšαž”αž‰αŸ’αž…αž»αŸ‡αžαž˜αŸ’αž›αŸƒ 25% αžŠαŸ„αž™αž”αŸ’αžšαžΎαž”αŸαžŽαŸ’αžŽ - Kubernetes

αž“αŸ…αž–αŸαž›αž”αž„αŸ‹αžαŸ’αž›αŸƒαž€αŸ’αžšαžŠαžΆαžŸ αžŸαŸ€αžœαž—αŸ…αž’αŸαž‘αž·αž…αžαŸ’αžšαžΌαž“αž·αž…αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž‰αžΎαžαžΆαž˜αž’αŸŠαžΈαž˜αŸ‚αž›αŸ”

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

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