តើ Kubernetes pod αž‘αž‘αž½αž›αž”αžΆαž“αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“ IP αž™αŸ‰αžΆαž„αžŠαžΌαž…αž˜αŸ’αžαŸαž…?

αž…αŸ†αžŽαžΆαŸ†αŸ” αž”αž€αž”αŸ’αžšαŸ‚αŸ– αž’αžαŸ’αžαž”αž‘αž“αŸαŸ‡αžŸαžšαžŸαŸαžšαžŠαŸ„αž™αžœαž·αžŸαŸ’αžœαž€αžš SRE αž˜αž€αž–αžΈ LinkedIn αžšαŸ€αž”αžšαžΆαž”αŸ‹αž›αž˜αŸ’αž’αž·αžαž’αŸ†αž–αžΈαžœαŸαž‘αž˜αž“αŸ’αžαžαžΆαž„αž€αŸ’αž“αž»αž„αž“αŸ…αž€αŸ’αž“αž»αž„ Kubernetes - αž€αžΆαž“αŸ‹αžαŸ‚αž…αŸ’αž”αžΆαžŸαŸ‹αž‡αžΆαž„αž“αŸαŸ‡αž‘αŸ…αž‘αŸ€αž αž’αž“αŸ’αžαžšαž€αž˜αŸ’αž˜αžšαž”αžŸαŸ‹ CRI, CNI αž“αž·αž„ kube-apiserver - αžŠαŸ‚αž›αž€αžΎαžαž‘αžΎαž„αž“αŸ…αž–αŸαž›αžŠαŸ‚αž› pod αž”αž“αŸ’αž‘αžΆαž”αŸ‹αžαŸ’αžšαžΌαžœαž€αžΆαžšαž•αŸ’αžαž›αŸ‹αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“ IP αŸ”

αž˜αž½αž™αž“αŸƒαžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“ αž˜αŸ‰αžΌαžŠαŸ‚αž›αž”αžŽαŸ’αžαžΆαž‰ Kubernetes αž‚αžΊαžαžΆαž•αžαž“αžΈαž˜αž½αž™αŸ—αžαŸ’αžšαžΌαžœαžαŸ‚αž˜αžΆαž“αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“ IP αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“ αž αžΎαž™αž•αžαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž“αŸ…αž€αŸ’αž“αž»αž„αž…αž„αŸ’αž€αŸ„αž˜αžαŸ’αžšαžΌαžœαžαŸ‚αž’αžΆαž…αž‘αžΆαž€αŸ‹αž‘αž„αžœαžΆαž”αžΆαž“αžαžΆαž˜αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“αž“αŸ„αŸ‡αŸ” αž˜αžΆαž“αž”αžŽαŸ’αžαžΆαž‰ "αž’αŸ’αž“αž€αž•αŸ’αžαž›αŸ‹αžŸαŸαžœαžΆ" αž‡αžΆαž…αŸ’αžšαžΎαž“ (Flannel, Calico, Canal αŸ”αž›αŸ”) αžŠαŸ‚αž›αž‡αž½αž™αž’αž“αž»αžœαžαŸ’αžαž‚αŸ†αžšαžΌαž”αžŽαŸ’αžαžΆαž‰αž“αŸαŸ‡αŸ”

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

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

αž‚αŸ†αž“αž·αžαž‡αžΆαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž˜αž½αž™αž…αŸ†αž“αž½αž“

αž€αž»αž„αžαžΊαž“αŸαžš αž“αž·αž„αž”αžŽαŸ’αžαžΆαž‰αŸ– αž‘αž·αžŠαŸ’αž‹αž—αžΆαž–αžŸαž„αŸ’αžαŸαž”

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

αž’αž»αž„αž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αžαŸ‚αž˜αž½αž™

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

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

តើ Kubernetes pod αž‘αž‘αž½αž›αž”αžΆαž“αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“ IP αž™αŸ‰αžΆαž„αžŠαžΌαž…αž˜αŸ’αžαŸαž…?

αž’αž»αž„αž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž•αŸ’αžŸαŸαž„αž‚αŸ’αž“αžΆ

Packet encapsulation αž‚αžΊαž‡αžΆαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž˜αž½αž™αžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž€αž»αž„αžαžΊαž“αŸαžšαž“αŸ…αž›αžΎαžαŸ’αž“αžΆαŸ†αž„αž•αŸ’αžŸαŸαž„αŸ—αž‚αŸ’αž“αžΆαž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αž‚αŸ’αž“αžΆαž‘αŸ…αžœαž·αž‰αž‘αŸ…αž˜αž€αžŠαŸ„αž™αž”αŸ’αžšαžΎαž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“ IP αŸ” αž“αŸ… Flannel αž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆαž‘αž‘αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαž…αŸ†αž–αŸ„αŸ‡αž±αž€αžΆαžŸαž“αŸαŸ‡αŸ” vxlanαžŠαŸ‚αž› "αž€αž‰αŸ’αž…αž”αŸ‹" αž€αž‰αŸ’αž…αž”αŸ‹αžŠαžΎαž˜αž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„αž€αž‰αŸ’αž…αž”αŸ‹ UDP αž αžΎαž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž•αŸ’αž‰αžΎαžœαžΆαž‘αŸ…αž‚αŸ„αž›αžŠαŸ…αžšαž”αžŸαŸ‹αžœαžΆαŸ”

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

តើ Kubernetes pod αž‘αž‘αž½αž›αž”αžΆαž“αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“ IP αž™αŸ‰αžΆαž„αžŠαžΌαž…αž˜αŸ’αžαŸαž…?
αž…αŸ†αžŽαžΆαŸ†αŸ– αž“αŸαŸ‡αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž‡αžΆαžœαž·αž’αžΈαž˜αž½αž™αž€αŸ’αž“αž»αž„αž€αžΆαžšαžšαŸ€αž”αž…αŸ†αž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αž”αžŽαŸ’αžαžΆαž‰αžšαžœαžΆαž„αž€αž»αž„αžαžΊαž“αŸαžšαž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ”

តើ CRI αž‡αžΆαž’αŸ’αžœαžΈ?

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

តើ CNI αž‡αžΆαž’αŸ’αžœαžΈ?

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

αž€αžΆαžšαž”αŸ‚αž„αž…αŸ‚αž€αž”αžŽαŸ’αžαžΆαž‰αžšαž„αž‘αŸ…αžαŸ’αž“αžΆαŸ†αž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αŸ†αžŽαžαŸ‹αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“ IP αž‘αŸ…αž€αžΆαž“αŸ‹αž•αž

αžŠαŸ„αž™αžŸαžΆαžšαž•αžαž“αžΈαž˜αž½αž™αŸ—αž“αŸ…αž€αŸ’αž“αž»αž„αž…αž„αŸ’αž€αŸ„αž˜αžαŸ’αžšαžΌαžœαžαŸ‚αž˜αžΆαž“αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“ IP αžœαžΆαž‡αžΆαž€αžΆαžšαžŸαŸ†αžαžΆαž“αŸ‹αžŽαžΆαžŸαŸ‹αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αžΆαž“αžΆαžαžΆαž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“αž“αŸαŸ‡αž˜αžΆαž“αžαŸ‚αž˜αž½αž™αŸ” αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαž˜αŸ’αžšαŸαž…αžŠαŸ„αž™αž€αžΆαžšαž•αŸ’αžŠαž›αŸ‹αž±αŸ’αž™ node αž“αžΈαž˜αž½αž™αŸ—αž“αžΌαžœ subnet αžαŸ‚αž˜αž½αž™αž‚αžαŸ‹ αžŠαŸ‚αž› pods αž“αŸ…αž›αžΎ node αž“αŸ„αŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“ IP αŸ”

αž§αž”αž€αžšαžŽαŸαž”αž‰αŸ’αž‡αžΆ Node IPAM

αž“αŸ…αž–αŸαž› nodeipam αž”αžΆαž“αž†αŸ’αž›αž„αž€αžΆαžαŸ‹αž‡αžΆαž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαž‘αž„αŸ‹ --controllers kube-controller-managerαžœαžΆαž”αŸ‚αž„αž…αŸ‚αž€αž”αžŽαŸ’αžαžΆαž‰αžšαž„αžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€ (podCIDR) αž‘αŸ…αž€αžΆαž“αŸ‹αžαŸ’αž“αžΆαŸ†αž„αž“αžΈαž˜αž½αž™αŸ—αž–αžΈαž…αž„αŸ’αž€αŸ„αž˜ CIDR (ឧ. αž‡αž½αžšαž“αŸƒαž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“ IP αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αžŽαŸ’αžαžΆαž‰αž…αž„αŸ’αž€αŸ„αž˜)αŸ” αžŠαŸ„αž™αžŸαžΆαžš podCIDRs αž‘αžΆαŸ†αž„αž“αŸαŸ‡αž˜αž·αž“αžαŸ’αžšαž½αžαž›αžΎαž‚αŸ’αž“αžΆ αžœαžΆαž’αžΆαž…αž‘αŸ…αžšαž½αž…αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž•αžαž“αžΈαž˜αž½αž™αŸ—αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ‚αž„αž…αŸ‚αž€αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“ IP αžαŸ‚αž˜αž½αž™αž‚αžαŸ‹αŸ”

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

$ kubectl get no <nodeName> -o json | jq '.spec.podCIDR'
10.244.0.0/24

Kubelet, container runtime αž“αž·αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™ CNIαŸ– αžšαž”αŸ€αž”αžŠαŸ‚αž›αžœαžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ”

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

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

តើ Kubernetes pod αž‘αž‘αž½αž›αž”αžΆαž“αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“ IP αž™αŸ‰αžΆαž„αžŠαžΌαž…αž˜αŸ’αžαŸαž…?

αž‡αŸ†αž“αž½αž™: αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™ CRI αž€αž»αž„αžαžΊαž“αŸαžš.

αž’αž“αŸ’αžαžšαž€αž˜αŸ’αž˜αžšαžœαžΆαž„αž€αž»αž„αžαžΊαž“αŸαžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž“αž·αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™ CNI

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

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

αž‘αžΈαžαžΆαŸ†αž„αž“αŸƒαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ CNI αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžŠαžΌαžšαžαžΆαž˜αž”αŸ†αžŽαž„αŸ” αžαžΆαž˜αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜αžœαžΆαžŸαŸ’αžαž·αžαž“αŸ…αž€αŸ’αž“αž»αž„ /etc/cni/net.d/<config-file>. αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž…αž„αŸ’αž€αŸ„αž˜αž€αŸαž‘αž‘αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαž€αŸ’αž“αž»αž„αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™ CNI αž“αŸ…αž›αžΎαžαŸ’αž“αžΆαŸ†αž„αž…αž„αŸ’αž€αŸ„αž˜αž“αžΈαž˜αž½αž™αŸ—αž•αž„αžŠαŸ‚αžšαŸ” αž‘αžΈαžαžΆαŸ†αž„αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαž€αŸαž’αžΆαž…αž”αŸ’αžŠαžΌαžšαžαžΆαž˜αž”αŸ†αžŽαž„αž”αžΆαž“αž•αž„αžŠαŸ‚αžšαŸ” αžαžβ€‹αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜ - /opt/cni/bin.

αž“αŸ…αž–αŸαž›αž”αŸ’αžšαžΎαž€αž»αž„αžαžΊαž“αŸαžš αž•αŸ’αž›αžΌαžœαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™ αž“αž·αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‚αŸ„αž›αž–αžΈαžšαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž•αŸ’αž“αŸ‚αž€ [plugins.Β«io.containerd.grpc.v1.criΒ».cni] Π² αž―αž€αžŸαžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž’αž»αž„.

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

  • Flanneld (αžŠαŸαž˜αž·αž“αžšαž”αžŸαŸ‹ Flannel) αž‡αžΆαž’αž˜αŸ’αž˜αžαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ†αž‘αžΎαž„αž“αŸ…αž€αŸ’αž“αž»αž„αž…αž„αŸ’αž€αŸ„αž˜αž‡αžΆ DaemonSet αž‡αžΆαž˜αž½αž™ install-cni as αž€αž»αž„αžαžΊαž“αŸαžš.
  • Install-cni αž”αž„αŸ’αž€αžΎαž αž―αž€αžŸαžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ CNI (/etc/cni/net.d/10-flannel.conflist) αž“αŸ…αž›αžΎαžαŸ’αž“αžΆαŸ†αž„αž“αžΈαž˜αž½αž™αŸ—αŸ”
  • Flanneld αž”αž„αŸ’αž€αžΎαžαž§αž”αž€αžšαžŽαŸ vxlan αž‘αžΆαž‰αž™αž€αž‘αž·αž“αŸ’αž“αž“αŸαž™αž˜αŸαžαžΆαž”αžŽαŸ’αžαžΆαž‰αž–αžΈαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ API αž“αž·αž„αžαžΆαž˜αžŠαžΆαž“αž€αžΆαžšαž’αžΆαž”αŸ‹αžŠαŸαžαž•αžαŸ” αžŠαžΌαž…αžŠαŸ‚αž›αž–αž½αž€αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαž αžœαžΆαž…αŸ‚αž€αž…αžΆαž™αž•αŸ’αž›αžΌαžœαž‘αŸ…αž€αžΆαž“αŸ‹αž•αžαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸ…αž‘αžΌαž‘αžΆαŸ†αž„αž…αž„αŸ’αž€αŸ„αž˜αŸ”
  • αž•αŸ’αž›αžΌαžœαž‘αžΆαŸ†αž„αž“αŸαŸ‡αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™ pods αž‘αžΆαž€αŸ‹αž‘αž„αž‚αŸ’αž“αžΆαž‘αŸ…αžœαž·αž‰αž‘αŸ…αž˜αž€αžαžΆαž˜αžšαž™αŸˆαž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“ IP αŸ”

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

αž“αŸαŸ‡αž‚αžΊαž‡αžΆαžŠαŸ’αž™αžΆαž€αŸ’αžšαžΆαž˜αž“αŸƒαž’αž“αŸ’αžαžšαž€αž˜αŸ’αž˜αžšαžœαžΆαž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™ Containerd CRI αž“αž·αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™ CNIαŸ–

តើ Kubernetes pod αž‘αž‘αž½αž›αž”αžΆαž“αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“ IP αž™αŸ‰αžΆαž„αžŠαžΌαž…αž˜αŸ’αžαŸαž…?

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

αž’αž“αŸ’αžαžšαž€αž˜αŸ’αž˜αžšαžœαžΆαž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™ CNI

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

αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™ CNI Flannel

αž“αŸ…αž–αŸαž›αž”αŸ’αžšαžΎ Flannel αž‡αžΆαž’αŸ’αž“αž€αž•αŸ’αžαž›αŸ‹αž”αžŽαŸ’αžαžΆαž‰ αžŸαž˜αžΆαžŸαž—αžΆαž‚ Containerd CRI αž αŸ…αž‘αžΌαžšαžŸαž–αŸ’αž‘ αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™ CNI FlannelαžŠαŸ„αž™αž”αŸ’αžšαžΎαž―αž€αžŸαžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ CNI /etc/cni/net.d/10-flannel.conflist.

$ cat /etc/cni/net.d/10-flannel.conflist
{
  "name": "cni0",
  "plugins": [
    {
      "type": "flannel",
      "delegate": {
         "ipMasq": false,
        "hairpinMode": true,
        "isDefaultGateway": true
      }
    }
  ]
}

αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™ Flannel CNI αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ„αž™αž—αŸ’αž‡αžΆαž”αŸ‹αž‡αžΆαž˜αž½αž™ Flannel αŸ” αž€αŸ’αž“αž»αž„αž’αŸ†αž‘αž»αž„αž–αŸαž›αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜ Flanneld αž‘αžΆαž‰αž™αž€ podCIDR αž“αž·αž„αž–αŸαžαŸŒαž˜αžΆαž“αž›αž˜αŸ’αž’αž·αžαž‘αžΆαž€αŸ‹αž‘αž„αž“αžΉαž„αž”αžŽαŸ’αžαžΆαž‰αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž–αžΈαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ API αž αžΎαž™αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž–αž½αž€αžœαžΆαž‘αŸ…αž€αŸ’αž“αž»αž„αž―αž€αžŸαžΆαžš /run/flannel/subnet.env.

FLANNEL_NETWORK=10.244.0.0/16 
FLANNEL_SUBNET=10.244.0.1/24
FLANNEL_MTU=1450 
FLANNEL_IPMASQ=false

αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™ Flannel CNI αž”αŸ’αžšαžΎαž‘αž·αž“αŸ’αž“αž“αŸαž™αž–αžΈ /run/flannel/subnet.env αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ αž“αž·αž„αž αŸ…αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™αžŸαŸ’αž–αžΆαž“ CNI αŸ”

αžŸαŸ’αž–αžΆαž“αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™ CNI

αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž αŸ…αžŠαŸ„αž™αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžŠαžΌαž…αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸˆ

{
  "name": "cni0",
  "type": "bridge",
  "mtu": 1450,
  "ipMasq": false,
  "isGateway": true,
  "ipam": {
    "type": "host-local",
    "subnet": "10.244.0.0/24"
  }
}

αž“αŸ…αž–αŸαž›αž‚αŸαž αŸ…αž‡αžΆαž›αžΎαž€αžŠαŸ†αž”αžΌαž„ αžœαžΆαž”αž„αŸ’αž€αžΎαžαžŸαŸ’αž–αžΆαž“αž›αžΈαž“αž»αž…αž‡αžΆαž˜αž½αž™ Β«nameΒ»: Β«cni0Β»αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αž„αŸ’αž’αž»αž›αž”αž„αŸ’αž αžΆαž‰αž“αŸ…αž€αŸ’αž“αž»αž„ config αŸ” αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž‚αžΌ veth αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ pod αž“αžΈαž˜αž½αž™αŸ—αŸ” αž…αž»αž„αž˜αŸ’αžαžΆαž„αžšαž”αžŸαŸ‹αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ…αž”αžŽαŸ’αžαžΆαž‰ namespace αžšαž”αžŸαŸ‹αž€αž»αž„αžαžΊαž“αŸαžš αž αžΎαž™αž˜αž½αž™αž‘αŸ€αžαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αž…αžΌαž›αž€αŸ’αž“αž»αž„αžŸαŸ’αž–αžΆαž“αž›αžΈαž“αž»αž…αž“αŸ…αž›αžΎαž”αžŽαŸ’αžαžΆαž‰αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αŸ” αžŸαŸ’αž–αžΆαž“αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™ CNI αž—αŸ’αž‡αžΆαž”αŸ‹αž€αž»αž„αžαžΊαž“αŸαžšαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž‘αŸ…αžŸαŸ’αž–αžΆαž“αž›αžΈαž“αž»αž…αž“αŸ…αž›αžΎαž”αžŽαŸ’αžαžΆαž‰αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αŸ”

αžŠαŸ„αž™αž”αžΆαž“αž”αž‰αŸ’αž…αž”αŸ‹αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„ veth pair αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™ Bridge αž αŸ…αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™ IPAM CNI αž€αŸ’αž“αž»αž„αžŸαŸ’αžšαž»αž€αžšαž”αžŸαŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αŸ” αž”αŸ’αžšαž—αŸαž‘αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™ IPAM αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž“αŸ…αž€αŸ’αž“αž»αž„ CNI config αžŠαŸ‚αž›αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™ CRI αž”αŸ’αžšαžΎαžŠαžΎαž˜αŸ’αž”αžΈαž αŸ…αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™ Flannel CNI αŸ”

αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™ IPAM CNI αž€αŸ’αž“αž»αž„αžŸαŸ’αžšαž»αž€αžšαž”αžŸαŸ‹αž˜αŸ’αž…αžΆαžŸαŸ‹αž•αŸ’αž‘αŸ‡

αžŸαŸ’αž–αžΆαž“ CNI αž αŸ… αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™ IPAM αž€αŸ’αž“αž»αž„αžŸαŸ’αžšαž»αž€αžšαž”αžŸαŸ‹αž˜αŸ’αž…αžΆαžŸαŸ‹αž•αŸ’αž‘αŸ‡ CNI αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžŠαžΌαž…αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸˆ

{
  "name": "cni0",
  "ipam": {
    "type": "host-local",
    "subnet": "10.244.0.0/24",
    "dataDir": "/var/lib/cni/networks"
  }
}

αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™ IPAM αž€αŸ’αž“αž»αž„αžŸαŸ’αžšαž»αž€αžšαž”αžŸαŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“ (IP Address αŸ” Mαž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„ - αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“ IP) αžαŸ’αžšαž‘αž”αŸ‹αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“ IP αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αž»αž„αžαžΊαž“αŸαžšαž–αžΈαž”αžŽαŸ’αžαžΆαž‰αžšαž„ αž αžΎαž™αžšαž€αŸ’αžŸαžΆαž‘αž»αž€ IP αžŠαŸ‚αž›αž”αžΆαž“αž”αŸ‚αž„αž…αŸ‚αž€αž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αŸ…αž€αŸ’αž“αž»αž„αžαžαžŠαŸ‚αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž•αŸ’αž“αŸ‚αž€ dataDir - /var/lib/cni/networks/<network-name=cni0>/<ip>. αž―αž€αžŸαžΆαžšαž“αŸαŸ‡αž˜αžΆαž“αž›αŸαžαžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αž€αž»αž„αžαžΊαž“αŸαžšαžŠαŸ‚αž›αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“ IP αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αžΆαžαŸ‹αžαžΆαŸ†αž„αŸ”

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

{
  "ip4": {
    "ip": "10.244.4.2",
    "gateway": "10.244.4.3"
  },
  "dns": {}
}

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

Kube-controller-manager αž•αŸ’αžαž›αŸ‹ podCIDR αžŠαž›αŸ‹αžαŸ’αž“αžΆαŸ†αž„αž“αžΈαž˜αž½αž™αŸ—αŸ” αž•αžαž•αžαžšαž”αžŸαŸ‹αžαŸ’αž“αžΆαŸ†αž„αž“αžΈαž˜αž½αž™αŸ—αž‘αž‘αž½αž›αž”αžΆαž“αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“ IP αž–αžΈαž…αž“αŸ’αž›αŸ„αŸ‡αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„αž‡αž½αžš podCIDR αžŠαŸ‚αž›αž”αžΆαž“αž”αŸ‚αž„αž…αŸ‚αž€αŸ” αžŠαŸ„αž™αžŸαžΆαžš podCIDR αžšαž”αžŸαŸ‹αžαŸ’αž“αžΆαŸ†αž„αž˜αž·αž“αžαŸ’αžšαž½αžαž›αžΎαž‚αŸ’αž“αžΆ αž•αžαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž‘αž‘αž½αž›αž”αžΆαž“αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“ IP αžαŸ‚αž˜αž½αž™αž‚αžαŸ‹αŸ”

αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž…αž„αŸ’αž€αŸ„αž˜ Kubernetes αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ αž“αž·αž„αžŠαŸ†αž‘αžΎαž„ kubelet αžšαž™αŸˆαž–αŸαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž»αž„αžαžΊαž“αŸαžš αž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžšαž•αŸ’αžαž›αŸ‹αž”αžŽαŸ’αžαžΆαž‰ αž“αž·αž„αž…αž˜αŸ’αž›αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™ CNI αž‘αŸ…αžαŸ’αž“αžΆαŸ†αž„αž“αžΈαž˜αž½αž™αŸ—αŸ” αž€αŸ†αž‘αž»αž„αž–αŸαž›αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜ αž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžšαž•αŸ’αžαž›αŸ‹αžŸαŸαžœαžΆαž”αžŽαŸ’αžαžΆαž‰αž”αž„αŸ’αž€αžΎαžαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ CNI αŸ” αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž•αžαžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž–αŸαž›αž‘αŸ…αžαŸ’αž“αžΆαŸ†αž„ kubelet αž αŸ…αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™ CRI αžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαžαžœαžΆαŸ” αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž€αž»αž„αžαžΊαž“αŸαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™ Containerd CRI αž αŸ…αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™ CNI αžŠαŸ‚αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„ CNI config αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž”αžŽαŸ’αžαžΆαž‰αžšαž”αžŸαŸ‹ pod αŸ” αž‡αžΆαž›αž‘αŸ’αž’αž•αž› pod αž‘αž‘αž½αž›αž”αžΆαž“αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“ IP αŸ”

αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž…αŸ†αžŽαžΆαž™αž–αŸαž›αžαŸ’αž›αŸ‡αžŠαžΎαž˜αŸ’αž”αžΈαž™αž›αŸ‹αž–αžΈ subtleties αž“αž·αž„ nuances αž“αŸƒαž’αž“αŸ’αžαžšαž€αž˜αŸ’αž˜αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸαŸ‡αŸ” αžαŸ’αž‰αž»αŸ†αžŸαž„αŸ’αžƒαžΉαž˜αžαžΆαž”αž‘αž–αž·αžŸαŸ„αž’αž“αŸαž“αŸαŸ‡αž“αžΉαž„αž‡αž½αž™αž’αŸ’αž“αž€αž±αŸ’αž™αž™αž›αŸ‹αž€αžΆαž“αŸ‹αžαŸ‚αž…αŸ’αž”αžΆαžŸαŸ‹αž’αŸ†αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž› Kubernetes αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ” αž”αžΎαžαŸ’αž‰αž»αŸ†αžαž»αžŸαžαŸ’αžšαž„αŸ‹αžŽαžΆ αžŸαžΌαž˜αž‘αžΆαž€αŸ‹αž‘αž„αž˜αž€αžαŸ’αž‰αž»αŸ† Twitter αž¬αž“αŸ…αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“ [αž’αŸŠαžΈαž˜αŸ‚αž›αž€αžΆαžšαž–αžΆαžš]. αž˜αžΆαž“αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαžŸαŸαžšαžΈαž€αŸ’αž“αž»αž„αž€αžΆαžšαž‘αžΆαž€αŸ‹αž‘αž„ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž…αž„αŸ‹αž–αž·αž—αžΆαž€αŸ’αžŸαžΆαž’αŸ†αž–αžΈαž‘αž·αžŠαŸ’αž‹αž—αžΆαž–αž“αŸƒαž’αžαŸ’αžαž”αž‘αž“αŸαŸ‡ αž¬αž’αŸ’αžœαžΈαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ” αžαŸ’αž‰αž»αŸ†β€‹αž…αž„αŸ‹β€‹αž‡αž‡αŸ‚αž€β€‹αž‡αžΆαž˜αž½αž™β€‹αž’αŸ’αž“αž€!

αžŸαŸαž…αž€αŸ’αžαžΈαž™αŸ„αž„

αž’αž»αž„αž“αž·αž„αž”αžŽαŸ’αžαžΆαž‰

តើ Flannel αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž™αŸ‰αžΆαž„αžŠαžΌαž…αž˜αŸ’αžαŸαž…?

CRI αž“αž·αž„ CNI

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

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

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

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