เบงเบดเบ—เบตเบเบฒเบ™เปƒเบŠเป‰ 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 เปƒเบ™เป„เบŸเบฅเปŒเป‚เบ”เบเบŠเบทเปˆ 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 เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบŠเบธเบ”เบ‚เบญเบ‡เบญเบปเบ‡เบ›เบฐเบเบญเบšเป€เบญเบเบฐเบฅเบฒเบ”เบ—เบตเปˆเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป€เบ›เบฑเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเบขเบนเปˆเปƒเบ™ cluster nodes. เบญเบปเบ‡เบ›เบฐเบเบญเบšเบšเบฒเบ‡เบญเบฑเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เป‚เบซเบกเบ”เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš, เบญเบปเบ‡เบ›เบฐเบเบญเบšเบญเบทเปˆเบ™เป†เปƒเบ™เป‚เบซเบกเบ”เบœเบนเป‰เป€เบฎเบฑเบ”เบงเบฝเบ, เปเบ•เปˆเบฅเบฐเบญเบปเบ‡เบ›เบฐเบเบญเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบงเบฝเบเบ‡เบฒเบ™เบชเบฐเป€เบžเบฒเบฐเบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡.

เบ™เบตเป‰เปเบกเปˆเบ™เบญเบปเบ‡เบ›เบฐเบเบญเบšเบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบ—เบตเปˆเบชเบธเบ”เปƒเบ™ nodes เบ•เบปเป‰เบ™เบ•เป:

  1. เบงเปเป‰ - เบเบฒเบ™โ€‹เป€เบเบฑเบšโ€‹เบเปเบฒโ€‹เบ„เปเบฒโ€‹เบ™เบดโ€‹เบเบฒเบกโ€‹เบ‚เบญเบ‡โ€‹เบŠเบฑเบšโ€‹เบžเบฐโ€‹เบเบฒโ€‹เบเบญเบ™ (เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเบกเบฑเบ™เป€เบ›เบฑเบ™ etcd).
  2. เป€เบŠเบตเบšเป€เบงเบต API โ€” เบชเบฐโ€‹เบซเบ™เบญเบ‡ API เปเบฅเบฐโ€‹เบ„เบธเป‰เบกโ€‹เบ„เบญเบ‡โ€‹เบเบฒเบ™โ€‹เป€เบเบฑเบšโ€‹เบฎเบฑเบโ€‹เบชเบฒโ€‹.
  3. เบœเบนเป‰เบˆเบฑเบ”เบเบฒเบ™เบ„เบงเบšเบ„เบธเบก โ€” เบฎเบฑเบšโ€‹เบ›เบฐโ€‹เบเบฑเบ™โ€‹เบงเปˆเบฒโ€‹เบชเบฐโ€‹เบ–เบฒโ€‹เบ™เบฐโ€‹เบŠเบฑเบšโ€‹เบžเบฐโ€‹เบเบฒโ€‹เบเบญเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบ•เบฒเบกโ€‹เบชเบฐโ€‹เป€เบžเบฒเบฐโ€‹.
  4. เบœเบนเป‰เบˆเบฑเบ”เบ•เบฒเบ•เบฐเบฅเบฒเบ‡ โ€” เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป€เบงโ€‹เบฅเบฒ pods เปƒเบ™ nodes เบ‚เบญเบ‡โ€‹เบžเบฐโ€‹เบ™เบฑเบโ€‹เบ‡เบฒเบ™โ€‹.

เปเบฅเบฐเบ™เบตเป‰เปเบกเปˆเบ™เบญเบปเบ‡เบ›เบฐเบเบญเบš เปœเบถเปˆเบ‡ เบ—เบตเปˆ เบชเบณ เบ„เบฑเบ™เบ—เบตเปˆเบชเบธเบ”เปƒเบ™เบ‚เปเป‰เบ‚เบญเบ‡เบžเบฐเบ™เบฑเบเบ‡เบฒเบ™:

  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 replica (เบญเบตเบ‡เบ•เบฒเบกเปเบกเปˆเปเบšเบš pod เปƒเบ™เบ„เปเบฒเบ™เบดเบเบฒเบก ReplicaSet) เปเบฅเบฐเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเปƒเบซเป‰เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบขเบนเปˆเปƒเบ™เบšเปˆเบญเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒ:

    เบงเบดเบ—เบตเบเบฒเบ™เปƒเบŠเป‰ kubectl เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฒเบเบ‚เบถเป‰เบ™: เบ„เบนเปˆเบกเบทเบฅเบฒเบเบฅเบฐเบญเบฝเบ”

  4. เบ•เบปเบงเบเบณเบ™เบปเบ”เป€เบงเบฅเบฒเบ–เบทเบเป€เบ›เบตเบ”เบ•เบปเบง, เบ•เบดเบ”เบ•เบฒเบกเบเบฑเบเบ—เบตเปˆเบเบฑเบ‡เบšเปเปˆเบ—เบฑเบ™เป„เบ”เป‰เบกเบญเบšเปเบฒเบเปƒเบซเป‰เบœเบนเป‰เบญเบญเบเปเบฎเบ‡เบ‡เบฒเบ™เปƒเบ”เป†:

    เบงเบดเบ—เบตเบเบฒเบ™เปƒเบŠเป‰ kubectl เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฒเบเบ‚เบถเป‰เบ™: เบ„เบนเปˆเบกเบทเบฅเบฒเบเบฅเบฐเบญเบฝเบ”

  5. เบœเบนเป‰เบˆเบฑเบ”เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เป€เบฅเบทเบญเบ node เบžเบฐเบ™เบฑเบเบ‡เบฒเบ™เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐ pod เปเบฅเบฐเป€เบžเบตเปˆเบกเบ‚เปเป‰เบกเบนเบ™เบ™เบตเป‰เปƒเบชเปˆเบ„เปเบฒเบ™เบดเบเบฒเบก pod เปƒเบ™เบฎเป‰เบฒเบ™:

    เบงเบดเบ—เบตเบเบฒเบ™เปƒเบŠเป‰ kubectl เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฒเบเบ‚เบถเป‰เบ™: เบ„เบนเปˆเบกเบทเบฅเบฒเบเบฅเบฐเบญเบฝเบ”

  6. เปƒเบ™ node เบžเบฐเบ™เบฑเบเบ‡เบฒเบ™เบ—เบตเปˆ pods เบ–เบทเบเบกเบญเบšเบซเบกเบฒเบ, Kubelet เบ–เบทเบเป€เบ›เบตเบ”เบ•เบปเบง, เบกเบฑเบ™เบ•เบดเบ”เบ•เบฒเบก pods เบ—เบตเปˆเบ–เบทเบเบกเบญเบšเบซเบกเบฒเบเปƒเบซเป‰เบเบฑเบš node เบ™เบตเป‰:

    เบงเบดเบ—เบตเบเบฒเบ™เปƒเบŠเป‰ kubectl เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฒเบเบ‚เบถเป‰เบ™: เบ„เบนเปˆเบกเบทเบฅเบฒเบเบฅเบฐเบญเบฝเบ”

  7. Kubelet เบญเปˆเบฒเบ™เบ„เบณเบ™เบดเบเบฒเบกเบ‚เบญเบ‡เบžเบญเบ”เบˆเบฒเบเบšเปˆเบญเบ™เป€เบเบฑเบšเบกเป‰เบฝเบ™ เปเบฅเบฐเบชเบฑเปˆเบ‡เปƒเบซเป‰เปƒเบŠเป‰ container runtime เป€เบŠเบฑเปˆเบ™ Docker เป€เบžเบทเปˆเบญเป€เบ›เบตเบ” containers เปƒเบ™ node:

    เบงเบดเบ—เบตเบเบฒเบ™เปƒเบŠเป‰ kubectl เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฒเบเบ‚เบถเป‰เบ™: เบ„เบนเปˆเบกเบทเบฅเบฒเบเบฅเบฐเบญเบฝเบ”

เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰เปเบกเปˆเบ™เบชเบฐเบšเบฑเบšเบ‚เปเป‰เบ„เบงเบฒเบกเบ‚เบญเบ‡เบ„เปเบฒเบญเบฐเบ—เบดเบšเบฒเบเบ™เบตเป‰.

เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เป API เป„เบ›เบซเบฒเบˆเบธเบ”เบชเบดเป‰เบ™เบชเบธเบ”เบเบฒเบ™เบชเป‰เบฒเบ‡ ReplicaSet เบ–เบทเบเบ›เบฐเบกเบงเบ™เบœเบปเบ™เป‚เบ”เบเป€เบŠเบตเบšเป€เบงเบต API. เป€เบŠเบตเบšเป€เบงเบต API เบเบงเบ”เบชเบญเบšเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เป เปเบฅเบฐเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ„เปเบฒเบ™เบดเบเบฒเบกเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™ ReplicaSet เป„เบงเป‰เปƒเบ™เบšเปˆเบญเบ™เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™.

เป€เบซเบ”เบเบฒเบ™เบ™เบตเป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ•เบปเบงเบ„เบงเบšเบ„เบธเบก ReplicaSet, เป€เบŠเบดเปˆเบ‡เป€เบ›เบฑเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบเปˆเบญเบเบ‚เบญเบ‡เบœเบนเป‰เบˆเบฑเบ”เบเบฒเบ™เบ„เบงเบšเบ„เบธเบก. เบ•เบปเบงเบ„เบงเบšเบ„เบธเบก ReplicaSet เบ•เบดเบ”เบ•เบฒเบกเบเบฒเบ™เบชเป‰เบฒเบ‡, เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡, เปเบฅเบฐเบเบฒเบ™เบฅเบถเบšเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™ ReplicaSet เปƒเบ™เบฎเป‰เบฒเบ™เปเบฅเบฐเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เปเบˆเป‰เบ‡เป€เบ•เบทเบญเบ™เป€เบซเบ”เบเบฒเบ™เป€เบกเบทเปˆเบญเป€เบซเบ”เบเบฒเบ™เบ™เบตเป‰เป€เบเบตเบ”เบ‚เบถเป‰เบ™.

เบงเบฝเบเบ‚เบญเบ‡เบ•เบปเบงเบ„เบงเบšเบ„เบธเบก ReplicaSet เปเบกเปˆเบ™เป€เบžเบทเปˆเบญเปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบกเบตเบˆเปเบฒเบ™เบงเบ™ ReplicaSet เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™. เปƒเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เบšเปเปˆเบกเบตเบเบฑเบเปƒเบ”เป†, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ•เบปเบงเบ„เบงเบšเบ„เบธเบก ReplicaSet เบชเป‰เบฒเบ‡เบ„เปเบฒเบ™เบดเบเบฒเบก pod เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰ (เบญเบตเบ‡เบ•เบฒเบกเปเบกเปˆเปเบšเบšเบเบฑเบเปƒเบ™เบ„เปเบฒเบ™เบดเบเบฒเบก ReplicaSet) เปเบฅเบฐเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเป„เบงเป‰เปƒเบ™เบšเปˆเบญเบ™เป€เบเบฑเบšเบกเป‰เบฝเบ™.

เบเบฒเบ™เบชเป‰เบฒเบ‡ pods เปƒเบซเบกเปˆเปเบกเปˆเบ™เบเบฐเบ•เบธเป‰เบ™เป‚เบ”เบเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบ—เบตเปˆเบ•เบดเบ”เบ•เบฒเบกเบ„เปเบฒเบ™เบดเบเบฒเบก pods เบ—เบตเปˆเบเบฑเบ‡เบšเปเปˆเบ—เบฑเบ™เป„เบ”เป‰เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบชเปเบฒเบฅเบฑเบš nodes เบžเบฐเบ™เบฑเบเบ‡เบฒเบ™. เบœเบนเป‰เบˆเบฑเบ”เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เป€เบฅเบทเบญเบ node เบžเบฐเบ™เบฑเบเบ‡เบฒเบ™เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐ pod เปเบฅเบฐเบ›เบฑเบšเบ›เบธเบ‡เบ„เปเบฒเบ™เบดเบเบฒเบก pod เปƒเบ™ repository.

เบˆเบปเปˆเบ‡เบˆเบทเปˆเป„เบงเป‰เบงเปˆเบฒเบˆเบปเบ™เป€เบ–เบดเบ‡เบˆเบธเบ”เบ™เบตเป‰, เบšเปเปˆเบกเบตเบฅเบฐเบซเบฑเบ”เบงเบฝเบเปƒเบ”เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เบเบธเปˆเบก. เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบ—เบตเปˆเป„เบ”เป‰เป€เบฎเบฑเบ”เบกเบฒเป€เบ–เบดเบ‡เบ•เบญเบ™เบ™เบฑเป‰เบ™ - เบ™เบตเป‰เปเบกเปˆเบ™เบเบฒเบ™เบชเป‰เบฒเบ‡เปเบฅเบฐเบ›เบฑเบšเบ›เบธเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เปƒเบ™ repository เปƒเบ™ master node.

เป€เบซเบ”เบเบฒเบ™เบชเบธเบ”เบ—เป‰เบฒเบเบเบฐเบ•เบธเป‰เบ™ Kubelets, เป€เบŠเบดเปˆเบ‡เบ•เบดเบ”เบ•เบฒเบกเบเบงเบ”เบเบฒ pods เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เบชเปเบฒเบฅเบฑเบš nodes เบžเบฐเบ™เบฑเบเบ‡เบฒเบ™เบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ. Kubelet เบ‚เบญเบ‡ node worker เบ—เบตเปˆเบ•เบดเบ”เบ•เบฑเป‰เบ‡เบžเบญเบ” ReplicaSet เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบชเบฑเปˆเบ‡เปƒเบซเป‰ container runtime, เป€เบŠเบฑเปˆเบ™ Docker, เป€เบžเบทเปˆเบญเบ”เบฒเบงเป‚เบซเบฅเบ”เบฎเบนเบšเบžเบฒเบš container เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เปเบฅเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เปƒเบซเป‰เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ.

เปƒเบ™เบˆเบธเบ”เบ™เบตเป‰, เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ ReplicaSet เบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒเบเปเบฒเบฅเบฑเบ‡เปเบฅเปˆเบ™เปƒเบ™เบ—เบตเปˆเบชเบธเบ”!

เบšเบปเบ”เบšเบฒเบ”เบ‚เบญเบ‡ Kubernetes API

เบ”เบฑเปˆเบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เป€เบซเบฑเบ™เปƒเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒ, เบญเบปเบ‡เบ›เบฐเบเบญเบš Kubernetes (เบเบปเบเป€เบงเบฑเป‰เบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ API เปเบฅเบฐเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒ) เป€เบšเบดเปˆเบ‡เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เปƒเบ™เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเปเบฅเบฐเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เปƒเบ™เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒ.

เปเบ™เปˆเบ™เบญเบ™, เบญเบปเบ‡เบ›เบฐเบเบญเบšเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰เบžเบปเบงเบžเบฑเบ™เบเบฑเบšเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเป‚เบ”เบเบเบปเบ‡, เปเบ•เปˆเบœเปˆเบฒเบ™ Kubernetes API เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™.

เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบ•เบปเบงเบขเปˆเบฒเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

  1. เบ•เบปเบงเบ„เบงเบšเบ„เบธเบก ReplicaSet เปƒเบŠเป‰เบˆเบธเบ”เบชเบดเป‰เบ™เบชเบธเบ” API เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆ ReplicaSets เบเบฑเบšเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต watch เป€เบžเบทเปˆเบญเบ•เบดเบ”เบ•เบฒเบกเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ‚เบญเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™ ReplicaSet.
  2. เบ•เบปเบงเบ„เบงเบšเบ„เบธเบก ReplicaSet เปƒเบŠเป‰เบˆเบธเบ”เบชเบดเป‰เบ™เบชเบธเบ” API เบชเป‰เบฒเบ‡ Pod (เบชเป‰เบฒเบ‡เบเบฑเบ) เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบเบฑเบ.
  3. Scheduler เปƒเบŠเป‰ API endpoint เบเบฑเบ (เปเบเป‰เป„เบ‚ pod) เป€เบžเบทเปˆเบญเบ›เบฑเบšเบ›เบธเบ‡ pods เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบš node เบžเบฐเบ™เบฑเบเบ‡เบฒเบ™เป€เบฅเบทเบญเบ.

เบ”เบฑเปˆเบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบซเบฑเบ™เป„เบ”เป‰, เบ™เบตเป‰เปเบกเปˆเบ™ API เบ”เบฝเบงเบเบฑเบ™เบ—เบตเปˆ kubectl เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡. เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ API เบ”เบฝเบงเบเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบญเบปเบ‡เบ›เบฐเบเบญเบšเบžเบฒเบเปƒเบ™เปเบฅเบฐเบœเบนเป‰เปƒเบŠเป‰เบžเบฒเบเบ™เบญเบเปเบกเปˆเบ™เปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เบžเบทเป‰เบ™เบ–เบฒเบ™เปƒเบ™เบเบฒเบ™เบญเบญเบเปเบšเบš Kubernetes.

เบ•เบญเบ™เบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบชเบฐเบซเบผเบธเบšเบงเบดเบ—เบตเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบ Kubernetes:

  1. เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบฅเบฑเบ”, เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™ Kubernetes.
  2. เป€เบŠเบตเบšเป€เบงเบต API เปƒเบซเป‰เบชเปˆเบงเบ™เบ•เบดเบ”เบ•เปเปˆเบเบฑเบšเบšเปˆเบญเบ™เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เปƒเบ™เบฎเบนเบšเปเบšเบšเบ‚เบญเบ‡ Kubernetes API.
  3. เบญเบปเบ‡โ€‹เบ›เบฐโ€‹เบเบญเบš Kubernetes เบญเบทเปˆเบ™เป†โ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹เปเบฅเบฐโ€‹เบœเบนเป‰โ€‹เปƒเบŠเป‰โ€‹เบญเปˆเบฒเบ™, เบชเบฑเบ‡โ€‹เป€เบเบ”, เปเบฅเบฐ manipulate เบฅเบฑเบ” Kubernetes (เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™) เบœเปˆเบฒเบ™ API.

เบเบฒเบ™เบฎเบนเป‰เปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบˆเบฐเบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เป€เบ‚เบปเป‰เบฒเปƒเบˆ kubectl เป„เบ”เป‰เบ”เบตเบ‚เบถเป‰เบ™เปเบฅเบฐเป„เบ”เป‰เบฎเบฑเบšเบ›เบฐเป‚เบซเบเบ”เบชเบนเบ‡เบชเบธเบ”เบˆเบฒเบเบกเบฑเบ™.

เบ•เบญเบ™เบ™เบตเป‰เปƒเบซเป‰เป€เบšเบดเปˆเบ‡เบšเบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเบฐเป€เบžเบฒเบฐเปเบฅเบฐ tricks เบ—เบตเปˆเบˆเบฐเบŠเปˆเบงเบเบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบœเบฐเบฅเบดเบ”เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบ”เป‰เบงเบ kubectl.

1. เป€เบฅเบฑเปˆเบ‡เบเบฒเบ™เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™เป‚เบ”เบเปƒเบŠเป‰เบ„เปเบฒเบชเบฑเปˆเบ‡เบชเปเบฒเป€เบฅเบฑเบ”

เบซเบ™เบถเปˆเบ‡เปƒเบ™เบ—เบตเปˆเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบ—เบตเปˆเบชเบธเบ”, เปเบ•เปˆเบกเบฑเบเบˆเบฐเบ–เบทเบเบกเบญเบ‡เบ‚เป‰เบฒเบก, เป€เบ•เบฑเบเบ™เบดเบเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ”เป‰เบงเบ kubectl เปเบกเปˆเบ™เบเบฒเบ™เบชเปเบฒเป€เบฅเบฑเบ”เบ„เปเบฒเบชเบฑเปˆเบ‡.

เบเบฒเบ™เบชเปเบฒเป€เบฅเบฑเบ”เบ„เปเบฒเบชเบฑเปˆเบ‡เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เป€เบฎเบฑเบ”เบชเปเบฒเป€เบฅเบฑเบ”เบžเบฒเบเบชเปˆเบงเบ™เบ‚เบญเบ‡เบ„เปเบฒเบชเบฑเปˆเบ‡ kubectl เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เป‚เบ”เบเปƒเบŠเป‰เบ›เบธเปˆเบก Tab. เบ™เบตเป‰เป€เบฎเบฑเบ”เบงเบฝเบเบชเปเบฒเบฅเบฑเบšเบ„เปเบฒเบชเบฑเปˆเบ‡เบเปˆเบญเบ, เบ—เบฒเบ‡เป€เบฅเบทเบญเบ, เปเบฅเบฐเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡, เบฅเบงเบกเบ—เบฑเบ‡เบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบ—เบตเปˆเบชเบฐเบฅเบฑเบšเบชเบฑเบšเบŠเป‰เบญเบ™เป€เบ›เบฑเบ™เบŠเบทเปˆเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™.

เป€เบšเบดเปˆเบ‡เบงเบดเบ—เบตเบเบฒเบ™เบชเปเบฒเป€เบฅเบฑเบ”เบ„เปเบฒเบชเบฑเปˆเบ‡ kubectl เป€เบฎเบฑเบ”เบงเบฝเบ:

เบงเบดเบ—เบตเบเบฒเบ™เปƒเบŠเป‰ kubectl เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฒเบเบ‚เบถเป‰เบ™: เบ„เบนเปˆเบกเบทเบฅเบฒเบเบฅเบฐเบญเบฝเบ”
เบเบฒเบ™เบชเปเบฒเป€เบฅเบฑเบ”เบ„เปเบฒเบชเบฑเปˆเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเบชเปเบฒเบฅเบฑเบš Shell Bash เปเบฅเบฐ Zsh.

เบ„เบนเปˆเบกเบทเบ—เบฒเบ‡เบเบฒเบ™ เบ›เบฐเบเบญเบšเบกเบตเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบขเปˆเบฒเบ‡เบฅเบฐเบญเบฝเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบเบฒเบ™เบ•เบทเปˆเบกเบ‚เปเป‰เบกเบนเบ™เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”, เปเบ•เปˆเบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบซเบเปเป‰เบกเบฒเบˆเบฒเบเบชเบฑเป‰เบ™.

เบงเบดเบ—เบตเบเบฒเบ™เบชเปเบฒเป€เบฅเบฑเบ”เบ„เปเบฒเบชเบฑเปˆเบ‡เป€เบฎเบฑเบ”เบงเบฝเบ

เบเบฒเบ™เบชเปเบฒเป€เบฅเบฑเบ”เบ„เปเบฒเบชเบฑเปˆเบ‡เปเบกเปˆเบ™เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ” shell เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเป‚เบ”เบเปƒเบŠเป‰ script เบชเปเบฒเป€เบฅเบฑเบ”. เบชเบฐเบ„เบฃเบดเบšเบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบเปเบกเปˆเบ™เบชเบฐเบ„เบฃเบดเบš shell เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เบžเบถเบ”เบ•เบดเบเปเบฒเบ‚เบญเบ‡เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบเบชเปเบฒเบฅเบฑเบšเบ„เปเบฒเบชเบฑเปˆเบ‡เบชเบฐเป€เบžเบฒเบฐ.

Kubectl เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบชเป‰เบฒเบ‡เปเบฅเบฐเบชเบปเปˆเบ‡เบชเบฐเบ„เบดเบšเบ‚เบฐเบซเบเบฒเบเบชเปเบฒเบฅเบฑเบš Bash เปเบฅเบฐ Zsh เป‚เบ”เบเปƒเบŠเป‰เบ„เปเบฒเบชเบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

$ kubectl completion bash

เบซเบฅเบท:

$ kubectl completion zsh

เปƒเบ™เบ—เบฒเบ‡เบ—เบดเบ”เบชเบฐเบ”เบต, เบกเบฑเบ™เบžเบฝเบ‡เบžเปเบ—เบตเปˆเบˆเบฐเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ‚เบญเบ‡เบ„เปเบฒเบชเบฑเปˆเบ‡เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบเบฑเบšเปเบเบฐเบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเป€เบžเบทเปˆเบญเปƒเบซเป‰ kubectl เบชเบฒเบกเบฒเบ”เบ›เบฐเบเบญเบšเบ„เปเบฒเบชเบฑเปˆเบ‡.

เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”, เบงเบดเบ—เบตเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปเบกเปˆเบ™เปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบชเปเบฒเบฅเบฑเบš Bash (เบฅเบงเบกเบ—เบฑเบ‡เบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบฅเบฐเบซเบงเปˆเบฒเบ‡ Linux เปเบฅเบฐ MacOS) เปเบฅเบฐ Zsh. เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป€เบšเบดเปˆเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ—เบฑเบ‡เบซเบกเบปเบ”.

Bash เปƒเบ™ Linux

script เบเบฒเบ™เบชเปเบฒเป€เบฅเบฑเบ” Bash เปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเบŠเบธเบ”เบเบฒเบ™เบชเปเบฒเป€เบฅเบฑเบ” bash, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบกเบฑเบ™เบเปˆเบญเบ™:

$ sudo apt-get install bash-completion

เบซเบฅเบท:

$ yum install bash-completion

เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ—เบปเบ”เบชเบญเบšเบงเปˆเบฒเบŠเบธเบ”เป„เบ”เป‰เบ–เบทเบเบ•เบดเบ”เบ•เบฑเป‰เบ‡เบขเปˆเบฒเบ‡เบชเปเบฒเป€เบฅเบฑเบ”เบœเบปเบ™เป‚เบ”เบเปƒเบŠเป‰เบ„เปเบฒเบชเบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

$ type _init_completion

เบ–เป‰เบฒเบญเบฑเบ™เบ™เบตเป‰เบญเบญเบเบฅเบฐเบซเบฑเบ”เบŸเบฑเบ‡เบŠเบฑเบ™เบ‚เบญเบ‡เปเบเบฐ, เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ bash-completion เบ–เบทเบเบ•เบดเบ”เบ•เบฑเป‰เบ‡เบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡. เบ–เป‰เบฒเบ„เปเบฒเบชเบฑเปˆเบ‡เปƒเบซเป‰เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ” "เบšเปเปˆเบžเบปเบš", เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบžเบตเปˆเบกเป€เบชเบฑเป‰เบ™เบ•เปเปˆเป„เบ›เบ™เบตเป‰เปƒเบชเปˆเป„เบŸเบฅเปŒเบ‚เบญเบ‡เบ—เปˆเบฒเบ™ ~ / .bashrc:

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

เบกเบฑเบ™เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบˆเปเบฒเป€เบ›เบฑเบ™เบ—เบตเปˆเบˆเบฐเป€เบžเบตเปˆเบกเป€เบชเบฑเป‰เบ™เบ™เบตเป‰เปƒเบชเปˆเป„เบŸเบฅเปŒ ~ / .bashrc เบซเบผเบทเบšเปเปˆเปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบŠเบธเบ”เบ—เบตเปˆเบ—เปˆเบฒเบ™เปƒเบŠเป‰เปƒเบ™เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ bash-completion. เบ™เบตเป‰เปเบกเปˆเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบชเปเบฒเบฅเบฑเบš APT, เปเบ•เปˆเบšเปเปˆเปเบกเปˆเบ™เบชเปเบฒเบฅเบฑเบš YUM.

เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ bash-completion, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡ configure เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เป€เบžเบทเปˆเบญเปƒเบซเป‰ script เบชเปเบฒเป€เบฅเบฑเบ” kubectl เป„เบ”เป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เป€เบŠเบ”เบŠเบฑเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”.

เบงเบดเบ—เบตเบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”เบ„เบทเบเบฒเบ™เป€เบžเบตเปˆเบกเปเบ–เบงเบ•เปเปˆเป„เบ›เบ™เบตเป‰เปƒเบชเปˆเป„เบŸเบฅเปŒ ~ / .bashrc:

source <(kubectl completion bash)

เบญเบตเบเบงเบดเบ—เบตเบซเบ™เบถเปˆเบ‡เปเบกเปˆเบ™เบเบฒเบ™เป€เบžเบตเปˆเบกเบชเบฐเบ„เบดเบšเบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ kubectl เปƒเบชเปˆเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต /etc/bash_completion.d (เบชเป‰เบฒเบ‡โ€‹เบกเบฑเบ™โ€‹เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบกเบฑเบ™โ€‹เบšเปเปˆโ€‹เบกเบตโ€‹)โ€‹:

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

เบชเบฐเบ„เบฃเบดเบšเบชเปˆเบงเบ™เป€เบชเบตเบกเบ—เบฑเบ‡เปเบปเบ”เปƒเบ™เบฅเบฒเบเบเบฒเบ™ /etc/bash_completion.d เบˆเบฐเบ–เบทเบเบฅเบงเบกเป€เบ‚เบปเป‰เบฒเป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เปƒเบ™เบเบฒเบ™เบชเปเบฒเป€เบฅเบฑเบ” bash.

เบ—เบฑเบ‡เบชเบญเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เปƒเบŠเป‰เป„เบ”เป‰เป€เบ—เบปเปˆเบฒเบ—เบฝเบกเบเบฑเบ™.

เบซเบผเบฑเบ‡เบˆเบฒเบ restart shell, เบ„เปเบฒเบชเบฑเปˆเบ‡ 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).

script เบเบฒเบ™เบชเปเบฒเป€เบฅเบฑเบ” Bash เปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เป„เบ›เบ•เบฒเบกเป‚เบ„เบ‡เบเบฒเบ™ bash-เบชเปเบฒเป€เบฅเบฑเบ”, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบกเบฑเบ™เบเปˆเบญเบ™.

เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ•เบดเบ”เบ•เบฑเป‰เบ‡ bash-completion เป‚เบ”เบเปƒเบŠเป‰ Homebrew:

$ brew install bash-completion@2

เบกเบฑเบ™เป€เบ›เบฑเบ™ @2 เบซเบเปเป‰เบกเบฒเบˆเบฒเบ bash-completion version 2. kubectl autocompletion เบ•เป‰เบญเบ‡เบเบฒเบ™ bash-completion v2, เปเบฅเบฐ bash-completion v2 เบ•เป‰เบญเบ‡เบเบฒเบ™เบขเปˆเบฒเบ‡เปœเป‰เบญเบ Bash version 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. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, autocompletion เบˆเบฐเบกเบตเบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆเบขเบนเปˆเปƒเบ™เบ•เบปเป‰เบ™เบ•เป, เปเบ•เปˆเบเบฑเบ‡เบขเบนเปˆเปƒเบ™ shells เบ„เปเบฒเบชเบฑเปˆเบ‡เบ‚เบญเบ‡เป€เบ”เบฑเบเบ™เป‰เบญเบ.

เบซเบผเบฑเบ‡เบˆเบฒเบ restart shell เบ„เปเบฒเบชเบฑเปˆเบ‡, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบเบงเบ”เบชเบญเบšเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เป‚เบ”เบเปƒเบŠเป‰เบ„เปเบฒเบชเบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

$ type _init_completion

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เป€เบซเบฑเบ™เบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เบ‚เบญเบ‡เปเบเบฐเบขเบนเปˆเปƒเบ™เบœเบปเบ™เบœเบฐเบฅเบดเบ”, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบˆเบฐเบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡.

เบ•เบญเบ™เบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒ kubectl autocompletion เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เบ—เบธเบเป€เบŠเบ”เบŠเบฑเบ™.

เบงเบดเบ—เบตเบซเบ™เบถเปˆเบ‡เปเบกเปˆเบ™เบเบฒเบ™เป€เบžเบตเปˆเบกเป€เบชเบฑเป‰เบ™เบ•เปเปˆเป„เบ›เบ™เบตเป‰เปƒเบชเปˆเบ‚เบญเบ‡เบ—เปˆเบฒเบ™ ~/.bashrc:

source <(kubectl completion bash)

เบงเบดเบ—เบตเบ—เบตเบชเบญเบ‡เปเบกเปˆเบ™เบเบฒเบ™เป€เบžเบตเปˆเบก script เบ•เบทเปˆเบกเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เปƒเบชเปˆเป‚เบŸเบ™เป€เบ”เบต /usr/local/etc/bash_completion.d:

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

เบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰เบˆเบฐเป€เบฎเบฑเบ”เบงเบฝเบเบžเบฝเบ‡เปเบ•เปˆเบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ bash-completion เป‚เบ”เบเปƒเบŠเป‰ Homebrew. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, bash-completion เป‚เบซเบฅเบ”เบชเบฐเบ„เบฃเบดเบšเบ—เบฑเบ‡เปเบปเบ”เบˆเบฒเบเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ™เบตเป‰.

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ kubectl เปƒเบŠเป‰ Homebrew, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒ, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒ script autocompletion เบˆเบฐเบ–เบทเบเบˆเบฑเบ”เปƒเบชเปˆเป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เปƒเบ™เป‚เบŸเบ™เป€เบ”เบต. /usr/local/etc/bash_completion.d เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, kubectl autocompletion เบˆเบฐเป€เบฅเบตเปˆเบกเป€เบฎเบฑเบ”เบงเบฝเบเบ—เบฑเบ™เบ—เบตเบ—เบตเปˆเบ—เปˆเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ bash-completion.

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบฑเบ‡เบซเบกเบปเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบ—เบฝเบšเป€เบ—เบปเปˆเบฒ.

zsh

scripts เบเบฒเบ™เบ•เบทเปˆเบกเบ‚เปเป‰เบกเบนเบ™เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบชเปเบฒเบฅเบฑเบš Zsh เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบกเบตเบเบฒเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเปƒเบ”เป†. เบชเบดเปˆเบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เป€เบฎเบฑเบ”เปเบกเปˆเบ™เป€เบ›เบตเบ”เปƒเบŠเป‰เบžเบงเบเบกเบฑเบ™เป€เบกเบทเปˆเบญเบ—เปˆเบฒเบ™เป‚เบซเบฅเบ” shell เบ„เปเบฒเบชเบฑเปˆเบ‡.

เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰เป‚เบ”เบเบเบฒเบ™เป€เบžเบตเปˆเบกเป€เบชเบฑเป‰เบ™เปƒเบชเปˆเบ‚เบญเบ‡เบ—เปˆเบฒเบ™ ~/.zshrc เป„เบŸเบฅเปŒ:

source <(kubectl completion zsh)

เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบ—เปˆเบฒเบ™โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹ not found: compdef เบซเบผเบฑเบ‡เบˆเบฒเบ restart shell เบ‚เบญเบ‡เบ—เปˆเบฒเบ™, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เป€เบ›เบตเบ”เบŸเบฑเบ‡เบŠเบฑเบ™ builtin compdef. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบ›เบตเบ”เปƒเบŠเป‰เบกเบฑเบ™เป„เบ”เป‰เป‚เบ”เบเบเบฒเบ™เป€เบžเบตเปˆเบกเบกเบฑเบ™เปƒเบชเปˆเบˆเบธเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เป„เบŸเบฅเปŒเบ‚เบญเบ‡เบ—เปˆเบฒเบ™ ~/.zshrc เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

autoload -Uz compinit
compinit

2. เป€เบšเบดเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™เบชเบฐเป€เบžเบฒเบฐเบ‚เบญเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบขเปˆเบฒเบ‡เป„เบงเบงเบฒ

เป€เบกเบทเปˆเบญเบ—เปˆเบฒเบ™เบชเป‰เบฒเบ‡เบ„เปเบฒเบ™เบดเบเบฒเบกเบ‚เบญเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™ YAML, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบฎเบนเป‰เบ‚เบปเบ‡เป€เบ‚เบ”เปเบฅเบฐเบ„เบงเบฒเบกเบซเบกเบฒเบเบ‚เบญเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™. เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบˆเบฐเบŠเบญเบเบซเบฒเบ‚เปเป‰เบกเบนเบ™เบ™เบตเป‰เปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™เบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบดเบ‡ API, เป€เบŠเบดเปˆเบ‡เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบ‚เปเป‰เบกเบนเบ™เบชเบฐเป€เบžเบฒเบฐเบชเปเบฒเบฅเบฑเบšเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”.

เบขเปˆเบฒเบ‡เปƒเบ”เบเปเปˆเบ•เบฒเบก, เบเบฒเบ™เบ›เปˆเบฝเบ™เป„เบ›เบซเบฒเบ•เบปเบงเบ—เปˆเบญเบ‡เป€เบงเบฑเบšเบ—เบธเบเบ„เบฑเป‰เบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบ„เบปเป‰เบ™เบซเบฒเบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เปเบกเปˆเบ™เบšเปเปˆเบชเบฐเบ”เบงเบ. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™ kubectl เบชเบฐเบซเบ™เบญเบ‡เบ„เปเบฒเบชเบฑเปˆเบ‡ kubectl explain, เป€เบŠเบดเปˆเบ‡เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบชเบฐเป€เบžเบฒเบฐเบ‚เบญเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบ™ terminal เบ‚เบญเบ‡เบ—เปˆเบฒเบ™.

เบฎเบนเบšเปเบšเบšเบ„เปเบฒเบชเบฑเปˆเบ‡เปเบกเปˆเบ™เบ”เบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

$ kubectl explain resource[.field]...

เบ„เปเบฒโ€‹เบชเบฑเปˆเบ‡โ€‹เบˆเบฐโ€‹เบญเบญเบโ€‹เบชเบฐโ€‹เป€เบžเบฒเบฐโ€‹เบ‚เบญเบ‡โ€‹เบŠเบฑเบšโ€‹เบžเบฐโ€‹เบเบฒโ€‹เบเบญเบ™โ€‹เบ—เบตเปˆโ€‹เบฎเป‰เบญเบ‡โ€‹เบ‚เปโ€‹เบซเบผเบทโ€‹เบžเบฒเบโ€‹เบชเบฐโ€‹เบซเบ™เบฒเบกโ€‹เป„เบ”เป‰โ€‹. เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบชเบฐเปเบ”เบ‡เปเบกเปˆเบ™เบ„เบทเบเบฑเบ™เบเบฑเบšเบ—เบตเปˆเบšเบฑเบ™เบˆเบธเบขเบนเปˆเปƒเบ™เบ„เบนเปˆเบกเบท API.

เบ•เบฑเป‰เบ‡เปเบ•เปˆเบ•เบญเบ™เบ•เบปเป‰เบ™ kubectl explain เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบžเบฝเบ‡เปเบ•เปˆเบฅเบฐเบ”เบฑเบšเบ—เปเบฒเบญเบดเบ”เบ‚เบญเบ‡เบเบฒเบ™เบฎเบฑเบ‡เบ‚เบญเบ‡เบ—เบปเปˆเบ‡เบ™เบฒ.

เป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบกเบฑเบ™เบˆเบฐเป€เบ›เบฑเบ™เปเบ™เบงเปƒเบ” เบชเบฒเบกเบฒเบ”เบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰.

เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบชเบฐเปเบ”เบ‡เบ•เบปเป‰เบ™เป„เบกเป‰เบ—เบฑเบ‡เบซเบกเบปเบ”เบ–เป‰เบฒเบ—เปˆเบฒเบ™เป€เบžเบตเปˆเบกเบ—เบฒเบ‡เป€เบฅเบทเบญเบ --recursive:

$ kubectl explain deployment.spec --recursive

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบšเปเปˆเบฎเบนเป‰เบงเปˆเบฒเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เปƒเบ”เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบชเบฐเปเบ”เบ‡เบžเบงเบเบกเบฑเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบ”เป‰เบงเบเบ„เปเบฒเบชเบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

$ kubectl api-resources

เบ„เปเบฒเบชเบฑเปˆเบ‡เบ™เบตเป‰เบชเบฐเปเบ”เบ‡เบŠเบทเปˆเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เปƒเบ™เบฎเบนเบšเปเบšเบšเบซเบผเบฒเบ, e.g. 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. เบ™เบตเป‰เปเบกเปˆเบ™เบเป‰เบญเบ™เบงเปˆเบฒเบŠเบทเปˆเบ‚เบญเบ‡เบเบฑเบเปเบกเปˆเบ™เบ–เบทเบเบเปเบฒเบ™เบปเบ”เบขเบนเปˆเปƒเบ™เบŠเปˆเบญเบ‡เปƒเบชเปˆเบŠเบทเปˆเป€เบ”เบฑเบ metadata เปƒเบ™เบ„เปเบฒเบญเบฐเบ—เบดเบšเบฒเบเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ‚เบญเบ‡เบเบฑเบ. เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบชเบฒเบกเบฒเบ”เบžเบปเบšเป„เบ”เป‰เปƒเบ™ เบ„เบนเปˆเบกเบท API เบซเบผเบทเบžเบดเบกเบ„เปเบฒเบชเบฑเปˆเบ‡ kubectl explain pod.metadata.name.

เบ•เบญเบ™เบ™เบตเป‰เปƒเบซเป‰เป€เบงเบปเป‰เบฒเบงเปˆเบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเบ„เปเบฅเปเบฒเป€เบžเบตเปˆเบกเป€เบ•เบตเบกเปƒเบชเปˆเบœเบปเบ™เบœเบฐเบฅเบดเบ”, เบ•เบปเบงเบขเปˆเบฒเบ‡เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบ‚เปเป‰เบ—เบตเปˆเปเบ•เปˆเบฅเบฐ pod เบเปเบฒเบฅเบฑเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆ. เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ™เบตเป‰, เบ—เปˆเบฒเบ™เบžเบฝเบ‡เปเบ•เปˆเบชเบฒเบกเบฒเบ”เป€เบžเบตเปˆเบกเบชเบฐเป€เบžเบฒเบฐเบ–เบฑเบ™เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบเบฑเบšเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ–เบฑเบ™ custom:

$ 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

เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเป€เบฅเบทเบญเบเบŠเบทเปˆ node เบˆเบฒเบ spec.nodeName โ€” เป€เบกเบทเปˆเบญโ€‹เบžเบญเบ”โ€‹เบ–เบทเบโ€‹เบกเบญเบšโ€‹เปเบฒเบโ€‹เปƒเบซเป‰โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™, เบŠเบทเปˆโ€‹เบ‚เบญเบ‡โ€‹เบกเบฑเบ™โ€‹เบ–เบทเบโ€‹เบ‚เบฝเบ™โ€‹เป„เบงเป‰โ€‹เปƒเบ™โ€‹เบžเบฒเบโ€‹เบชเบฐโ€‹เบซเบ™เบฒเบก spec.nodeName เบ‚เปเป‰เบกเบนเบ™เบˆเปเบฒเป€เบžเบฒเบฐเบ‚เบญเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™ pod. เบ‚เปเป‰เบกเบนเบ™เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบชเบฒเบกเบฒเบ”เบžเบปเบšเป„เบ”เป‰เปƒเบ™เบœเบปเบ™เบœเบฐเบฅเบดเบ” kubectl explain pod.spec.nodeName.

เบเบฐเบฅเบธเบ™เบฒเบฎเบฑเบšเบŠเบฒเบšเบงเปˆเบฒเบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ‚เบญเบ‡ Kubernetes เปเบกเปˆเบ™เบ•เบปเบงเบžเบดเบกเบ™เป‰เบญเบเปƒเบซเบเปˆ.

เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบšเบดเปˆเบ‡เบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เปƒเบ”เป†เบ—เบตเปˆเป€เบ›เบฑเบ™เบ–เบฑเบ™. เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹เบเบงเบ”โ€‹เบชเบญเบšโ€‹เบเบฒเบ™โ€‹เบชเบฐโ€‹เป€เบžเบฒเบฐโ€‹เบ‚เบญเบ‡โ€‹เบŠเบฑเบšโ€‹เบžเบฐโ€‹เบเบฒโ€‹เบเบญเบ™โ€‹เปเบฅเบฐโ€‹เบ—เบปเบ”โ€‹เบฅเบญเบ‡โ€‹เบกเบฑเบ™โ€‹เบญเบญเบโ€‹เบเบฑเบšโ€‹เบžเบฒเบโ€‹เบชเบฐโ€‹เบซเบ™เบฒเบกโ€‹เปƒเบ”โ€‹เบซเบ™เบถเปˆเบ‡โ€‹เบ—เบตเปˆโ€‹เบ—เปˆเบฒเบ™โ€‹เบ•เป‰เบญเบ‡โ€‹เบเบฒเบ™โ€‹.

เปเบ•เปˆเบ—เปเบฒเบญเบดเบ”, เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบขเปˆเบฒเบ‡เบฅเบฐเบญเบฝเบ”เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบเบฒเบ™เบ„เบฑเบ”เป€เบฅเบทเบญเบเบžเบฒเบเบชเบฐเบซเบ™เบฒเบก.

JSONPath Expressions

เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบฅเบทเบญเบเบ‚เบปเบ‡เป€เบ‚เบ”เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เปเบกเปˆเบ™เบญเบตเบ‡เปƒเบชเปˆ 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

    เบ„เปเบฒเบชเบฑเปˆเบ‡เบ™เบตเป‰เบชเบฐเปเบ”เบ‡เบŠเบทเปˆเบฎเบนเบšเบžเบฒเบšเบšเบฑเบ™เบˆเบธเบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐ pod.

    เบˆเบทเปˆเป„เบงเป‰เบงเปˆเบฒเบเบฑเบเบชเบฒเบกเบฒเบ”เบšเบฑเบ™เบˆเบธเบซเบผเบฒเบเบ–เบฑเบ‡เป„เบ”เป‰, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบŠเบทเปˆเบฎเบนเบšเบžเบฒเบšเบˆเบฐเบ–เบทเบเบชเบฐเปเบ”เบ‡เบขเบนเปˆเปƒเบ™เปเบ–เบงเบ”เบฝเบง, เปเบเบเบ”เป‰เบงเบเป€เบ„เบทเปˆเบญเบ‡เปเบฒเบเบˆเบธเบ”.

  2. เบเบณเบฅเบฑเบ‡เบชเบฐเปเบ”เบ‡เป€เบ‚เบ”เบเบฒเบ™เบกเบตเบ‚เบญเบ‡ node:
    $ 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

    เบ„เปเบฒเบชเบฑเปˆเบ‡เบ™เบตเป‰เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบ–เป‰เบฒเบเบธเปˆเบกเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบ–เบทเบเป‚เบฎเบ”เบขเบนเปˆเปƒเบ™เบ„เบฅเบฒเบงเบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐ. เบกเบฑเบ™เบชเบฐเปเบ”เบ‡เป€เบ‚เบ”เบ—เบตเปˆเบกเบตเปƒเบซเป‰เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐ node.

    เป€เบ‚เบ”เบเบฒเบ™เบกเบตเบขเบนเปˆเปเบกเปˆเบ™เปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เบ‚เบญเบ‡เบ„เบฅเบฒเบงเบ—เบตเปˆเบˆเบณเบเบฑเบ”เป€เบ‚เบ”เบเบฒเบ™เบˆเบณเบฅเบญเบ‡เป€เบ›เบฑเบ™เป€เบ‚เบ”เบžเบนเบกเบชเบฒเบ”.

    เป€เบ‚เบ”เบ—เบตเปˆเบกเบตเบขเบนเปˆเบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐ node เปเบกเปˆเบ™เป„เบ”เป‰เบฎเบฑเบšเป‚เบ”เบเบœเปˆเบฒเบ™เบ›เป‰เบฒเบเบžเบดเป€เบชเบ” - failure-domain.beta.kubernetes.io/zone. เบ–เป‰เบฒเบเบธเปˆเบกเบเปเบฒเบฅเบฑเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เบ„เบฅเบฒเบงเบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐ, เบ›เป‰เบฒเบเบŠเบทเปˆเบ™เบตเป‰เบˆเบฐเบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เปเบฅเบฐเป€เบ•เบฑเบกเป„เบ›เบ”เป‰เบงเบเบŠเบทเปˆเบ‚เบญเบ‡เป€เบ‚เบ”เบ—เบตเปˆเบกเบตเบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐ node.

    เบ›เป‰เบฒเบเบเบณเบเบฑเบšเบšเปเปˆเปเบกเปˆเบ™เบชเปˆเบงเบ™เปœเบถเปˆเบ‡เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบชเบฐเป€เบžเบฒเบฐเบ‚เบญเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™ Kubernetes, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบˆเบฐเบšเปเปˆเบžเบปเบšเบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบžเบงเบเบกเบฑเบ™เปƒเบ™ เบ„เบนเปˆเบกเบท API. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบžเบงเบเป€เบ‚เบปเบฒเบชเบฒเบกเบฒเบ”เป€เบซเบฑเบ™เป„เบ”เป‰ (เบ„เบทเบเบฑเบšเบ›เป‰เบฒเบเบŠเบทเปˆเบญเบทเปˆเบ™เป†) เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบš nodes เปƒเบ™เบฎเบนเบšเปเบšเบš YAML เบซเบผเบท JSON:

    $ kubectl get nodes -o yaml
    # ะธะปะธ
    $ kubectl get nodes -o json

    เบ™เบตเป‰เปเบกเปˆเบ™เบงเบดเบ—เบตเบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบˆเบฐเบฎเบฝเบ™เบฎเบนเป‰เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบšเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™, เบ™เบญเบเป€เบซเบ™เบทเบญเบˆเบฒเบเบเบฒเบ™เบฎเบฝเบ™เบฎเบนเป‰เบชเบฐเป€เบžเบฒเบฐเบ‚เบญเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™.

4. เบชเบฐเบซเบผเบฑเบšเบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบธเปˆเบก เปเบฅเบฐ namespaces เป„เบ”เป‰เบขเปˆเบฒเบ‡เบ‡เปˆเบฒเบเบ”เบฒเบ

เป€เบกเบทเปˆเบญ kubectl เบฎเป‰เบญเบ‡เบ‚เปเปƒเบซเป‰ Kubernetes API, เบ—เปเบฒเบญเบดเบ”เบกเบฑเบ™เบˆเบฐเบญเปˆเบฒเบ™เป„เบŸเบฅเปŒ kubeconfig เป€เบžเบทเปˆเบญเปƒเบซเป‰เป„เบ”เป‰เบฎเบฑเบšเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ.

เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป„เบŸเบฅเปŒ kubeconfig เปเบกเปˆเบ™ ~/.kube/config. เป‚เบ”เบเบ›เบปเบเบเบฐเบ•เบดเป„เบŸเบฅเปŒเบ™เบตเป‰เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เบซเบผเบทเบ›เบฑเบšเบ›เบธเบ‡เป‚เบ”เบเบ„เปเบฒเบชเบฑเปˆเบ‡เบžเบดเป€เบชเบ”.

เป€เบกเบทเปˆเบญเบ—เปˆเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบซเบผเบฒเบเบเบธเปˆเบก, เป„เบŸเบฅเปŒ kubeconfig เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบกเบตเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบžเบทเปˆเบญเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบเบธเปˆเบกเบ—เบฑเบ‡เปเบปเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™. เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบงเบดเบ—เบตเบเบฒเบ™เบšเบญเบเบ„เปเบฒเบชเบฑเปˆเบ‡ kubectl เบ—เบตเปˆเบเบธเปˆเบกเบ—เบตเปˆเบ—เปˆเบฒเบ™เบเปเบฒเบฅเบฑเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบš.

เบžเบฒเบเปƒเบ™เบเบธเปˆเบก, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡ namespaces เบซเบผเบฒเบเบญเบฑเบ™โ€”เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบเบธเปˆเบก virtual เบžเบฒเบเปƒเบ™เบเบธเปˆเบกเบ—เบฒเบ‡เบเบฒเบเบฐเบžเบฒเบš. Kubectl เบเบฑเบ‡เบเปเบฒเบ™เบปเบ”เบงเปˆเบฒเบˆเบฐเปƒเบŠเป‰ namespace เปƒเบ”เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเป„เบŸเบฅเปŒ kubeconfig. เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบ—เปˆเบฒเบ™เบเบฑเบ‡เบ•เป‰เบญเบ‡เบเบฒเบ™เบงเบดเบ—เบตเบเบฒเบ™เบšเบญเบเบ„เปเบฒเบชเบฑเปˆเบ‡ kubectl เบงเปˆเบฒ namespace เบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบš.

เปƒเบ™เบšเบปเบ”เบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบญเบฐเบ—เบดเบšเบฒเบเบงเบดเบ—เบตเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบขเปˆเบฒเบ‡เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš.

เบเบฐเบฅเบธเบ™เบฒเบฎเบฑเบšเบŠเบฒเบšเบงเปˆเบฒเบ—เปˆเบฒเบ™เบญเบฒเบ”เบกเบตเป„เบŸเบฅเปŒ kubeconfig เบซเบผเบฒเบเบฅเบฒเบเบเบฒเบ™เบขเบนเปˆเปƒเบ™เบ•เบปเบงเปเบ›เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก KUBECONFIG. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, เป„เบŸเบฅเปŒเบ—เบฑเบ‡เบซเบกเบปเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบˆเบฐเบ–เบทเบเบฅเบงเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป€เบ›เบฑเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ—เบปเปˆเบงเป„เบ›เบ”เบฝเบงเปƒเบ™เป€เบงเบฅเบฒเปเบฅเปˆเบ™. เบ™เบญเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เบ›เปˆเบฝเบ™เป„เบŸเบฅเปŒ kubeconfig เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป‚เบ”เบเบเบฒเบ™เปเบฅเปˆเบ™ kubectl เบเบฑเบšเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต --kubeconfig. เป€เบšเบดเปˆเบ‡ เป€เบญเบเบฐเบชเบฒเบ™เบ—เบฒเบ‡เบเบฒเบ™.

kubeconfig เป„เบŸเบฅเปŒ

เบกเบฒเป€เบšเบดเปˆเบ‡เบเบฑเบ™เบงเปˆเบฒเป„เบŸเบฅเปŒ kubeconfig เบกเบตเบซเบเบฑเบ‡เปเบ”เปˆ:

เบงเบดเบ—เบตเบเบฒเบ™เปƒเบŠเป‰ kubectl เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฒเบเบ‚เบถเป‰เบ™: เบ„เบนเปˆเบกเบทเบฅเบฒเบเบฅเบฐเบญเบฝเบ”
เบ”เบฑเปˆเบ‡เบ—เบตเปˆเป€เบˆเบปเป‰เบฒเบชเบฒเบกเบฒเบ”เป€เบซเบฑเบ™เป„เบ”เป‰, เป„เบŸเบฅเปŒ kubeconfig เบกเบตเบŠเบธเบ”เบ‚เบญเบ‡เบชเบฐเบžเบฒเบšเบเบฒเบ™. เบšเปเบฅเบดเบšเบปเบ”เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบชเบฒเบกเบญเบปเบ‡เบ›เบฐเบเบญเบš:

  • Cluster โ€” API URL เบ‚เบญเบ‡ cluster server.
  • เบœเบนเป‰เปƒเบŠเป‰ - user authentication credentials in the cluster.
  • Namespace - เบŠเปˆเบญเบ‡เบŠเบทเปˆเบ—เบตเปˆเปƒเบŠเป‰เปƒเบ™เป€เบงเบฅเบฒเป€เบ‚เบปเป‰เบฒเบฎเปˆเบงเบกเบเบธเปˆเบก.

เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”, เบžเบงเบเป€เบ‚เบปเบฒเบกเบฑเบเบˆเบฐเปƒเบŠเป‰เบซเบ™เบถเปˆเบ‡เบšเปเบฅเบดเบšเบปเบ”เบ•เปเปˆเบเบธเปˆเบกเปƒเบ™ kubeconfig เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบกเบตเบซเบผเบฒเบเบšเปเบฅเบดเบšเบปเบ”เบ•เปเปˆเบเบธเปˆเบก, เปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เป‚เบ”เบเบœเบนเป‰เปƒเบŠเป‰เบซเบผเบท namespace. เปเบ™เบงเปƒเบ”เบเปเปˆเบ•เบฒเบก, เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบซเบผเบฒเบเบšเปเบฅเบดเบšเบปเบ”เบ™เบตเป‰เปเบกเปˆเบ™เป€เบฅเบทเปˆเบญเบ‡เปเบ›เบ, เบชเบฐเบ™เบฑเป‰เบ™เป‚เบ”เบเบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเบกเบตเบเบฒเบ™เบชเป‰เบฒเบ‡เปเบœเบ™เบ—เบตเปˆเปเบšเบšเปœเบถเปˆเบ‡เบ•เปเปˆเปœเบถเปˆเบ‡เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบธเปˆเบก เปเบฅเบฐ เบšเปเบฅเบดเบšเบปเบ”.

เปƒเบ™เป€เบงเบฅเบฒเปƒเบ”เบเปเปˆเบ•เบฒเบก, เบซเบ™เบถเปˆเบ‡เปƒเบ™เบชเบฐเบžเบฒเบšเบเบฒเบ™เปเบกเปˆเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™:

เบงเบดเบ—เบตเบเบฒเบ™เปƒเบŠเป‰ kubectl เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฒเบเบ‚เบถเป‰เบ™: เบ„เบนเปˆเบกเบทเบฅเบฒเบเบฅเบฐเบญเบฝเบ”
เป€เบกเบทเปˆเบญ kubectl เบญเปˆเบฒเบ™เป„เบŸเบฅเปŒเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ, เบกเบฑเบ™เบชเบฐเป€เบซเบกเบตเป€เบญเบปเบฒเบ‚เปเป‰เบกเบนเบ™เบˆเบฒเบเบชเบฐเบžเบฒเบšเบเบฒเบ™เปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™. เปƒเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡, kubectl เบˆเบฐเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบเบธเปˆเบก Hare.

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เป€เบžเบทเปˆเบญเบ›เปˆเบฝเบ™เป„เบ›เบซเบฒเบเบธเปˆเบกเบญเบทเปˆเบ™, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ›เปˆเบฝเบ™เบชเบฐเบžเบฒเบšเบเบฒเบ™เปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™เบขเบนเปˆเปƒเบ™เป„เบŸเบฅเปŒ kubeconfig:

เบงเบดเบ—เบตเบเบฒเบ™เปƒเบŠเป‰ kubectl เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฒเบเบ‚เบถเป‰เบ™: เบ„เบนเปˆเบกเบทเบฅเบฒเบเบฅเบฐเบญเบฝเบ”
เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™ kubectl เบˆเบฐเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบเบธเปˆเบก Fox.

เป€เบžเบทเปˆเบญเบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™ namespace เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เปƒเบ™เบเบธเปˆเบกเบ”เบฝเบงเบเบฑเบ™, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ›เปˆเบฝเบ™เบ„เปˆเบฒเบ‚เบญเบ‡เบญเบปเบ‡เบ›เบฐเบเบญเบš namespace เบชเปเบฒเบฅเบฑเบšเบชเบฐเบžเบฒเบšเบเบฒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™:

เบงเบดเบ—เบตเบเบฒเบ™เปƒเบŠเป‰ kubectl เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฒเบเบ‚เบถเป‰เบ™: เบ„เบนเปˆเบกเบทเบฅเบฒเบเบฅเบฐเบญเบฝเบ”
เปƒเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡, kubectl เบˆเบฐเปƒเบŠเป‰ Prod namespace เบ‚เบญเบ‡ Fox cluster (เบเปˆเบญเบ™เปœเป‰เบฒเบ™เบตเป‰เป„เบ”เป‰เบกเบตเบเบฒเบ™เบ•เบฑเป‰เบ‡เบŠเบทเปˆ Test namespace).

เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒ kubectl เบเบฑเบ‡เบชเบฐเบซเบ™เบญเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบ --cluster, --user, --namespace ะธ --context, เป€เบŠเบดเปˆเบ‡เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบ‚เบฝเบ™เบ—เบฑเบšเบญเบปเบ‡เบ›เบฐเบเบญเบšเบชเปˆเบงเบ™เบšเบธเบเบ„เบปเบ™เปเบฅเบฐเบชเบฐเบžเบฒเบšเบเบฒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™เบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡, เป‚เบ”เบเบšเปเปˆเบ„เปเบฒเบ™เบถเบ‡เป€เบ–เบดเบ‡เบชเบดเปˆเบ‡เบ—เบตเปˆเบ–เบทเบเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เปƒเบ™ kubeconfig. เป€เบšเบดเปˆเบ‡ kubectl options.

เปƒเบ™เบ—เบฒเบ‡เบ—เบดเบ”เบชเบฐเบ”เบต, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ›เปˆเบฝเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡เปƒเบ™ kubeconfig. เปเบ•เปˆเบกเบฑเบ™เบšเปเปˆเบชเบฐเบ”เบงเบ. เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ‡เปˆเบฒเบเบ‚เบถเป‰เบ™, เบกเบตเบญเบธเบ›เบฐเบเบญเบ™เบ•เปˆเบฒเบ‡เป†เบ—เบตเปˆเบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ›เปˆเบฝเบ™เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”.

เปƒเบŠเป‰ kubectx

เบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”เบ—เบตเปˆเบ™เบดเบเบปเบกเบซเบผเบฒเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เปˆเบฝเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบธเปˆเบกเปเบฅเบฐ namespaces.

เบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”เบชเบฐเบซเบ™เบญเบ‡เบ„เปเบฒเบชเบฑเปˆเบ‡ kubectx ะธ kubens เป€เบžเบทเปˆเบญเบ›เปˆเบฝเบ™เบšเปเบฅเบดเบšเบปเบ”เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™ เปเบฅเบฐ namespace เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบš.

เบ”เบฑเปˆเบ‡เบ—เบตเปˆเป„เบ”เป‰เบเปˆเบฒเบงเบกเบฒ, เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบšเปเบฅเบดเบšเบปเบ”เบ›เบฐเบˆเบธเบšเบฑเบ™เบซเบกเบฒเบเป€เบ–เบดเบ‡เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบเบธเปˆเบกเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบ—เปˆเบฒเบ™เบกเบตเบžเบฝเบ‡เปเบ•เปˆเบซเบ™เบถเปˆเบ‡เบšเปเบฅเบดเบšเบปเบ”เบ•เปเปˆเบเบธเปˆเบก.

เบ™เบตเป‰เปเบกเปˆเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบเบฒเบ™เปเบฅเปˆเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰:

เบงเบดเบ—เบตเบเบฒเบ™เปƒเบŠเป‰ kubectl เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฒเบเบ‚เบถเป‰เบ™: เบ„เบนเปˆเบกเบทเบฅเบฒเบเบฅเบฐเบญเบฝเบ”
เป‚เบ”เบเบžเบทเป‰เบ™เบ–เบฒเบ™เปเบฅเป‰เบง, เบ„เปเบฒเบชเบฑเปˆเบ‡เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบžเบฝเบ‡เปเบ•เปˆเปเบเป‰เป„เบ‚เป„เบŸเบฅเปŒ kubeconfig เบ”เบฑเปˆเบ‡เบ—เบตเปˆเป„เบ”เป‰เบญเบฐเบ—เบดเบšเบฒเบเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡.

เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ kubectx, เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเปˆเบฝเบงเบเบฑเบš Github.

เบ—เบฑเบ‡เบชเบญเบ‡เบ„เปเบฒเบชเบฑเปˆเบ‡เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เบ•เบทเปˆเบกเบ‚เปเป‰เบกเบนเบ™เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบ‚เบญเบ‡ context เปเบฅเบฐ namespace เบŠเบทเปˆ, เป€เบŠเบดเปˆเบ‡เบฅเบปเบšเบฅเป‰เบฒเบ‡เบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเบžเบดเบกเปƒเบซเป‰เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบซเบกเบปเบ”. เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบเบฒเบ™เบ•เบทเปˆเบกเบ‚เปเป‰เบกเบนเบ™เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ” เบ—เบตเปˆเบ™เบตเป‰.

เบฅเบฑเบเบชเบฐเบ™เบฐเบ—เบตเปˆเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบญเบตเบเบญเบฑเบ™เบซเบ™เบถเปˆเบ‡ kubectx เบกเบฑเบ™โ€‹เป€เบ›เบฑเบ™ เบฎเบนเบšเปเบšเบšเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš. เบกเบฑเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบฎเปˆเบงเบกเบเบฑเบ™เบเบฑเบšเบœเบปเบ™เบ›เบฐเป‚เบซเบเบ” fzf, เป€เบŠเบดเปˆเบ‡เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ. เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ fzf เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เป€เบฎเบฑเบ”เปƒเบซเป‰เบฎเบนเบšเปเบšเบšเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบกเบตเบขเบนเปˆเปƒเบ™ kubectx. เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบฅเบทเบญเบเบšเปเบฅเบดเบšเบปเบ”เปเบฅเบฐ namespace เป‚เบ”เบเบœเปˆเบฒเบ™เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบเบฒเบ™เบŠเบญเบเบซเบฒเบŸเบฃเบตเบ—เบตเปˆเบชเบฐเบซเบ™เบญเบ‡เป‚เบ”เบ fzf.

เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ™เบฒเบกเปเบเบ‡ shell

เบ—เปˆเบฒเบ™เบšเปเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ‡เบกเบทเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเป€เบžเบทเปˆเบญเบ›เปˆเบฝเบ™เบชเบฐเบžเบฒเบšเบเบฒเบ™เปเบฅเบฐ 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 เปเบฅเบฐ reboot shell เบ‚เบญเบ‡เบ—เปˆเบฒเบ™.

เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ plugins

Kubectl เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป‚เบซเบฅเบ” plugins เบ—เบตเปˆเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เปเบšเบšเบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบ„เปเบฒเบชเบฑเปˆเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™. เบ•เบปเบงเบขเปˆเบฒเบ‡เป€เบŠเบฑเปˆเบ™, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ•เบดเบ”เบ•เบฑเป‰เบ‡ plugin kubectl-foo เปเบฅเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป‚เบ”เบเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ„เปเบฒเบชเบฑเปˆเบ‡ kubectl foo.

เบกเบฑเบ™เบˆเบฐเป€เบ›เบฑเบ™เบเบฒเบ™เบชเบฐเบ”เบงเบเปƒเบ™เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบšเปเบฅเบดเบšเบปเบ”เปเบฅเบฐ namespace เปƒเบ™เบ—เบฒเบ‡เบ™เบตเป‰, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡เป‚เบ”เบเบเบฒเบ™เปเบฅเปˆเบ™ kubectl ctx เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹เบชเบฐโ€‹เบžเบฒเบšโ€‹เบเบฒเบ™โ€‹เปเบฅเบฐโ€‹ kubectl ns เป€เบžเบทเปˆเบญเบ›เปˆเบฝเบ™ namespace.

เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบ‚เบฝเบ™เบชเบญเบ‡ plugins เบ—เบตเปˆเป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ™เบตเป‰:

เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡ plugins เปเบกเปˆเบ™เบญเบตเบ‡เปƒเบชเปˆเบ™เบฒเบกเปเบเบ‡เบˆเบฒเบเบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒ.

เบ™เบตเป‰เปเบกเปˆเบ™เบงเบดเบ—เบตเบ—เบตเปˆเบžเบงเบเป€เบ‚เบปเบฒเป€เบฎเบฑเบ”เบงเบฝเบ:

เบงเบดเบ—เบตเบเบฒเบ™เปƒเบŠเป‰ kubectl เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฒเบเบ‚เบถเป‰เบ™: เบ„เบนเปˆเบกเบทเบฅเบฒเบเบฅเบฐเบญเบฝเบ”
เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒ plugins เปƒเบŠเป‰ fzf เป€เบžเบทเปˆเบญเบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบเบฒเบ™เบŠเบญเบเบซเบฒเบŸเบฃเบตเปเบšเบšเป‚เบ•เป‰เบ•เบญเบš (เป€เบŠเบฑเปˆเบ™: เบฎเบนเบšเปเบšเบšเป‚เบ•เป‰เบ•เบญเบšเบ‚เบญเบ‡ kubectx). เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™ เบ•เบดเบ”เบ•เบฑเป‰เบ‡ fzfเป€เบžเบทเปˆเบญเปƒเบŠเป‰เบ™เบฒเบกเปเบเบ‡เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰.

เป€เบžเบทเปˆเบญเบ•เบดเบ”เบ•เบฑเป‰เบ‡ plugins, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ”เบฒเบงเป‚เบซเบฅเบ” shell scripts เบ—เบตเปˆเบกเบตเบŠเบทเปˆ kubectl-ctx ะธ kubectl-ns เป„เบ›เบซเบฒเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเปƒเบ”เป†เปƒเบ™เบ•เบปเบงเปเบ› PATH เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เปเบฅเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบžเบงเบเป€เบ‚เบปเบฒเบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰เบ”เป‰เบงเบเบ•เบปเบงเบขเปˆเบฒเบ‡เป€เบŠเบฑเปˆเบ™. chmod +x. เบ—เบฑเบ™เบ—เบตเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบตเป‰, เบ—เปˆเบฒเบ™เบˆเบฐเบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰ kubectl ctx ะธ kubectl ns.

5. เบซเบผเบธเบ”เบœเปˆเบญเบ™เบเบฒเบ™เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™เบ”เป‰เบงเบ autoaliases

เบ™เบฒเบกเปเบเบ‡ Shell เป€เบ›เบฑเบ™เบงเบดเบ—เบตเบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบˆเบฐเป€เบฅเบฑเปˆเบ‡เบเบฒเบ™เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™. เป‚เบ„เบ‡เบเบฒเบ™ kubectl-aliases เบกเบตเบ›เบฐเบกเบฒเบ™ 800 เบ—เบฒเบ‡เบฅเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบ„เปเบฒเบชเบฑเปˆเบ‡ kubectl เบžเบทเป‰เบ™เบ–เบฒเบ™.

เป€เบˆเบปเป‰เบฒเบญเบฒเบ”เบˆเบฐเบชเบปเบ‡เป„เบช - เป€เบˆเบปเป‰เบฒเบˆเบทเปˆ 800 เบ™เบฒเบกเปเบเบ‡เป„เบ”เป‰เปเบ™เบงเปƒเบ”? เปเบ•เปˆเบ—เปˆเบฒเบ™เบšเปเปˆ เบˆเบณ เป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบˆเบทเปˆเบžเบงเบเบกเบฑเบ™เบ—เบฑเบ‡ เปเบปเบ”, เป€เบžเบฒเบฐเบงเปˆเบฒเบžเบงเบเบกเบฑเบ™เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เบ•เบฒเบกเป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบ‡เปˆเบฒเบเบ”เบฒเบ, เป€เบŠเบดเปˆเบ‡เบกเบตเบขเบนเปˆเบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰:

เบงเบดเบ—เบตเบเบฒเบ™เปƒเบŠเป‰ kubectl เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฒเบเบ‚เบถเป‰เบ™: เบ„เบนเปˆเบกเบทเบฅเบฒเบเบฅเบฐเบญเบฝเบ”
เบ•เบปเบงเบขเปˆเบฒเบ‡:

  1. kgpooyaml - kubectl เบฎเบฑเบšเบเบฑเบ oyaml
  2. ksysgsvcw โ€” kubectl -n kube-system get svc w
  3. ksysrmcm -kubectl -n kube-system rm cm
  4. kgdepallsl - kubectl เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ” sl

เบ”เบฑเปˆเบ‡เบ—เบตเปˆเป€เบˆเบปเป‰เบฒเบชเบฒเบกเบฒเบ”เป€เบซเบฑเบ™เป„เบ”เป‰, เบ™เบฒเบกเปเบเบ‡เปเบกเปˆเบ™เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบญเบปเบ‡เบ›เบฐเบเบญเบš, เปเบ•เปˆเบฅเบฐเบญเบฑเบ™เป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™เบ‚เบญเบ‡เบญเบปเบ‡เบ›เบฐเบเบญเบšเบชเบฐเป€เบžเบฒเบฐเบ‚เบญเบ‡เบ„เปเบฒเบชเบฑเปˆเบ‡ kubectl. เปเบ•เปˆเบฅเบฐ alias เบชเบฒเบกเบฒเบ”เบกเบตเบญเบปเบ‡เบ›เบฐเบเบญเบšเบซเบ™เบถเปˆเบ‡เบชเปเบฒเบฅเบฑเบšเบ„เปเบฒเบชเบฑเปˆเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™, เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™, เปเบฅเบฐเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™, เปเบฅเบฐเบญเบปเบ‡เบ›เบฐเบเบญเบšเบซเบผเบฒเบเบชเปเบฒเบฅเบฑเบšเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต. เบ—เปˆเบฒเบ™เบžเบฝเบ‡เปเบ•เปˆ "เบ•เบทเปˆเบก" เบญเบปเบ‡เบ›เบฐเบเบญเบšเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบˆเบฒเบเบŠเป‰เบฒเบเบซเบฒเบ‚เบงเบฒเบ•เบฒเบกเปเบœเบ™เบงเบฒเบ”เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡.

เปเบœเบ™เบงเบฒเบ”เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบ›เบฐเบˆเบธเบšเบฑเบ™เบขเบนเปˆเบ—เบตเปˆ GitHub. เบขเบนเปˆเบ—เบตเปˆเบ™เบฑเป‰เบ™เป€เบˆเบปเป‰เบฒเบเบฑเบ‡เบชเบฒเบกเบฒเบ”เบŠเบญเบเบซเบฒเป„เบ”เป‰ เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเป€เบ•เบฑเบกเบ‚เบญเบ‡เบ™เบฒเบกเปเบเบ‡.

เบ•เบปเบงเบขเปˆเบฒเบ‡, alias 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 (เบ›เบฐเบˆเบธเบšเบฑเบ™เบšเปเปˆเบกเบตเบ™เบฒเบกเปเบเบ‡เบชเปเบฒเบฅเบฑเบšเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ‚เบญเบ‡ Roles).
  3. เป€เบžเบทเปˆเบญเปƒเบซเป‰เป„เบ”เป‰เบฎเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบชเปเบฒเบฅเบฑเบšเบเบฑเบเบชเบฐเป€เบžเบฒเบฐ, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบ„เปเบฒเบชเบฑเปˆเบ‡ kgpo my-pod โ€” kubectl get pod my-pod.

เบเบฐเบฅเบธเบ™เบฒเบฎเบฑเบšเบŠเบฒเบšเบงเปˆเบฒเบšเบฒเบ‡เบ™เบฒเบกเปเบเบ‡เบ•เป‰เบญเบ‡เบเบฒเบ™เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เปเบ–เบงเบ„เบณเบชเบฑเปˆเบ‡. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ™เบฒเบกเปเบเบ‡ kgpol เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒ kubectl get pods -l. เบ—เบฒเบ‡เป€เบฅเบทเบญเบ -l เบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡ - เบชเบฐเป€เบžเบฒเบฐเบ›เป‰เบฒเบเบŠเบทเปˆ. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เปƒเบŠเป‰เบ™เบฒเบกเปเบเบ‡, เบกเบฑเบ™เบˆเบฐเป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒ kgpol app=ui.

เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบšเบฒเบ‡เบ™เบฒเบกเปเบเบ‡เบ•เป‰เบญเบ‡เบเบฒเบ™เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡, เบ™เบฒเบกเปเบเบ‡ a, f, เปเบฅเบฐ l เบˆเบฐเบ•เป‰เบญเบ‡เปƒเบŠเป‰เบชเบธเบ”เบ—เป‰เบฒเบ.

เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›, เป€เบกเบทเปˆเบญเบ—เปˆเบฒเบ™เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบงเบฒเบ‡เบชเบฒเบเบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™เบ™เบตเป‰, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ” intuitively เป€เบญเบปเบฒเบ™เบฒเบกเปเบเบ‡เบˆเบฒเบเบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปเบฅเบฐเบ›เบฐเบซเบเบฑเบ”เป€เบงเบฅเบฒเบžเบดเบกเบซเบผเบฒเบ.

เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡

เป€เบžเบทเปˆเบญเบ•เบดเบ”เบ•เบฑเป‰เบ‡ kubectl-aliases, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบ”เบฒเบงเป‚เบซเบฅเบ”เป„เบŸเบฅเปŒ .kubectl_aliases เบˆเบฒเบ GitHub เปเบฅเบฐเบฅเบงเบกเบกเบฑเบ™เบขเบนเปˆเปƒเบ™เป„เบŸเบฅเปŒ ~/.bashrc เบซเบผเบท ~/.zshrc:

source ~/.kubectl_aliases

เบเบฒเบ™เบ•เบทเปˆเบกเบ‚เปเป‰เบกเบนเบ™เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”

เบ”เบฑเปˆเบ‡เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบเปˆเบฒเบงเบกเบฒเบเปˆเบญเบ™, เบ—เปˆเบฒเบ™เบกเบฑเบเบˆเบฐเป€เบžเบตเปˆเบกเบ„เปเบฒเบชเบฑเบšเป€เบžเบตเปˆเบกเป€เบ•เบตเบกเปƒเบชเปˆเบ™เบฒเบกเปเบเบ‡เบขเบนเปˆเปƒเบ™เป€เบชเบฑเป‰เบ™เบ„เปเบฒเบชเบฑเปˆเบ‡. เบเบปเบโ€‹เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡:

$ kgpooyaml test-pod-d4b77b989

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เปƒเบŠเป‰เบเบฒเบ™เบชเปเบฒเป€เบฅเบฑเบ”เบ„เปเบฒเบชเบฑเปˆเบ‡ kubectl, เบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเปƒเบŠเป‰เบเบฒเบ™เบ•เบทเปˆเบกเบ‚เปเป‰เบกเบนเบ™เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบชเบดเปˆเบ‡เบ•เปˆเบฒเบ‡เป†เป€เบŠเบฑเปˆเบ™เบŠเบทเปˆเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™. เปเบ•เปˆเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰เป€เบกเบทเปˆเบญเบ™เบฒเบกเปเบเบ‡เบ–เบทเบเปƒเบŠเป‰เบšเป?

เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปเบฒเบ–เบฒเบกเบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบซเบผเบฒเบเป€เบžเบฒเบฐเบงเปˆเบฒเบ–เป‰เบฒเบเบฒเบ™เบ•เบทเปˆเบกเบ‚เปเป‰เบกเบนเบ™เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบšเปเปˆเป„เบ”เป‰เบœเบปเบ™, เบ—เปˆเบฒเบ™เบˆเบฐเบชเบนเบ™เป€เบชเบเบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบ™เบฒเบกเปเบเบ‡.

เบ„เปเบฒเบ•เบญเบšเปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเบงเปˆเบฒ Shell เบ—เบตเปˆเบ—เปˆเบฒเบ™เบเปเบฒเบฅเบฑเบ‡เปƒเบŠเป‰:

  1. เบชเปเบฒเบฅเบฑเบš Zsh, เบเบฒเบ™เบชเปเบฒเป€เบฅเบฑเบ”เบ™เบฒเบกเปเบเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเบญเบญเบเบˆเบฒเบเบเปˆเบญเบ‡.
  2. เบชเปเบฒเบฅเบฑเบš Bash, เปเบ•เปˆเบซเบ™เป‰เบฒเป€เบชเบเบ”เบฒเบ, เบšเบฒเบ‡เบงเบฝเบเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ•เบทเปˆเบกเบ‚เปเป‰เบกเบนเบ™เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบงเบฝเบ.

เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบ•เบทเปˆเบกเบ‚เปเป‰เบกเบนเบ™เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบ™เบฒเบกเปเบเบ‡เปƒเบ™ Bash

เบšเบฑเบ™เบซเบฒเบเบฑเบš Bash เปเบกเปˆเบ™เบงเปˆเบฒเบกเบฑเบ™เบžเบฐเบเบฒเบเบฒเบกเบชเปเบฒเป€เบฅเบฑเบ” (เบ—เบธเบเป†เบ„เบฑเป‰เบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เบเบปเบ” Tab) alias, เบšเปเปˆเปเบกเปˆเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เบตเปˆ alias เบซเบกเบฒเบเป€เบ–เบดเบ‡ (เป€เบŠเบฑเปˆเบ™ Zsh เป€เบฎเบฑเบ”, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡). เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบ—เปˆเบฒเบ™เบšเปเปˆเบกเบตเบชเบฐเบ„เบฃเบดเบšเบชเปเบฒเป€เบฅเบฑเบ”เบชเปเบฒเบฅเบฑเบš 800 เบ™เบฒเบกเปเบเบ‡, เบเบฒเบ™เบ•เบทเปˆเบกเบ‚เปเป‰เบกเบนเบ™เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบˆเบฐเบšเปเปˆเป€เบฎเบฑเบ”เบงเบฝเบ.

เป‚เบ„เบ‡เบเบฒเบ™ เบ™เบฒเบกเปเบเบ‡ เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เปเบเป‰เป„เบ‚เบ—เบปเปˆเบงเป„เบ›เบ•เปเปˆเบเบฑเบšเบšเบฑเบ™เบซเบฒเบ™เบตเป‰. เบกเบฑเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบเบปเบ™เป„เบเบเบฒเบ™เบชเปเบฒเป€เบฅเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบ™เบฒเบกเปเบเบ‡, เบžเบฒเบเปƒเบ™เบ‚เบฐเบซเบเบฒเบเบ™เบฒเบกเปเบเบ‡เป„เบ›เบซเบฒเบ„เปเบฒเบชเบฑเปˆเบ‡, เปเบฅเบฐเบชเบปเปˆเบ‡เบ„เบทเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบเบฒเบ™เบชเปเบฒเป€เบฅเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เบตเปˆเบชเปเบฒเป€เบฅเบฑเบ”. เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒ padding เบชเปเบฒเบฅเบฑเบš alias เบ›เบฐเบ•เบดเบšเบฑเบ”เบ„เบทเบเบฑเบ™เบเบฑเบšเบ„เปเบฒเบชเบฑเปˆเบ‡เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบ—เบตเปˆ.

เปƒเบ™เบ•เปเปˆเป„เบ›เบ™เบตเป‰, เบ—เปเบฒเบญเบดเบ”เบ‚เป‰เบญเบเบˆเบฐเบญเบฐเบ—เบดเบšเบฒเบเบงเบดเบ—เบตเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบ™เบฒเบกเปเบเบ‡เบ—เบตเปˆเบชเบปเบกเบšเบนเบ™เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบงเบดเบ—เบตเบเบฒเบ™เบเปเบฒเบ™เบปเบ”เบกเบฑเบ™เป€เบžเบทเปˆเบญเปƒเบซเป‰เบชเปเบฒเป€เบฅเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบ™เบฒเบกเปเบเบ‡ kubectl เบ—เบฑเบ‡เบซเบกเบปเบ”.

เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบ™เบฒเบกเปเบเบ‡เบ—เบตเปˆเบชเบปเบกเบšเบนเบ™

เบเปˆเบญเบ™เบญเบทเปˆเบ™ เปเบปเบ”, เบชเบปเบกเบšเบนเบ™เบ™เบฒเบกเปเบเบ‡เปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบš bash-เบชเปเบฒเป€เบฅเบฑเบ”. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบ•เบดเบ”เบ•เบฑเป‰เบ‡ alias เบชเปเบฒเป€เบฅเบฑเบ”, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ bash-completion. เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เป„เบ”เป‰เบ–เบทเบเบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰เบชเปเบฒเบฅเบฑเบš Linux เปเบฅเบฐ MacOS.

เบซเบกเบฒเบเป€เบซเบ”เบชเปเบฒเบ„เบฑเบ™เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เปƒเบŠเป‰ macOS: เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบš script kubectl autocompletion, complete-alias เบšเปเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบš Bash 3.2, เป€เบŠเบดเปˆเบ‡เป€เบ›เบฑเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบ™ MacOS. เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ, complete-alias เปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบš bash-completion v2 (brew install bash-completion@2), เป€เบŠเบดเปˆเบ‡เบ•เป‰เบญเบ‡เบเบฒเบ™เบขเปˆเบฒเบ‡เบซเบ™เป‰เบญเบ Bash 4.1. เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเป€เบžเบทเปˆเบญเปƒเบŠเป‰เบ™เบฒเบกเปเบเบ‡เบ—เบตเปˆเบชเบปเบกเบšเบนเบ™เปƒเบ™ MacOS เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ•เบดเบ”เบ•เบฑเป‰เบ‡ Bash เบฎเบธเปˆเบ™เปƒเบซเบกเปˆ.

เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบ”เบฒเบงเป‚เบซเบฅเบ” script bash_completion.sh เบˆเบฒเบเบ™เบฑเป‰เบ™ เบ„เบฑเบ‡เป€เบเบฑเบš GitHub เปเบฅเบฐเบฅเบงเบกเบกเบฑเบ™เบขเบนเปˆเปƒเบ™เป„เบŸเบฅเปŒเบ‚เบญเบ‡เบ—เปˆเบฒเบ™ ~/.bashrc:

source ~/bash_completion.sh

เบซเบผเบฑเบ‡เบˆเบฒเบ rebooting shell, alias เบชเบปเบกเบšเบนเบ™เบˆเบฐเบ–เบทเบเบ•เบดเบ”เบ•เบฑเป‰เบ‡เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบชเปˆเบงเบ™.

เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบ•เบทเปˆเบกเบ‚เปเป‰เบกเบนเบ™เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบชเบณเบฅเบฑเบšเบ™เบฒเบกเปเบเบ‡ kubectl

เบ—เบฒเบ‡เบ”เป‰เบฒเบ™เป€เบ•เบฑเบเบ™เบดเบเบ—เบตเปˆเบชเบปเบกเบšเบนเบ™-alias เปƒเบซเป‰เบŸเบฑเบ‡เบŠเบฑเบ™ wrapper _complete_alias. เบŸเบฑเบ‡เบŠเบฑเบ™เบ™เบตเป‰เบเบงเบ”เป€เบšเบดเปˆเบ‡เบ™เบฒเบกเปเบเบ‡ เปเบฅเบฐเบชเบปเปˆเบ‡เบ„เบทเบ™เบ„เปเบฒเบŠเบตเป‰เบšเบญเบเบเบฒเบ™เบชเปเบฒเป€เบฅเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบ„เปเบฒเบชเบฑเปˆเบ‡ alias.

เป€เบžเบทเปˆเบญเป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบกเบตเบ™เบฒเบกเปเบเบ‡เบชเบฐเป€เบžเบฒเบฐ, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เปƒเบŠเป‰เบเบปเบ™เป„เบ Bash เบ—เบตเปˆเบชเป‰เบฒเบ‡เบกเบฒ เบชเบปเบกเบšเบนเบ™, เบเบฒเบ™โ€‹เบ•เบดเบ”โ€‹เบ•เบฑเป‰เบ‡โ€‹ _complete_alias เป€เบ›เบฑเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆเบชเปเบฒเป€เบฅเบฑเบ”เบ™เบฒเบกเปเบเบ‡.

เบ•เบปเบงเบขเปˆเบฒเบ‡, เปƒเบซเป‰เป€เบฎเบปเบฒเป€เบญเบปเบฒ alias k, เป€เบŠเบดเปˆเบ‡เบซเบเปเป‰เบกเบฒเบˆเบฒเบเบ„เปเบฒเบชเบฑเปˆเบ‡ kubectl. เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ _complete_alias เปƒเบ™เบ–เบฒเบ™เบฐเป€เบ›เบฑเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบชเบตเบกเบชเปเบฒเบฅเบฑเบšเบ™เบฒเบกเปเบเบ‡เบ™เบตเป‰, เบ—เปˆเบฒเบ™เบ„เบงเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

$ complete -F _complete_alias k

เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ‚เบญเบ‡เบชเบดเปˆเบ‡เบ™เบตเป‰เปเบกเปˆเบ™เบงเปˆเบฒเบ—เบธเบเบ„เบฑเป‰เบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เบ•เบทเปˆเบกเบ‚เปเป‰เบกเบนเบ™เปƒเบชเปˆเบ™เบฒเบกเปเบเบ‡ k เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”, เบŸเบฑเบ‡เบŠเบฑเบ™เบ–เบทเบเป€เบญเบตเป‰เบ™ _complete_alias, เป€เบŠเบดเปˆเบ‡เบเบงเบ”เป€เบšเบดเปˆเบ‡เบ™เบฒเบกเปเบเบ‡เปเบฅเบฐเบชเบปเปˆเบ‡เบ„เบทเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบชเปเบฒเป€เบฅเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบ„เปเบฒเบชเบฑเปˆเบ‡ kubectl.

เป€เบ›เบฑเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ—เบตเบชเบญเบ‡, เปƒเบซเป‰เป€เบฎเบปเบฒเปƒเบŠเป‰เบ™เบฒเบกเปเบเบ‡ kg, เป€เบŠเบดเปˆเบ‡เบซเบกเบฒเบเป€เบ–เบดเบ‡ kubectl get:

$ complete -F _complete_alias kg

เบ„เบทเบเบฑเบ™เบเบฑเบšเปƒเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒ, เป€เบกเบทเปˆเบญเบ—เปˆเบฒเบ™เบ•เบทเปˆเบกเบเบดเป‚เบฅเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”, เบ—เปˆเบฒเบ™เป„เบ”เป‰เบฎเบฑเบšเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบชเปเบฒเป€เบฅเบฑเบ”เบ”เบฝเบงเบเบฑเบ™เบ—เบตเปˆเบ—เปˆเบฒเบ™เบˆเบฐเป„เบ”เป‰เบฎเบฑเบš. kubectl get.

เบˆเบปเปˆเบ‡เบˆเบทเปˆเป„เบงเป‰เบงเปˆเบฒเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบ™เบฒเบกเปเบเบ‡เบ—เบตเปˆเบชเบปเบกเบšเบนเบ™เบชเปเบฒเบฅเบฑเบšเบ™เบฒเบกเปเบเบ‡เปƒเบ”เป†เปƒเบ™เบฅเบฐเบšเบปเบšเบ‚เบญเบ‡เบ—เปˆเบฒเบ™.

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เป€เบžเบทเปˆเบญเป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบ•เบทเปˆเบกเบ‚เปเป‰เบกเบนเบ™เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบ™เบฒเบกเปเบเบ‡ kubectl เบ—เบฑเบ‡เบซเบกเบปเบ”, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡เบ™เบตเป‰เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบ„เบปเบ™. snippet เบ•เปเปˆเป„เบ›เบ™เบตเป‰เป€เบฎเบฑเบ”เป„เบ”เป‰เปเบ™เปˆเบ™เบญเบ™, เบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เบ—เปˆเบฒเบ™เป„เบ”เป‰เบ•เบฑเป‰เบ‡ kubectl-aliases เป€เบ›เบฑเบ™ ~/.kubectl-aliases:

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

เบŠเบดเป‰เบ™เบชเปˆเบงเบ™เบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เบ™เบตเป‰เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบงเบฒเบ‡เป„เบงเป‰เปƒเบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™ ~/.bashrc, restart shell เบ„เปเบฒเบชเบฑเปˆเบ‡เปเบฅเบฐเบเบฒเบ™เบ•เบทเปˆเบกเบ‚เปเป‰เบกเบนเบ™เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบˆเบฐเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเบ—เบฑเบ‡เบซเบกเบปเบ” 800 kubectl aliases.

6. เบ‚เบฐเบซเบเบฒเบ kubectl เบเบฑเบš plugins

เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบˆเบฒเบ เบฎเบธเปˆเบ™ 1.12, kubectl เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ เบเบปเบ™เป„เบ plugin, เป€เบŠเบดเปˆเบ‡เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ‚เบฐเบซเบเบฒเบเบซเบ™เป‰เบฒเบ—เบตเปˆเบ‚เบญเบ‡เบ•เบปเบ™เบ”เป‰เบงเบเบ„เปเบฒเบชเบฑเปˆเบ‡เป€เบžเบตเปˆเบกเป€เบ•เบตเบก.

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ„เบธเป‰เบ™เป€เบ„เบตเบเบเบฑเบš Git เบเบปเบ™เป„เบ plugin, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, plugins kubectl เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปƒเบ™เบซเบผเบฑเบเบเบฒเบ™เบ”เบฝเบงเบเบฑเบ™.

เปƒเบ™เบšเบปเบ”เบ™เบตเป‰, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบเบงเบกเป€เบญเบปเบฒเบงเบดเบ—เบตเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ plugins, เบšเปˆเบญเบ™เบ—เบตเปˆเบŠเบญเบเบซเบฒเบžเบงเบเบกเบฑเบ™, เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เบชเป‰เบฒเบ‡ plugins เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป€เบญเบ‡.

เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบ›เบฅเบฑเบเบญเบดเบ™

plugins Kubectl เบ–เบทเบเปเบˆเบเบขเบฒเบเป€เบ›เบฑเบ™เป„เบŸเบฅเปŒเบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰เบ‡เปˆเบฒเบเบ”เบฒเบเบ—เบตเปˆเบกเบตเบŠเบทเปˆเป€เบŠเบฑเปˆเบ™ kubectl-x. เบ„เบณเบ™เบณเปœเป‰เบฒ kubectl- เปเบกเปˆเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™, เบ•เบดเบ”เบ•เบฒเบกเบ”เป‰เบงเบเบ„เปเบฒเบชเบฑเปˆเบ‡เบเปˆเบญเบ kubectl เปƒเบซเบกเปˆเบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เป‚เบ—เบซเบฒ plugin เป„เบ”เป‰.

เบ•เบปเบงเบขเปˆเบฒเบ‡, plugin hello เบˆเบฐเบ–เบทเบเปเบˆเบเบขเบฒเบเป€เบ›เบฑเบ™เป„เบŸเบฅเปŒเบ—เบตเปˆเป€เบญเบตเป‰เบ™เบงเปˆเบฒ kubectl-hello.

เป€เบžเบทเปˆเบญเบ•เบดเบ”เบ•เบฑเป‰เบ‡ plugin, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ„เบฑเบ”เบฅเบญเบเป„เบŸเบฅเปŒ kubectl-x เป„เบ›เบซเบฒเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเปƒเบ”เป†เปƒเบ™ PATH เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เปเบฅเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡ chmod +x. เบ—เบฑเบ™เบ—เบตเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป‚เบ—เบซเบฒ plugin เป„เบ”เป‰ kubectl x.

เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบ„เปเบฒเบชเบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰เป€เบžเบทเปˆเบญเบฅเบฒเบเบŠเบทเปˆ plugins เบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบ•เบดเบ”เบ•เบฑเป‰เบ‡เบขเบนเปˆเปƒเบ™เบฅเบฐเบšเบปเบšเบ‚เบญเบ‡เบ—เปˆเบฒเบ™:

$ kubectl plugin list

เบ„เปเบฒเบชเบฑเปˆเบ‡เบ™เบตเป‰เบเบฑเบ‡เบˆเบฐเบชเบฐเปเบ”เบ‡เบ„เปเบฒเป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบกเบต plugins เบซเบผเบฒเบเบญเบฑเบ™เบ—เบตเปˆเบกเบตเบŠเบทเปˆเบ”เบฝเบงเบเบฑเบ™, เบซเบผเบทเบ–เป‰เบฒเบกเบตเป„เบŸเบฅเปŒ plugins เบ—เบตเปˆเบšเปเปˆเบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰.

เบŠเบญเบเบซเบฒเปเบฅเบฐเบ•เบดเบ”เบ•เบฑเป‰เบ‡ plugins เป‚เบ”เบเปƒเบŠเป‰ Krew

เบ›เบฅเบฑเบเบญเบดเบ™ Kubectl เบชเบฒเบกเบฒเบ”เบ–เบทเบเปเบšเปˆเบ‡เบ›เบฑเบ™ เบซเบผเบทเปƒเบŠเป‰เบ„เบทเบ™เป„เบ”เป‰เบ„เบทเบเบฑเบšเบŠเบธเบ”เบŠเบญเบšเปเบง. เปเบ•เปˆเบšเปˆเบญเบ™เปƒเบ”เบ—เบตเปˆเป€เบˆเบปเป‰เบฒเบชเบฒเบกเบฒเบ”เบŠเบญเบเบซเบฒ plugins เบ—เบตเปˆเบ„เบปเบ™เบญเบทเปˆเบ™เป„เบ”เป‰เปเบšเปˆเบ‡เบ›เบฑเบ™?

เป‚เบ„เบ‡เบเบฒเบ™ Kew เบกเบตเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เป€เบžเบทเปˆเบญเบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เปเบเป‰เป„เบ‚เบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบญเบเบฐเบžเบฒเบšเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เปเบšเปˆเบ‡เบ›เบฑเบ™, เบ„เบปเป‰เบ™เบซเบฒ, เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เปเบฅเบฐเบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡ plugins kubectl. เป‚เบ„เบ‡เบเบฒเบ™เป€เบญเบตเป‰เบ™เบ•เบปเบงเป€เบญเบ‡เบงเปˆเบฒ "เบœเบนเป‰เบˆเบฑเบ”เบเบฒเบ™เบŠเบธเบ”เบชเปเบฒเบฅเบฑเบš kubectl plugins" (Krew เปเบกเปˆเบ™เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบš Brew).

Krew เปเบกเปˆเบ™เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡ plugins kubectl เบ—เบตเปˆเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบฅเบทเบญเบเปเบฅเบฐเบ•เบดเบ”เบ•เบฑเป‰เบ‡. เปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™, Krew เบเบฑเบ‡เป€เบ›เบฑเบ™ plugin เบชเปเบฒเบฅเบฑเบš kubectl.

เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ Krew เป€เบฎเบฑเบ”เบงเบฝเบเบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบ„เบทเบเบฑเบšเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ plugin 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>

เบเบฐเบฅเบธเบ™เบฒเบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ plugins เป‚เบ”เบเปƒเบŠเป‰ Krew เบšเปเปˆเปเบŠเบเปเบŠเบ‡เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ plugins เป‚เบ”เบเปƒเบŠเป‰เบงเบดเบ—เบตเบเบฒเบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ—เบตเปˆเบญเบฐเบ—เบดเบšเบฒเบเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡.

เบเบฐเบฅเบธเบ™เบฒเบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบ„เปเบฒเบชเบฑเปˆเบ‡ kubectl krew list เบชเบฐเปเบ”เบ‡เบžเบฝเบ‡เปเบ•เปˆ plugins เบ—เบตเปˆเบ–เบทเบเบ•เบดเบ”เบ•เบฑเป‰เบ‡เป‚เบ”เบเปƒเบŠเป‰ Krew, เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบ„เปเบฒเบชเบฑเปˆเบ‡ kubectl plugin list เบฅเบฒเบเบŠเบทเปˆ plugins เบ—เบฑเบ‡เบซเบกเบปเบ”, เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบœเบนเป‰เบ—เบตเปˆเบ•เบดเบ”เบ•เบฑเป‰เบ‡เป‚เบ”เบเปƒเบŠเป‰ Krew เปเบฅเบฐเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เป‚เบ”เบเบงเบดเบ—เบตเบเบฒเบ™เบญเบทเปˆเบ™เป†.

เบŠเบญเบเบซเบฒ Plugins เบขเบนเปˆเบšเปˆเบญเบ™เบญเบทเปˆเบ™

Krew เป€เบ›เบฑเบ™เป‚เบ„เบ‡เบเบฒเบ™เป„เบงเบซเบ™เบธเปˆเบก, เบ›เบฐเบˆเบธเบšเบฑเบ™เบขเบนเปˆเปƒเบ™เบ‚เบญเบ‡เบ•เบปเบ™ เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบเบฒเบ™ เบžเบฝเบ‡เปเบ•เปˆเบ›เบฐเบกเบฒเบ™ 30 plugins. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เบŠเบญเบเบซเบฒเบชเบดเปˆเบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบŠเบญเบเบซเบฒ plugins เบขเบนเปˆเบšเปˆเบญเบ™เบญเบทเปˆเบ™, เป€เบŠเบฑเปˆเบ™ GitHub.

เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เป€เบšเบดเปˆเบ‡เบขเบนเปˆเปƒเบ™เบžเบฒเบ GitHub kubectl-plugins. เบขเบนเปˆเบ—เบตเปˆเบ™เบฑเป‰เบ™เป€เบˆเบปเป‰เบฒเบˆเบฐเบžเบปเบšเป€เบซเบฑเบ™เบซเบฅเบฒเบเบชเบดเบš plugins เบ—เบตเปˆเบกเบตเบขเบนเปˆเบ—เบตเปˆเบกเบตเบกเบนเบ™เบ„เปˆเบฒเบเบฒเบ™เบเบงเบ”เบชเบญเบš.

เบเบฒเบ™เบ‚เบฝเบ™ plugins เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป€เบญเบ‡

เป€เบˆเบปเป‰เบฒเบชเบฒเบกเบฒเบ”เบ•เบปเบงเบ—เปˆเบฒเบ™เป€เบญเบ‡ เบชเป‰เบฒเบ‡ plugins - เบกเบฑเบ™เบšเปเปˆเบเบฒเบ. เบ—เปˆเบฒเบ™โ€‹เบˆเปเบฒโ€‹เป€เบ›เบฑเบ™โ€‹เบ•เป‰เบญเบ‡โ€‹เป„เบ”เป‰โ€‹เบชเป‰เบฒเบ‡โ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบ—เบตเปˆโ€‹เป€เบฎเบฑเบ”โ€‹เบชเบดเปˆเบ‡โ€‹เบ—เบตเปˆโ€‹เบ—เปˆเบฒเบ™โ€‹เบ•เป‰เบญเบ‡โ€‹เบเบฒเบ™โ€‹, เบŠเบทเปˆโ€‹เบกเบฑเบ™โ€‹เบ„เบทโ€‹ kubectl-x เปเบฅเบฐเบ•เบดเบ”เบ•เบฑเป‰เบ‡เบ”เบฑเปˆเบ‡เบ—เบตเปˆเบญเบฐเบ—เบดเบšเบฒเบเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡.

เป„เบŸเบฅเปŒเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™ bash script, python script, เบซเบผเบทเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ GO เบ—เบตเปˆเบ–เบทเบเบฅเบงเบšเบฅเบงเบก - เบกเบฑเบ™เบšเปเปˆเบชเปเบฒเบ„เบฑเบ™. เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบ”เบฝเบงเปเบกเปˆเบ™เบงเปˆเบฒเบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบเบเบปเบ‡เปƒเบ™เบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™.

เปƒเบซเป‰เบชเป‰เบฒเบ‡ plugin เบ•เบปเบงเบขเปˆเบฒเบ‡เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™. เปƒเบ™เบžเบฒเบเบเปˆเบญเบ™, เบ—เปˆเบฒเบ™เป„เบ”เป‰เปƒเบŠเป‰เบ„เปเบฒเบชเบฑเปˆเบ‡ kubectl เป€เบžเบทเปˆเบญเบšเบญเบเบฅเบฒเบเบเบฒเบ™เบšเบฑเบ™เบˆเบธเบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบเบฑเบ. เบกเบฑเบ™เบ‡เปˆเบฒเบเบ—เบตเปˆเบˆเบฐเบ›เปˆเบฝเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบ™เบตเป‰เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ plugin เบ—เบตเปˆเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป‚เบ—เบซเบฒเป„เบ”เป‰เป€เบŠเบฑเปˆเบ™:. kubectl img.

เบชเป‰เบฒเบ‡เป„เบŸเบฅเปŒ kubectl-img เป€เบ™เบทเป‰เบญเปƒเบ™เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

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

เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เป€เบฎเบฑเบ”เปƒเบซเป‰เป„เบŸเบฅเปŒเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฑเบš chmod +x kubectl-img เปเบฅเบฐเบเป‰เบฒเบเบกเบฑเบ™เป„เบ›เบซเบฒเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเปƒเบ”เป†เปƒเบ™ PATH เบ‚เบญเบ‡เบ—เปˆเบฒเบ™. เบ—เบฑเบ™เบ—เบตเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰ plugin เป„เบ”เป‰ kubectl img.

เบ”เบฑเปˆเบ‡เบ—เบตเปˆเป„เบ”เป‰เบเปˆเบฒเบงเบกเบฒ, เบ›เบฑเปŠเบเบญเบดเบ™ kubectl เบชเบฒเบกเบฒเบ”เบ‚เบฝเบ™เป€เบ›เบฑเบ™เบžเบฒเบชเบฒเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบซเบผเบทเบžเบฒเบชเบฒเปƒเบ”เป†. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบเปเบฒเบฅเบฑเบ‡เปƒเบŠเป‰ shell script, เบ›เบฐเป‚เบซเบเบ”เบ‚เบญเบ‡เบเบฒเบ™เบชเบฒเบกเบฒเบ”เป‚เบ—เบซเบฒ kubectl เป„เบ”เป‰เบขเปˆเบฒเบ‡เบ‡เปˆเบฒเบเบ”เบฒเบเบˆเบฒเบเบžเบฒเบเปƒเบ™ plugin. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ‚เบฝเบ™ plugins เบชเบฐเบฅเบฑเบšเบชเบฑเบšเบŠเป‰เบญเบ™เบซเบผเบฒเบเปƒเบ™เบžเบฒเบชเบฒเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบผเปเบเบผเบกเบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡เป‚เบ”เบเปƒเบŠเป‰ เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”เบฅเบนเบเบ„เป‰เบฒ Kubernetes. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบเปเบฒเบฅเบฑเบ‡เปƒเบŠเป‰ Go, เบ—เปˆเบฒเบ™เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰ cli-runtime เบซเปเบชเบฐเบซเบกเบธเบ”, เบ—เบตเปˆเบกเบตเป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ‚เบฝเบ™ plugins kubectl.

เบงเบดเบ—เบตเบเบฒเบ™เปเบšเปˆเบ‡เบ›เบฑเบ™ plugins เบ‚เบญเบ‡เบ—เปˆเบฒเบ™

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ„เบดเบ”เบงเปˆเบฒเบ›เบฅเบฑเบเบญเบดเบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบ•เปเปˆเบœเบนเป‰เบญเบทเปˆเบ™, เบเบฐเบฅเบธเบ™เบฒเปเบšเปˆเบ‡เบ›เบฑเบ™เบกเบฑเบ™เบขเบนเปˆเปƒเบ™ GitHub. เปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเป€เบžเบตเปˆเบกเบžเบงเบเบกเบฑเบ™เปƒเบชเปˆเบซเบปเบงเบ‚เปเป‰ kubectl-plugins.

เบ™เบญเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เบฎเป‰เบญเบ‡เบ‚เปเปƒเบซเป‰ plugin เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบ–เบทเบเป€เบžเบตเปˆเบกเปƒเบชเปˆ เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆ Krew. เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเปˆเบฝเบงเบเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™เป€เบฎเบฑเบ”เบ™เบตเป‰เปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™ เบ„เบฑเบ‡เป€เบเบฑเบš GitHub.

เบ„เปเบฒเบชเบฑเปˆเบ‡เบชเปเบฒเป€เบฅเบฑเบ”

เบ›เบฑเปŠเบเบญเบดเบ™เบšเปเปˆเบฎเบญเบ‡เบฎเบฑเบšเบเบฒเบ™เบ•เบทเปˆเบกเบ‚เปเป‰เบกเบนเบ™เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”. เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เปƒเบชเปˆเบŠเบทเปˆเป€เบ•เบฑเบกเบ‚เบญเบ‡ plugin เปเบฅเบฐเบŠเบทเปˆเป€เบ•เบฑเบกเบ‚เบญเบ‡เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡.

GitHub kubectl repository เบชเปเบฒเบฅเบฑเบšเบŸเบฑเบ‡เบŠเบฑเบ™เบ™เบตเป‰เบกเบต เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเป€เบ›เบตเบ”. เบชเบฐเบ™เบฑเป‰เบ™เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบงเปˆเบฒเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ™เบตเป‰เบˆเบฐเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบšเบฒเบ‡เบ„เบฑเป‰เบ‡เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”.

เป‚เบŠเบโ€‹เบ”เบต!!!

เบกเบตเบซเบเบฑเบ‡เบญเบตเบเปเบ”เปˆเบ—เบตเปˆเบˆเบฐเบญเปˆเบฒเบ™เบเปˆเบฝเบงเบเบฑเบšเบซเบปเบงเบ‚เปเป‰:

  1. เบชเบฒเบกเบฅเบฐเบ”เบฑเบšเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เปƒเบ™ Kubernetes เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบžเบงเบเบกเบฑเบ™เบขเปˆเบฒเบ‡เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš.
  2. Kubernetes เปƒเบ™เบˆเบดเบ”เปƒเบˆเบ‚เบญเบ‡เบเบฒเบ™เบฅเบฐเป€เบกเบตเบ”เบฅเบดเบ‚เบฐเบชเบดเบ”เบเบฑเบšเปเบกเปˆเปเบšเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”.
  3. เบŠเปˆเบญเบ‡เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบ›เบฐเบกเบฒเบ™ Kubernetes เปƒเบ™ Telegram.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™