αžšαž”αŸ€αž”αž”αŸ’αžšαžΎ kubectl αž€αžΆαž“αŸ‹αžαŸ‚αž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αŸ– αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž›αž˜αŸ’αž’αž·αž

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

αž€αŸ’αžšαž»αž˜αž€αžΆαžšαž„αžΆαžš Kubernetes aaS αž–αžΈ Mail.ru αž”αžΆαž“αž”αž€αž”αŸ’αžšαŸ‚αž’αžαŸ’αžαž”αž‘αžŠαŸ„αž™ Daniel Weibel αžŠαŸ‚αž›αž’αŸ’αž“αž€αž“αžΉαž„αžšαž€αžƒαžΎαž‰αž‚αž“αŸ’αž›αžΉαŸ‡ αž“αž·αž„αž›αŸ’αž”αž·αž…αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αžœαžΎαž€αžΆαžšαž”αŸ’αžšαž€αž”αžŠαŸ„αž™αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž‡αžΆαž˜αž½αž™ kubectlαŸ” αžœαžΆαž€αŸαž“αžΉαž„αž‡αž½αž™αž’αŸ’αž“αž€αž±αŸ’αž™αž™αž›αŸ‹αž€αžΆαž“αŸ‹αžαŸ‚αžŸαŸŠαžΈαž‡αž˜αŸ’αžšαŸ…αž’αŸ†αž–αžΈ Kubernetes αž•αž„αžŠαŸ‚αžšαŸ”

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

αžŸαŸαž…αž€αŸ’αžαžΈαž•αŸ’αžαžΎαž˜αŸ– តើ kubectl αž‡αžΆαž’αŸ’αžœαžΈ?

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

αžαžΆαž˜αž‘αžŸαŸ’αžŸαž“αŸˆαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎ kubectl αž‚αžΊαž‡αžΆαž•αŸ’αž‘αžΆαŸ†αž„αž”αž‰αŸ’αž‡αžΆαžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž’αž“αž»αžœαžαŸ’αžαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš Kubernetes αŸ”

αž“αž·αž™αžΆαž™αžαžΆαž˜αž”αž…αŸ’αž…αŸαž€αž‘αŸαžŸ kubectl αž‚αžΊαž‡αžΆαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž‰αŸ€αžœ Kubernetes API αŸ”

Kubernetes API αž‚αžΊαž‡αžΆ HTTP REST APIαŸ” API αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎ Kubernetes αž–αž·αž αžŠαŸ‚αž›αžαžΆαž˜αžšαž™αŸˆαž“αŸ„αŸ‡αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž‘αžΆαŸ†αž„αžŸαŸ’αžšαž»αž„αŸ” αž“αŸαŸ‡αž˜αžΆαž“αž“αŸαž™αžαžΆαžšαžΆαž›αŸ‹αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš Kubernetes αžαŸ’αžšαžΌαžœαž”αžΆαž“αž›αžΆαžαžαŸ’αžšαžŠαžΆαž„αž‡αžΆαž…αŸ†αžŽαž»αž…αž”αž‰αŸ’αž…αž”αŸ‹ API αž αžΎαž™αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαž‘αžΎαž„αžŠαŸ„αž™αžŸαŸ†αžŽαžΎ HTTP αž‘αŸ…αž€αžΆαž“αŸ‹αž…αŸ†αžŽαž»αž…αž”αž‰αŸ’αž…αž”αŸ‹αž“αŸ„αŸ‡αŸ”

αžŠαžΌαž…αŸ’αž“αŸαŸ‡ αž€αžΆαžšαž„αžΆαžšαžŸαŸ†αžαžΆαž“αŸ‹αžšαž”αžŸαŸ‹ kubectl αž‚αžΊαž’αŸ’αžœαžΎαžŸαŸ†αžŽαžΎ HTTP αž‘αŸ…αž€αžΆαž“αŸ‹ Kubernetes APIαŸ–

αžšαž”αŸ€αž”αž”αŸ’αžšαžΎ kubectl αž€αžΆαž“αŸ‹αžαŸ‚αž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αŸ– αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž›αž˜αŸ’αž’αž·αž
Kubernetes αž‚αžΊαž‡αžΆαž”αŸ’αžšαž–αŸαž“αŸ’αž’αžαž˜αŸ’αžšαž„αŸ‹αž‘αž·αžŸαž’αž“αž’αžΆαž“αž‘αžΆαŸ†αž„αžŸαŸ’αžšαž»αž„αŸ” αž“αŸαŸ‡αž˜αžΆαž“αž“αŸαž™αžαžΆαžœαžΆαžšαž€αŸ’αžŸαžΆαžŸαŸ’αžαžΆαž“αž—αžΆαž–αž•αŸ’αž‘αŸƒαž€αŸ’αž“αž»αž„αž“αŸƒαž’αž“αž’αžΆαž“ αž αžΎαž™αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš Kubernetes αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž‚αžΊαž‡αžΆαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš CRUD αŸ”

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

αžŸαžΌαž˜αž€αŸ’αžšαž‘αŸαž€αž˜αžΎαž›αž§αž‘αžΆαž αžšαžŽαŸαž˜αž½αž™αŸ”.

αž…αžΌαžšαž“αž·αž™αžΆαž™αžαžΆαž’αŸ’αž“αž€αž…αž„αŸ‹αž”αž„αŸ’αž€αžΎαžαž’αž“αž’αžΆαž“ ReplicaSet αŸ” αžŠαžΎαž˜αŸ’αž”αžΈβ€‹αž’αŸ’αžœαžΎβ€‹αžŠαžΌαž…αŸ’αž“αŸαŸ‡ αž’αŸ’αž“αž€β€‹αž–αžŽαŸŒαž“αžΆβ€‹αž’αŸ†αž–αžΈβ€‹αžŸαŸ†αžŽαž»αŸ†β€‹αž…αž˜αŸ’αž›αž„β€‹αž€αŸ’αž“αž»αž„β€‹αž―αž€αžŸαžΆαžšβ€‹αžαžΆαž˜β€‹αžˆαŸ’αž˜αŸ„αŸ‡ replicaset.yamlαž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαŸ–

$ kubectl create -f replicaset.yaml

αžœαžΆαž“αžΉαž„αž”αž„αŸ’αž€αžΎαžαž’αž“αž’αžΆαž“ ReplicaSet αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžαžΎαž˜αžΆαž“αž’αŸ’αžœαžΈαž€αžΎαžαž‘αžΎαž„αž“αŸ…αž–αžΈαž€αŸ’αžšαŸ„αž™αž†αžΆαž€?

Kubernetes αž˜αžΆαž“αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž ReplicaSetαŸ” αžŠαžΌαž…αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαžŠαŸ‚αžš αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž›αžΆαžαžαŸ’αžšαžŠαžΆαž„αž‡αžΆαž…αŸ†αžŽαž»αž…αž”αž‰αŸ’αž…αž”αŸ‹ API αŸ” αž…αŸ†αžŽαž»αž…αž”αž‰αŸ’αž…αž”αŸ‹ API αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž“αŸαŸ‡αž˜αžΎαž›αž‘αŸ…αžŠαžΌαž…αž“αŸαŸ‡αŸ–

POST /apis/apps/v1/namespaces/{namespace}/replicasets

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

αžŠαžΌαž…αŸ’αž“αŸαŸ‡ αž“αŸ…αž–αŸαž›αž’αŸ’αž“αž€αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžαžΆαž„αž›αžΎ kubectl αž•αŸ’αž‰αžΎαžŸαŸ†αžŽαžΎ HTTP POST αž‘αŸ…αž€αžΆαž“αŸ‹αž…αŸ†αžŽαž»αž…αž”αž‰αŸ’αž…αž”αŸ‹ API αžαžΆαž„αž›αžΎαŸ” αž“αž·αž™αž˜αž“αŸαž™ ReplicaSet αžŠαŸ‚αž›αž’αŸ’αž“αž€αž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž―αž€αžŸαžΆαžš replicaset.yamlαžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž‰αžΎαž“αŸ…αž€αŸ’αž“αž»αž„αžαž½αž“αŸƒαžŸαŸ†αžŽαžΎαŸ”

αž“αŸαŸ‡αž‡αžΆαžšαž”αŸ€αž”αžŠαŸ‚αž› kubectl αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ‚αž›αž˜αžΆαž“αž’αž“αŸ’αžαžšαž€αž˜αŸ’αž˜αž‡αžΆαž˜αž½αž™αž…αž„αŸ’αž€αŸ„αž˜ Kubernetes αŸ” αž€αŸ’αž“αž»αž„β€‹αž€αžšαžŽαžΈβ€‹αž‘αžΆαŸ†αž„β€‹αž’αžŸαŸ‹β€‹αž“αŸαŸ‡ kubectl αž‚αŸ’αžšαžΆαž“αŸ‹β€‹αžαŸ‚β€‹αž’αŸ’αžœαžΎβ€‹αžŸαŸ†αžŽαžΎ HTTP αž‘αŸ…β€‹αž€αžΆαž“αŸ‹β€‹αž…αŸ†αžŽαž»αž…β€‹αž”αž‰αŸ’αž…αž”αŸ‹ Kubernetes API αžŠαŸ‚αž›β€‹αžŸαž˜αžšαž˜αŸ’αž™αŸ”

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

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

αž–αž·αž—αž–αžαžΆαž„αž€αŸ’αž“αž»αž„αž“αŸƒ Kubernetes

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

αž“αŸαŸ‡αž‚αžΊαž‡αžΆαžŸαž˜αžΆαžŸαž’αžΆαžαž»αžŸαŸ†αžαžΆαž“αŸ‹αž”αŸ†αž•αž»αžαž“αŸ…αž›αžΎαžαŸ’αž“αžΆαŸ†αž„αžŸαŸ†αžαžΆαž“αŸ‹αŸ—αŸ–

  1. αžƒαŸ’αž›αžΆαŸ†αž„ - αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž“αž·αž™αž˜αž“αŸαž™αž’αž“αž’αžΆαž“ (αž‡αžΆαž’αž˜αŸ’αž˜αžαžΆαžœαžΆαž‡αžΆ αž›αŸ”).
  2. αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ API - αž•αŸ’αžαž›αŸ‹ API αž“αž·αž„αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αžΆαžšαž•αŸ’αž‘αž»αž€αŸ”
  3. αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž§αž”αž€αžšαžŽαŸαž”αž‰αŸ’αž‡αžΆ - αž’αžΆαž“αžΆαžαžΆαžŸαŸ’αžαžΆαž“αž—αžΆαž–αž’αž“αž’αžΆαž“αž’αž“αž»αž›αŸ„αž˜αžαžΆαž˜αž›αž€αŸ’αžαžŽαŸˆαž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αŸ”
  4. αž’αŸ’αž“αž€αžšαŸ€αž”αž…αŸ†αž€αžΆαž›αžœαž·αž—αžΆαž‚ - αž€αŸ†αžŽαžαŸ‹αž€αžΆαž›αžœαž·αž—αžΆαž‚ pods αž“αŸ…αž›αžΎαžαŸ’αž“αžΆαŸ†αž„αž€αž˜αŸ’αž˜αž€αžšαŸ”

αž αžΎαž™αž“αŸαŸ‡αž‚αžΊαž‡αžΆαžŸαž˜αžΆαžŸαž’αžΆαžαž»αžŸαŸ†αžαžΆαž“αŸ‹αž”αŸ†αž•αž»αžαž˜αž½αž™αž“αŸ…αž›αžΎαžαŸ’αž“αžΆαŸ†αž„αž€αž˜αŸ’αž˜αž€αžšαŸ–

  1. αž‚αžΌαž”αŸαž‘αŸαž - αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αžΆαžšαž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž»αž„αžαžΊαž“αŸαžšαž“αŸ…αž›αžΎαžαŸ’αž“αžΆαŸ†αž„αžŠαŸ‚αž›αž€αŸ†αž–αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ”

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

αž§αž”αž˜αžΆαžαžΆαž’αŸ’αž“αž€αž‘αžΎαž”αžαŸ‚αž”αžΆαž“αž”αž‰αŸ’αž…αž”αŸ‹ kubectl create -f replicaset.yamlαž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž“αŸ„αŸ‡ kubectl αž”αžΆαž“αž’αŸ’αžœαžΎαžŸαŸ†αžŽαžΎ HTTP POST αž‘αŸ… ReplicaSet API endpoint (αž†αŸ’αž›αž„αž€αžΆαžαŸ‹αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž’αž“αž’αžΆαž“ ReplicaSet) αŸ”

αžαžΎαž˜αžΆαž“αž’αŸ’αžœαžΈαž€αžΎαžαž‘αžΎαž„αž“αŸ…αž€αŸ’αž“αž»αž„αž…αž„αŸ’αž€αŸ„αž˜?

  1. αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž’αŸ’αžœαžΎ kubectl create -f replicaset.yaml αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ API αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž“αž·αž™αž˜αž“αŸαž™αž’αž“αž’αžΆαž“ ReplicaSet αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž•αŸ’αž‘αž»αž€αŸ–

    αžšαž”αŸ€αž”αž”αŸ’αžšαžΎ kubectl αž€αžΆαž“αŸ‹αžαŸ‚αž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αŸ– αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž›αž˜αŸ’αž’αž·αž

  2. αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€ αž§αž”αž€αžšαžŽαŸαž”αž‰αŸ’αž‡αžΆ ReplicaSet αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸ…αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž§αž”αž€αžšαžŽαŸαž”αž‰αŸ’αž‡αžΆ αžŠαŸ‚αž›αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž αž€αžΆαžšαž€αŸ‚αž”αŸ’αžšαŸ‚ αž“αž·αž„αž€αžΆαžšαž›αž»αž”αž’αž“αž’αžΆαž“ ReplicaSetαŸ–

    αžšαž”αŸ€αž”αž”αŸ’αžšαžΎ kubectl αž€αžΆαž“αŸ‹αžαŸ‚αž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αŸ– αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž›αž˜αŸ’αž’αž·αž

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

    αžšαž”αŸ€αž”αž”αŸ’αžšαžΎ kubectl αž€αžΆαž“αŸ‹αžαŸ‚αž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αŸ– αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž›αž˜αŸ’αž’αž·αž

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

    αžšαž”αŸ€αž”αž”αŸ’αžšαžΎ kubectl αž€αžΆαž“αŸ‹αžαŸ‚αž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αŸ– αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž›αž˜αŸ’αž’αž·αž

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

    αžšαž”αŸ€αž”αž”αŸ’αžšαžΎ kubectl αž€αžΆαž“αŸ‹αžαŸ‚αž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αŸ– αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž›αž˜αŸ’αž’αž·αž

  6. αž“αŸ…αž›αžΎαžαŸ’αž“αžΆαŸ†αž„αž€αž˜αŸ’αž˜αž€αžšαžŠαŸ‚αž›αž•αžαžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αžΆαžαŸ‹αžαžΆαŸ†αž„ Kubelet αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αžœαžΆαžαžΆαž˜αžŠαžΆαž“αž•αžαžαž›αžŠαŸ‚αž›αž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž‘αŸ…αžαŸ’αž“αžΆαŸ†αž„αž“αŸαŸ‡αŸ–

    αžšαž”αŸ€αž”αž”αŸ’αžšαžΎ kubectl αž€αžΆαž“αŸ‹αžαŸ‚αž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αŸ– αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž›αž˜αŸ’αž’αž·αž

  7. Kubelet αž’αžΆαž“αž“αž·αž™αž˜αž“αŸαž™ pod αž–αžΈαž€αžΆαžšαž•αŸ’αž‘αž»αž€ αž“αž·αž„αžŽαŸ‚αž“αžΆαŸ†αžšαž™αŸˆαž–αŸαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž»αž„αžαžΊαž“αŸαžš αžŠαžΌαž…αž‡αžΆ Docker αžŠαžΎαž˜αŸ’αž”αžΈαž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž»αž„αžαžΊαž“αŸαžšαž“αŸ…αž›αžΎαžαŸ’αž“αžΆαŸ†αž„αŸ–

    αžšαž”αŸ€αž”αž”αŸ’αžšαžΎ kubectl αž€αžΆαž“αŸ‹αžαŸ‚αž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αŸ– αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž›αž˜αŸ’αž’αž·αž

αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αž‚αžΊαž‡αžΆαž€αŸ†αžŽαŸ‚αž’αžαŸ’αžαž”αž‘αž“αŸƒαž€αžΆαžšαž–αžŽαŸŒαž“αžΆαž“αŸαŸ‡αŸ”

αžŸαŸ†αžŽαžΎ API αž‘αŸ…αž€αžΆαž“αŸ‹αž…αŸ†αžŽαž»αž…αž”αž‰αŸ’αž…αž”αŸ‹αž“αŸƒαž€αžΆαžšαž”αž„αŸ’αž€αžΎαž ReplicaSet αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ„αž™αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ API αŸ” αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ API αž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹αžŸαŸ†αžŽαžΎ αž“αž·αž„αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž“αž·αž™αž˜αž“αŸαž™αž’αž“αž’αžΆαž“ ReplicaSet αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž•αŸ’αž‘αž»αž€αŸ”

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

αž€αžΆαžšαž„αžΆαžšαžšαž”αžŸαŸ‹ ReplicaSet controller αž‚αžΊαžŠαžΎαž˜αŸ’αž”αžΈαž’αžΆαž“αžΆαžαžΆαž…αŸ†αž“αž½αž“ ReplicaSet pods αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž€αžΆαžšαŸ” αž€αŸ’αž“αž»αž„αž§αž‘αžΆαž αžšαžŽαŸαžšαž”αžŸαŸ‹αž™αžΎαž„ αž˜αž·αž“αž‘αžΆαž“αŸ‹αž˜αžΆαž“ pods αž“αŸ…αž‘αžΎαž™αž‘αŸ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž§αž”αž€αžšαžŽαŸαž”αž‰αŸ’αž‡αžΆ ReplicaSet αž”αž„αŸ’αž€αžΎαžαž“αž·αž™αž˜αž“αŸαž™ pod αž‘αžΆαŸ†αž„αž“αŸαŸ‡ (αž™αŸ„αž„αžαžΆαž˜αž‚αŸ†αžšαžΌ pods αž€αŸ’αž“αž»αž„αž“αž·αž™αž˜αž“αŸαž™ ReplicaSet) αž αžΎαž™αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αžœαžΆαž“αŸ…αž€αŸ’αž“αž»αž„αž€αž“αŸ’αž›αŸ‚αž„αž•αŸ’αž‘αž»αž€αŸ”

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

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

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

αž“αŸ…αž–αŸαž›αž“αŸαŸ‡ αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ ReplicaSet αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž€αŸ†αž–αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž αžΎαž™!

αžαž½αž“αžΆαž‘αžΈαžšαž”αžŸαŸ‹ Kubernetes API

αžŠαžΌαž…αžŠαŸ‚αž›αž’αŸ’αž“αž€αž”αžΆαž“αžƒαžΎαž‰αž“αŸ…αž€αŸ’αž“αž»αž„αž§αž‘αžΆαž αžšαžŽαŸαž˜αž»αž“ αžŸαž˜αžΆαžŸαž’αžΆαžαž» Kubernetes (αž›αžΎαž€αž›αŸ‚αž„αžαŸ‚αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ API αž“αž·αž„αž€αžΆαžšαž•αŸ’αž‘αž»αž€) αž˜αžΎαž›αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž’αž“αž’αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„αž€αž“αŸ’αž›αŸ‚αž„αž•αŸ’αž‘αž»αž€ αž“αž·αž„αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž–αŸαžαŸŒαž˜αžΆαž“αž’αŸ†αž–αžΈαž’αž“αž’αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž•αŸ’αž‘αž»αž€αŸ”

αž‡αžΆαž€αžΆαžšαž–αž·αžαžŽαžΆαžŸαŸ‹ αžŸαž˜αžΆαžŸαž’αžΆαžαž»αž‘αžΆαŸ†αž„αž“αŸαŸ‡αž˜αž·αž“αž˜αžΆαž“αž’αž“αŸ’αžαžšαž€αž˜αŸ’αž˜αž‡αžΆαž˜αž½αž™αž§αž”αž€αžšαžŽαŸαž•αŸ’αž‘αž»αž€αžŠαŸ„αž™αž•αŸ’αž‘αžΆαž›αŸ‹αž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžαžΆαž˜αžšαž™αŸˆ Kubernetes API αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ”

αžŸαžΌαž˜αž–αž·αž…αžΆαžšαžŽαžΆαž§αž‘αžΆαž αžšαžŽαŸαžαžΆαž„αž€αŸ’αžšαŸ„αž˜:

  1. αž§αž”αž€αžšαžŽαŸαž”αž‰αŸ’αž‡αžΆ ReplicaSet αž”αŸ’αžšαžΎαž…αŸ†αžŽαž»αž…αž”αž‰αŸ’αž…αž”αŸ‹ API αž”αž‰αŸ’αž‡αžΈαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž…αž˜αŸ’αž›αž„ αž‡αžΆαž˜αž½αž™αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžš watch αžŠαžΎαž˜αŸ’αž”αžΈαžαžΆαž˜αžŠαžΆαž“αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž’αž“αž’αžΆαž“ ReplicaSet αŸ”
  2. αž§αž”αž€αžšαžŽαŸαž”αž‰αŸ’αž‡αžΆ ReplicaSet αž”αŸ’αžšαžΎαž…αŸ†αžŽαž»αž…αž”αž‰αŸ’αž…αž”αŸ‹ API αž”αž„αŸ’αž€αžΎαž Pod (αž”αž„αŸ’αž€αžΎαžαž•αž) αžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαžαž•αžαŸ”
  3. αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž–αŸαž›αž”αŸ’αžšαžΎαž…αŸ†αžŽαž»αž…αž”αž‰αŸ’αž…αž”αŸ‹ API αž”αž“αŸ’αž‘αŸ‡αž”αŸ†αžŽαŸ‡ (αž€αŸ‚αžŸαž˜αŸ’αžšαž½αž›αž•αž) αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αž•αžαžαž›αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž–αŸαžαŸŒαž˜αžΆαž“αž’αŸ†αž–αžΈαžαŸ’αž“αžΆαŸ†αž„αž€αž˜αŸ’αž˜αž€αžšαžŠαŸ‚αž›αž”αžΆαž“αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαŸ”

αžŠαžΌαž…αžŠαŸ‚αž›αž’αŸ’αž“αž€αž’αžΆαž…αžƒαžΎαž‰ αž“αŸαŸ‡αž‚αžΊαž‡αžΆ API αžŠαžΌαž…αž‚αŸ’αž“αžΆαžŠαŸ‚αž› kubectl αž…αžΌαž›αž”αŸ’αžšαžΎαŸ” αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ API αžŠαžΌαž…αž‚αŸ’αž“αžΆαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαž˜αžΆαžŸαž—αžΆαž‚αžαžΆαž„αž€αŸ’αž“αž»αž„ αž“αž·αž„αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžαžΆαž„αž€αŸ’αžšαŸ… αž‚αžΊαž‡αžΆαž‚αŸ†αž“αž·αžαž‡αžΆαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαžšαž…αž“αžΆ Kubernetes αŸ”

αž₯αž‘αžΌαžœαž“αŸαŸ‡αž™αžΎαž„αž’αžΆαž…αžŸαž„αŸ’αžαŸαž”αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž› Kubernetes αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ–

  1. αž€αž“αŸ’αž›αŸ‚αž„αž•αŸ’αž‘αž»αž€αž•αŸ’αž‘αž»αž€αž‘αž·αž“αŸ’αž“αž“αŸαž™ αž–αŸ„αž›αž‚αžΊαž’αž“αž’αžΆαž“ Kubernetes αŸ”
  2. αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ API αž•αŸ’αžαž›αŸ‹αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αž‘αŸ…αž“αžΉαž„αž€αž“αŸ’αž›αŸ‚αž„αž•αŸ’αž‘αž»αž€αž€αŸ’αž“αž»αž„αž‘αž˜αŸ’αžšαž„αŸ‹αž“αŸƒ Kubernetes API αŸ”
  3. αžŸαž˜αžΆαžŸαž’αžΆαžαž» Kubernetes αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž‘αžΆαŸ†αž„αž’αžŸαŸ‹ αž“αž·αž„αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž’αžΆαž“ αžŸαž„αŸ’αž€αŸαž αž“αž·αž„αžšαŸ€αž”αž…αŸ†αžŸαŸ’αžαžΆαž“αž—αžΆαž– Kubernetes (αž’αž“αž’αžΆαž“) αžαžΆαž˜αžšαž™αŸˆ API αŸ”

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

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

1. αž”αž„αŸ’αž€αžΎαž“αž›αŸ’αž”αžΏαž“αž€αžΆαžšαž”αž‰αŸ’αž…αžΌαž›αžŠαŸ„αž™αž”αŸ’αžšαžΎαž€αžΆαžšαž”αŸ†αž–αŸαž‰αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ

αž”αž…αŸ’αž…αŸαž€αž‘αŸαžŸαž˜αž½αž™αž€αŸ’αž“αž»αž„αž…αŸ†αž“αŸ„αž˜αž˜αžΆαž“αž”αŸ’αžšαž™αŸ„αž‡αž“αŸαž”αŸ†αž•αž»αž αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž‡αžΆαžšαžΏαž™αŸ—αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸαž˜αžΎαž›αžšαŸ†αž›αž„ αž”αž…αŸ’αž…αŸαž€αž‘αŸαžŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αŸ‚αž›αž˜αŸ’αž’αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž‡αžΆαž˜αž½αž™ kubectl αž‚αžΊαž€αžΆαžšαž”αŸ†αž–αŸαž‰αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαŸ”

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

αžŸαžΌαž˜αž˜αžΎαž›αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž›αž€αžΆαžšαž”αŸ†αž–αŸαž‰αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ kubectl αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ–

αžšαž”αŸ€αž”αž”αŸ’αžšαžΎ kubectl αž€αžΆαž“αŸ‹αžαŸ‚αž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αŸ– αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž›αž˜αŸ’αž’αž·αž
αž€αžΆαžšαž”αž‰αŸ’αž…αž”αŸ‹αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸ‚αž› Bash αž“αž·αž„ Zsh αŸ”

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

αžšαž”αŸ€αž”αžŠαŸ‚αž›αž€αžΆαžšαž”αŸ†αž–αŸαž‰αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžš

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

Kubectl αž”αž„αŸ’αž€αžΎαž αž“αž·αž„αž”αž‰αŸ’αž…αŸαž‰αžŸαŸ’αž‚αŸ’αžšαžΈαž”αž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αžαŸ‚αž˜αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Bash αž“αž·αž„ Zsh αžŠαŸ„αž™αž”αŸ’αžšαžΎαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸ–

$ kubectl completion bash

ឬ:

$ kubectl completion zsh

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

αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž‚αžΊαžαž»αžŸαž‚αŸ’αž“αžΆαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Bash (αžšαž½αž˜αž‘αžΆαŸ†αž„αž—αžΆαž–αžαž»αžŸαž‚αŸ’αž“αžΆαžšαžœαžΆαž„ Linux αž“αž·αž„ MacOS) αž“αž·αž„ Zsh αŸ” αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αž“αŸαŸ‡αž™αžΎαž„αž“αžΉαž„αž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αž‡αž˜αŸ’αžšαžΎαžŸαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸαŸ‡αŸ”

Bash αž“αŸ…αž›αžΎαž›αžΈαž“αž»αž…

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

$ sudo apt-get install bash-completion

ឬ:

$ yum install bash-completion

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

$ type _init_completion

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžœαžΆαž…αŸαž‰αž€αžΌαžŠαž˜αž»αžαž„αžΆαžšαžŸαŸ‚αž› αž“αŸ„αŸ‡αž€αžΆαžšαž”αŸ†αž–αŸαž‰ bash αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ†αž‘αžΎαž„αž™αŸ‰αžΆαž„αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž•αŸ’αžαž›αŸ‹αž€αŸ†αž αž»αžŸ "αžšαž€αž˜αž·αž“αžƒαžΎαž‰" αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž”αž“αŸ’αžαŸ‚αž˜αž”αž“αŸ’αž‘αžΆαžαŸ‹αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αž‘αŸ…αž―αž€αžŸαžΆαžšαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ” ~ / .bashrc:

$ source /usr/share/bash-completion/bash_completion

αžαžΎαžœαžΆαž…αžΆαŸ†αž”αžΆαž…αŸ‹αžŠαžΎαž˜αŸ’αž”αžΈαž”αž“αŸ’αžαŸ‚αž˜αž”αž“αŸ’αž‘αžΆαžαŸ‹αž“αŸαŸ‡αž‘αŸ…αž―αž€αžŸαžΆαžš ~ / .bashrc αž¬αž˜αž·αž“αž’αžΆαžŸαŸ’αžšαŸαž™αž›αžΎαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αž‰αŸ’αž…αž”αŸ‹αžŠαŸ‚αž›αž’αŸ’αž“αž€αž’αŸ’αž›αžΆαž”αŸ‹αžŠαŸ†αž‘αžΎαž„ bash-completion αŸ” αž“αŸαŸ‡αž‚αžΊαž…αžΆαŸ†αž”αžΆαž…αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ APT αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž˜αž·αž“αž˜αŸ‚αž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ YUM αž‘αŸαŸ”

αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαžŠαŸ†αž‘αžΎαž„ bash-completion αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž’αŸ’αžœαžΈαž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αžŠαžΎαž˜αŸ’αž”αžΈαž±αŸ’αž™αžŸαŸ’αž‚αŸ’αžšαžΈαž”αž”αž‰αŸ’αž…αž”αŸ‹ kubectl αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αžΎαž€αž“αŸ…αž€αŸ’αž“αž»αž„αžœαž‚αŸ’αž‚αžŸαŸ‚αž›αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ”

αžœαž·αž’αžΈβ€‹αž˜αž½αž™β€‹αžŠαžΎαž˜αŸ’αž”αžΈβ€‹αž’αŸ’αžœαžΎβ€‹αžŠαžΌαž…αŸ’αž“αŸαŸ‡β€‹αž‚αžΊβ€‹αžαŸ’αžšαžΌαžœβ€‹αž”αž“αŸ’αžαŸ‚αž˜β€‹αž”αž“αŸ’αž‘αžΆαžαŸ‹β€‹αžαžΆαž„αž€αŸ’αžšαŸ„αž˜β€‹αž‘αŸ…β€‹αž―αž€αžŸαžΆαžš ~ / .bashrc:

source <(kubectl completion bash)

αžœαž·αž’αžΈαž˜αž½αž™αž‘αŸ€αžαž‚αžΊαžαŸ’αžšαžΌαžœαž”αž“αŸ’αžαŸ‚αž˜αžŸαŸ’αž‚αŸ’αžšαžΈαž”αž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αžαŸ‚αž˜ kubectl αž‘αŸ…αžαž /etc/bash_completion.d (αž”αž„αŸ’αž€αžΎαžαžœαžΆαž”αŸ’αžšαžŸαž·αž“αž”αžΎαžœαžΆαž˜αž·αž“αž˜αžΆαž“)αŸ–

$ kubectl completion bash >/etc/bash_completion.d/kubectl

αžŸαŸ’αž‚αŸ’αžšαžΈαž”αž”αž“αŸ’αžαŸ‚αž˜αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžαžΆαž‘αž»αž€ /etc/bash_completion.d αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αŸ†αž–αŸαž‰ bash αŸ”

αž‡αž˜αŸ’αžšαžΎαžŸαž‘αžΆαŸ†αž„αž–αžΈαžšαž’αžΆαž…αž’αž“αž»αžœαžαŸ’αžαž”αžΆαž“αžŠαžΌαž…αž‚αŸ’αž“αžΆαŸ”

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

Bash αž“αŸ…αž›αžΎ MacOS

αž“αŸ…αž›αžΎ MacOS αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„αž˜αžΆαž“αž—αžΆαž–αžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αž”αž“αŸ’αžαž·αž…αŸ” αž€αžΆαžšαž–αž·αžαž‚αžΊαžαžΆαžαžΆαž˜αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜ MacOS αž”αŸ’αžšαžΎ Bash αž€αŸ†αžŽαŸ‚ 3.2 αž αžΎαž™αžŸαŸ’αž‚αŸ’αžšαžΈαž”αž€αžΆαžšαž”αŸ†αž–αŸαž‰αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž· kubectl αž‘αžΆαž˜αž‘αžΆαžšαž€αŸ†αžŽαŸ‚ Bash αž™αŸ‰αžΆαž„αž αŸ„αž…αžŽαžΆαžŸαŸ‹ 4.1 αž αžΎαž™αž˜αž·αž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αŸ’αž“αž»αž„ Bash 3.2 αž‘αŸαŸ”

αž˜αžΆαž“β€‹αž”αž‰αŸ’αž αžΆβ€‹αž’αžΆαž‡αŸ’αž‰αžΆαž”αŸαžŽαŸ’αžŽβ€‹αžŠαŸ‚αž›β€‹αž‘αžΆαž€αŸ‹αž‘αž„β€‹αž“αžΉαž„β€‹αž€αžΆαžšβ€‹αž”αŸ’αžšαžΎβ€‹αž€αŸ†αžŽαŸ‚β€‹αž αž½αžŸβ€‹αžŸαž˜αŸαž™β€‹αžšαž”αžŸαŸ‹ Bash αž“αŸ…β€‹αž›αžΎ MacOSαŸ” Bash αž€αŸ†αžŽαŸ‚ 4 αž˜αžΆαž“αž’αžΆαž‡αŸ’αž‰αžΆαž”αŸαžŽαŸ’αžŽαž€αŸ’αžšαŸ„αž˜ GPLv3 αžŠαŸ‚αž›αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αžΆαŸ†αž‘αŸ’αžšαžŠαŸ„αž™ Apple αŸ”

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

αž˜αž»αž“αž–αŸαž›αž”αž“αŸ’αž αžαŸ’αžšαžΌαžœαž”αŸ’αžšαžΆαž€αžŠαžαžΆαž’αŸ’αž“αž€αž€αŸ†αž–αž»αž„αž”αŸ’αžšαžΎαž€αŸ†αžŽαŸ‚αžαŸ’αž˜αžΈαžšαž”αžŸαŸ‹ Bash (αž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αž›αž‘αŸ’αž’αž•αž› bash --version).

αžŸαŸ’αž‚αŸ’αžšαžΈαž”αž”αž‰αŸ’αž…αž”αŸ‹ Bash αž”αŸ’αžšαŸ‚αž”αŸ’αžšαž½αž›αžαžΆαž˜αž‚αž˜αŸ’αžšαŸ„αž„ αž€αžΆαžšαž”αž‰αŸ’αž…αž”αŸ‹ bashαžŠαžΌαž…αŸ’αž“αŸαŸ‡αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαžŠαŸ†αž‘αžΎαž„αžœαžΆαž‡αžΆαž˜αž»αž“αžŸαž·αž“αŸ”

αž’αŸ’αž“αž€αž’αžΆαž…αžŠαŸ†αž‘αžΎαž„ bash-completion αžŠαŸ„αž™αž”αŸ’αžšαžΎ Homebrew:

$ brew install bash-completion@2

αžœαžΆαž‚αžΊαž‡αžΆαž€αžΆαžš @2 αžαŸ†αžŽαžΆαž„αž±αŸ’αž™ bash-completion αž€αŸ†αžŽαŸ‚ 2. αž€αžΆαžšαž”αŸ†αž–αŸαž‰αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž· kubectl αž‘αžΆαž˜αž‘αžΆαžš bash-completion v2 αž αžΎαž™ bash-completion v2 αž‘αžΆαž˜αž‘αžΆαžšαž’αž”αŸ’αž”αž”αžšαž˜αžΆαž“αŸƒαž€αŸ†αžŽαŸ‚ Bash 4.1 αŸ”

αž›αž‘αŸ’αž’αž•αž›αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ brew-install αž˜αžΆαž“αž•αŸ’αž“αŸ‚αž€ Caveats αžŠαŸ‚αž›αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž–αžΈαž’αŸ’αžœαžΈαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ…αž―αž€αžŸαžΆαžš ~/.bash_profile:

export BASH_COMPLETION_COMPAT_DIR=/usr/local/etc/bash_completion.d
[[ -r "/usr/local/etc/profile.d/bash_completion.sh" ]] && . 
"/usr/local/etc/profile.d/bash_completion.sh"

αž‘αŸ„αŸ‡αž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™ αžαŸ’αž‰αž»αŸ†αžŸαžΌαž˜αžŽαŸ‚αž“αžΆαŸ†αž±αŸ’αž™αž”αž“αŸ’αžαŸ‚αž˜αž”αž“αŸ’αž‘αžΆαžαŸ‹αž‘αžΆαŸ†αž„αž“αŸαŸ‡αž˜αž·αž“αž±αŸ’αž™ ~/.bash_profileαž“αž·αž„αž€αŸ’αž“αž»αž„αŸ” ~/.bashrc. αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž“αŸαŸ‡ αž€αžΆαžšαž”αŸ†αž–αŸαž‰αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž“αžΉαž„αž˜αžΆαž“αž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ‚αž“αŸ…αž€αŸ’αž“αž»αž„αž˜αŸαž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž€αŸαž˜αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸ‚αž›αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžšαž”αžŸαŸ‹αž€αž»αž˜αžΆαžšαž•αž„αžŠαŸ‚αžšαŸ”

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

$ type _init_completion

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

αž₯αž‘αžΌαžœαž“αŸαŸ‡αž™αžΎαž„αžαŸ’αžšαžΌαžœαž’αžΆαž“αžΆαžαžΆαž€αžΆαžšαž”αŸ†αž–αŸαž‰αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž· kubectl αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αžΎαž€αž“αŸ…αž€αŸ’αž“αž»αž„αžœαž‚αŸ’αž‚αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ”

αžœαž·αž’αžΈαž˜αž½αž™αž‚αžΊαžαŸ’αžšαžΌαžœαž”αž“αŸ’αžαŸ‚αž˜αž”αž“αŸ’αž‘αžΆαžαŸ‹αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αž‘αŸ…αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ” ~/.bashrc:

source <(kubectl completion bash)

αžœαž·αž’αžΈαž‘αžΈαž–αžΈαžšαž‚αžΊαžαŸ’αžšαžΌαžœαž”αž“αŸ’αžαŸ‚αž˜αžŸαŸ’αž‚αŸ’αžšαžΈαž”αž”αŸ†αž–αŸαž‰αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž‘αŸ…αžαžαž―αž€αžŸαžΆαžš /usr/local/etc/bash_completion.d:

$ kubectl completion bash
>/usr/local/etc/bash_completion.d/kubectl

αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž“αŸαŸ‡αž“αžΉαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αžΆαž“αž›αž»αŸ‡αžαŸ’αžšαžΆαžαŸ‚αž’αŸ’αž“αž€αžŠαŸ†αž‘αžΎαž„ bash-completion αžŠαŸ„αž™αž”αŸ’αžšαžΎ Homebrew αŸ” αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž“αŸαŸ‡ bash-completion αž•αŸ’αž‘αž»αž€αžŸαŸ’αž‚αŸ’αžšαžΈαž”αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž–αžΈαžαžαž“αŸαŸ‡αŸ”

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž”αžΆαž“αžŠαŸ†αž‘αžΎαž„ kubectl αžŠαŸ„αž™αž”αŸ’αžšαžΎ Homebrewαž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž’αž“αž»αžœαžαŸ’αžαž‡αŸ†αž αžΆαž“αž˜αž»αž“αž‘αŸ αžŠαŸ„αž™αžŸαžΆαžšαžŸαŸ’αž‚αŸ’αžšαžΈαž”αž”αŸ†αž–αŸαž‰αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαžΆαž€αŸ‹αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž“αŸ…αž€αŸ’αž“αž»αž„αžαž /usr/local/etc/bash_completion.d αž€αŸ†αž‘αž»αž„αž–αŸαž›αžŠαŸ†αž‘αžΎαž„αŸ” αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž“αŸαŸ‡ αž€αžΆαžšαž”αŸ†αž–αŸαž‰αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž· kubectl αž“αžΉαž„αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž—αŸ’αž›αžΆαž˜αŸ—αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž’αŸ’αž“αž€αžŠαŸ†αž‘αžΎαž„ bash-completionαŸ”

αž‡αžΆαž›αž‘αŸ’αž’αž•αž›αž‡αž˜αŸ’αžšαžΎαžŸαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸαŸ‡αž‚αžΊαžŸαž˜αž˜αžΌαž›αŸ”

Zsh

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

αž’αŸ’αž“αž€β€‹αž’αžΆαž…β€‹αž’αŸ’αžœαžΎβ€‹αžœαžΆβ€‹αž”αžΆαž“β€‹αžŠαŸ„αž™β€‹αž”αž“αŸ’αžαŸ‚αž˜β€‹αž”αž“αŸ’αž‘αžΆαžαŸ‹β€‹αž‘αŸ…β€‹αž€αžΆαž“αŸ‹β€‹αžšαž”αžŸαŸ‹β€‹αž’αŸ’αž“αž€αŸ” ~/.zshrc αž―αž€αžŸαžΆαžšαŸ–

source <(kubectl completion zsh)

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž‘αž‘αž½αž›αž”αžΆαž“αž€αŸ†αž αž»αžŸ not found: compdef αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžŸαŸ‚αž›αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž‘αžΎαž„αžœαž·αž‰ αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž”αžΎαž€αž˜αž»αžαž„αžΆαžšαžŠαŸ‚αž›αž—αŸ’αž‡αžΆαž”αŸ‹αž˜αž€αž‡αžΆαž˜αž½αž™ compdef. αž’αŸ’αž“αž€αž’αžΆαž…αž”αžΎαž€αžœαžΆαžŠαŸ„αž™αž”αž“αŸ’αžαŸ‚αž˜αžœαžΆαž‘αŸ…αžŠαžΎαž˜αž―αž€αžŸαžΆαžšαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ” ~/.zshrc αžŠαžΌαž…αžαžΆαž„αž€αŸ’αžšαŸ„αž˜:

autoload -Uz compinit
compinit

2. αž˜αžΎαž›αž™αŸ‰αžΆαž„αžšαž αŸαžŸαž“αžΌαžœαž›αž€αŸ’αžαžŽαŸˆαž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž“αŸƒαž’αž“αž’αžΆαž“

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

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

αž‘αž˜αŸ’αžšαž„αŸ‹αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž˜αžΆαž“αžŠαžΌαž…αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸ–

$ kubectl explain resource[.field]...

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

αžαžΆαž˜αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜ kubectl explain αž”αž„αŸ’αž αžΆαž‰αžαŸ‚αž€αž˜αŸ’αžšαž·αžαž‘αžΈαž˜αž½αž™αž“αŸƒαž€αžΆαžšαžŠαžΆαž€αŸ‹αžŸαŸ†αž”αž»αž€αž“αŸƒαžœαžΆαž›αŸ”

αž˜αžΎαž›αžαžΆαžαžΎαžœαžΆαž˜αžΎαž›αž‘αŸ…αžŠαžΌαž…αž’αŸ’αžœαžΈ αž’αžΆαž…αž“αŸ…αž‘αžΈαž“αŸαŸ‡αŸ”.

αž’αŸ’αž“αž€αž’αžΆαž…αž”αž„αŸ’αž αžΆαž‰αž˜αŸ‚αž€αž’αžΆαž„αž‘αžΆαŸ†αž„αž˜αžΌαž› αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž”αž“αŸ’αžαŸ‚αž˜αž‡αž˜αŸ’αžšαžΎαžŸ --recursive:

$ kubectl explain deployment.spec --recursive

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

$ kubectl api-resources

αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž“αŸαŸ‡αž”αž„αŸ’αž αžΆαž‰αžˆαŸ’αž˜αŸ„αŸ‡αž’αž“αž’αžΆαž“αž€αŸ’αž“αž»αž„αž‘αž˜αŸ’αžšαž„αŸ‹αž–αž αž»αžœαž…αž“αŸˆ ឧ. deployments αž‡αŸ†αž“αž½αžŸαž±αŸ’αž™αŸ” deployment. αž§αž‘αžΆαž αžšαžŽαŸαžœαžΆαž”αž„αŸ’αž αžΆαž‰αžˆαŸ’αž˜αŸ„αŸ‡αžαŸ’αž›αžΈ deployαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αž“αž’αžΆαž“αž‘αžΆαŸ†αž„αž“αŸ„αŸ‡αžŠαŸ‚αž›αž˜αžΆαž“αžœαžΆαŸ” αž€αž»αŸ†αž”αžΆαžšαž˜αŸ’αž—αž’αŸ†αž–αžΈαž—αžΆαž–αžαž»αžŸαž‚αŸ’αž“αžΆαž‘αžΆαŸ†αž„αž“αŸαŸ‡αŸ” αž‡αž˜αŸ’αžšαžΎαžŸαžŠαžΆαž€αŸ‹αžˆαŸ’αž˜αŸ„αŸ‡αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸαŸ‡αž‚αžΊαžŸαž˜αž˜αžΌαž›αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ kubectlαŸ” αž“αŸ„αŸ‡αž‚αžΊαž’αŸ’αž“αž€αž’αžΆαž…αž”αŸ’αžšαžΎαžŽαžΆαž˜αž½αž™αž“αŸƒαž–αž½αž€αžœαžΆαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ kubectl explain.

αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžαžΆαž„αž€αŸ’αžšαŸ„αž˜αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž‚αžΊαžŸαž˜αž˜αžΌαž›αŸ–

$ kubectl explain deployments.spec
# ΠΈΠ»ΠΈ
$ kubectl explain deployment.spec
# ΠΈΠ»ΠΈ        
$ kubectl explain deploy.spec

3. αž”αŸ’αžšαžΎαž‘αž˜αŸ’αžšαž„αŸ‹αž›αž‘αŸ’αž’αž•αž›αž‡αž½αžšαžˆαžšαž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“

αž‘αž˜αŸ’αžšαž„αŸ‹αž›αž‘αŸ’αž’αž•αž›αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜ kubectl get:

$ kubectl get pods
NAME                     READY    STATUS    RESTARTS  AGE
engine-544b6b6467-22qr6   1/1     Running     0       78d
engine-544b6b6467-lw5t8   1/1     Running     0       78d
engine-544b6b6467-tvgmg   1/1     Running     0       78d
web-ui-6db964458-8pdw4    1/1     Running     0       78d

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

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

αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž‘αž˜αŸ’αžšαž„αŸ‹αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αžŠαŸ„αž™αž”αŸ’αžšαžΎαž‡αž˜αŸ’αžšαžΎαžŸαŸ–

-o custom-columns=<header>:<jsonpath>[,<header>:<jsonpath>]...

αž’αŸ’αž“αž€αž’αžΆαž…αž€αŸ†αžŽαžαŸ‹αž‡αž½αžšαžˆαžšαž›αž‘αŸ’αž’αž•αž›αž“αžΈαž˜αž½αž™αŸ—αž‡αžΆαž‚αžΌ <header>:<jsonpath>αžŠαŸ‚αž›αž‡αžΆαž€αž“αŸ’αž›αŸ‚αž„ <header> αž‚αžΊαž‡αžΆαžˆαŸ’αž˜αŸ„αŸ‡αž‡αž½αžšαžˆαžš αž“αž·αž„ <jsonpath> - αž€αž“αŸ’αžŸαŸ„αž˜αžŠαŸ‚αž›αž€αŸ†αžŽαžαŸ‹αžœαžΆαž›αž’αž“αž’αžΆαž“αŸ”

αžαŸ„αŸ‡αž˜αžΎαž›αž§αž‘αžΆαž αžšαžŽαŸαžŸαžΆαž˜αž‰αŸ’αž‰αž˜αž½αž™αŸ–

$ kubectl get pods -o custom-columns='NAME:metadata.name'

NAME
engine-544b6b6467-22qr6
engine-544b6b6467-lw5t8
engine-544b6b6467-tvgmg
web-ui-6db964458-8pdw4

αž›αž‘αŸ’αž’αž•αž›β€‹αž˜αžΆαž“β€‹αž‡αž½αžšβ€‹αžˆαžšβ€‹αž˜αž½αž™β€‹αžŠαŸ‚αž›β€‹αž˜αžΆαž“β€‹αžˆαŸ’αž˜αŸ„αŸ‡β€‹αžšαž”αžŸαŸ‹β€‹αž•αžαŸ”

αž€αž“αŸ’αžŸαŸ„αž˜αž‡αž˜αŸ’αžšαžΎαžŸ αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαžˆαŸ’αž˜αŸ„αŸ‡αž•αž αž–αžΈαžœαžΆαž› metadata.name. αž“αŸαŸ‡αž‚αžΊαžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αžˆαŸ’αž˜αŸ„αŸ‡αžšαž”αžŸαŸ‹ pod αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αžœαžΆαž›αžˆαŸ’αž˜αŸ„αŸ‡αž€αžΌαž“ metadata αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž–αž·αž–αžŽαŸŒαž“αžΆαž’αž“αž’αžΆαž“αž“αŸƒαž•αžαžαž›αŸ” αž–αŸαžαŸŒαž˜αžΆαž“αž›αž˜αŸ’αž’αž·αžαž”αž“αŸ’αžαŸ‚αž˜αž’αžΆαž…αžšαž€αž”αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„ αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ† API αž¬αžœαžΆαž™αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ kubectl explain pod.metadata.name.

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

$ kubectl get pods 
  -o custom-columns='NAME:metadata.name,NODE:spec.nodeName'

NAME                       NODE
engine-544b6b6467-22qr6    ip-10-0-80-67.ec2.internal
engine-544b6b6467-lw5t8    ip-10-0-36-80.ec2.internal
engine-544b6b6467-tvgmg    ip-10-0-118-34.ec2.internal
web-ui-6db964458-8pdw4     ip-10-0-118-34.ec2.internal

αž€αž“αŸ’αžŸαŸ„αž˜αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαžˆαŸ’αž˜αŸ„αŸ‡αžαŸ’αž“αžΆαŸ†αž„αž–αžΈ spec.nodeName - αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž•αžαžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αžΆαžαŸ‹αžαžΆαŸ†αž„αž‘αŸ…αžαŸ’αž“αžΆαŸ†αž„ αžˆαŸ’αž˜αŸ„αŸ‡αžšαž”αžŸαŸ‹αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžšαžŸαŸαžšαž“αŸ…αž€αŸ’αž“αž»αž„αžœαžΆαž› spec.nodeName αž€αžΆαžšαž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž’αž“αž’αžΆαž“ pod αŸ” αž–αŸαžαŸŒαž˜αžΆαž“αž›αž˜αŸ’αž’αž·αžαž”αž“αŸ’αžαŸ‚αž˜αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž€αžƒαžΎαž‰αž“αŸ…αž€αŸ’αž“αž»αž„αž›αž‘αŸ’αž’αž•αž› kubectl explain pod.spec.nodeName.

αžŸαžΌαž˜αž…αŸ†αžŽαžΆαŸ†αžαžΆαžœαžΆαž›αž’αž“αž’αžΆαž“ Kubernetes αž‚αžΊαž”αŸ’αžšαž€αžΆαž“αŸ‹αž’αž€αŸ’αžŸαžšαžαžΌαž…αž’αŸ†αŸ”

αž’αŸ’αž“αž€αž’αžΆαž…αž˜αžΎαž›αžœαžΆαž›αž’αž“αž’αžΆαž“αžŽαžΆαž˜αž½αž™αž‡αžΆαž‡αž½αžšαžˆαžšαŸ” αž‚αŸ’αžšαžΆαž“αŸ‹β€‹αžαŸ‚β€‹αž–αž·αž“αž·αžαŸ’αž™β€‹αž˜αžΎαž›β€‹αž€αžΆαžšβ€‹αž”αž‰αŸ’αž‡αžΆαž€αŸ‹β€‹αž’αž“αž’αžΆαž“β€‹αž αžΎαž™β€‹αžŸαžΆαž€αž›αŸ’αž”αž„β€‹αžœαžΆβ€‹αž‡αžΆαž˜αž½αž™β€‹αž“αžΉαž„β€‹αžœαžΆαž›β€‹αžŽαžΆβ€‹αž˜αž½αž™β€‹αžŠαŸ‚αž›β€‹αž’αŸ’αž“αž€β€‹αž…αžΌαž›αž…αž·αžαŸ’αžαŸ”

αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž‡αžΆαžŠαŸ†αž”αžΌαž„ αžŸαžΌαž˜αž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αž±αŸ’αž™αž€αžΆαž“αŸ‹αžαŸ‚αžŠαž·αžαžŠαž›αŸ‹αž“αžΌαžœαž€αž“αŸ’αžŸαŸ„αž˜αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαžœαžΆαž›αŸ”

αž€αž“αŸ’αžŸαŸ„αž˜ JSONPath

αž€αž“αŸ’αžŸαŸ„αž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαžœαžΆαž›αž’αž“αž’αžΆαž“αž‚αžΊαž•αŸ’αž’αŸ‚αž€αž›αžΎ JSONPath.

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

Kubectl αž–αž“αŸ’αž™αž›αŸ‹αž‚αžΆαŸ†αž‘αŸ’αžšαž…αŸ†αž“αž½αž“αž€αŸ†αžŽαžαŸ‹αž“αŸƒαž›αž€αŸ’αžαžŽαŸˆαž–αž·αžŸαŸαžŸ JSONPath αŸ” αž›αž‘αŸ’αž’αž—αžΆαž– αž“αž·αž„αž§αž‘αžΆαž αžšαžŽαŸαž“αŸƒαž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αž–αž·αž–αžŽαŸŒαž“αžΆαžŠαžΌαž…αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸ–

# Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ всС элСмСнты списка
$ kubectl get pods -o custom-columns='DATA:spec.containers[*].image'
# Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ спСцифичСский элСмСнт списка
$ kubectl get pods -o custom-columns='DATA:spec.containers[0].image'
# Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ элСмСнты списка, ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΠ΄ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€
$ kubectl get pods -o custom-columns='DATA:spec.containers[?(@.image!="nginx")].image'
# Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ всС поля ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ ΠΏΡƒΡ‚ΠΈ, нСзависимо ΠΎΡ‚ ΠΈΡ… ΠΈΠΌΠ΅Π½ΠΈ
$ kubectl get pods -o custom-columns='DATA:metadata.*'
# Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ всС поля с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ, Π²Π½Π΅ зависимости ΠΎΡ‚ ΠΈΡ… располоТСния
$ kubectl get pods -o custom-columns='DATA:..image'

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

αž§αž‘αžΆαž αžšαžŽαŸαž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ

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

  1. αž”αž„αŸ’αž αžΆαž‰αžšαžΌαž”αž—αžΆαž–αž’αž»αž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž•αžαŸˆ
    $ kubectl get pods 
      -o custom-columns='NAME:metadata.name,IMAGES:spec.containers[*].image'
    
    NAME                        IMAGES
    engine-544b6b6467-22qr6     rabbitmq:3.7.8-management,nginx
    engine-544b6b6467-lw5t8     rabbitmq:3.7.8-management,nginx
    engine-544b6b6467-tvgmg     rabbitmq:3.7.8-management,nginx
    web-ui-6db964458-8pdw4      wordpress

    αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž“αŸαŸ‡αž”αž„αŸ’αž αžΆαž‰αžˆαŸ’αž˜αŸ„αŸ‡αžšαžΌαž”αž—αžΆαž–αž€αž»αž„αžαžΊαž“αŸαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž•αžαž“αžΈαž˜αž½αž™αŸ—αŸ”

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

  2. αž”αž„αŸ’αž αžΆαž‰αžαŸ†αž”αž“αŸ‹αžŠαŸ‚αž›αž˜αžΆαž“αžαŸ’αž“αžΆαŸ†αž„αŸ–
    $ kubectl get nodes 
      -o 
    custom-columns='NAME:metadata.name,ZONE:metadata.labels.failure-domain.beta.kubernetes.io/zone'
    
    NAME                          ZONE
    ip-10-0-118-34.ec2.internal   us-east-1b
    ip-10-0-36-80.ec2.internal    us-east-1a
    ip-10-0-80-67.ec2.internal    us-east-1b

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

    Availability zone αž‚αžΊαž‡αžΆαž‚αŸ†αž“αž·αžαž–αž–αž€αžŠαŸ‚αž›αž€αŸ†αžŽαžαŸ‹αžαŸ†αž”αž“αŸ‹αž…αž˜αŸ’αž›αž„αž‘αŸ…αžαŸ†αž”αž“αŸ‹αž—αžΌαž˜αž·αžŸαžΆαžŸαŸ’αžšαŸ’αžαž˜αž½αž™αŸ”

    αžαŸ†αž”αž“αŸ‹αžŠαŸ‚αž›αž˜αžΆαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαŸ’αž“αžΆαŸ†αž„αž“αžΈαž˜αž½αž™αŸ—αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‘αž‘αž½αž›αžαžΆαž˜αžšαž™αŸˆαžŸαŸ’αž›αžΆαž€αž–αž·αžŸαŸαžŸ - failure-domain.beta.kubernetes.io/zone. αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž…αž„αŸ’αž€αŸ„αž˜αž€αŸ†αž–αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αŸ’αž“αž»αž„αž–αž–αž€αžŸαžΆαž’αžΆαžšαžŽαŸˆ αžŸαŸ’αž›αžΆαž€αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž· αž“αž·αž„αž”αŸ†αž–αŸαž‰αžŠαŸ„αž™αžˆαŸ’αž˜αŸ„αŸ‡αžαŸ†αž”αž“αŸ‹αžŠαŸ‚αž›αž˜αžΆαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαŸ’αž“αžΆαŸ†αž„αž“αžΈαž˜αž½αž™αŸ—αŸ”

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

    $ kubectl get nodes -o yaml
    # ΠΈΠ»ΠΈ
    $ kubectl get nodes -o json

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

4. αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž”αŸ’αžαžΌαžšαžšαžœαžΆαž„αž…αž„αŸ’αž€αŸ„αž˜ αž“αž·αž„αž…αž“αŸ’αž›αŸ„αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡

αž“αŸ…αž–αŸαž›αžŠαŸ‚αž› kubectl αž’αŸ’αžœαžΎαžŸαŸ†αžŽαžΎαž‘αŸ…αž€αžΆαž“αŸ‹ Kubernetes API αžŠαŸ†αž”αžΌαž„αžœαžΆαž’αžΆαž“αž―αž€αžŸαžΆαžš kubeconfig αžŠαžΎαž˜αŸ’αž”αžΈαž‘αž‘αž½αž›αž”αžΆαž“αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαž…αžΆαŸ†αž”αžΆαž…αŸ‹αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αŸ”

αžαžΆαž˜αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜ αž―αž€αžŸαžΆαžš kubeconfig αž‚αžΊ ~/.kube/config. αž‡αžΆαž’αž˜αŸ’αž˜αžαžΆαž―αž€αžŸαžΆαžšαž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαž αž¬αž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αžŠαŸ„αž™αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž–αž·αžŸαŸαžŸαŸ”

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

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

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

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

αž―αž€αžŸαžΆαžš kubeconfig

αžαŸ„αŸ‡αž˜αžΎαž›αžαžΆαžαžΎαž―αž€αžŸαžΆαžš kubeconfig αž˜αžΆαž“αž’αŸ’αžœαžΈαžαŸ’αž›αŸ‡αŸ–

αžšαž”αŸ€αž”αž”αŸ’αžšαžΎ kubectl αž€αžΆαž“αŸ‹αžαŸ‚αž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αŸ– αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž›αž˜αŸ’αž’αž·αž
αžŠαžΌαž…αžŠαŸ‚αž›αž’αŸ’αž“αž€αž’αžΆαž…αžƒαžΎαž‰ αž―αž€αžŸαžΆαžš kubeconfig αž˜αžΆαž“αžŸαŸ†αžŽαž»αŸ†αž”αžšαž·αž”αž‘αŸ” αž”αžšαž·αž”αž‘αž˜αžΆαž“αž’αžΆαžαž»αž”αžΈαŸ–

  • αž…αž„αŸ’αž€αŸ„αž˜ β€” API URL αžšαž”αžŸαŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž…αž„αŸ’αž€αŸ„αž˜αŸ”
  • αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ - αž’αžαŸ’αžαžŸαž‰αŸ’αž‰αžΆαžŽαžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αž€αžΆαžšαž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž…αž„αŸ’αž€αŸ„αž˜αŸ”
  • Namespace - αž…αž“αŸ’αž›αŸ„αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αžŠαŸ‚αž›αž”αŸ’αžšαžΎαž“αŸ…αž–αŸαž›αž…αžΌαž›αžšαž½αž˜αž…αž„αŸ’αž€αŸ„αž˜αŸ”

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

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

αžšαž”αŸ€αž”αž”αŸ’αžšαžΎ kubectl αž€αžΆαž“αŸ‹αžαŸ‚αž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αŸ– αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž›αž˜αŸ’αž’αž·αž
αž“αŸ…αž–αŸαž› kubectl αž’αžΆαž“αž―αž€αžŸαžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ αžœαžΆαžαŸ‚αž„αžαŸ‚αž™αž€αž–αŸαžαŸŒαž˜αžΆαž“αž–αžΈαž”αžšαž·αž”αž‘αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αŸ” αž€αŸ’αž“αž»αž„αž§αž‘αžΆαž αžšαžŽαŸαžαžΆαž„αž›αžΎ kubectl αž“αžΉαž„αž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ…αž€αŸ’αžšαž»αž˜ Hare αŸ”

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

αžšαž”αŸ€αž”αž”αŸ’αžšαžΎ kubectl αž€αžΆαž“αŸ‹αžαŸ‚αž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αŸ– αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž›αž˜αŸ’αž’αž·αž
αž₯αž‘αžΌαžœαž“αŸαŸ‡ kubectl αž“αžΉαž„αž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ…αž…αž„αŸ’αž€αŸ„αž˜ Fox αŸ”

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

αžšαž”αŸ€αž”αž”αŸ’αžšαžΎ kubectl αž€αžΆαž“αŸ‹αžαŸ‚αž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αŸ– αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž›αž˜αŸ’αž’αž·αž
αž€αŸ’αž“αž»αž„αž§αž‘αžΆαž αžšαžŽαŸαžαžΆαž„αž›αžΎ kubectl αž“αžΉαž„αž”αŸ’αžšαžΎ Prod namespace αžšαž”αžŸαŸ‹ Fox cluster (αž–αžΈαž˜αž»αž“ Test namespace αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹)αŸ”

αž…αŸ†αžŽαžΆαŸ†αžαžΆ kubectl αž€αŸαž•αŸ’αžαž›αŸ‹αž‡αž˜αŸ’αžšαžΎαžŸαž•αž„αžŠαŸ‚αžšαŸ” --cluster, --user, --namespace ΠΈ --contextαžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αžŸαžšαžŸαŸαžšαž‡αžΆαž“αŸ‹αž›αžΎαž’αžΆαžαž»αž“αžΈαž˜αž½αž™αŸ— αž“αž·αž„αž”αžšαž·αž”αž‘αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αžŠαŸ„αž™αžαŸ’αž›αž½αž“αž―αž„ αžŠαŸ„αž™αž˜αž·αž“αž‚αž·αžαž–αžΈαž’αŸ’αžœαžΈαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„ kubeconfigαŸ” αž˜αžΎαž› kubectl options.

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

αž”αŸ’αžšαžΎ kubectx

αž§αž”αž€αžšαžŽαŸαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžŠαŸαž–αŸαž‰αž“αž·αž™αž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžαžΌαžšαžšαžœαžΆαž„αž…αž„αŸ’αž€αŸ„αž˜ αž“αž·αž„αž…αž“αŸ’αž›αŸ„αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αŸ”

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

αžŠαžΌαž…αžŠαŸ‚αž›αž”αžΆαž“αžšαŸ€αž”αžšαžΆαž”αŸ‹αžšαž½αž…αž αžΎαž™ αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž”αžšαž·αž”αž‘αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž˜αžΆαž“αž“αŸαž™αžαžΆαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž…αž„αŸ’αž€αŸ„αž˜ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αžΆαž“αž”αžšαž·αž”αž‘αžαŸ‚αž˜αž½αž™αž€αŸ’αž“αž»αž„αž˜αž½αž™αž…αž„αŸ’αž€αŸ„αž˜αŸ”

αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž§αž‘αžΆαž αžšαžŽαŸαž“αŸƒαž€αžΆαžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž‘αžΆαŸ†αž„αž“αŸαŸ‡αŸ–

αžšαž”αŸ€αž”αž”αŸ’αžšαžΎ kubectl αž€αžΆαž“αŸ‹αžαŸ‚αž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αŸ– αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž›αž˜αŸ’αž’αž·αž
αžŸαŸ†αžαžΆαž“αŸ‹ αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž‘αžΆαŸ†αž„αž“αŸαŸ‡αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž€αŸ‚αžŸαž˜αŸ’αžšαž½αž›αž―αž€αžŸαžΆαžš kubeconfig αžŠαžΌαž…αžŠαŸ‚αž›αž”αžΆαž“αž–αž·αž–αžŽαŸŒαž“αžΆαžαžΆαž„αž›αžΎαŸ”

αžŠαžΎαž˜αŸ’αž”αžΈαžŠαŸ†αž‘αžΎαž„ kubectxαž’αž“αž»αžœαžαŸ’αžαžαžΆαž˜αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž“αŸ…αž›αžΎ Github αŸ”

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

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

αž€αžΆαžšαž”αŸ’αžšαžΎαžˆαŸ’αž˜αŸ„αŸ‡αž€αŸ’αž›αŸ‚αž„αž€αŸ’αž›αžΆαž™αžŸαŸ‚αž›

αž’αŸ’αž“αž€β€‹αž˜αž·αž“β€‹αžαŸ’αžšαžΌαžœβ€‹αž€αžΆαžšβ€‹αž§αž”αž€αžšαžŽαŸβ€‹αžŠαžΆαž…αŸ‹β€‹αžŠαŸ„αž™β€‹αž‘αŸ‚αž€β€‹αžŠαžΎαž˜αŸ’αž”αžΈβ€‹αž•αŸ’αž›αžΆαžŸαŸ‹β€‹αž”αŸ’αžαžΌβ€‹αžšβ€‹αž”αžšαž·αž”αž‘β€‹αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“β€‹αž“αž·αž„ namespace αž–αŸ’αžšαŸ„αŸ‡ kubectl αž€αŸβ€‹αž•αŸ’αžαž›αŸ‹β€‹αž“αžΌαžœβ€‹αž–αžΆαž€αŸ’αž™β€‹αž”αž‰αŸ’αž‡αžΆβ€‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹β€‹αžœαžΆβ€‹αŸ” αž”αžΆαž‘ αž€αŸ’αžšαž»αž˜ kubectl config αž•αŸ’αžαž›αŸ‹β€‹αž“αžΌαžœβ€‹αž–αžΆαž€αŸ’αž™β€‹αž”αž‰αŸ’αž‡αžΆβ€‹αžšαž„β€‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹β€‹αž€αŸ‚αžŸαž˜αŸ’αžšαž½αž›β€‹αž―αž€αžŸαžΆαžš kubeconfig αŸ”

αž“αŸαŸ‡αž‚αžΊαž˜αž½αž™αž…αŸ†αž“αž½αž“αž“αŸƒαž–αž½αž€αž‚αŸ:

  • kubectl config get-contextsαŸ– αž”αž„αŸ’αž αžΆαž‰αž”αžšαž·αž”αž‘αž‘αžΆαŸ†αž„αž’αžŸαŸ‹;
  • kubectl config current-contextαŸ– αž‘αž‘αž½αž›αž”αžΆαž“αž”αžšαž·αž”αž‘αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“;
  • kubectl config use-contextαŸ– αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž”αžšαž·αž”αž‘αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“;
  • kubectl config set-contextαŸ– αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž’αžΆαžαž»αž”αžšαž·αž”αž‘αŸ”

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

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

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

αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž“αž·αž™αž˜αž“αŸαž™αž“αŸƒαžˆαŸ’αž˜αŸ„αŸ‡αž€αŸ’αž›αŸ‚αž„αž€αŸ’αž›αžΆαž™αžαŸ’αž›αž½αž“αž―αž„αŸ–

# ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ контСкст
alias krc='kubectl config current-context'
# Бписок всСх контСкстов
alias klc='kubectl config get-contexts -o name | sed "s/^/  /;|^  $(krc)$|s/ /*/"'
# Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ контСкст
alias kcc='kubectl config use-context "$(klc | fzf -e | sed "s/^..//")"'

# ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ пространство ΠΈΠΌΠ΅Π½
alias krn='kubectl config get-contexts --no-headers "$(krc)" | awk "{print $5}" | sed "s/^$/default/"'
# Бписок всСх пространств ΠΈΠΌΠ΅Π½
alias kln='kubectl get -o name ns | sed "s|^.*/|  |;|^  $(krn)$|s/ /*/"'
# Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ пространство ΠΈΠΌΠ΅Π½
alias kcn='kubectl config set-context --current --namespace "$(kln | fzf -e | sed "s/^..//")"'

αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ†αžŽαžαŸ‹αžˆαŸ’αž˜αŸ„αŸ‡αž€αŸ’αž›αŸ‚αž„αž€αŸ’αž›αžΆαž™αž‘αžΆαŸ†αž„αž“αŸαŸ‡ αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž”αž“αŸ’αžαŸ‚αž˜αž“αž·αž™αž˜αž“αŸαž™αžαžΆαž„αž›αžΎαž‘αŸ…αž€αŸ’αž“αž»αž„αž―αž€αžŸαžΆαžšαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ” ~/.bashrc ឬ ~/.zshrc αž αžΎαž™αž…αžΆαž”αŸ‹αž•αŸ’αžŠαžΎαž˜αžŸαŸ‚αž›αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž‘αžΎαž„αžœαž·αž‰αŸ”

αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™

Kubectl αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž•αŸ’αž‘αž»αž€αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αžαžΆαž˜αžšαž”αŸ€αž”αžŠαžΌαž…αž‚αŸ’αž“αžΆαž“αžΉαž„αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αŸ” αž§αž‘αžΆαž αžšαžŽαŸ αž’αŸ’αž“αž€αž’αžΆαž…αžŠαŸ†αž‘αžΎαž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™ kubectl-foo αž αžΎαž™αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžœαžΆαžŠαŸ„αž™αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ kubectl foo.

αžœαžΆαž“αžΉαž„αž˜αžΆαž“αž—αžΆαž–αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž€αŸ’αž“αž»αž„αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž”αžšαž·αž”αž‘ αž“αž·αž„αž…αž“αŸ’αž›αŸ„αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αžαžΆαž˜αžœαž·αž’αžΈαž“αŸαŸ‡ αž§αž‘αžΆαž αžšαžŽαŸαžŠαŸ„αž™αž€αžΆαžšαžšαžαŸ‹ kubectl ctx αžŠαžΎαž˜αŸ’αž”αžΈαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž”αžšαž·αž”αž‘ αž“αž·αž„ kubectl ns αžŠαžΎαž˜αŸ’αž”αžΈαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžˆαŸ’αž˜αŸ„αŸ‡αŸ”

αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™αž–αžΈαžšαžŠαŸ‚αž›αž’αŸ’αžœαžΎαžŠαžΌαž…αž“αŸαŸ‡αŸ–

αž€αžΆαžšαž„αžΆαžšαžšαž”αžŸαŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™αž‚αžΊαž•αŸ’αž’αŸ‚αž€αž›αžΎαžˆαŸ’αž˜αŸ„αŸ‡αž€αŸ’αž›αŸ‚αž„αž€αŸ’αž›αžΆαž™αž–αžΈαž•αŸ’αž“αŸ‚αž€αž˜αž»αž“αŸ”

αž“αŸαŸ‡αž‡αžΆαžšαž”αŸ€αž”αžŠαŸ‚αž›αž–αž½αž€αž‚αŸαž’αŸ’αžœαžΎαž€αžΆαžšαŸ–

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

αžŠαžΎαž˜αŸ’αž”αžΈαžŠαŸ†αž‘αžΎαž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™ αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž‘αžΆαž‰αž™αž€αžŸαŸ’αž‚αŸ’αžšαžΈαž”αžŸαŸ‚αž›αžŠαŸ‚αž›αž˜αžΆαž“αžˆαŸ’αž˜αŸ„αŸ‡ kubectl-ctx ΠΈ kubectl-ns αž‘αŸ…αž€αžΆαž“αŸ‹αžαžαžŽαžΆαž˜αž½αž™αž“αŸ…αž€αŸ’αž“αž»αž„αž’αžαŸαžš PATH αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ αž αžΎαž™αž’αŸ’αžœαžΎαž±αŸ’αž™αž–αž½αž€αžœαžΆαž’αžΆαž…αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž”αžΆαž“αž‡αžΆαž˜αž½αž™ ឧ. chmod +x. αž—αŸ’αž›αžΆαž˜αŸ—αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž“αŸαŸ‡αž’αŸ’αž“αž€αž“αžΉαž„αž’αžΆαž…αž”αŸ’αžšαžΎαž”αžΆαž“αŸ” kubectl ctx ΠΈ kubectl ns.

5. αž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αž€αžΆαžšαž”αž‰αŸ’αž…αžΌαž›αž‡αžΆαž˜αž½αž™ autoaliases

αžˆαŸ’αž˜αŸ„αŸ‡β€‹αž€αŸ’αž›αŸ‚αž„αž€αŸ’αž›αžΆαž™ Shell αž‚αžΊαž‡αžΆβ€‹αžœαž·αž’αžΈβ€‹αž›αŸ’αž’β€‹αžŠαžΎαž˜αŸ’αž”αžΈβ€‹αž”αž„αŸ’αž€αžΎαž“αž›αŸ’αž”αžΏαž“β€‹αž€αžΆαžšαž”αž‰αŸ’αž…αžΌαž›αŸ” αž‚αž˜αŸ’αžšαŸ„αž„ kubectl-aliases αž˜αžΆαž“αž•αŸ’αž›αžΌαžœαž€αžΆαžαŸ‹αž”αŸ’αžšαž αŸ‚αž› 800 αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ kubectl αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αŸ”

αž’αŸ’αž“αž€αž”αŸ’αžšαž αŸ‚αž›αž‡αžΆαž†αŸ’αž„αž›αŸ‹ - αžαžΎαž’αŸ’αž“αž€αž…αž„αž…αžΆαŸ†αžˆαŸ’αž˜αŸ„αŸ‡αž€αŸ’αž›αŸ‚αž„αž€αŸ’αž›αžΆαž™ 800 αž™αŸ‰αžΆαž„αžŠαžΌαž…αž˜αŸ’αžαŸαž…? αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αž’αŸ’αž“αž€β€‹αž˜αž·αž“β€‹αž…αžΆαŸ†β€‹αž”αžΆαž…αŸ‹β€‹αž…αžΆαŸ†β€‹αžœαžΆβ€‹αž‘αžΆαŸ†αž„β€‹αž’αžŸαŸ‹β€‹αž“αŸ„αŸ‡β€‹αž‘αŸ αž–αŸ’αžšαŸ„αŸ‡β€‹αžœαžΆβ€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž”αž„αŸ’αž€αžΎαžβ€‹αž‘αžΎαž„β€‹αžαžΆαž˜β€‹αž‚αŸ’αžšαŸ„αž„αž€αžΆαžšαžŽαŸβ€‹αžŠαŸβ€‹αžŸαžΆαž˜αž‰αŸ’αž‰β€‹αž˜αž½αž™β€‹αžŠαŸ‚αž›β€‹αž˜αžΆαž“β€‹αžŠαžΌαž…β€‹αžαžΆαž„β€‹αž€αŸ’αžšαŸ„αž˜αŸ–

αžšαž”αŸ€αž”αž”αŸ’αžšαžΎ kubectl αž€αžΆαž“αŸ‹αžαŸ‚αž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αŸ– αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž›αž˜αŸ’αž’αž·αž
αž§αž‘αžΆαž αžšαžŽαŸ:

  1. kgpooyaml - kubectl αž‘αž‘αž½αž›αž”αžΆαž“ pods oyaml
  2. ksysgsvcw β€” kubectl -n kube-system αž‘αž‘αž½αž›αž”αžΆαž“ svc w
  3. ksysrmcm -kubectl -n kube-αž”αŸ’αžšαž–αŸαž“αŸ’αž’ rm cm
  4. kgdepallsl - kubectl αž‘αž‘αž½αž›αž”αžΆαž“αž€αžΆαžšαžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™ sl

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

αžŠαŸ’αž™αžΆαž€αŸ’αžšαžΆαž˜αž›αž˜αŸ’αž’αž·αžαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž‚αžΊαž“αŸ… GitHub. αž“αŸ…αž‘αžΈαž“αŸ„αŸ‡αž’αŸ’αž“αž€αž€αŸαž’αžΆαž…αžšαž€αžƒαžΎαž‰αž•αž„αžŠαŸ‚αžšαŸ” αž”αž‰αŸ’αž‡αžΈαžˆαŸ’αž˜αŸ„αŸ‡αž€αŸ’αž›αŸ‚αž„αž€αŸ’αž›αžΆαž™αž–αŸαž‰αž›αŸαž‰.

αž§αž‘αžΆαž αžšαžŽαŸ αžˆαŸ’αž˜αŸ„αŸ‡αž αŸ…αž€αŸ’αžšαŸ… kgpooyamlall αž‚αžΊαžŸαŸ’αž˜αžΎαž“αžΉαž„αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ kubectl get pods -o yaml --all-namespaces.

αž›αŸ†αžŠαžΆαž”αŸ‹αžŠαŸ‚αž›αž‘αžΆαž€αŸ‹αž‘αž„αž“αŸƒαž‡αž˜αŸ’αžšαžΎαžŸαž‚αžΊαž˜αž·αž“αžŸαŸ†αžαžΆαž“αŸ‹αž‘αŸαŸ– αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ kgpooyamlall αž‚αžΊαžŸαŸ’αž˜αžΎαž“αžΉαž„αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ kgpoalloyaml.

αž’αŸ’αž“αž€αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž”αŸ’αžšαžΎαžŸαž˜αžΆαžŸαž’αžΆαžαž»αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž‡αžΆαžˆαŸ’αž˜αŸ„αŸ‡αž€αŸ’αž›αŸ‚αž„αž€αŸ’αž›αžΆαž™αž‘αŸαŸ” αž§αž‘αžΆαž αžšαžŽαŸ k, kg, klo, ksys, kgpo αž€αŸαž’αžΆαž…αž”αŸ’αžšαžΎαž”αžΆαž“αžŠαŸ‚αžšαŸ” αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡αž‘αŸ…αž‘αŸ€αž αž’αŸ’αž“αž€αž’αžΆαž…αž•αŸ’αžŸαŸ†αžˆαŸ’αž˜αŸ„αŸ‡αž€αŸ’αž›αŸ‚αž„αž€αŸ’αž›αžΆαž™ αž“αž·αž„αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž’αž˜αŸ’αž˜αžαžΆ αž¬αž‡αž˜αŸ’αžšαžΎαžŸαž“αŸ…αž›αžΎαž”αž“αŸ’αž‘αžΆαžαŸ‹αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαŸ–

αž§αž‘αžΆαž αžšαžŽαŸ:

  1. αž‡αŸ†αž“αž½αžŸαŸ” kubectl proxy αž’αŸ’αž“αž€αž’αžΆαž…αžŸαžšαžŸαŸαžšαž”αžΆαž“αŸ” k proxy.
  2. αž‡αŸ†αž“αž½αžŸαŸ” kubectl get roles αž’αŸ’αž“αž€αž’αžΆαž…αžŸαžšαžŸαŸαžšαž”αžΆαž“αŸ” kg roles (αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž˜αž·αž“αž˜αžΆαž“αžˆαŸ’αž˜αŸ„αŸ‡αž€αŸ’αž›αŸ‚αž„αž€αŸ’αž›αžΆαž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αž“αž’αžΆαž“αžαž½αž“αžΆαž‘αžΈαž‘αŸ)αŸ”
  3. αžŠαžΎαž˜αŸ’αž”αžΈαž‘αž‘αž½αž›αž”αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž•αžαž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹ αž’αŸ’αž“αž€αž’αžΆαž…αž”αŸ’αžšαžΎαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ kgpo my-pod β€” kubectl get pod my-pod.

αžŸαžΌαž˜αž…αŸ†αžŽαžΆαŸ†αžαžΆαžˆαŸ’αž˜αŸ„αŸ‡αž€αŸ’αž›αŸ‚αž„αž€αŸ’αž›αžΆαž™αž˜αž½αž™αž…αŸ†αž“αž½αž“αžαž˜αŸ’αžšαžΌαžœαž±αŸ’αž™αž˜αžΆαž“αž’αžΆαž‚αž»αž™αž˜αŸ‰αž„αŸ‹αž”αž“αŸ’αž‘αžΆαžαŸ‹αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαŸ” αž§αž‘αžΆαž αžšαžŽαŸαžˆαŸ’αž˜αŸ„αŸ‡αž€αŸ’αž›αŸ‚αž„αž€αŸ’αž›αžΆαž™ kgpol αž˜αž’αŸ’αž™αŸ„αž”αžΆαž™ kubectl get pods -l. αž‡αž˜αŸ’αžšαžΎαžŸ -l αž‘αžΆαž˜αž‘αžΆαžšαž’αžΆαž‚αž»αž™αž˜αŸ‰αž„αŸ‹ - αž€αžΆαžšαž”αž‰αŸ’αž‡αžΆαž€αŸ‹αžŸαŸ’αž›αžΆαž€αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž”αŸ’αžšαžΎαžˆαŸ’αž˜αŸ„αŸ‡αž€αŸ’αž›αŸ‚αž„αž€αŸ’αž›αžΆαž™ αžœαžΆαž“αžΉαž„αž˜αžΎαž›αž‘αŸ…αžŠαžΌαž… kgpol app=ui.

αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αžˆαŸ’αž˜αŸ„αŸ‡αž€αŸ’αž›αŸ‚αž„αž€αŸ’αž›αžΆαž™αž˜αž½αž™αž…αŸ†αž“αž½αž“αžαž˜αŸ’αžšαžΌαžœαž±αŸ’αž™αž˜αžΆαž“αž’αžΆαž‚αž»αž™αž˜αŸ‰αž„αŸ‹ αžˆαŸ’αž˜αŸ„αŸ‡αž€αŸ’αž›αŸ‚αž„αž€αŸ’αž›αžΆαž™ a, f αž“αž·αž„ l αžαŸ’αžšαžΌαžœαžαŸ‚αž”αŸ’αžšαžΎαž…αž»αž„αž€αŸ’αžšαŸ„αž™αŸ”

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

αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„αŸ”

αžŠαžΎαž˜αŸ’αž”αžΈαžŠαŸ†αž‘αžΎαž„ kubectl-aliases αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž‘αžΆαž‰αž™αž€αž―αž€αžŸαžΆαžš .kubectl_aliases αž–αžΈ GitHub αž αžΎαž™αž”αž‰αŸ’αž…αžΌαž›αžœαžΆαž‘αŸ…αž€αŸ’αž“αž»αž„αž―αž€αžŸαžΆαžš ~/.bashrc ឬ ~/.zshrc:

source ~/.kubectl_aliases

αž€αžΆαžšαž”αŸ†αž–αŸαž‰αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·

αžŠαžΌαž…αžŠαŸ‚αž›αž™αžΎαž„αž”αžΆαž“αž“αž·αž™αžΆαž™αž–αžΈαž˜αž»αž“ αž’αŸ’αž“αž€αžαŸ‚αž„αžαŸ‚αž”αž“αŸ’αžαŸ‚αž˜αž–αžΆαž€αŸ’αž™αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ…αžˆαŸ’αž˜αŸ„αŸ‡αž€αŸ’αž›αŸ‚αž„αž€αŸ’αž›αžΆαž™αž“αŸ…αž›αžΎαž”αž“αŸ’αž‘αžΆαžαŸ‹αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαŸ” αž§αž‘αžΆαž αžšαžŽαŸ:

$ kgpooyaml test-pod-d4b77b989

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž€αžΆαžšαž”αŸ†αž–αŸαž‰αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ kubectl αž’αŸ’αž“αž€αž”αŸ’αžšαž αŸ‚αž›αž‡αžΆαž”αžΆαž“αž”αŸ’αžšαžΎαž€αžΆαžšαž”αŸ†αž–αŸαž‰αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αžœαžΈαŸ—αžŠαžΌαž…αž‡αžΆαžˆαŸ’αž˜αŸ„αŸ‡αž’αž“αž’αžΆαž“αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžαžΎαž“αŸαŸ‡αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αžˆαŸ’αž˜αŸ„αŸ‡αž€αŸ’αž›αŸ‚αž„αž€αŸ’αž›αžΆαž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎ?

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

αž…αž˜αŸ’αž›αžΎαž™αž‚αžΊαž’αžΆαžŸαŸ’αžšαŸαž™αž‘αŸ…αž›αžΎαžŸαŸ†αž”αž€αž˜αž½αž™αžŽαžΆαžŠαŸ‚αž›αž’αŸ’αž“αž€αž€αŸ†αž–αž»αž„αž”αŸ’αžšαžΎαŸ–

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

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

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

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

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

αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„αžˆαŸ’αž˜αŸ„αŸ‡αž€αŸ’αž›αŸ‚αž„αž€αŸ’αž›αžΆαž™αž–αŸαž‰αž›αŸαž‰

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

αž…αŸ†αžŽαžΆαŸ†αžŸαŸ†αžαžΆαž“αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ macOSαŸ– αžŠαžΌαž…αž‡αžΆαžŸαŸ’αž‚αŸ’αžšαžΈαž”αž€αžΆαžšαž”αŸ†αž–αŸαž‰αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž· kubectl αžˆαŸ’αž˜αŸ„αŸ‡αž€αŸ’αž›αŸ‚αž„αž€αŸ’αž›αžΆαž™αž–αŸαž‰αž›αŸαž‰αž˜αž·αž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‡αžΆαž˜αž½αž™ Bash 3.2 αžŠαŸ‚αž›αž‡αžΆαž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜αž“αŸ…αž›αžΎ MacOS αž‘αŸαŸ” αž‡αžΆαž–αž·αžŸαŸαžŸ αžˆαŸ’αž˜αŸ„αŸ‡αž€αŸ’αž›αŸ‚αž„αž€αŸ’αž›αžΆαž™αž–αŸαž‰αž›αŸαž‰αž‚αžΊαž’αžΆαžŸαŸ’αžšαŸαž™αž›αžΎ bash-completion v2 (brew install bash-completion@2) αžŠαŸ‚αž›αž‘αžΆαž˜αž‘αžΆαžšαž™αŸ‰αžΆαž„αž αŸ„αž…αžŽαžΆαžŸαŸ‹ Bash 4.1 αŸ” αž“αŸαŸ‡αž˜αžΆαž“αž“αŸαž™αžαžΆ αžŠαžΎαž˜αŸ’αž”αžΈαž”αŸ’αžšαžΎαžˆαŸ’αž˜αŸ„αŸ‡αž€αŸ’αž›αŸ‚αž„αž€αŸ’αž›αžΆαž™αž–αŸαž‰αž›αŸαž‰αž“αŸ…αž›αžΎ MacOS αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαžŠαŸ†αž‘αžΎαž„αž€αŸ†αžŽαŸ‚αžαŸ’αž˜αžΈαž“αŸƒ Bash αŸ”

αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž‘αžΆαž‰αž™αž€αžŸαŸ’αž‚αŸ’αžšαžΈαž” bash_completion.sh αž–αžΈ αžƒαŸ’αž›αžΆαŸ†αž„ GitHub αž αžΎαž™αž”αž‰αŸ’αž…αžΌαž›αžœαžΆαž‘αŸ…αž€αŸ’αž“αž»αž„αž―αž€αžŸαžΆαžšαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ” ~/.bashrc:

source ~/bash_completion.sh

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

αž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αžΆαžšαž”αŸ†αž–αŸαž‰αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžˆαŸ’αž˜αŸ„αŸ‡αž€αŸ’αž›αŸ‚αž„αž€αŸ’αž›αžΆαž™ kubectl

αž”αž…αŸ’αž…αŸαž€αž‘αŸαžŸαž–αŸαž‰αž›αŸαž‰ - αžˆαŸ’αž˜αŸ„αŸ‡αž€αŸ’αž›αŸ‚αž„αž€αŸ’αž›αžΆαž™αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž˜αž»αžαž„αžΆαžšαžšαž»αŸ† _complete_alias. αž˜αž»αžαž„αžΆαžšαž“αŸαŸ‡αž–αž·αž“αž·αžαŸ’αž™αžˆαŸ’αž˜αŸ„αŸ‡αž€αŸ’αž›αŸ‚αž„αž€αŸ’αž›αžΆαž™ αž“αž·αž„αžαŸ’αžšαž‘αž”αŸ‹αž–αŸαžαŸŒαž˜αžΆαž“αž‡αŸ†αž“αž½αž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αŸ†αž–αŸαž‰αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαŸ”

αžŠαžΎαž˜αŸ’αž”αžΈαž—αŸ’αž‡αžΆαž”αŸ‹αž˜αž»αžαž„αžΆαžšαž‡αžΆαž˜αž½αž™αžˆαŸ’αž˜αŸ„αŸ‡αž€αŸ’αž›αŸ‚αž„αž€αŸ’αž›αžΆαž™αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž˜αž½αž™ αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž”αŸ’αžšαžΎαž™αž“αŸ’αžαž€αžΆαžš Bash αžŠαŸ‚αž›αž˜αžΆαž“αžŸαŸ’αžšαžΆαž”αŸ‹ αž”αžΆαž“αž”αž‰αŸ’αž…αž”αŸ‹, αžŠαžΎαž˜αŸ’αž”αžΈαžŠαŸ†αž‘αžΎαž„ _complete_alias αž‡αžΆαž˜αž»αžαž„αžΆαžšαž”αŸ†αž–αŸαž‰αžˆαŸ’αž˜αŸ„αŸ‡αž€αŸ’αž›αŸ‚αž„αž€αŸ’αž›αžΆαž™αŸ”

αž‡αžΆαž§αž‘αžΆαž αžšαžŽαŸ αž…αžΌαžšαž™αžΎαž„αž™αž€αžˆαŸ’αž˜αŸ„αŸ‡αž€αŸ’αž›αŸ‚αž„αž€αŸ’αž›αžΆαž™ k αžŠαŸ‚αž›αžαŸ†αžŽαžΆαž„αž±αŸ’αž™αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ kubectl αŸ” αžŠαžΎαž˜αŸ’αž”αžΈαžŠαŸ†αž‘αžΎαž„ _complete_alias αž‡αžΆαž˜αž»αžαž„αžΆαžšαž”αŸ†αž–αŸαž‰αž”αž“αŸ’αžαŸ‚αž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžˆαŸ’αž˜αŸ„αŸ‡αž€αŸ’αž›αŸ‚αž„αž€αŸ’αž›αžΆαž™αž“αŸαŸ‡ αž’αŸ’αž“αž€αž‚αž½αžšαžαŸ‚αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸ–

$ complete -F _complete_alias k

αž›αž‘αŸ’αž’αž•αž›β€‹αž“αŸƒβ€‹αž€αžΆαžšβ€‹αž“αŸαŸ‡β€‹αž‚αžΊβ€‹αžαžΆ αž“αŸ…β€‹αž–αŸαž›β€‹αžŽαžΆβ€‹αžŠαŸ‚αž›β€‹αž’αŸ’αž“αž€β€‹αž”αŸ†αž–αŸαž‰β€‹αžˆαŸ’αž˜αŸ„αŸ‡β€‹αž€αŸ’αž›αŸ‚αž„αž€αŸ’αž›αžΆαž™ k αžŠαŸ„αž™β€‹αžŸαŸ’αžœαŸαž™β€‹αž”αŸ’αžšαžœαžαŸ’αžαž· αž˜αž»αžαž„αžΆαžšβ€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž αŸ… _complete_aliasαžŠαŸ‚αž›αž–αž·αž“αž·αžαŸ’αž™αžˆαŸ’αž˜αŸ„αŸ‡αž€αŸ’αž›αŸ‚αž„αž€αŸ’αž›αžΆαž™ αž“αž·αž„αžαŸ’αžšαž‘αž”αŸ‹αž–αŸαžαŸŒαž˜αžΆαž“αž‡αŸ†αž“αž½αž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αŸ†αž–αŸαž‰αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ kubectl.

αž‡αžΆαž§αž‘αžΆαž αžšαžŽαŸαž‘αžΈαž–αžΈαžš αž…αžΌαžšαž™αžΎαž„αž™αž€αžˆαŸ’αž˜αŸ„αŸ‡αž€αŸ’αž›αŸ‚αž„αž€αŸ’αž›αžΆαž™ kgαžŠαŸ‚αž›αžαŸ†αžŽαžΆαž„αž±αŸ’αž™ kubectl get:

$ complete -F _complete_alias kg

αžŠαžΌαž…β€‹αž€αŸ’αž“αž»αž„β€‹αž§αž‘αžΆαž αžšαžŽαŸβ€‹αž˜αž»αž“β€‹αžŠαŸ‚αžš αž–αŸαž›β€‹αž’αŸ’αž“αž€β€‹αž”αŸ†αž–αŸαž‰β€‹αžŠαŸ„αž™β€‹αžŸαŸ’αžœαŸαž™β€‹αž”αŸ’αžšαžœαžαŸ’αžαž· kg αž’αŸ’αž“αž€β€‹αž“αžΉαž„β€‹αž‘αž‘αž½αž›β€‹αž”αžΆαž“β€‹αž–αŸαžαŸŒαž˜αžΆαž“β€‹αž‡αŸ†αž“αž½αž™β€‹αž€αžΆαžšβ€‹αž”αž‰αŸ’αž…αž”αŸ‹β€‹αžŠαžΌαž…β€‹αž‚αŸ’αž“αžΆβ€‹αžŠαŸ‚αž›β€‹αž’αŸ’αž“αž€β€‹αž“αžΉαž„β€‹αž‘αž‘αž½αž›β€‹αž”αžΆαž“ kubectl get.

αž…αŸ†αžŽαžΆαŸ†αžαžΆαž’αŸ’αž“αž€αž’αžΆαž…αž”αŸ’αžšαžΎαžˆαŸ’αž˜αŸ„αŸ‡αž€αŸ’αž›αŸ‚αž„αž€αŸ’αž›αžΆαž™αž–αŸαž‰αž›αŸαž‰αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžˆαŸ’αž˜αŸ„αŸ‡αž€αŸ’αž›αŸ‚αž„αž€αŸ’αž›αžΆαž™αžŽαžΆαž˜αž½αž™αž“αŸ…αž›αžΎαž”αŸ’αžšαž–αŸαž“αŸ’αž’αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ”

αžŠαžΌαž…αŸ’αž“αŸαŸ‡ αžŠαžΎαž˜αŸ’αž”αžΈαž”αžΎαž€αž€αžΆαžšαž”αŸ†αž–αŸαž‰αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžˆαŸ’αž˜αŸ„αŸ‡αž€αŸ’αž›αŸ‚αž„αž€αŸ’αž›αžΆαž™ kubectl αž‘αžΆαŸ†αž„αž’αžŸαŸ‹ αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžαžΆαž„αž›αžΎαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž–αž½αž€αžœαžΆαž“αžΈαž˜αž½αž™αŸ—αŸ” αž’αžαŸ’αžαž”αž‘αžαŸ’αž›αžΈαŸ—αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αž’αŸ’αžœαžΎαž™αŸ‰αžΆαž„αž–αž·αžαž”αŸ’αžšαžΆαž€αžŠαž“αŸαŸ‡ αž•αŸ’αžαž›αŸ‹αž‡αžΌαž“αž’αŸ’αž“αž€αž”αžΆαž“αž€αŸ†αžŽαžαŸ‹ kubectl-aliases αž‘αŸ… ~/.kubectl-aliases:

for _a in $(sed '/^alias /!d;s/^alias //;s/=.*$//' ~/.kubectl_aliases); 
do
  complete -F _complete_alias "$_a"
done

αž”αŸ†αžŽαŸ‚αž€αž“αŸƒαž€αžΌαžŠαž“αŸαŸ‡αžαŸ’αžšαžΌαžœαžαŸ‚αžŠαžΆαž€αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ” ~/.bashrcαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžŸαŸ‚αž›αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž‘αžΎαž„αžœαž·αž‰ αž αžΎαž™αž€αžΆαžšαž”αŸ†αž–αŸαž‰αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž“αžΉαž„αž˜αžΆαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžˆαŸ’αž˜αŸ„αŸ‡αž€αŸ’αž›αŸ‚αž„αž€αŸ’αž›αžΆαž™ 800 kubectl αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ”

6. αž–αž„αŸ’αžšαžΈαž€ kubectl αž‡αžΆαž˜αž½αž™αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™

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

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž’αŸ’αž›αžΆαž”αŸ‹αžŸαŸ’αž‚αžΆαž›αŸ‹ αž™αž“αŸ’αžαž€αžΆαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™ Gitαž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™ kubectl αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αž“αŸ…αž›αžΎαž‚αŸ„αž›αž€αžΆαžšαžŽαŸαžŠαžΌαž…αž‚αŸ’αž“αžΆαŸ”

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

αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™

αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™ Kubectl αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αŸ‚αž€αž…αžΆαž™αž‡αžΆαž―αž€αžŸαžΆαžšαžŠαŸ‚αž›αž’αžΆαž…αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž”αžΆαž“αžŸαžΆαž˜αž‰αŸ’αž‰αžŠαŸ‚αž›αž˜αžΆαž“αžˆαŸ’αž˜αŸ„αŸ‡αžŠαžΌαž…αž‡αžΆ kubectl-x. αž”αž»αž–αŸ’αžœαž”αž‘ kubectl- αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‘αžΆαž˜αž‘αžΆαžš αž”αž“αŸ’αžαžŠαŸ„αž™αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžšαž„ kubectl αžαŸ’αž˜αžΈαžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž αŸ…αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™αŸ”

αž§αž‘αžΆαž αžšαžŽαŸ αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™ Hello αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αŸ‚αž€αž…αžΆαž™αž‡αžΆαž―αž€αžŸαžΆαžšαžŠαŸ‚αž›αž αŸ…αžαžΆ kubectl-hello.

αžŠαžΎαž˜αŸ’αž”αžΈαžŠαŸ†αž‘αžΎαž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™ αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž…αž˜αŸ’αž›αž„αž―αž€αžŸαžΆαžš kubectl-x αž‘αŸ…αž€αžΆαž“αŸ‹αžαžαžŽαžΆαž˜αž½αž™αž“αŸ…αž€αŸ’αž“αž»αž„ PATH αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ αž αžΎαž™αž’αŸ’αžœαžΎαž±αŸ’αž™αžœαžΆαž’αžΆαž…αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž”αžΆαž“ αž§αž‘αžΆαž αžšαžŽαŸαž‡αžΆαž˜αž½αž™ chmod +x. αž—αŸ’αž›αžΆαž˜αŸ—αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž“αŸαŸ‡αž’αŸ’αž“αž€αž’αžΆαž…αž αŸ…αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™αž‡αžΆαž˜αž½αž™ kubectl x.

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

$ kubectl plugin list

αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž“αŸαŸ‡αž€αŸαž“αžΉαž„αž”αž„αŸ’αž αžΆαž‰αž€αžΆαžšαž–αŸ’αžšαž˜αžΆαž“αž•αž„αžŠαŸ‚αžš αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αžΆαž“αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™αž…αŸ’αžšαžΎαž“αžŠαŸ‚αž›αž˜αžΆαž“αžˆαŸ’αž˜αŸ„αŸ‡αžŠαžΌαž…αž‚αŸ’αž“αžΆ αž¬αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž˜αžΆαž“αž―αž€αžŸαžΆαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™αžŠαŸ‚αž›αž˜αž·αž“αž’αžΆαž…αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž”αžΆαž“αŸ”

αžŸαŸ’αžœαŸ‚αž„αžšαž€ αž“αž·αž„αžŠαŸ†αž‘αžΎαž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™αžŠαŸ„αž™αž”αŸ’αžšαžΎ Krew

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

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

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

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

αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ Krew αžŸαŸ†αžαžΆαž“αŸ‹αž”αŸ†αž•αž»αžαž‚αžΊαŸ–

# Поиск в спискС плагинов
$ kubectl krew search [<query>]
# ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΏΠ»Π°Π³ΠΈΠ½Π΅
$ kubectl krew info <plugin>
# Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ»Π°Π³ΠΈΠ½
$ kubectl krew install <plugin>
# ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ всС ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹ Π΄ΠΎ послСднСй вСрсии
$ kubectl krew upgrade
# ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ всС ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹, установлСнныС Ρ‡Π΅Ρ€Π΅Π· Krew
$ kubectl krew list
# Π”Π΅ΠΈΠ½ΡΡ‚Π°Π»Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ»Π°Π³ΠΈΠ½
$ kubectl krew remove <plugin>

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

αžŸαžΌαž˜αž…αŸ†αžŽαžΆαŸ†αžαžΆαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ kubectl krew list αž”αž„αŸ’αž αžΆαž‰αžαŸ‚αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ†αž‘αžΎαž„αžŠαŸ„αž™αž”αŸ’αžšαžΎ Krew αž…αŸ†αžŽαŸ‚αž€αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ kubectl plugin list αžšαžΆαž™αž”αž‰αŸ’αž‡αžΈαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™αž‘αžΆαŸ†αž„αž’αžŸαŸ‹ αž–αŸ„αž›αž‚αžΊαž’αŸ’αž“αž€αžŠαŸ‚αž›αžŠαŸ†αž‘αžΎαž„αžŠαŸ„αž™αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ Krew αž“αž·αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ†αž‘αžΎαž„αžŠαŸ„αž™αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ”

αžŸαŸ’αžœαŸ‚αž„αžšαž€αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™αž“αŸ…αž€αž“αŸ’αž›αŸ‚αž„αž•αŸ’αžŸαŸαž„

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

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

αžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ”

αž’αŸ’αž“αž€αž’αžΆαž…αžŠαŸ„αž™αžαŸ’αž›αž½αž“αž―αž„αŸ” αž”αž„αŸ’αž€αžΎαžαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™ - αžœαžΆαž˜αž·αž“αž–αž·αž”αžΆαž€αž‘αŸαŸ” αž’αŸ’αž“αž€β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αž„αŸ’αž€αžΎαžβ€‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈβ€‹αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·β€‹αžŠαŸ‚αž›β€‹αž’αŸ’αžœαžΎβ€‹αž’αŸ’αžœαžΈβ€‹αžŠαŸ‚αž›β€‹αž’αŸ’αž“αž€β€‹αžαŸ’αžšαžΌαžœβ€‹αž€αžΆαžšβ€‹αžˆαŸ’αž˜αŸ„αŸ‡β€‹αžœαžΆβ€‹αžŠαžΌαž…β€‹αž‡αžΆβ€‹ kubectl-x αž αžΎαž™αžŠαŸ†αž‘αžΎαž„αžŠαžΌαž…αž”αžΆαž“αžšαŸ€αž”αžšαžΆαž”αŸ‹αžαžΆαž„αž›αžΎαŸ”

αž―αž€αžŸαžΆαžšαž’αžΆαž…αž‡αžΆαžŸαŸ’αž‚αŸ’αžšαžΈαž” bash αžŸαŸ’αž‚αŸ’αžšαžΈαž” python αž¬αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ GO αžŠαŸ‚αž›αž”αžΆαž“αž…αž„αž€αŸ’αžšαž„ - αžœαžΆαž˜αž·αž“αž˜αžΆαž“αž”αž‰αŸ’αž αžΆαž‘αŸαŸ” αž›αž€αŸ’αžαžαžŽαŸ’αžŒαžαŸ‚αž˜αž½αž™αž‚αžαŸ‹αž‚αžΊαžαžΆαžœαžΆαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αžŠαŸ„αž™αž•αŸ’αž‘αžΆαž›αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαŸ”

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

αž”αž„αŸ’αž€αžΎαžαž―αž€αžŸαžΆαžš kubectl-img αžαŸ’αž›αžΉαž˜αžŸαžΆαžšαžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸ–

#!/bin/bash
kubectl get pods -o custom-columns='NAME:metadata.name,IMAGES:spec.containers[*].image'

αž₯αž‘αžΌαžœαž“αŸαŸ‡αž’αŸ’αžœαžΎαž±αŸ’αž™αž―αž€αžŸαžΆαžšαž’αžΆαž…αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž”αžΆαž“αž‡αžΆαž˜αž½αž™ chmod +x kubectl-img αž αžΎαž™αž•αŸ’αž›αžΆαžŸαŸ‹αž‘αžΈαžœαžΆαž‘αŸ…αžαžαžŽαžΆαž˜αž½αž™αž“αŸ…αž€αŸ’αž“αž»αž„ PATH αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ” αž—αŸ’αž›αžΆαž˜αŸ—αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž“αŸαŸ‡αž’αŸ’αž“αž€αž’αžΆαž…αž”αŸ’αžšαžΎαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™ kubectl img.

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

αžšαž”αŸ€αž”αž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ”

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

αž’αŸ’αž“αž€αž€αŸαž’αžΆαž…αžŸαŸ’αž“αžΎαžŸαž»αŸ†αž±αŸ’αž™αž”αž“αŸ’αžαŸ‚αž˜αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž‘αŸ… αž”αž‰αŸ’αž‡αžΈ Krew. αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž’αŸ†αž–αžΈαžšαž”αŸ€αž”αž’αŸ’αžœαžΎαžœαžΆαž˜αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„ αžƒαŸ’αž›αžΆαŸ†αž„ GitHub.

αž€αžΆαžšαž”αž‰αŸ’αž…αž”αŸ‹αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ

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

αžƒαŸ’αž›αžΆαŸ†αž„ GitHub kubectl αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž˜αž»αžαž„αžΆαžšαž“αŸαŸ‡αž˜αžΆαž“ αžŸαŸ†αžŽαžΎαž”αžΎαž€αž…αŸ†αž . αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžœαžΆαž’αžΆαž…αž‘αŸ…αžšαž½αž…αžŠαŸ‚αž›αžαžΆαž˜αž»αžαž„αžΆαžšαž“αŸαŸ‡αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαž“αŸ…αž–αŸαž›αžŽαžΆαž˜αž½αž™αž“αžΆαž–αŸαž›αž’αž“αžΆαž‚αžαŸ”

αžŸαŸ†αžŽαžΆαž„αž›αŸ’αž’!!!

αžαžΎαž˜αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž’αžΆαž“αž›αžΎαž”αŸ’αžšαž’αžΆαž“αž”αž‘:

  1. αž€αž˜αŸ’αžšαž·αžαž“αŸƒαž€αžΆαžšαž’αŸ’αžœαžΎαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž…αŸ†αž“αž½αž“αž”αžΈαž“αŸ…αž€αŸ’αž“αž»αž„ Kubernetes αž“αž·αž„αžšαž”αŸ€αž”αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž–αž½αž€αžœαžΆαž”αŸ’αžšαž€αž”αžŠαŸ„αž™αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–.
  2. Kubernetes αž€αŸ’αž“αž»αž„αžŸαŸ’αž˜αžΆαžšαžαžΈαž“αŸƒαž€αžΆαžšαž›αž½αž…αž…αž˜αŸ’αž›αž„αž‡αžΆαž˜αž½αž™αž‚αŸ†αžšαžΌαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž.
  3. αž”αŸ‰αž»αžŸαŸ’αžαž·αŸαžšαž”αžŸαŸ‹αž™αžΎαž„αž“αŸ…αž‡αž»αŸ†αžœαž·αž‰ Kubernetes αž“αŸ…αž€αŸ’αž“αž»αž„ Telegram.

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

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