Kubernetes 1.16αŸ– αž‘αž·αžŠαŸ’αž‹αž—αžΆαž–αž‘αžΌαž‘αŸ…αž“αŸƒαž€αžΆαžšαž…αŸ’αž“αŸƒαž”αŸ’αžšαžŒαž·αžαžŸαŸ†αžαžΆαž“αŸ‹αŸ—

Kubernetes 1.16αŸ– αž‘αž·αžŠαŸ’αž‹αž—αžΆαž–αž‘αžΌαž‘αŸ…αž“αŸƒαž€αžΆαžšαž…αŸ’αž“αŸƒαž”αŸ’αžšαžŒαž·αžαžŸαŸ†αžαžΆαž“αŸ‹αŸ—

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

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

αžαŸ’αž“αžΆαŸ†αž„

αž˜αž½αž™αž…αŸ†αž“αž½αž“αž’αŸ†αž“αŸƒαž€αžΆαžšαž…αŸ’αž“αŸƒαž”αŸ’αžšαžŒαž·αžαž‚αž½αžšαž±αŸ’αž™αž€αžαŸ‹αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹ (αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸ’αžαžΆαž“αž—αžΆαž–αž€αŸ†αžŽαŸ‚αž’αžΆαž›αŸ‹αž αŸ’αžœαžΆ) αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰αž“αŸ…αž•αŸ’αž“αŸ‚αž€αž˜αŸ’αžαžΆαž„αž“αŸƒαžαŸ’αž“αžΆαŸ†αž„αž…αž„αŸ’αž€αŸ„αž˜ K8s (Kubelet) αŸ”

αžŠαŸ†αž”αžΌαž„αž‚αŸαž αŸ…αžαžΆ Β«αž’αž»αž„αž‘αžΉαž€αžŸαŸ’αž’αž»αž™Β» (αž€αž»αž„αžαžΊαž“αŸαžšαžŠαŸαž’αž—αŸαž–αŸ’αžœ)αžšαž…αž“αžΆαž‘αžΎαž„αžŠαžΎαž˜αŸ’αž”αžΈαžŸαž˜αŸ’αžšαž½αž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αŸ‚αž€αŸ†αž αž»αžŸαž“αŸ…αž€αŸ’αž“αž»αž„αž•αž. αž™αž“αŸ’αžαž€αžΆαžšαžαŸ’αž˜αžΈαž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž’αž»αž„αž–αž·αžŸαŸαžŸαžŠαŸ‚αž›αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž“αŸ…αž€αŸ’αž“αž»αž„αž…αž“αŸ’αž›αŸ„αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž“αŸƒαž•αžαžƒαŸαžšαžŠαŸ‚αž›αž˜αžΆαž“αžŸαŸ’αžšαžΆαž”αŸ‹ αž“αž·αž„αžšαžŸαŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αžšαž™αŸˆαž–αŸαž›αžαŸ’αž›αžΈαŸ” αž‚αŸ„αž›αž”αŸ†αžŽαž„αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαž‚αžΊαžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαž’αž“αŸ’αžαžšαž€αž˜αŸ’αž˜αž‡αžΆαž˜αž½αž™αž•αž αž“αž·αž„αž’αž»αž„αž•αŸ’αžŸαŸαž„αž‘αŸ€αž αžŠαžΎαž˜αŸ’αž”αžΈαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆ αž“αž·αž„αž”αŸ†αž”αžΆαžαŸ‹αž€αŸ†αž αž»αžŸαŸ” αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžαŸ’αž˜αžΈαžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž˜αž»αžαž„αžΆαžšαž“αŸαŸ‡αŸ” kubectl debug, αžŸαŸ’αžšαžŠαŸ€αž„αž‚αŸ’αž“αžΆαž“αŸ…αž€αŸ’αž“αž»αž„αžαŸ’αž›αžΉαž˜αžŸαžΆαžš kubectl execαŸ– αž‡αŸ†αž“αž½αžŸαž±αŸ’αž™αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸ…αž€αŸ’αž“αž»αž„αž€αž»αž„αžαžΊαž“αŸαžš (αžŠαžΌαž…αž“αŸ…αž€αŸ’αž“αž»αž„ exec) αžœαžΆαž”αžΎαž€αž€αž»αž„αžαžΊαž“αŸαžšαž“αŸ…αž€αŸ’αž“αž»αž„αž•αžαŸ” αž§αž‘αžΆαž αžšαžŽαŸ αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž“αŸαŸ‡αž“αžΉαž„αž—αŸ’αž‡αžΆαž”αŸ‹αž€αž»αž„αžαžΊαž“αŸαžšαžαŸ’αž˜αžΈαž‘αŸ…αž•αžαŸˆ

kubectl debug -c debug-shell --image=debian target-pod -- bash

αž–αŸαžαŸŒαž˜αžΆαž“αž›αž˜αŸ’αž’αž·αžαž’αŸ†αž–αžΈαž’αž»αž„αž•αŸ’αž‘αž»αž€αž˜αž·αž“αž”αŸ’αžšαž€αŸ’αžšαžαžΈ (αž“αž·αž„αž§αž‘αžΆαž αžšαžŽαŸαž“αŸƒαž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžšαž”αžŸαŸ‹αžœαžΆ) αž’αžΆαž…αžšαž€αž”αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„ KEP αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆαŸ”. αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“ (αž“αŸ…αž€αŸ’αž“αž»αž„ K8s 1.16) αž‚αžΊαž‡αžΆαž€αŸ†αžŽαŸ‚αž’αžΆαž›αŸ‹αž αŸ’αžœαžΆ αž αžΎαž™αž€αŸ’αž“αž»αž„αž…αŸ†αžŽαŸ„αž˜αž›αž€αŸ’αžαžŽαŸˆαžœαž·αž“αž·αž…αŸ’αž†αŸαž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž•αŸ’αž‘αŸαžšαžšαž”αžŸαŸ‹αžœαžΆαž‘αŸ…αž€αŸ†αžŽαŸ‚αž”αŸ‚αžαžΆαž‚αžΊ "αž€αžΆαžšαžŸαžΆαž€αž›αŸ’αž”αž„ Ephemeral Containers API αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™ [Kubernetes] αž™αŸ‰αžΆαž„αž αŸ„αž…αžŽαžΆαžŸαŸ‹ 2 αžŠαž„αŸ”"

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

αž€αžΆαžšαž…αŸ’αž“αŸƒαž”αŸ’αžšαžŒαž·αžαž˜αž½αž™αž‘αŸ€αž - PodOverhead - αžšαž…αž“αžΆαž‘αžΎαž„αžŠαžΎαž˜αŸ’αž”αžΈαž•αŸ’αžαž›αŸ‹ αž™αž“αŸ’αžαž€αžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‚αžŽαž“αžΆαžαŸ’αž›αŸƒαžŠαžΎαž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž•αžαžŠαŸ‚αž›αž’αžΆαž…αž”αŸ’αžšαŸ‚αž”αŸ’αžšαž½αž›αž™αŸ‰αžΆαž„αžαŸ’αž›αžΆαŸ†αž„αž’αžΆαžŸαŸ’αžšαŸαž™αž›αžΎαžšαž™αŸˆαž–αŸαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ‚αž›αž”αžΆαž“αž”αŸ’αžšαžΎαŸ” αž‡αžΆαž§αž‘αžΆαž αžšαžŽαŸαž’αŸ’αž“αž€αž“αž·αž–αž“αŸ’αž’ αž€αŸ‚αž”αž“αŸαŸ‡αŸ” αž›αž‘αŸ’αž’αž•αž›αž“αŸ…αž€αŸ’αž“αž»αž„ Kata Containers αžŠαŸ‚αž›αžαž˜αŸ’αžšαžΌαžœαž±αŸ’αž™αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžαžΊαžŽαŸ‚αž›αž—αŸ’αž‰αŸ€αžœ αž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžš kata αž”αŸ’αžšαž–αŸαž“αŸ’αž’ init αŸ”αž›αŸ” αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αžαŸ’αž›αŸƒαžŠαžΎαž˜αž€αŸ’αž›αžΆαž™αž‡αžΆαž’αŸ† αžœαžΆαž˜αž·αž“αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž–αŸ’αžšαž„αžΎαž™αž€αž“αŸ’αžαžΎαž™ αžŠαŸ‚αž›αž˜αžΆαž“αž“αŸαž™αžαžΆαž…αžΆαŸ†αž”αžΆαž…αŸ‹αžαŸ’αžšαžΌαžœαž˜αžΆαž“αžœαž·αž’αžΈαž˜αž½αž™αžŠαžΎαž˜αŸ’αž”αžΈαž™αž€αž‘αŸ…αž–αž·αž…αžΆαžšαžŽαžΆαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΌαžαžΆαž”αž“αŸ’αžαŸ‚αž˜ αž€αžΆαžšαž’αŸ’αžœαžΎαž•αŸ‚αž“αž€αžΆαžšαŸ”αž›αŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž’αž“αž»αžœαžαŸ’αžαžœαžΆαž“αŸ…αž€αŸ’αž“αž»αž„ PodSpec αžœαžΆαž›αž”αž“αŸ’αžαŸ‚αž˜ Overhead *ResourceList (αž”αŸ’αžšαŸ€αž”αž’αŸ€αž”αž‡αžΆαž˜αž½αž™αž‘αž·αž“αŸ’αž“αž“αŸαž™αž“αŸ…αž€αŸ’αž“αž»αž„ RuntimeClassαž”αŸ’αžšαžŸαž·αž“αž”αžΎαž˜αž½αž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎ) αŸ”

αž€αžΆαžšαž…αŸ’αž“αŸƒαž”αŸ’αžšαžŒαž·αžαž‚αž½αžšαž±αŸ’αž™αž€αžαŸ‹αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αž˜αž½αž™αž‘αŸ€αžαž‚αžΊ αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„ node topology (αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„ Node Topology)αžšαž…αž“αžΆαž‘αžΎαž„αžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αžšαž½αž”αž”αž„αŸ’αžšαž½αž˜αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž€αŸ’αž“αž»αž„αž€αžΆαžšαž€αŸ‚αžŸαž˜αŸ’αžšαž½αž›αž€αžΆαžšαž”αŸ‚αž„αž…αŸ‚αž€αž’αž“αž’αžΆαž“αž•αŸ’αž“αŸ‚αž€αžšαžΉαž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαž˜αžΆαžŸαž’αžΆαžαž»αž•αŸ’αžŸαŸαž„αŸ—αž“αŸ…αž€αŸ’αž“αž»αž„ Kubernetes αŸ” αž‚αŸ†αž“αž·αžαž•αŸ’αžαž½αž…αž•αŸ’αžαžΎαž˜αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‡αŸ†αžšαž»αž‰αžŠαŸ„αž™αžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαžŠαŸ‚αž›αž€αŸ†αž–αž»αž„αž€αžΎαž“αž‘αžΎαž„αž“αŸƒαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‘αŸ†αž“αžΎαž”αž•αŸ’αžŸαŸαž„αŸ— (αž–αžΈαžœαž·αžŸαŸαž™αž‘αžΌαžšαž‚αž˜αž“αžΆαž‚αž˜αž“αŸ αž€αžΆαžšαžšαŸ€αž“αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“ αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž αž·αžšαž‰αŸ’αž‰αžœαžαŸ’αžαž»αŸ” αžŸαž˜αžαŸ’αžαž—αžΆαž–αž”αž„αŸ’αž€αžΎαž“αž›αŸ’αž”αžΏαž“αž•αŸ’αž“αŸ‚αž€αžšαžΉαž„αŸ” αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž”αŸ‚αž”αž“αŸαŸ‡αž“αŸ…αž€αŸ’αž“αž»αž„ Kubernetes αžšαž αžΌαžαž˜αž€αžŠαž›αŸ‹αž–αŸαž›αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαž˜αŸ’αžšαŸαž…αžŠαŸ„αž™αž’αžšαž‚αž»αžŽαž…αŸ†αž–αŸ„αŸ‡αž’αžΆαžαž»αž•αŸ’αžŸαŸ†αžŠαŸ‚αž›αžαž»αžŸαž‚αŸ’αž“αžΆ (αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„ CPU, Device manager, CNI) αž αžΎαž™αž₯αž‘αžΌαžœαž“αŸαŸ‡αž–αž½αž€αž‚αŸαž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αžαžΆαž„αž€αŸ’αž“αž»αž„αžαŸ‚αž˜αž½αž™αžŠαŸ‚αž›αž”αž„αŸ’αžšαž½αž”αž”αž„αŸ’αžšαž½αž˜αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αž αž“αž·αž„αžŸαž˜αŸ’αžšαž½αž›αžŠαž›αŸ‹αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž“αŸƒαžŸαŸ’αžšαžŠαŸ€αž„αž‚αŸ’αž“αžΆαžαŸ’αž˜αžΈ αžŠαŸ‚αž›αž αŸ…αžαžΆ topology- αžŠαžΉαž„ - αžŸαž˜αžΆαžŸαž’αžΆαžαž»αž“αŸ…αžαžΆαž„ Kubelet αŸ” αž–αŸαžαŸŒαž˜αžΆαž“αž›αž˜αŸ’αž’αž·αž - αž€αŸ’αž“αž»αž„ KEP αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆαŸ”.

Kubernetes 1.16αŸ– αž‘αž·αžŠαŸ’αž‹αž—αžΆαž–αž‘αžΌαž‘αŸ…αž“αŸƒαž€αžΆαžšαž…αŸ’αž“αŸƒαž”αŸ’αžšαžŒαž·αžαžŸαŸ†αžαžΆαž“αŸ‹αŸ—
αžŠαŸ’αž™αžΆαž€αŸ’αžšαžΆαž˜αžŸαž˜αžΆαžŸαž—αžΆαž‚αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„ Topology

αž˜αž»αžαž„αžΆαžšαž”αž“αŸ’αž‘αžΆαž”αŸ‹ - αž–αž·αž“αž·αžαŸ’αž™αž’αž»αž„αžαžŽαŸˆαž–αŸαž›αžŠαŸ‚αž›αž–αž½αž€αž‚αŸαž€αŸ†αž–αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš (αž€αžΆαžšαžŸαŸŠαžΎαž”αž’αž„αŸ’αž€αŸαžαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜). αžŠαžΌαž…αžŠαŸ‚αž›αž’αŸ’αž“αž€αž”αžΆαž“αžŠαžΉαž„αž αžΎαž™αžαžΆ αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αž»αž„αžαžΊαž“αŸαžšαžŠαŸ‚αž›αž”αŸ’αžšαžΎαž–αŸαž›αž™αžΌαžšαž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αžœαžΆαž–αž·αž”αžΆαž€αž€αŸ’αž“αž»αž„αž€αžΆαžšαž‘αž‘αž½αž›αž”αžΆαž“αžŸαŸ’αžαžΆαž“αž—αžΆαž–αž‘αžΆαž“αŸ‹αžŸαž˜αŸαž™αŸ– αž–αž½αž€αž‚αŸαžαŸ’αžšαžΌαžœαž”αžΆαž“ "αžŸαž˜αŸ’αž›αžΆαž”αŸ‹" αž˜αž»αž“αž–αŸαž›αž–αž½αž€αž‚αŸαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž¬αž–αž½αž€αž‚αŸαž”αž‰αŸ’αž…αž”αŸ‹αžŠαŸ„αž™αž€αžΆαžšαž‡αžΆαž”αŸ‹αž‚αžΆαŸ†αž„αž€αŸ’αž“αž»αž„αžšαž™αŸˆαž–αŸαž›αž™αžΌαžšαŸ” αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αžαŸ’αž˜αžΈ (αž”αžΆαž“αž”αžΎαž€αžαžΆαž˜αžšαž™αŸˆαž…αŸ’αžšαž€αž›αž€αŸ’αžαžŽαŸˆαž–αž·αžŸαŸαžŸαž αŸ…αžαžΆ StartupProbeEnabled) αž›αž»αž”αž…αŸ„αž› - αž¬αž•αŸ’αž‘αž»αž™αž‘αŸ…αžœαž·αž‰ αž–αž“αŸ’αž™αžΆαžš - αž₯αž‘αŸ’αž’αž·αž–αž›αž“αŸƒαž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαžšαž αžΌαžαžŠαž›αŸ‹αž–αŸαž›αžŠαŸ‚αž›αž•αžαž”αžΆαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ” αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž αŸαžαž»αž•αž›αž“αŸαŸ‡αž›αž€αŸ’αžαžŽαŸˆαž–αž·αžŸαŸαžŸαž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸαž αŸ…αžαžΆαžŠαžΎαž˜ pod-startup liveness-probe holdoff. αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž•αžαžŠαŸ‚αž›αž…αŸ†αžŽαžΆαž™αž–αŸαž›αž™αžΌαžšαžŠαžΎαž˜αŸ’αž”αžΈαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜ αž’αŸ’αž“αž€αž’αžΆαž…αžŸαŸ’αž‘αž„αŸ‹αž˜αžαž·αžšαžŠαŸ’αž‹αž€αŸ’αž“αž»αž„αž…αž“αŸ’αž›αŸ„αŸ‡αž–αŸαž›αžαŸ’αž›αžΈαŸ”

αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡ αž€αžΆαžšαž€αŸ‚αž›αž˜αŸ’αž’αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ RuntimeClass αž‚αžΊαž˜αžΆαž“αž—αŸ’αž›αžΆαž˜αŸ—αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸ’αžαžΆαž“αž—αžΆαž–αž”αŸαžαžΆ αžŠαŸ„αž™αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ "αž…αž„αŸ’αž€αŸ„αž˜αž•αŸ’αžŸαŸαž„αŸ—αž‚αŸ’αž“αžΆ" αŸ” αž‚ αž€αžΆαž›αžœαž·αž—αžΆαž‚ RuntimeClass αž₯αž‘αžΌαžœαž“αŸαŸ‡ αžœαžΆαž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž‘αžΆαž›αŸ‹αžαŸ‚αžŸαŸ„αŸ‡αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ node αž“αžΈαž˜αž½αž™αŸ—αžŠαžΎαž˜αŸ’αž”αžΈαž±αŸ’αž™αž˜αžΆαž“αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ RuntimeClass αž“αžΈαž˜αž½αž™αŸ—αŸ– αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ pods αž’αŸ’αž“αž€αž’αžΆαž…αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸ RuntimeClass αžŠαŸ„αž™αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž‚αž·αžαž–αžΈ cluster topology αŸ” αž–αžΈαž˜αž»αž“ αžŠαžΎαž˜αŸ’αž”αžΈαžŸαž˜αŸ’αžšαŸαž…αž”αžΆαž“αž“αžΌαžœαž…αŸ†αžŽαž»αž…αž“αŸαŸ‡ - αžŠαžΌαž…αŸ’αž“αŸαŸ‡ pods αž”αž‰αŸ’αž…αž”αŸ‹αž“αŸ…αž›αžΎαžαŸ’αž“αžΆαŸ†αž„αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αžœαžΈαž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αžŠαŸ‚αž›αž–αž½αž€αž‚αŸαžαŸ’αžšαžΌαžœαž€αžΆαžš - αžœαžΆαž…αžΆαŸ†αž”αžΆαž…αŸ‹αž€αŸ’αž“αž»αž„αž€αžΆαžšαž…αžΆαžαŸ‹αž…αŸ‚αž„αž…αŸ’αž”αžΆαž”αŸ‹αžŸαž˜αžŸαŸ’αžšαž”αžŠαž›αŸ‹ NodeSelector αž“αž·αž„αž€αžΆαžšαž’αžαŸ‹αž±αž“αŸ” IN ខេធេ αžœαžΆαž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈαž§αž‘αžΆαž αžšαžŽαŸαž“αŸƒαž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ αž αžΎαž™αž‡αžΆαž€αžΆαžšαž–αž·αžαžŽαžΆαžŸαŸ‹ αž–αŸαžαŸŒαž˜αžΆαž“αž›αž˜αŸ’αž’αž·αžαž’αŸ†αž–αžΈαž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαŸ”

αž”αžŽαŸ’αžαžΆαž‰

αž˜αž»αžαž„αžΆαžšαž”αžŽαŸ’αžαžΆαž‰αžŸαŸ†αžαžΆαž“αŸ‹αŸ—αž…αŸ†αž“αž½αž“αž–αžΈαžšαžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰αžαŸ’αž›αž½αž“αž‡αžΆαž›αžΎαž€αžŠαŸ†αž”αžΌαž„ (αž“αŸ…αž€αŸ’αž“αž»αž„αž€αŸ†αžŽαŸ‚αž’αžΆαž›αŸ‹αž αŸ’αžœαžΆ) αž“αŸ…αž€αŸ’αž“αž»αž„ Kubernetes 1.16 αž‚αžΊαŸ–

  • αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžš αž‡αž„αŸ‹αž”αžŽαŸ’αžαžΆαž‰αž–αžΈαžš - IPv4/IPv6 - αž“αž·αž„ "αž€αžΆαžšαž™αž›αŸ‹αžŠαžΉαž„" αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆαžšαž”αžŸαŸ‹αžœαžΆαž“αŸ…αž€αž˜αŸ’αžšαž·αž pods, nodes, services αŸ” αžœαžΆαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž› IPv4-to-IPv4 αž“αž·αž„ IPv6-to-IPv6 αž’αž“αŸ’αžαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžšαžœαžΆαž„αž•αž αž–αžΈαž•αž αžŠαž›αŸ‹αžŸαŸαžœαžΆαžαžΆαž„αž€αŸ’αžšαŸ… αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαžŸαŸαž…αž€αŸ’αžαžΈαž™αŸ„αž„ (αž“αŸ…αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™ Bridge CNI, PTP CNI αž“αž·αž„ Host-Local IPAM plugins) αž€αŸαžŠαžΌαž…αž‡αžΆαž”αž‰αŸ’αž…αŸ’αžšαžΆαžŸαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆαž‡αžΆαž˜αž½αž™αž€αŸ’αžšαž»αž˜ Kubernetes αžŠαŸ‚αž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ” IPv4 ឬ IPv6 αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ” αž–αŸαžαŸŒαž˜αžΆαž“αž›αž˜αŸ’αž’αž·αžαž“αŸƒαž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž‚αžΊαž“αŸ…αž€αŸ’αž“αž»αž„ ខេធេ.

    αž§αž‘αžΆαž αžšαžŽαŸαž“αŸƒαž€αžΆαžšαž”αž„αŸ’αž αžΆαž‰αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“ IP αž“αŸƒαž–αžΈαžšαž”αŸ’αžšαž—αŸαž‘ (IPv4 αž“αž·αž„ IPv6) αž“αŸ…αž€αŸ’αž“αž»αž„αž”αž‰αŸ’αž‡αžΈαž•αžαŸˆ

    kube-master# kubectl get pods -o wide
    NAME               READY     STATUS    RESTARTS   AGE       IP                          NODE
    nginx-controller   1/1       Running   0          20m       fd00:db8:1::2,192.168.1.3   kube-minion-1
    kube-master#

  • API αžαŸ’αž˜αžΈαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Endpoint - EndpointSlice API. αžœαžΆαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž/αž€αžΆαžšαž’αŸ’αžœαžΎαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“αž“αŸƒ Endpoint API αžŠαŸ‚αž›αž˜αžΆαž“αžŸαŸ’αžšαžΆαž”αŸ‹ αžŠαŸ‚αž›αž”αŸ‰αŸ‡αž–αžΆαž›αŸ‹αžŠαž›αŸ‹αžŸαž˜αžΆαžŸαž’αžΆαžαž»αž•αŸ’αžŸαŸαž„αŸ—αž“αŸ…αž€αŸ’αž“αž»αž„αž™αž“αŸ’αžαž αŸ„αŸ‡αž”αž‰αŸ’αž‡αžΆ (apiserver, etcd, endpoints-controller, kube-proxy)αŸ” API αžαŸ’αž˜αžΈαž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„αž€αŸ’αžšαž»αž˜ Discovery API αž αžΎαž™αž“αžΉαž„αž’αžΆαž…αž”αž˜αŸ’αžšαžΎαž…αŸ†αžŽαž»αž…αž”αž‰αŸ’αž…αž”αŸ‹αž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžαžΆαž„αž€αŸ’αžšαŸ„αž™αžšαžΆαž”αŸ‹αž˜αŸ‰αžΊαž“αž“αŸ…αž›αžΎαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž“αžΈαž˜αž½αž™αŸ—αž“αŸ…αž€αŸ’αž“αž»αž„αž…αž„αŸ’αž€αŸ„αž˜αžŠαŸ‚αž›αž˜αžΆαž“αžαŸ’αž“αžΆαŸ†αž„αžšαžΆαž”αŸ‹αž–αžΆαž“αŸ‹αŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαžŠαžΌαž…αŸ’αž“αŸαŸ‡ αžŸαŸαžœαžΆαž“αžΈαž˜αž½αž™αŸ—αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αžΌαžŸαž•αŸ‚αž“αž‘αžΈαž‘αŸ…αžœαžαŸ’αžαž» N EndpointSliceαžŠαŸ‚αž›αž“αžΈαž˜αž½αž™αŸ—αžαžΆαž˜αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜αž˜αžΆαž“αž…αŸ†αžŽαž»αž…αž”αž‰αŸ’αž…αž”αŸ‹αž˜αž·αž“αž›αžΎαžŸαž–αžΈ 100 (αžαž˜αŸ’αž›αŸƒαž’αžΆαž…αž€αŸ†αžŽαžαŸ‹αž”αžΆαž“)αŸ” EndpointSlice API αž€αŸαž“αžΉαž„αž•αŸ’αžαž›αŸ‹αž±αž€αžΆαžŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž“αžΆαž–αŸαž›αž’αž“αžΆαž‚αžαžšαž”αžŸαŸ‹αžœαžΆαž•αž„αžŠαŸ‚αžšαŸ– αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“ IP αž…αŸ’αžšαžΎαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž•αžαž“αžΈαž˜αž½αž™αŸ— αžšαžŠαŸ’αž‹αžαŸ’αž˜αžΈαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž…αŸ†αžŽαž»αž…αž”αž‰αŸ’αž…αž”αŸ‹ (αž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ‚αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡ Ready ΠΈ NotReady) αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž„αžαžΆαž˜αžœαž“αŸ’αžαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž…αŸ†αžŽαž»αž…αž”αž‰αŸ’αž…αž”αŸ‹αŸ”

αž€αŸ†αžŽαŸ‚αžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αž…αž»αž„αž€αŸ’αžšαŸ„αž™αž”αžΆαž“αžˆαžΆαž“αžŠαž›αŸ‹αž€αŸ†αžŽαŸ‚αž”αŸ‚αžαžΆ αžœαž‚αŸ’αž‚αž•αŸ’αžαžΆαž…αŸ‹αž–αŸ’αžšαŸαžαŸ’αžš, αž˜αžΆαž“αžˆαŸ’αž˜αŸ„αŸ‡ service.kubernetes.io/load-balancer-cleanup αž“αž·αž„αž—αŸ’αž‡αžΆαž”αŸ‹αž‡αžΆαž˜αž½αž™αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž“αžΈαž˜αž½αž™αŸ—αž‡αžΆαž˜αž½αž™αž”αŸ’αžšαž—αŸαž‘ LoadBalancer. αž“αŸ…αž–αŸαž›αž›αž»αž”αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž”αŸ‚αž”αž“αŸαŸ‡ αžœαžΆαž€αžΆαžšαž–αžΆαžšαž€αžΆαžšαž›αž»αž”αž’αž“αž’αžΆαž“αž–αž·αžαž”αŸ’αžšαžΆαž€αžŠαžšαž αžΌαžαžŠαž›αŸ‹ "αž€αžΆαžšαžŸαž˜αŸ’αž’αžΆαž" αž“αŸƒαž’αž“αž’αžΆαž“αžαž»αž›αŸ’αž™αž—αžΆαž–αžŠαŸ‚αž›αž–αžΆαž€αŸ‹αž–αŸαž“αŸ’αž’αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αž…αž”αŸ‹αŸ”

αž‚αŸ’αžšαžΏαž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“ API

"αžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž›αžŸαŸ’αžαŸαžšαž—αžΆαž–" αž–αž·αžαž”αŸ’αžšαžΆαž€αžŠαž‚αžΊαž“αŸ…αž€αŸ’αž“αž»αž„αžαŸ†αž”αž“αŸ‹αž“αŸƒαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ Kubernetes API αž“αž·αž„αž’αž“αŸ’αžαžšαž€αž˜αŸ’αž˜αž‡αžΆαž˜αž½αž™αžœαžΆαŸ” αž“αŸαŸ‡αž”αžΆαž“αž€αžΎαžαž‘αžΎαž„αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž’αžšαž‚αž»αžŽαž…αŸ†αž–αŸ„αŸ‡ αž•αŸ’αž‘αŸαžšαž‘αŸ…αžŸαŸ’αžαžΆαž“αž—αžΆαž–αžŸαŸ’αžαž·αžšαž—αžΆαž–αž’αŸ’αž“αž€αžŠαŸ‚αž›αž˜αž·αž“αžαŸ’αžšαžΌαžœαž€αžΆαžšαž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž–αž·αžŸαŸαžŸ αž“αž·αž™αž˜αž“αŸαž™αž’αž“αž’αžΆαž“αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“ (CRD)αžŠαŸ‚αž›αž˜αžΆαž“αžŸαŸ’αžαžΆαž“αž—αžΆαž–αž”αŸαžαžΆαž…αžΆαž”αŸ‹αžαžΆαŸ†αž„αž–αžΈαžαŸ’αž„αŸƒαž†αŸ’αž„αžΆαž™αž“αŸƒ Kubernetes 1.7 (αž αžΎαž™αž“αŸαŸ‡αž‚αžΊαžαŸ‚αž˜αž·αžαž»αž“αžΆ 2017!) αžŸαŸ’αžαŸαžšαž—αžΆαž–αžŠαžΌαž…αž‚αŸ’αž“αžΆαž”αžΆαž“αž˜αž€αžŠαž›αŸ‹αž›αž€αŸ’αžαžŽαŸˆαž–αž·αžŸαŸαžŸαžŠαŸ‚αž›αž‘αžΆαž€αŸ‹αž‘αž„:

  • "αž’αž“αž’αžΆαž“β€‹αžšαž„" αžŸαŸ‚ /status ΠΈ /scale αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ CustomResources;
  • αž€αžΆαžšαž”αŸ’αžšαŸ‚αž…αž·αžαŸ’αžαž‡αžΏ αž€αŸ†αžŽαŸ‚αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ CRD αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎ webhook αžαžΆαž„αž€αŸ’αžšαŸ…;
  • αž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰αž“αžΆαž–αŸαž›αžαŸ’αž˜αžΈαŸ—αž“αŸαŸ‡ (αž€αŸ’αž“αž»αž„ K8s 1.15) αžαž˜αŸ’αž›αŸƒαž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜ (αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜) αž“αž·αž„αž€αžΆαžšαžŠαž€αžœαžΆαž›αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž· (αž€αžΆαžαŸ‹αž…αŸαž‰) αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ CustomResources;
  • αž±αž€αžΆαžŸ αžŠαŸ„αž™αž”αŸ’αžšαžΎαž‚αŸ’αžšαŸ„αž„αž€αžΆαžšαžŽαŸ OpenAPI v3 αžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαž αž“αž·αž„αž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–αž―αž€αžŸαžΆαžš OpenAPI αžŠαŸ‚αž›αž”αŸ’αžšαžΎαžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαžŸαž»αž–αž›αž—αžΆαž–αž’αž“αž’αžΆαž“ CRD αž“αŸ…αž›αžΎαž•αŸ’αž“αŸ‚αž€αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαŸ”

αž™αž“αŸ’αžαž€αžΆαžšαž˜αž½αž™αž‘αŸ€αžαžŠαŸ‚αž›αž’αŸ’αž›αžΆαž”αŸ‹αžŸαŸ’αž‚αžΆαž›αŸ‹αž‡αžΆαž™αžΌαžšαž˜αž€αž αžΎαž™αž…αŸ†αž–αŸ„αŸ‡αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„ KubernetesαŸ– webhook αž…αžΌαž› - αž“αŸ…αžαŸ‚αžŸαŸ’αžαž·αžαž€αŸ’αž“αž»αž„αžŸαŸ’αžαžΆαž“αž—αžΆαž–αž”αŸαžαžΆαž’αžŸαŸ‹αžšαž™αŸˆαž–αŸαž›αž‡αžΆαž™αžΌαžš (αž…αžΆαž”αŸ‹αžαžΆαŸ†αž„αž–αžΈ K8s 1.9) αž αžΎαž™αž₯αž‘αžΌαžœαž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαž€αžΆαžŸαžαžΆαž˜αžΆαž“αžŸαŸ’αžαŸαžšαž—αžΆαž–αŸ”

αž˜αž»αžαž„αžΆαžšαž–αžΈαžšαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž”αžΆαž“αžˆαžΆαž“αžŠαž›αŸ‹αž”αŸαžαžΆαŸ– αžαžΆαž„ server αž’αž“αž»αžœαžαŸ’αž ΠΈ αž˜αžΎαž›αž…αŸ†αžŽαžΆαŸ†.

αž αžΎαž™αž€αžΆαžšαž…αŸ’αž“αŸƒαž”αŸ’αžšαžŒαž·αžαžŠαŸαžŸαŸ†αžαžΆαž“αŸ‹αžαŸ‚αž˜αž½αž™αž‚αžαŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž€αŸ†αžŽαŸ‚αž’αžΆαž›αŸ‹αž αŸ’αžœαžΆαž‚αžΊ ΠΎΡ‚ΠΊΠ°Π· αž–αžΈ SelfLink - URI αž–αž·αžŸαŸαžŸαžαŸ†αžŽαžΆαž„αž±αŸ’αž™αžœαžαŸ’αžαž»αžŠαŸ‚αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹ αž“αž·αž„αž‡αžΆαž•αŸ’αž“αŸ‚αž€αž˜αž½αž™αž“αŸƒ ObjectMeta ΠΈ ListMeta (ឧ. αž‡αžΆαž•αŸ’αž“αŸ‚αž€αž“αŸƒαžœαžαŸ’αžαž»αžŽαžΆαž˜αž½αž™αž“αŸ…αž€αŸ’αž“αž»αž„ Kubernetes)αŸ” αž αŸαžαž»αž’αŸ’αžœαžΈαž”αžΆαž“αž‡αžΆαž–αž½αž€αž‚αŸαž”αŸ„αŸ‡αž”αž„αŸ‹αž…αŸ„αž›αžœαžΆ? αž€αžΆαžšαž›αžΎαž€αž‘αžΉαž€αž…αž·αžαŸ’αžαžαžΆαž˜αžšαž”αŸ€αž”αžŸαžΆαž˜αž‰αŸ’αž‰ αžŸαŸ†αž‘αŸαž„ αžŠαžΌαž…αž‡αžΆαž’αžœαžαŸ’αžαž˜αžΆαž“αž“αŸƒαž αŸαžαž»αž•αž›αž–αž·αžαž”αŸ’αžšαžΆαž€αžŠ (αž›αžΎαžŸαž›αž”αŸ‹) αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžœαž·αžŸαŸαž™αž“αŸαŸ‡αž“αŸ…αžαŸ‚αž˜αžΆαž“αŸ” αž αŸαžαž»αž•αž›αž•αŸ’αž›αžΌαžœαž€αžΆαžšαž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ€αžαž‚αžΊαžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš (αžŠαŸ„αž™αž€αžΆαžšαžŠαž€αžœαžΆαž›αžŠαŸ‚αž›αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž…αŸαž‰) αž“αž·αž„αžŸαž˜αŸ’αžšαž½αž›αž€αžΆαžšαž„αžΆαžšαžšαž”αžŸαŸ‹ generic-apiserver αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αžαŸ†αž±αŸ’αž™αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžœαžΆαž›αž”αŸ‚αž”αž“αŸαŸ‡αžαžΆαž˜αžšαž”αŸ€αž”αž–αž·αžŸαŸαžŸ (αž“αŸαŸ‡αž‚αžΊαž‡αžΆαžœαžΆαž›αžαŸ‚αž˜αž½αž™αž‚αžαŸ‹αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž“αŸ…αž…αŸ†αž–αŸ„αŸ‡αž˜αž»αžαžœαžαŸ’αžαž»αŸ” αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαžΆαž€αŸ‹αž‡αžΆαžŸαŸŠαŸαžšαžΈ) αŸ” αž—αžΆαž–αž’αžŸαŸ‹αžŸαž»αž–αž›αž—αžΆαž–αž–αž·αžαž”αŸ’αžšαžΆαž€αžŠ (αž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸαžαžΆ) SelfLink αž“αžΉαž„αž€αžΎαžαž‘αžΎαž„αžŠαŸ„αž™ Kubernetes αž€αŸ†αžŽαŸ‚ 1.20 αž“αž·αž„αž…αž»αž„αž€αŸ’αžšαŸ„αž™ - 1.21 αŸ”

αž€αžΆαžšαž•αŸ’αž‘αž»αž€αž‘αž·αž“αŸ’αž“αž“αŸαž™

αž€αžΆαžšαž„αžΆαžšαžŸαŸ†αžαžΆαž“αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αžαŸ†αž”αž“αŸ‹αž“αŸƒαž€αžΆαžšαž•αŸ’αž‘αž»αž€αžŠαžΌαž…αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αž˜αž»αž“ αŸ— αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸαžŸαž„αŸ’αž€αŸαžαžƒαžΎαž‰αž“αŸ…αž€αŸ’αž“αž»αž„αžαŸ†αž”αž“αŸ‹ αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžš CSI. αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžŸαŸ†αžαžΆαž“αŸ‹αŸ—αž“αŸ…αž‘αžΈαž“αŸαŸ‡αž‚αžΊαŸ–

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

    Kubernetes 1.16αŸ– αž‘αž·αžŠαŸ’αž‹αž—αžΆαž–αž‘αžΌαž‘αŸ…αž“αŸƒαž€αžΆαžšαž…αŸ’αž“αŸƒαž”αŸ’αžšαžŒαž·αžαžŸαŸ†αžαžΆαž“αŸ‹αŸ—
    αž‚αŸ’αžšαŸ„αž„αž€αžΆαžšαžŽαŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™ CSI αž“αŸ…αž€αŸ’αž“αž»αž„ Kubernetes αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Windows

  • αž±αž€αžΆαžŸ αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž‘αŸ†αž αŸ†αž”αžšαž·αž˜αžΆαžŽ CSIαžŠαŸ‚αž›αž”αžΆαž“αžŽαŸ‚αž“αžΆαŸ†αž‘αžΎαž„αžœαž·αž‰αž“αŸ…αž€αŸ’αž“αž»αž„ K8s 1.12 αž”αžΆαž“αžšαžΈαž€αž…αž˜αŸ’αžšαžΎαž“αž‘αŸ…αž‡αžΆαž€αŸ†αžŽαŸ‚αž”αŸ‚αžαžΆαŸ”
  • "αž€αžΆαžšαž•αŸ’αžŸαž–αŸ’αžœαž•αŸ’αžŸαžΆαž™" αžŸαŸ’αžšαžŠαŸ€αž„αž‚αŸ’αž“αžΆ (αž–αžΈαž’αžΆαž›αŸ‹αž αŸ’αžœαžΆαž‘αŸ…αž”αŸαžαžΆ) αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαž˜αŸ’αžšαŸαž…αžŠαŸ„αž™αžŸαž˜αžαŸ’αžαž—αžΆαž–αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ CSI αžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαžαž”αžšαž·αž˜αžΆαžŽ ephemeral αž€αŸ’αž“αž»αž„αžαŸ†αž”αž“αŸ‹ (αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαž€αž˜αŸ’αžšαž·αžαžŸαŸ†αž‘αŸαž„αž€αŸ’αž“αž»αž„αž”αžŽαŸ’αžαžΆαž‰ CSI).

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

αž’αŸ’αž“αž€αžšαŸ€αž”αž…αŸ†αž€αžΆαž›αžœαž·αž—αžΆαž‚

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

  • EvenPodsSpreading - αž±αž€αžΆαžŸ αž”αŸ’αžšαžΎ pods αž‡αŸ†αž“αž½αžŸαž±αŸ’αž™αž―αž€αžαžΆαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‘αžΌαž‡αžΈαžαž›αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ "αž€αžΆαžšαž…αŸ‚αž€αž…αžΆαž™αžŠαŸ„αž™αž™αž»αžαŸ’αžαž·αž’αž˜αŸŒ" αž“αŸƒαž”αž“αŸ’αž‘αž»αž€ (αžŠαžΌαž…αž‡αžΆαž€αžΆαžšαžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™ αž“αž·αž„αžˆαž»αžαž…αž˜αŸ’αž›αž„) αž“αž·αž„αž€αžΆαžšαž€αŸ‚αžŸαž˜αŸ’αžšαž½αž›αž€αžΆαžšαž…αŸ‚αž€αž…αžΆαž™αž“αŸαŸ‡ (αž‡αžΆαžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαžšαžΉαž„ αž¬αž‡αžΆαž›αž€αŸ’αžαžαžŽαŸ’αžŒαž‘αž“αŸ‹ αž–αŸ„αž›αž‚αžΊαž’αžΆαž‘αž·αž—αžΆαž–)αŸ” αž˜αž»αžαž„αžΆαžšαž“αŸαŸ‡αž“αžΉαž„αž–αž„αŸ’αžšαžΈαž€αžŸαž˜αžαŸ’αžαž—αžΆαž–αž…αŸ‚αž€αž…αžΆαž™αžŠαŸ‚αž›αž˜αžΆαž“αžŸαŸ’αžšαžΆαž”αŸ‹αž“αŸƒαž•αžαžƒαŸ‚αžšαžŠαŸ‚αž›αž”αžΆαž“αž‚αŸ’αžšαŸ„αž„αž‘αž»αž€ αžŠαŸ‚αž›αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αžŠαŸ„αž™αž‡αž˜αŸ’αžšαžΎαžŸ PodAffinity ΠΈ PodAntiAffinityαž•αŸ’αžαž›αŸ‹αž±αŸ’αž™αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž“αžΌαžœαž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αžΆαž“αŸ‹αžαŸ‚αž›αŸ’αž’αž·αžαž›αŸ’αž’αž“αŸ‹αž€αŸ’αž“αž»αž„αž”αž‰αŸ’αž αžΆαž“αŸαŸ‡ αžŠαŸ‚αž›αž˜αžΆαž“αž“αŸαž™αžαžΆαž—αžΆαž–αž’αžΆαž…αžšαž€αž”αžΆαž“αžαŸ’αž–αžŸαŸ‹αž€αžΆαž“αŸ‹αžαŸ‚αž”αŸ’αžšαžŸαžΎαžš αž“αž·αž„αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž’αž“αž’αžΆαž“αžŠαŸ‚αž›αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„αŸ” αž–αŸαžαŸŒαž˜αžΆαž“αž›αž˜αŸ’αž’αž·αž - αž€αŸ’αž“αž»αž„ ខេធេ.
  • αž”αŸ’αžšαžΎ αž‚αŸ„αž›αž€αžΆαžšαžŽαŸ BestFit Π² αž’αž“αž»αž‚αž˜αž“αŸβ€‹αž’αžΆαž‘αž·αž—αžΆαž–β€‹αž“αŸƒβ€‹αž€αžΆαžšβ€‹αžŸαŸ’αž“αžΎβ€‹αžŸαž»αŸ†β€‹ToCapacityRatio αž€αŸ’αž“αž»αž„αž’αŸ†αž‘αž»αž„αž–αŸαž›αž’αŸ’αžœαžΎαž•αŸ‚αž“αž€αžΆαžš pod αžŠαŸ‚αž›αž“αžΉαž„αž’αž“αž»αž‰αŸ’αž‰αžΆαž αž”αŸ’αžšαžΎ αž€αžΆαžšαžœαŸαž…αžαŸ’αž…αž”αŸ‹αž’αž»αž„αžŸαŸ†αžšαžΆαž˜ ("αž€αžΆαžšαžœαŸαž…αžαŸ’αž…αž”αŸ‹αž€αŸ’αž“αž»αž„αž’αž»αž„") αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‘αžΆαŸ†αž„αž’αž“αž’αžΆαž“αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“ (αž§αž”αž€αžšαžŽαŸαžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†) αž“αž·αž„αž§αž”αž€αžšαžŽαŸαž”αž“αŸ’αžαŸ‚αž˜ (αžŠαžΌαž…αž‡αžΆ GPU)αŸ” αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž–αŸαžαŸŒαž˜αžΆαž“αž›αž˜αŸ’αž’αž·αžαžŸαžΌαž˜αž˜αžΎαž› ខេធេ.

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

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

αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž•αŸ’αžŸαŸαž„αž‘αŸ€αž

αž•αž„αžŠαŸ‚αžšαž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™ Kubernetes 1.16 αž’αŸ’αž“αž€αž’αžΆαž…αž€αžαŸ‹αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹ αž‚αŸ†αž“αž·αžαž•αŸ’αžαž½αž…αž•αŸ’αžαžΎαž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ αž“αžΆαŸ†αž™αž€ αž˜αŸ‰αŸ‚αžαŸ’αžšαžŠαŸ‚αž›αž˜αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„αž›αŸ†αžŠαžΆαž”αŸ‹αž–αŸαž‰αž›αŸαž‰αž¬αž…αŸ’αž”αžΆαžŸαŸ‹αž‡αžΆαž„αž“αŸαŸ‡ αžŸαŸ’αžšαž”αžαžΆαž˜ αž”αž‘αž”αŸ’αž”αž‰αŸ’αž‰αžαŸ’αžαž·αž•αŸ’αž›αžΌαžœαž€αžΆαžš αž§αž”αž€αžšαžŽαŸ K8s αŸ” αž–αž½αž€αž‚αŸαž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž–αžΉαž„αž•αŸ’αž’αŸ‚αž€αž›αžΎαž€αžΆαžšαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆαŸ” αž―αž€αžŸαžΆαžš Prometheus. αž—αžΆαž–αž˜αž·αž“αžŸαŸŠαžΈαžŸαž„αŸ’αžœαžΆαž€αŸ‹αž‚αŸ’αž“αžΆαž”αžΆαž“αž€αžΎαžαž‘αžΎαž„αžŠαŸ„αž™αžŸαžΆαžšαž αŸαžαž»αž•αž›αž•αŸ’αžŸαŸαž„αŸ— (αž§αž‘αžΆαž αžšαžŽαŸ αžšαž„αŸ’αžœαžΆαžŸαŸ‹αž˜αž½αž™αž…αŸ†αž“αž½αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αž™αŸ‰αžΆαž„αžŸαžΆαž˜αž‰αŸ’αž‰ αž˜αž»αž“αž–αŸαž›αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž›αŸαž…αž‘αžΎαž„) αž αžΎαž™αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž”αžΆαž“αžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αžαžαžΆαžœαžΆαžŠαž›αŸ‹αž–αŸαž›αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž“αžΆαŸ†αž™αž€αž’αŸ’αžœαžΈαž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αž‘αŸ…αž‡αžΆαžŸαŸ’αžαž„αŸ‹αžŠαžΆαžšαžαŸ‚αž˜αž½αž™ "αžŸαŸ’αžšαž”αžαžΆαž˜αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž’αŸαž€αžΌαž‘αžΌαžŸαŸŠαžΈ Prometheus" αŸ” αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž“αŸƒαž‚αŸ†αž“αž·αžαž•αŸ’αžαž½αž…αž•αŸ’αžαžΎαž˜αž“αŸαŸ‡αžŸαŸ’αžαž·αžαž€αŸ’αž“αž»αž„αžŸαŸ’αžαžΆαž“αž—αžΆαž–αž’αžΆαž›αŸ‹αž αŸ’αžœαžΆ αžŠαŸ‚αž›αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžŸαž–αŸ’αžœαž•αŸ’αžŸαžΆαž™αž‡αžΆαž›αŸ†αžŠαžΆαž”αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž€αŸ†αžŽαŸ‚αž”αž“αŸ’αžαž”αž“αŸ’αž‘αžΆαž”αŸ‹αž“αŸƒ Kubernetes αž‘αŸ…αž‡αžΆαž”αŸαžαžΆ (1.17) αž“αž·αž„αžŸαŸ’αžαŸαžšαž—αžΆαž– (1.18) αŸ”

αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡αž‘αŸ€αžαž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžαžΆαž„αž€αŸ’αžšαŸ„αž˜αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αžαŸ‹αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹:

  • αžœαžΈαž“αžŠαžΌαž‚αžΆαŸ†αž‘αŸ’αžšαž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸ с αžšαžΌαž”αžšαžΆαž„ αž§αž”αž€αžšαžŽαŸαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ Kubeadm αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž“αŸαŸ‡ (αž€αŸ†αžŽαŸ‚αž’αžΆαž›αŸ‹αž αŸ’αžœαžΆ) αž±αž€αžΆαžŸ RunAsUserName αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž§αž”αž€αžšαžŽαŸαž•αŸ’αž‘αž»αž€αžœαžΈαž“αžŠαžΌ (αž€αŸ†αžŽαŸ‚αž’αžΆαž›αŸ‹αž αŸ’αžœαžΆ) αž€αžΆαžšαž€αŸ‚αž›αž˜αŸ’αž’ αž‚αžŽαž“αžΈαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αŸ’αžšαž»αž˜ (gMSA) αž‚αžΆαŸ†αž‘αŸ’αžšαžšαž αžΌαžαžŠαž›αŸ‹αž€αŸ†αžŽαŸ‚αž”αŸ‚αžαžΆ αž‚αžΆαŸ†αž‘αŸ’αžš αž˜αŸ‰αŸ„αž“ / αž—αŸ’αž‡αžΆαž”αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž—αžΆαž‚ vSphere αŸ”
  • αž€αŸ‚αž…αŸ’αž“αŸƒαž‘αžΎαž„αžœαž·αž‰ αž™αž“αŸ’αžαž€αžΆαžšαž”αž„αŸ’αž αžΆαž”αŸ‹αž‘αž·αž“αŸ’αž“αž“αŸαž™αž€αŸ’αž“αž»αž„αž€αžΆαžšαž†αŸ’αž›αžΎαž™αžαž” API. αž–αžΈαž˜αž»αž“ αžαž˜αŸ’αžšαž„ HTTP αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‚αŸ„αž›αž”αŸ†αžŽαž„αž‘αžΆαŸ†αž„αž“αŸαŸ‡ αžŠαŸ‚αž›αžŠαžΆαž€αŸ‹αž€αž˜αŸ’αžšαž·αžαž˜αž½αž™αž…αŸ†αž“αž½αž“αžŠαŸ‚αž›αžšαžΆαžšαžΆαŸ†αž„αžœαžΆαž–αžΈαž€αžΆαžšαž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžαžΆαž˜αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜αŸ” αž₯αž‘αžΌαžœαž“αŸαŸ‡ "αž€αžΆαžšαž”αž„αŸ’αž αžΆαž”αŸ‹αžŸαŸ†αžŽαžΎαžαž˜αŸ’αž›αžΆαž—αžΆαž–" αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ– αž€αžΆαžšαž•αŸ’αž‰αžΎαž’αžαž·αžαž·αž‡αž“ Accept-Encoding: gzip αž“αŸ…αž€αŸ’αž“αž»αž„αž”αž‹αž˜αž€αžαžΆ αž–αž½αž€αž‚αŸαž‘αž‘αž½αž›αž”αžΆαž“αž€αžΆαžšαž†αŸ’αž›αžΎαž™αžαž”αžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž αžΆαž”αŸ‹ GZIP αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž‘αŸ†αž αŸ†αžšαž”αžŸαŸ‹αžœαžΆαž›αžΎαžŸαž–αžΈ 128 KB αŸ” αž’αžαž·αžαž·αž‡αž“ Go αž‚αžΆαŸ†αž‘αŸ’αžšαž€αžΆαžšαž”αž„αŸ’αž αžΆαž”αŸ‹αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž· (αž•αŸ’αž‰αžΎαž”αž‹αž˜αž€αžαžΆαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž€αžΆαžš) αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž–αž½αž€αž‚αŸαž“αžΉαž„αž€αžαŸ‹αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αž—αŸ’αž›αžΆαž˜αŸ—αž“αžΌαžœαž€αžΆαžšαžαž™αž…αž»αŸ‡αž“αŸƒαž…αžšαžΆαž…αžšαžŽαŸαŸ” (αž’αžΆαž…αž˜αžΆαž“αž€αžΆαžšαž€αŸ‚αž”αŸ’αžšαŸ‚αž”αž“αŸ’αžαž·αž…αž”αž“αŸ’αžαž½αž…αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž—αžΆαžŸαžΆαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ” )
  • αž”αžΆαž“αž€αŸ’αž›αžΆαž™αž‡αžΆαž’αžΆαž…αž’αŸ’αžœαžΎαž‘αŸ…αž”αžΆαž“ αž’αŸ’αžœαžΎαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“ HPA αž–αžΈ/αž‘αŸ…αžŸαžΌαž“αŸ’αž™ αž•αž αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαžšαž„αŸ’αžœαžΆαžŸαŸ‹αžαžΆαž„αž€αŸ’αžšαŸ…. αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž’αŸ’αžœαžΎαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαžœαžαŸ’αžαž»/αž˜αŸ‰αŸ‚αžαŸ’αžšαžαžΆαž„αž€αŸ’αžšαŸ… αž“αŸ„αŸ‡αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž”αž“αŸ’αž‘αž»αž€αž€αžΆαžšαž„αžΆαžšαž“αŸ…αž‘αŸ†αž“αŸαžš αž’αŸ’αž“αž€αž’αžΆαž…αž’αŸ’αžœαžΎαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“αž‘αŸ… 0 αž…αž˜αŸ’αž›αž„αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž· αžŠαžΎαž˜αŸ’αž”αžΈαžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž’αž“αž’αžΆαž“αŸ” αž›αž€αŸ’αžαžŽαŸˆαž–αž·αžŸαŸαžŸαž“αŸαŸ‡αž‚αž½αžšαžαŸ‚αž˜αžΆαž“αž”αŸ’αžšαž™αŸ„αž‡αž“αŸαž‡αžΆαž–αž·αžŸαŸαžŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžšαžŽαžΈαžŠαŸ‚αž›αž€αž˜αŸ’αž˜αž€αžšαžŸαŸ’αž“αžΎαžŸαž»αŸ†αž’αž“αž’αžΆαž“ GPU αž αžΎαž™αž…αŸ†αž“αž½αž“αž“αŸƒαž”αŸ’αžšαž—αŸαž‘αž•αŸ’αžŸαŸαž„αž‚αŸ’αž“αžΆαž“αŸƒαž€αž˜αŸ’αž˜αž€αžšαž‘αŸ†αž“αŸαžšαž›αžΎαžŸαž–αžΈαž…αŸ†αž“αž½αž“ GPU αžŠαŸ‚αž›αž˜αžΆαž“αŸ”
  • αž’αžαž·αžαž·αž‡αž“αžαŸ’αž˜αžΈ - k8s.io/client-go/metadata.Client - αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎ "αž‘αžΌαž‘αŸ…" αž‘αŸ…αž€αžΆαž“αŸ‹αžœαžαŸ’αžαž»αŸ” αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž…αž“αžΆαž‘αžΎαž„αžŠαžΎαž˜αŸ’αž”αžΈαž‘αžΆαž‰αž™αž€αž‘αž·αž“αŸ’αž“αž“αŸαž™αž˜αŸαžαžΆαž”αžΆαž“αž™αŸ‰αžΆαž„αž„αžΆαž™αžŸαŸ’αžšαž½αž› (ឧ metadata) αž–αžΈαž’αž“αž’αžΆαž“αž…αž„αŸ’αž€αŸ„αž˜ αž αžΎαž™αž’αž“αž»αžœαžαŸ’αžαž€αžΆαžšαž”αŸ’αžšαž˜αžΌαž›αžŸαŸ†αžšαžΆαž˜ αž“αž·αž„αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž€αžΌαžαžΆαž‡αžΆαž˜αž½αž™αž–αž½αž€αž‚αŸαŸ”
  • αž”αž„αŸ’αž€αžΎαž Kubernetes αž₯αž‘αžΌαžœβ€‹αž’αŸ’αž“αž€β€‹αž’αžΆαž… αžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αž€αŸαžšαŸ’αžαž·αŸαžŠαŸ†αžŽαŸ‚αž› (β€œαž—αŸ’αž‡αžΆαž”αŸ‹αž˜αž€αž‡αžΆαž˜αž½αž™β€ αž“αŸ…αž€αŸ’αž“αž»αž„αž˜αŸ‚αž€αž’αžΆαž„) αž’αŸ’αž“αž€αž•αŸ’αžαž›αŸ‹αžŸαŸαžœαžΆαž–αž–αž€ (αž€αŸ†αžŽαŸ‚αž’αžΆαž›αŸ‹αž αŸ’αžœαžΆ)αŸ”
  • αž‘αŸ…αž§αž”αž€αžšαžŽαŸαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ kubeadm αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜ αžŸαž˜αžαŸ’αžαž—αžΆαž–αž–αž·αžŸαŸ„αž’αž“αŸ (αž€αŸ†αžŽαŸ‚αž’αžΆαž›αŸ‹αž αŸ’αžœαžΆ) αžŠαžΎαž˜αŸ’αž”αžΈαž’αž“αž»αžœαžαŸ’αžαž”αŸ†αžŽαŸ‡αžαžΆαž˜αž”αŸ†αžŽαž„αž’αŸ†αž‘αž»αž„αž–αŸαž›αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš init, join ΠΈ upgrade. αžŸαŸ’αžœαŸ‚αž„αž™αž›αŸ‹αž”αž“αŸ’αžαŸ‚αž˜αž’αŸ†αž–αžΈαžšαž”αŸ€αž”αž”αŸ’αžšαžΎαž‘αž„αŸ‹αž‡αžΆαžαž· --experimental-kustomizeαžŸαžΌαž˜αž˜αžΎαž›αž“αŸ…αž€αŸ’αž“αž»αž„ ខេធេ.
  • αž…αŸ†αžŽαž»αž…αž”αž‰αŸ’αž…αž”αŸ‹αžαŸ’αž˜αžΈαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ apiserver - readyz, - αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž“αžΆαŸ†αž…αŸαž‰αž–αŸαžαŸŒαž˜αžΆαž“αž’αŸ†αž–αžΈαž€αžΆαžšαžαŸ’αžšαŸ€αž˜αžαŸ’αž›αž½αž“αžšαž”αžŸαŸ‹αžœαžΆαŸ” αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ API αž₯αž‘αžΌαžœαž“αŸαŸ‡αž€αŸαž˜αžΆαž“αž‘αž„αŸ‹αž•αž„αžŠαŸ‚αžšαŸ” --maximum-startup-sequence-durationαž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž‘αžΎαž„αžœαž·αž‰αžšαž”αžŸαŸ‹αžœαžΆαŸ”
  • αž–αžΈαžšαž“αžΆαž€αŸ‹ αž›αž€αŸ’αžαžŽαŸˆαž–αž·αžŸαŸαžŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Azure αž”αžΆαž“αž”αŸ’αžšαž€αžΆαžŸαžαžΆαž˜αžΆαž“αžŸαŸ’αžαŸαžšαž—αžΆαž–αŸ– αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžš αžαŸ†αž”αž“αŸ‹αžŠαŸ‚αž›αž’αžΆαž…αžšαž€αž”αžΆαž“ (αžαŸ†αž”αž“αŸ‹αžŠαŸ‚αž›αž˜αžΆαž“) αž“αž·αž„ αž€αŸ’αžšαž»αž˜αž’αž“αž’αžΆαž“αž†αŸ’αž›αž„ (RG) αŸ” αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡ Azure αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αžαžΆ:
  • AWS αž₯αž‘αžΌαžœαž“αŸαŸ‡αž˜αžΆαž“ αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžš αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ EBS αž“αŸ…αž›αžΎ Windows αž“αž·αž„ αž”αžΆαž“αž’αŸ’αžœαžΎαž±αŸ’αž™αž”αŸ’αžšαžŸαžΎαžš αž€αžΆαžšαž αŸ… EC2 API DescribeInstances.
  • αž₯αž‘αžΌαžœαž“αŸαŸ‡ Kubeadm αž‚αžΊαž―αž€αžšαžΆαž‡αŸ’αž™ αž’αŸ’αžœαžΎαž…αŸ†αžŽαžΆαž€αžŸαŸ’αžšαž»αž€ αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ CoreDNS αž“αŸ…αž–αŸαž›αž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αž€αŸ†αžŽαŸ‚ CoreDNS αŸ”
  • αž‚αŸ„αž›αž–αžΈαžš αž› αž“αŸ…αž€αŸ’αž“αž»αž„αžšαžΌαž”αž—αžΆαž– Docker αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆαŸ” αž”αžΆαž“αž’αŸ’αžœαžΎ world-executable αžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžšαžΌαž”αž—αžΆαž–αž“αŸαŸ‡αžŠαŸ„αž™αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž˜αžΆαž“αžŸαž·αž‘αŸ’αž’αž·αž‡αžΆ root αŸ” αž•αž„αžŠαŸ‚αžš, etcd αžšαžΌαž”αž—αžΆαž–αž€αžΆαžšαž’αŸ’αžœαžΎαž…αŸ†αžŽαžΆαž€αžŸαŸ’αžšαž»αž€ αžˆαž”αŸ‹ αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαž€αŸ†αžŽαŸ‚ etcd2 αŸ”
  • Π’ Cluster Autoscaler 1.16.0 αž”αžΆαž“αž”αŸ’αžαžΌαžšαž‘αŸ…αž”αŸ’αžšαžΎ distroless αž‡αžΆαžšαžΌαž”αž—αžΆαž–αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“ αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„ αž”αž“αŸ’αžαŸ‚αž˜αž’αŸ’αž“αž€αž•αŸ’αžαž›αŸ‹αžŸαŸαžœαžΆαž–αž–αž€αžαŸ’αž˜αžΈ (DigitalOcean, Magnum, Packet)αŸ”
  • αž€αžΆαžšαž’αžΆαž”αŸ‹αžŠαŸαžαž“αŸ…αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ‚αž›αž”αžΆαž“αž”αŸ’αžšαžΎ/αž’αžΆαžŸαŸ’αžšαŸαž™αŸ– Go 1.12.9, etcd 3.3.15, CoreDNS 1.6.2 αŸ”

PS

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

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

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