Kubernetes ã䜿çšããŠããå Žåãkubectl ã¯ããããæããã䜿çšãããŠãŒãã£ãªãã£ã® XNUMX ã€ã§ãã ç¹å®ã®ããŒã«ã®äœ¿çšã«å€ãã®æéãè²»ããå Žåã¯ããã®ããŒã«ãããç 究ããå¹æçãªäœ¿çšæ¹æ³ãåŠã¶ããšãéèŠã§ãã
ããŒã
èè
ã«ãããšããã®èšäºã®ç®æšã¯ãKubernetes ã䜿çšããæ¥åžžã®äœæ¥ãå¹çåããã ãã§ãªãããã楜ããããããšã§ãã
ã¯ããã«: kubectl ãšã¯äœã§ãã
kubectl ãããå¹æçã«äœ¿çšããæ¹æ³ãåŠã¶åã«ãkubectl ãäœã§ãããã©ã®ããã«æ©èœãããã«ã€ããŠåºæ¬çãªç解ãåŸãå¿ èŠããããŸãã
ãŠãŒã¶ãŒã®èŠ³ç¹ããèŠããšãkubectl 㯠Kubernetes æäœãå®è¡ã§ããã³ã³ãããŒã« ããã«ã§ãã
æè¡çã«èšãã°ãkubectl 㯠Kubernetes API ã¯ã©ã€ã¢ã³ãã§ãã
Kubernetes API 㯠HTTP REST API ã§ãã ãã® API ã¯çã® Kubernetes ãŠãŒã¶ãŒ ã€ã³ã¿ãŒãã§ã€ã¹ã§ããããããéããŠå®å šã«å¶åŸ¡ãããŸãã ããã¯ããã¹ãŠã® Kubernetes ãªãã¬ãŒã·ã§ã³ã API ãšã³ããã€ã³ããšããŠå ¬éããããã®ãšã³ããã€ã³ããžã® HTTP ãªã¯ãšã¹ãã䜿çšããŠå®è¡ã§ããããšãæå³ããŸãã
ãããã£ãŠãkubectl ã®äž»ãªä»äºã¯ãKubernetes API ã«å¯Ÿã㊠HTTP ãªã¯ãšã¹ããè¡ãããšã§ãã
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
ãã¹ãŠã® Kubernetes æäœã® API ãšã³ããã€ã³ãã¯ã次ã®å Žæã«ãããŸãã
ãããã£ãŠãäžèšã®ã³ãã³ããå®è¡ãããšãkubectl 㯠HTTP POST ãªã¯ãšã¹ããäžèšã® API ãšã³ããã€ã³ãã«éä¿¡ããŸãã ãã¡ã€ã«å
ã§æå®ãã ReplicaSet å®çŸ© replicaset.yaml
ããªã¯ãšã¹ãã®æ¬æã§éä¿¡ãããŸãã
ããã¯ãKubernetes ã¯ã©ã¹ã¿ãŒãšå¯Ÿè©±ãããã¹ãŠã®ã³ãã³ãã«å¯Ÿã㊠kubectl ãã©ã®ããã«æ©èœãããã§ãã ãããã®ãã¹ãŠã®ã±ãŒã¹ã«ãããŠãkubectl ã¯é©å㪠Kubernetes API ãšã³ããã€ã³ãã«å¯Ÿã㊠HTTP ãªã¯ãšã¹ããè¡ãã ãã§ãã
次ã®ãããªãŠãŒãã£ãªãã£ã䜿çšã㊠Kubernetes ãå®å
šã«ç®¡çã§ããããšã«æ³šæããŠãã ããã curl
HTTP ãªã¯ãšã¹ããæå㧠Kubernetes API ã«éä¿¡ããŸãã Kubectl ã¯åã« Kubernetes API ã®äœ¿çšã容æã«ããã ãã§ãã
ããã¯ãkubectl ãšã¯äœãããããŠãããã©ã®ããã«æ©èœãããã®åºæ¬ã§ãã ãã ããKubernetes API ã«ã€ããŠã¯ããã¹ãŠã® kubectl ãŠãŒã¶ãŒãç¥ã£ãŠããã¹ãããšãä»ã«ããããŸãã Kubernetes ã®å éšäžçãç°¡åã«èŠãŠã¿ãŸãããã
Kubernetes ã®å éšäžç
Kubernetes ã¯ãã¯ã©ã¹ã¿ãŒ ããŒãäžã§åå¥ã®ããã»ã¹ãšããŠå®è¡ãããäžé£ã®ç¬ç«ããã³ã³ããŒãã³ãã§æ§æãããŸãã äžéšã®ã³ã³ããŒãã³ãã¯ãã¹ã¿ãŒ ããŒãã§å®è¡ããããã®ä»ã®ã³ã³ããŒãã³ãã¯ã¯ãŒã«ãŒ ããŒãã§å®è¡ãããåã³ã³ããŒãã³ãã¯ç¬èªã®ç¹å®ã®ã¿ã¹ã¯ãå®è¡ããŸãã
ã¡ã€ã³ ããŒãã®æãéèŠãªã³ã³ããŒãã³ãã¯æ¬¡ã®ãšããã§ãã
- å庫 - ãªãœãŒã¹å®çŸ©ãä¿åããŸã (
éåžžã¯etcdã§ã ). - APIãµãŒã㌠â API ãæäŸããã¹ãã¬ãŒãžã管çããŸãã
- ã³ã³ãããŒã©ãŒãããŒãžã£ãŒ â ãªãœãŒã¹ã®ã¹ããŒã¿ã¹ãä»æ§ã«æºæ ããŠããããšã確èªããŸãã
- ãã©ã â ã¯ãŒã«ãŒããŒãäžã®ããããã¹ã±ãžã¥ãŒã«ããŸãã
ãããŠãã¯ãŒã«ãŒ ããŒãäžã®æãéèŠãªã³ã³ããŒãã³ãã® XNUMX ã€ã次ã«ç€ºããŸãã
- ã¯ãã¬ãã â äœæ¥ããŒãã§ã®ã³ã³ããã®èµ·åã管çããŸãã
ãããã®ã³ã³ããŒãã³ããã©ã®ããã«é£æºããŠæ©èœããããç解ããããã«ãäŸãèŠãŠã¿ãŸãããã
å®äºããã°ããã ãšä»®å®ããŸããã kubectl create -f replicaset.yaml
ããã®åŸãkubectl ã HTTP POST ãªã¯ãšã¹ããè¡ã£ã
ã¯ã©ã¹ã¿ãŒå ã§äœãèµ·ãã£ãŠããã®ã§ãããã?
- ããåŸ
kubectl create -f replicaset.yaml
API ãµãŒããŒã¯ãReplicaSet ãªãœãŒã¹å®çŸ©ãã¹ãã¬ãŒãžã«ä¿åããŸãã - 次ã«ãReplicaSet ã³ã³ãããŒã©ãŒãã³ã³ãããŒã©ãŒ ãããŒãžã£ãŒã§èµ·åãããReplicaSet ãªãœãŒã¹ã®äœæãå€æŽãåé€ãåŠçãããŸãã
- ReplicaSet ã³ã³ãããŒã©ãŒã¯ã(ReplicaSet å®çŸ©ã®ããã ãã³ãã¬ãŒãã«åŸã£ãŠ) å ReplicaSet ã¬ããªã«ã®ãããå®çŸ©ãäœæããã¹ãã¬ãŒãžã«ä¿åããŸãã
- ã¹ã±ãžã¥ãŒã©ãèµ·åããããŸã ã¯ãŒã«ãŒ ããŒãã«å²ãåœãŠãããŠããªããããã远跡ããŸãã
- ã¹ã±ãžã¥ãŒã©ãŒã¯åãããã«é©åãªã¯ãŒã«ãŒ ããŒããéžæãããã®æ å ±ãã¹ãã¢ã®ãããå®çŸ©ã«è¿œå ããŸãã
- ããããå²ãåœãŠãããŠããã¯ãŒã«ãŒ ããŒã㧠Kubelet ãèµ·åããããã®ããŒãã«å²ãåœãŠããããããã远跡ããŸãã
- Kubelet ã¯ã¹ãã¬ãŒãžãããããå®çŸ©ãèªã¿åããDocker ãªã©ã®ã³ã³ãã㌠ã©ã³ã¿ã€ã ã«ããŒãäžã§ã³ã³ãããŒãèµ·åããããã«æ瀺ããŸãã
以äžã¯ãã®èª¬æã®ããã¹ãçã§ãã
ReplicaSet äœæãšã³ããã€ã³ããžã® API ãªã¯ãšã¹ã㯠API ãµãŒããŒã«ãã£ãŠåŠçãããŸãã API ãµãŒããŒã¯ãªã¯ãšã¹ããèªèšŒããReplicaSet ãªãœãŒã¹å®çŸ©ãã¹ãã¬ãŒãžã«ä¿åããŸãã
ãã®ã€ãã³ãã¯ãã³ã³ãããŒã©ãŒ ãããŒãžã£ãŒã®ãµãããã»ã¹ã§ãã ReplicaSet ã³ã³ãããŒã©ãŒãéå§ããŸãã ReplicaSet ã³ã³ãããŒã©ãŒã¯ãã¹ãã¢å ã® ReplicaSet ãªãœãŒã¹ã®äœæãæŽæ°ãåé€ãç£èŠãããããçºçãããšã€ãã³ãéç¥ãåãåããŸãã
ReplicaSet ã³ã³ãããŒã©ãŒã®ä»äºã¯ãå¿ èŠãªæ°ã® ReplicaSet ããããååšããããšã確èªããããšã§ãã ãã®äŸã§ã¯ããŸã ããããååšããªããããReplicaSet ã³ã³ãããŒã©ãŒã¯ãããã®ãããå®çŸ©ã (ReplicaSet å®çŸ©ã®ããã ãã³ãã¬ãŒãã«åŸã£ãŠ) äœæããã¹ãã¬ãŒãžã«ä¿åããŸãã
æ°ãããããã®äœæã¯ãã¯ãŒã«ãŒ ããŒãã«å¯ŸããŠãŸã ã¹ã±ãžã¥ãŒã«ãããŠããªããããå®çŸ©ã远跡ããã¹ã±ãžã¥ãŒã©ãŒã«ãã£ãŠããªã¬ãŒãããŸãã ã¹ã±ãžã¥ãŒã©ã¯ãåãããã«é©åãªã¯ãŒã«ãŒ ããŒããéžæãããªããžããªå ã®ãããå®çŸ©ãæŽæ°ããŸãã
ãã®æç¹ãŸã§ãã¯ã©ã¹ã¿ãŒå ã®ã©ãã«ãã¯ãŒã¯ããŒã ã³ãŒããå®è¡ãããŠããªãã£ãããšã«æ³šæããŠãã ããã ãããŸã§ã«è¡ããããã¹ãŠã®ããš - ããã¯ããã¹ã¿ãŒ ããŒãäžã®ãªããžããªå ã®ãªãœãŒã¹ã®äœæãšæŽæ°ã§ãã
æåŸã®ã€ãã³ã㯠Kubelet ãããªã¬ãŒããã¯ãŒã«ãŒ ããŒãã«ã¹ã±ãžã¥ãŒã«ãããããããç£èŠããŸãã ReplicaSet ããããã€ã³ã¹ããŒã«ãããŠããã¯ãŒã«ãŒ ããŒãã® Kubelet ã¯ãDocker ãªã©ã®ã³ã³ãã ã©ã³ã¿ã€ã ã«ãå¿ èŠãªã³ã³ãã ã€ã¡ãŒãžãããŠã³ããŒãããŠå®è¡ããããã«æ瀺ããå¿ èŠããããŸãã
ãã®æç¹ã§ãReplicaSet ã¢ããªã±ãŒã·ã§ã³ãã€ãã«å®è¡ãããŸãã
Kubernetes API ã®åœ¹å²
åã®äŸã§èŠãããã«ãKubernetes ã³ã³ããŒãã³ã (API ãµãŒããŒãšã¹ãã¬ãŒãžãé€ã) ã¯ãã¹ãã¬ãŒãžå ã®ãªãœãŒã¹ãžã®å€æŽãç£èŠããã¹ãã¬ãŒãžå ã®ãªãœãŒã¹ã«é¢ããæ å ±ãå€æŽããŸãã
ãã¡ããããããã®ã³ã³ããŒãã³ãã¯ã¹ãã¬ãŒãžãšçŽæ¥ããåãããã®ã§ã¯ãªããKubernetes API ãéããŠã®ã¿ããåãããŸãã
次ã®äŸãèããŠã¿ãŸããã:
- ReplicaSet ã³ã³ãããŒã©ãŒã¯ API ãšã³ããã€ã³ãã䜿çšããŸã
ReplicaSet ã®ãªã¹ãã衚瀺ãã ãã©ã¡ãŒã¿ä»ãwatch
ReplicaSet ãªãœãŒã¹ãžã®å€æŽãç£èŠããŸãã - ReplicaSet ã³ã³ãããŒã©ãŒã¯ API ãšã³ããã€ã³ãã䜿çšããŸã
ããããäœæãã (ãããã®äœæ) ããããäœæããŸãã - ã¹ã±ãžã¥ãŒã©ã¯ API ãšã³ããã€ã³ãã䜿çšããŸã
ãããããã (ãããã®ç·šé) ã¯ãéžæããã¯ãŒã«ãŒ ããŒãã«é¢ããæ å ±ã§ããããæŽæ°ããŸãã
ã芧ã®ãšããããã㯠kubectl ãã¢ã¯ã»ã¹ãã API ãšåãã§ãã å éšã³ã³ããŒãã³ããšå€éšãŠãŒã¶ãŒã«åã API ã䜿çšããããšã¯ãKubernetes èšèšã®åºæ¬çãªæŠå¿µã§ãã
ããã§ãKubernetes ãã©ã®ããã«æ©èœããããèŠçŽã§ããŸãã
- ã¹ãã¬ãŒãžã«ã¯ç¶æ ãã€ãŸã Kubernetes ãªãœãŒã¹ãä¿åãããŸãã
- API ãµãŒããŒã¯ãKubernetes API ã®åœ¢åŒã§ã¹ãã¬ãŒãžãžã®ã€ã³ã¿ãŒãã§ã€ã¹ãæäŸããŸãã
- ä»ã®ãã¹ãŠã® Kubernetes ã³ã³ããŒãã³ããšãŠãŒã¶ãŒã¯ãAPI ãéã㊠Kubernetes ç¶æ (ãªãœãŒã¹) ãèªã¿åãã芳å¯ããæäœããŸãã
ãããã®æŠå¿µãç解ãããšãkubectl ãããæ·±ãç解ããæ倧éã«æŽ»çšã§ããããã«ãªããŸãã
次ã«ãkubectl ã䜿çšããŠçç£æ§ãåäžãããã®ã«åœ¹ç«ã€ããã€ãã®å ·äœçãªãã³ããšã³ããèŠãŠã¿ãŸãããã
1. ã³ãã³ãè£å®ã«ããå ¥åã®é«éå
kubectl ã§ããã©ãŒãã³ã¹ãåäžãããããã®æã䟿å©ã§ãããèŠèœãšãããã¡ãªãã¯ããã¯ã® XNUMX ã€ã¯ãã³ãã³ãè£å®ã§ãã
ã³ãã³ãè£å®ã䜿çšãããšãTab ããŒã䜿çšã㊠kubectl ã³ãã³ãã®äžéšãèªåçã«è£å®ã§ããŸãã ããã¯ããªãœãŒã¹åã®ãããªè€éãªãã®ãå«ãããµãã³ãã³ãããªãã·ã§ã³ãåŒæ°ã«å¯ŸããŠæ©èœããŸãã
kubectl ã³ãã³ãè£å®ãã©ã®ããã«æ©èœãããã確èªããŠãã ããã
ã³ãã³ãè£å®ã¯ Bash ã·ã§ã«ãš Zsh ã·ã§ã«ã§æ©èœããŸãã
ã³ãã³ãè£å®ã®ä»çµã¿
ã³ãã³ãè£å®ã¯ãè£å®ã¹ã¯ãªããã䜿çšããŠåäœããã·ã§ã«æ©èœã§ãã æ¡åŒµã¹ã¯ãªããã¯ãç¹å®ã®ã³ãã³ãã®æ¡åŒµã®åäœãå®çŸ©ããã·ã§ã« ã¹ã¯ãªããã§ãã
Kubectl ã¯ã次ã®ã³ãã³ãã䜿çšããŠãBash ããã³ Zsh ã®æ¡åŒµã¹ã¯ãªãããèªåçã«çæããåºåããŸãã
$ kubectl completion bash
ÐлОïŒ
$ kubectl completion zsh
çè«çã«ã¯ãkubectl ãã³ãã³ããè£å®ã§ããããã«ããããã®ã³ãã³ãã®åºåãé©åãªã³ãã³ã ã·ã§ã«ã«æ¥ç¶ããã ãã§ååã§ãã
å®éã«ã¯ãBash (Linux ãš MacOS ã®éããå«ã) ãš Zsh ã§ã¯æ¥ç¶æ¹æ³ãç°ãªããŸãã 以äžã§ã¯ãããããã¹ãŠã®ãªãã·ã§ã³ãèŠãŠãããŸãã
Linux äžã®ããã·ã¥
Bash å®äºã¹ã¯ãªãã㯠bash-completion ããã±ãŒãžã«äŸåããŠãããããæåã«ãããã€ã³ã¹ããŒã«ããå¿ èŠããããŸãã
$ 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 ãã€ã³ã¹ããŒã«ããåŸãkubectl è£å®ã¹ã¯ãªããããã¹ãŠã®ã·ã§ã« ã»ãã·ã§ã³ã§æå¹ã«ãªãããã«ãã¹ãŠãæ§æããå¿ èŠããããŸãã
ãããè¡ã XNUMX ã€ã®æ¹æ³ã¯ã次ã®è¡ããã¡ã€ã«ã«è¿œå ããããšã§ãã ~ / .bashrc
:
source <(kubectl completion bash)
å¥ã®æ¹æ³ã¯ãkubectl æ¡åŒµã¹ã¯ãªããããã£ã¬ã¯ããªã«è¿œå ããããšã§ãã /etc/bash_completion.d
(ååšããªãå Žåã¯äœæããŸã):
$ kubectl completion bash >/etc/bash_completion.d/kubectl
ã«ã¿ãã°å
ã®ãã¹ãŠã®ã¢ããªã³ ã¹ã¯ãªãã /etc/bash_completion.d
bash-completion ã«èªåçã«å«ãŸããŸãã
ã©ã¡ãã®ãªãã·ã§ã³ãåæ§ã«é©çšã§ããŸãã
ã·ã§ã«ãåèµ·åãããšãkubectl ã³ãã³ãè£å®ãæ©èœããããã«ãªããŸãã
MacOS äžã® Bash
MacOS ã§ã¯ãã»ããã¢ããã¯å°ãè€éã§ãã å®éãMacOS ã¯ããã©ã«ã㧠Bash ããŒãžã§ã³ 3.2 ã䜿çšããŠãããkubectl ãªãŒãã³ã³ããªãŒã ã¹ã¯ãªããã«ã¯å°ãªããšã 4.1 ã® Bash ããŒãžã§ã³ãå¿ èŠã§ãããBash 3.2 ã§ã¯æ©èœããŸããã
MacOS ã§å€ãããŒãžã§ã³ã® Bash ã䜿çšãããšãã©ã€ã»ã³ã¹ã®åé¡ãçºçããŸãã Bash ããŒãžã§ã³ 4 㯠GPLv3 ã«åºã¥ããŠã©ã€ã»ã³ã¹ãããŠãããApple ã§ã¯ãµããŒããããŠããŸããã
MacOS 㧠kubectl ãªãŒãã³ã³ããªãŒããæ§æããã«ã¯ãããæ°ããããŒãžã§ã³ã® Bash ãã€ã³ã¹ããŒã«ããå¿
èŠããããŸãã æŽæ°ããã Bash ãããã©ã«ãã®ã·ã§ã«ãšããŠèšå®ããããšãã§ããŸããããã«ãããå°æ¥å€ãã®åé¡ãåé¿ãããŸãã é£ããããšã§ã¯ãããŸããã詳现ã¯èšäºã«èšèŒãããŠããŸãã
ç¶è¡ããåã«ãææ°ããŒãžã§ã³ã® Bash ã䜿çšããŠããããšã確èªããŠãã ãã (åºåã確èªããŠãã ãã) bash --version
).
Bash è£å®ã¹ã¯ãªããã¯ãããžã§ã¯ãã«ãã£ãŠç°ãªããŸã
次ã䜿çšã㊠bash-completion ãã€ã³ã¹ããŒã«ã§ããŸã
$ brew install bash-completion@2
ãã㯠@2
bash-completion ããŒãžã§ã³ 2 ãè¡šããŸããkubectl ãªãŒãã³ã³ããªãŒãã«ã¯ bash-completion v2 ãå¿
èŠã§ãbash-completion v2 ã«ã¯å°ãªããšã Bash ããŒãžã§ã³ 4.1 ãå¿
èŠã§ãã
ã³ãã³ãåºå brew-install
ãã¡ã€ã«ã«è¿œå ããå¿
èŠããããã®ãæå®ããèŠåã»ã¯ã·ã§ã³ãå«ãŸããŠããŸã ~/.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 ãªãŒãã³ã³ããªãŒãããã¹ãŠã®ã»ãã·ã§ã³ã§æå¹ã«ãªã£ãŠããããšã確èªããå¿ èŠããããŸãã
XNUMX ã€ã®æ¹æ³ã¯ã次ã®è¡ã ~/.bashrc
:
source <(kubectl completion bash)
XNUMX çªç®ã®æ¹æ³ã¯ããªãŒãã³ã³ããªãŒã ã¹ã¯ãªããããã©ã«ããŒã«è¿œå ããããšã§ãã /usr/local/etc/bash_completion.d
:
$ kubectl completion bash
>/usr/local/etc/bash_completion.d/kubectl
ãã®æ¹æ³ã¯ãHomebrew ã䜿çšã㊠bash-completion ãã€ã³ã¹ããŒã«ããå Žåã«ã®ã¿æ©èœããŸãã ãã®å Žåãbash-completion ã«ããããã®ãã£ã¬ã¯ããªãããã¹ãŠã®ã¹ã¯ãªãããããŒããããŸãã
ã€ã³ã¹ããŒã«ããå Žå /usr/local/etc/bash_completion.d
ã€ã³ã¹ããŒã«äžã ãã®å Žåãbash-completion ãã€ã³ã¹ããŒã«ãããšããã«ãkubectl ãªãŒãã³ã³ããªãŒããæ©èœãå§ããŸãã
çµæãšããŠããããã®ãªãã·ã§ã³ã¯ãã¹ãŠåçã«ãªããŸãã
Zsh
Zsh ã®ãªãŒãã³ã³ããªãŒã ã¹ã¯ãªããã«ã¯äŸåé¢ä¿ã¯å¿ èŠãããŸããã ã³ãã³ã ã·ã§ã«ãããŒããããšãã«ããããæå¹ã«ããã ãã§ãã
ãããè¡ãã«ã¯ã ~/.zshrc
ãã¡ã€ã«ïŒ
source <(kubectl completion zsh)
ãšã©ãŒãçºçããå Žå not found: compdef
ã·ã§ã«ãåèµ·åããåŸãçµã¿èŸŒã¿é¢æ°ãæå¹ã«ããå¿
èŠããããŸã compdef
ã ãã¡ã€ã«ã®å
é ã«è¿œå ããããšã§æå¹ã«ã§ããŸã ~/.zshrc
次ã®ãšãã
autoload -Uz compinit
compinit
2. ãªãœãŒã¹ä»æ§ãçŽ æ©ã衚瀺ãã
YAML ãªãœãŒã¹å®çŸ©ãäœæãããšãã¯ããããã®ãªãœãŒã¹ã®ãã£ãŒã«ããšãã®æå³ãç解ããŠããå¿ èŠããããŸãã ãã®æ å ±ãæ¢ãå Žæã® XNUMX ã€ã¯ API ãªãã¡ã¬ã³ã¹ã§ããAPI ãªãã¡ã¬ã³ã¹ã«ã¯ããã¹ãŠã®ãªãœãŒã¹ã®å®å šãªä»æ§ãå«ãŸããŠããŸãã
ããããäœããæ€çŽ¢ããå¿
èŠããããã³ã« Web ãã©ãŠã¶ã«åãæ¿ããã®ã¯äžäŸ¿ã§ãã ãããã£ãŠã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
åºåã«ã¯ããããã®ååãå«ã XNUMX ã€ã®åãå«ãŸããŸãã
ãªãã·ã§ã³åŒã¯ãã£ãŒã«ããããããåãéžæããŸãã metadata.name
ã ããã¯ããããã®ååãååãã£ãŒã«ãã§å®çŸ©ãããŠããããã§ãã metadata
ãããã®ãªãœãŒã¹ã®èª¬æã«ãããŸãã 詳现ã«ã€ããŠã¯ã以äžãåç
§ããŠãã ããã 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
ããããªãœãŒã¹ã®ä»æ§ã ãã詳现ãªæ
å ±ã¯åºåã§ç¢ºèªã§ããŸãã kubectl explain pod.spec.nodeName
.
Kubernetes ãªãœãŒã¹ãã£ãŒã«ãã¯å€§æåãšå°æåãåºå¥ãããããšã«æ³šæããŠãã ããã
ä»»æã®ãªãœãŒã¹ ãã£ãŒã«ããåãšããŠè¡šç€ºã§ããŸãã ãªãœãŒã¹ä»æ§ã確èªããä»»æã®ãã£ãŒã«ãã§è©ŠããŠã¿ãŠãã ããã
ãã®åã«ããã£ãŒã«ãéžæåŒã詳ããèŠãŠã¿ãŸãããã
JSONãã¹åŒ
ãªãœãŒã¹ãã£ãŒã«ããéžæããããã®åŒã¯ã以äžã«åºã¥ããŠããŸãã
JSONPath ã¯ãJSON ããã¥ã¡ã³ãããããŒã¿ãååŸããããã®èšèªã§ãã åäžãã£ãŒã«ãã®éžæã¯ãJSONPath ã®æãåçŽãªäœ¿çšäŸã§ãã 圌ã¯ããããæã£ãŠããŸã
Kubectl Explain ã¯ãéãããæ°ã® 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 ãªãœãŒã¹ ãã£ãŒã«ãã®å€ãã¯ãªã¹ãã§ããããã®æŒç®åã䜿çšãããšããããã®ãªã¹ãã®ã¡ã³ããŒãéžæã§ããŸãã ãªã¹ãã®ãã¹ãŠã®èŠçŽ ãéžæããããã«ã[*] ãªã©ã®ã¯ã€ã«ãã«ãŒããšãšãã«äœ¿çšãããããšããããããŸãã
ã¢ããªã±ãŒã·ã§ã³äŸ
åºåã«ä»»æã®ãã£ãŒã«ããŸãã¯ãªãœãŒã¹ ãã£ãŒã«ãã®çµã¿åããã衚瀺ã§ãããããã«ã¹ã¿ã ååºå圢åŒã䜿çšããå¯èœæ§ã¯ç¡éã§ãã ããã§ã¯ãµã³ãã« ã¢ããªãããã€ã玹ä»ããŸããããèªèº«ã§èªç±ã«èª¿ã¹ãŠãèªåã«åã£ãã¢ããªã±ãŒã·ã§ã³ãèŠã€ããŠãã ããã
- ãããã®ã³ã³ãã㌠ã€ã¡ãŒãžã衚瀺ããŸãã
$ 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
ãã®ã³ãã³ãã¯ãåãããã®ã³ã³ãã㌠ã€ã¡ãŒãžåã衚瀺ããŸãã
ãããã«ã¯è€æ°ã®ã³ã³ãããŒãå«ããããšãã§ããããšã«æ³šæããŠãã ããããã®å Žåãã€ã¡ãŒãžåã¯ã«ã³ãã§åºåãã㊠XNUMX è¡ã«è¡šç€ºãããŸãã
- ããŒã ã¢ãã€ã©ããªã㣠ãŸãŒã³ã®è¡šç€º:
$ 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
ãã®ã³ãã³ãã¯ãã¯ã©ã¹ã¿ãŒããããªã㯠ã¯ã©ãŠãã§ãã¹ããããŠããå Žåã«äŸ¿å©ã§ãã åããŒãã®å¯çšæ§ãŸãŒã³ã衚瀺ãããŸãã
ã¢ãã€ã©ããªãã£ãŒãŸãŒã³ã¯ãã¬ããªã±ãŒã·ã§ã³ãŸãŒã³ãå°ççé åã«å¶éããã¯ã©ãŠãã®æŠå¿µã§ãã
åããŒãã®ã¢ãã€ã©ããªãã£ãŒãŸãŒã³ã¯ãç¹å¥ãªã©ãã«ãéããŠååŸãããŸãã
ã ã¯ã©ã¹ã¿ãŒããããªã㯠ã¯ã©ãŠãã§å®è¡ãããŠããå Žåããã®ã©ãã«ã¯èªåçã«äœæãããåããŒãã®å¯çšæ§ãŸãŒã³ã®ååãå ¥åãããŸãã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 ã³ãã³ãã«ã©ã®åå空éã䜿çšããããæ瀺ããæ¹æ³ãå¿ èŠã§ããããšãæå³ããŸãã
ãã®ç« ã§ã¯ããã®ä»çµã¿ãšå¹æçã«æ©èœãããæ¹æ³ã«ã€ããŠèª¬æããŸãã
KUBECONFIG ç°å¢å€æ°ã«è€æ°ã® kubeconfig ãã¡ã€ã«ããªã¹ããããŠããå Žåãããããšã«æ³šæããŠãã ããã ãã®å Žåãããããã¹ãŠã®ãã¡ã€ã«ã¯å®è¡æã« XNUMX ã€ã®å
±éæ§æã«çµåãããŸãã ãã©ã¡ãŒã¿ãŒãæå®ã㊠kubectl ãå®è¡ããããšã§ãããã©ã«ãã® kubeconfig ãã¡ã€ã«ãå€æŽããããšãã§ããŸãã --kubeconfig
ã èŠã
kubeconfig ãã¡ã€ã«
kubeconfig ãã¡ã€ã«ã«æ£ç¢ºã«äœãå«ãŸããŠããããèŠãŠã¿ãŸãããã
ã芧ã®ãšãããkubeconfig ãã¡ã€ã«ã«ã¯äžé£ã®ã³ã³ããã¹ããå«ãŸããŠããŸãã ã³ã³ããã¹ã㯠XNUMX ã€ã®èŠçŽ ã§æ§æãããŸãã
- ã¯ã©ã¹ã¿ãŒ â ã¯ã©ã¹ã¿ãŒãµãŒããŒã® API URLã
- ãŠãŒã¶ãŒ - ã¯ã©ã¹ã¿ãŒå ã®ãŠãŒã¶ãŒèªèšŒè³æ Œæ å ±ã
- åå空é - ã¯ã©ã¹ã¿ãŒã«åå ãããšãã«äœ¿çšãããåå空éã
å®éã«ã¯ãkubeconfig ã§ã¯ã©ã¹ã¿ãŒããšã« XNUMX ã€ã®ã³ã³ããã¹ãã䜿çšããããšããããããŸãã ãã ãããŠãŒã¶ãŒãŸãã¯åå空éããšã«åºå¥ããŠãã¯ã©ã¹ã¿ãŒããšã«è€æ°ã®ã³ã³ããã¹ããæã€ããšãã§ããŸãã ãã ãããã®ãã«ãã³ã³ããã¹ãæ§æã¯äžè¬çã§ã¯ãªããããéåžžã¯ã¯ã©ã¹ã¿ãŒãšã³ã³ããã¹ãã®éã« XNUMX 察 XNUMX ã®ãããã³ã°ãååšããŸãã
åžžã«ãã³ã³ããã¹ãã® XNUMX ã€ãææ°ã§ãã
kubectl ãæ§æãã¡ã€ã«ãèªã¿åããšãã¯ãåžžã«çŸåšã®ã³ã³ããã¹ãããæ
å ±ãååŸããŸãã äžèšã®äŸã§ã¯ãkubectl 㯠Hare ã¯ã©ã¹ã¿ãŒã«æ¥ç¶ããŸãã
ãããã£ãŠãå¥ã®ã¯ã©ã¹ã¿ãŒã«åãæ¿ããã«ã¯ãkubeconfig ãã¡ã€ã«å ã®çŸåšã®ã³ã³ããã¹ããå€æŽããå¿ èŠããããŸãã
ããã§ãkubectl ã Fox ã¯ã©ã¹ã¿ãŒã«æ¥ç¶ããŸãã
åãã¯ã©ã¹ã¿ãŒå ã®å¥ã®åå空éã«åãæ¿ããã«ã¯ãçŸåšã®ã³ã³ããã¹ãã®åå空éèŠçŽ ã®å€ãå€æŽããå¿ èŠããããŸãã
äžèšã®äŸã§ã¯ãkubectl 㯠Fox ã¯ã©ã¹ã¿ãŒã® Prod åå空éã䜿çšããŸã (以å㯠Test åå空éãèšå®ãããŠããŸãã)ã
kubectl ã«ã¯ãªãã·ã§ã³ãçšæãããŠããããšã«æ³šæããŠãã ãã --cluster
, --user
, --namespace
О --context
ããã«ãããkubeconfig ã§ã®èšå®ã«é¢ä¿ãªããåã
ã®èŠçŽ ãšçŸåšã®ã³ã³ããã¹ãèªäœãäžæžãã§ããŸãã èŠãŠ kubectl options
.
çè«çã«ã¯ãkubeconfig ã®èšå®ãæåã§å€æŽã§ããŸãã ã§ãäžäŸ¿ã§ããã ãããã®æäœãç°¡çŽ åããããã«ããã©ã¡ãŒã¿ãèªåçã«å€æŽã§ããããŸããŸãªãŠãŒãã£ãªãã£ãçšæãããŠããŸãã
kubectxã䜿çšãã
ã¯ã©ã¹ã¿ãŒãšåå空éãåãæ¿ããããã®éåžžã«äººæ°ã®ãããŠãŒãã£ãªãã£ã
ãŠãŒãã£ãªãã£ã¯ã³ãã³ããæäŸããŸã kubectx
О kubens
çŸåšã®ã³ã³ããã¹ããšåå空éãããããå€æŽããŸãã
åè¿°ããããã«ãã¯ã©ã¹ã¿ãŒããšã«ã³ã³ããã¹ãã XNUMX ã€ãããªãå ŽåãçŸåšã®ã³ã³ããã¹ããå€æŽããããšã¯ã¯ã©ã¹ã¿ãŒãå€æŽããããšãæå³ããŸãã
ãããã®ã³ãã³ãã®å®è¡äŸã次ã«ç€ºããŸãã
åºæ¬çã«ããããã®ã³ãã³ãã¯ãäžã§èª¬æããããã« kubeconfig ãã¡ã€ã«ãç·šéããã ãã§ãã
ã€ã³ã¹ããŒã«ãã kubectx
ã®æ瀺ã«åŸããŸãã
ã©ã¡ãã®ã³ãã³ããã³ã³ããã¹ãåãšåå空éåã®ãªãŒãã³ã³ããªãŒãããµããŒãããŠãããããããããå®å
šã«å
¥åããå¿
èŠããªããªããŸãã ãªãŒãã³ã³ããªãŒãã®èšå®æé
ããäžã€ã®äŸ¿å©ãªæ©èœ kubectx
ã§ã kubectx
ã fzf ãæäŸãã察話åã®ç¡ææ€çŽ¢ã€ã³ã¿ãŒãã§ã€ã¹ãä»ããŠãã³ã³ããã¹ããšåå空éã察話çã«éžæã§ããŸãã
ã·ã§ã«ãšã€ãªã¢ã¹ã®äœ¿çš
kubectl ã«ã¯ãã®ããã®ã³ãã³ããçšæãããŠãããããçŸåšã®ã³ã³ããã¹ããšåå空éãå€æŽããããã®å¥ã®ããŒã«ã¯å¿
èŠãããŸããã ã¯ããããŒã kubectl config
kubeconfig ãã¡ã€ã«ãç·šéããããã®ãµãã³ãã³ããæäŸããŸãã
ããã§ã¯ãã®ãã¡ã®ããã€ãã¯ã次ã®ãšããã§ãã
kubectl config get-contexts
: ãã¹ãŠã®ã³ã³ããã¹ãã衚瀺ããŸããkubectl config current-context
: çŸåšã®ã³ã³ããã¹ããååŸããŸããkubectl config use-context
: çŸåšã®ã³ã³ããã¹ããå€æŽããŸããkubectl config set-context
: ã³ã³ããã¹ãèŠçŽ ãå€æŽããŸãã
ãã ãããããã®ã³ãã³ããçŽæ¥äœ¿çšããã®ã¯é·ããããããŸã䟿å©ã§ã¯ãããŸããã å®è¡ãç°¡åãªã·ã§ã« ãšã€ãªã¢ã¹ãäœæã§ããŸãã
ãããã®ã³ãã³ãã«åºã¥ããŠãkubectx ãšåæ§ã®æ©èœãæäŸãããšã€ãªã¢ã¹ã®ã»ãããäœæããŸããã ããã§å®éã®åäœãèŠãããšãã§ããŸãã
ãšã€ãªã¢ã¹ã¯ fzf ã䜿çšããŠå¯Ÿè©±åã®èªç±æ€çŽ¢ã€ã³ã¿ãŒãã§ã€ã¹ (kubectx ã®å¯Ÿè©±ã¢ãŒããªã©) ãæäŸããããšã«æ³šæããŠãã ããã ããã¯ãå¿
èŠãããããšãæå³ããŸã
ãšã€ãªã¢ã¹èªäœã®å®çŸ©ã¯æ¬¡ã®ãšããã§ãã
# ÐПлÑÑОÑÑ ÑекÑÑОй кПМÑекÑÑ
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
ããŒã ã¹ããŒã¹ãå€æŽããŸãã
ãããè¡ã XNUMX ã€ã®ãã©ã°ã€ã³ãäœæããŸããã
ãã©ã°ã€ã³ã®åäœã¯ãåã®ã»ã¯ã·ã§ã³ã®ãšã€ãªã¢ã¹ã«åºã¥ããŠããŸãã
ä»çµã¿ã¯æ¬¡ã®ãšããã§ãã
ãã©ã°ã€ã³ã¯ fzf ã䜿çšããŠãã€ã³ã¿ã©ã¯ãã£ããªç¡ææ€çŽ¢ã€ã³ã¿ãŒãã§ã€ã¹ (kubectx ã®ã€ã³ã¿ã©ã¯ãã£ã ã¢ãŒããªã©) ãæäŸããããšã«æ³šæããŠãã ããã ããã¯ãå¿
èŠãããããšãæå³ããŸã
ãã©ã°ã€ã³ãã€ã³ã¹ããŒã«ããã«ã¯ã次ã®ååã®ã·ã§ã« ã¹ã¯ãªãããããŠã³ããŒãããå¿
èŠããããŸãã chmod +x
ã ãã®åŸããã«äœ¿ããããã«ãªããŸã kubectl ctx
О kubectl ns
.
5. ãªãŒããšã€ãªã¢ã¹ã§å ¥åãæžãã
ã·ã§ã« ãšã€ãªã¢ã¹ã¯å
¥åãé«éåããè¯ãæ¹æ³ã§ãã ãããžã§ã¯ã
800 ãã®ãšã€ãªã¢ã¹ãã©ããã£ãŠèŠããŠããã®ããšçåã«æããããããããŸããã ãã ãããããã¯ä»¥äžã«ç€ºãç°¡åãªã¹ããŒã ã«åŸã£ãŠæ§ç¯ãããŠããããããã¹ãŠãèŠããå¿ èŠã¯ãããŸããã
ããšãã°ã次ã®ããã«
- kgpooyaml - kubectl ãããã® oyaml ãååŸãã
- ksysgsvcw â kubectl -n kube-system get svc w
- ksysrmcm -kubectl -n kube-system rm cm
- kgdepallsl - kubectl ã®ãããã€ã¡ã³ãããã¹ãŠååŸããŸã sl
ã芧ã®ãšããããšã€ãªã¢ã¹ã¯ã³ã³ããŒãã³ãã§æ§æãããŠãããããããã kubectl ã³ãã³ãã®ç¹å®ã®èŠçŽ ãè¡šããŸãã åãšã€ãªã¢ã¹ã«ã¯ãåºæ¬ã³ãã³ããæäœãããã³ãªãœãŒã¹çšã® XNUMX ã€ã®ã³ã³ããŒãã³ããšããã©ã¡ãŒã¿çšã®è€æ°ã®ã³ã³ããŒãã³ããå«ããããšãã§ããŸãã äžã®å³ã«åŸã£ãŠããããã®ã³ã³ããŒãã³ããå·Šããå³ã«ãå®è£ ãããã ãã§ãã
çŸåšã®è©³çŽ°ãªå³ã¯æ¬¡ã®å Žæã«ãããŸãã
ããšãã°ããšã€ãªã¢ã¹ kgpooyamlall ã¯æ¬¡ã®ã³ãã³ããšåçã§ãã kubectl get pods -o yaml --all-namespaces
.
ãªãã·ã§ã³ã®çžå¯Ÿçãªé åºã¯éèŠã§ã¯ãããŸãã: ã³ãã³ã kgpooyamlall
ã³ãã³ããšåçã§ã kgpoalloyaml
.
ãã¹ãŠã®ã³ã³ããŒãã³ãããšã€ãªã¢ã¹ãšããŠäœ¿çšããå¿
èŠã¯ãããŸããã äŸãã° k
, kg
, klo
, ksys
, kgpo
ã䜿çšã§ããŸãã ããã«ãã³ãã³ã ã©ã€ã³ã§ãšã€ãªã¢ã¹ãšéåžžã®ã³ãã³ããŸãã¯ãªãã·ã§ã³ãçµã¿åãããããšãã§ããŸãã
ããšãã°ã次ã®ããã«
- 代ããã«
kubectl proxy
ããªãã¯æžããk proxy
. - 代ããã«
kubectl get roles
ããªãã¯æžããkg roles
(çŸåšãRoles ãªãœãŒã¹ã®ãšã€ãªã¢ã¹ã¯ãããŸãã)ã - ç¹å®ã®ãããã®ããŒã¿ãååŸããã«ã¯ã次ã®ã³ãã³ãã䜿çšã§ããŸãã
kgpo my-pod â kubectl get pod my-pod
.
äžéšã®ãšã€ãªã¢ã¹ã«ã¯ã³ãã³ã ã©ã€ã³åŒæ°ãå¿
èŠã§ããããšã«æ³šæããŠãã ããã ããšãã°ããšã€ãªã¢ã¹ kgpol
æ段 kubectl get pods -l
ã ãªãã·ã§ã³ -l
åŒæ° - ã©ãã«æå®ãå¿
èŠã§ãã ãšã€ãªã¢ã¹ã䜿çšãããšæ¬¡ã®ããã«ãªããŸã kgpol app=ui
.
äžéšã®ãšã€ãªã¢ã¹ã«ã¯åŒæ°ãå¿ èŠãªããããšã€ãªã¢ã¹ aãfãl ãæåŸã«äœ¿çšããå¿ èŠããããŸãã
äžè¬ã«ããã®ã¹ããŒã ãäžåºŠç解ãããšãå®è¡ããã³ãã³ããããšã€ãªã¢ã¹ãçŽæçã«æŽŸçã§ããå ¥åæéãå€§å¹ ã«ç¯çŽã§ããŸãã
ã€ã³ã¹ããŒã«
kubectl-aliases ãã€ã³ã¹ããŒã«ããã«ã¯ããã¡ã€ã«ãããŠã³ããŒãããå¿
èŠããããŸã ~/.bashrc
ãŸã㯠~/.zshrc
:
source ~/.kubectl_aliases
ãªãŒãã³ã³ããªãŒã
åã«è¿°ã¹ãããã«ãã³ãã³ã ã©ã€ã³ã§ãšã€ãªã¢ã¹ã«åèªãè¿œå ããããšããããããŸãã äŸãã°ïŒ
$ kgpooyaml test-pod-d4b77b989
kubectl ã³ãã³ãè£å®ã䜿çšããŠããå Žåã¯ããããããªãœãŒã¹åãªã©ã«ãªãŒãã³ã³ããªãŒãã䜿çšããããšãããã§ãããã ãããããšã€ãªã¢ã¹ã䜿çšãããŠããå Žåã«ãããå®è¡ã§ããã§ãããã?
ãªãŒãã³ã³ããªãŒããæ©èœããªãå Žåããšã€ãªã¢ã¹ã®å©ç¹ã®äžéšã倱ããããããããã¯éåžžã«éèŠãªè³ªåã§ãã
çãã¯ã䜿çšããŠããã·ã§ã«ã«ãã£ãŠç°ãªããŸãã
- Zsh ã®å Žåããšã€ãªã¢ã¹è£å®ã¯ããã«æ©èœããŸãã
- æ®å¿µãªãããBash ã®å ŽåããªãŒãã³ã³ããªãŒããæ©èœãããã«ã¯ããã€ãã®äœæ¥ãå¿ èŠã§ãã
Bash ã§ãšã€ãªã¢ã¹ã®ãªãŒãã³ã³ããªãŒããæå¹ã«ãã
Bash ã®åé¡ã¯ã(ããšãã°ãZsh ã®ããã«) ãšã€ãªã¢ã¹ãåç §ããã³ãã³ãã§ã¯ãªãããšã€ãªã¢ã¹ã (Tab ããŒãæŒããã³ã«) å®äºããããšããããšã§ãã 800 åãã¹ãŠã®ãšã€ãªã¢ã¹ã«å¯Ÿããè£å®ã¹ã¯ãªããããªããããèªåè£å®ã¯æ©èœããŸããã
ãããžã§ã¯ã
以äžã§ã¯ãæåã« complete-alias ãã€ã³ã¹ããŒã«ããæ¹æ³ã説æãã次ã«ãã¹ãŠã® kubectl ãšã€ãªã¢ã¹ã®è£å®ãæå¹ã«ããããã«ãããæ§æããæ¹æ³ã説æããŸãã
å®å šãªãšã€ãªã¢ã¹ã®ã€ã³ã¹ããŒã«
ãŸã第äžã«ãå®å
šãªãšã€ãªã¢ã¹ã¯æ¬¡ã®ãã®ã«äŸåããŸãã
MacOS ãŠãŒã¶ãŒãžã®éèŠãªæ³šæäºé
泚: kubectl ãªãŒãã³ã³ããªãŒã ã¹ã¯ãªãããšåæ§ã«ãcomplete-alias 㯠MacOS ã®ããã©ã«ãã§ãã Bash 3.2 ã§ã¯æ©èœããŸããã ç¹ã«ãcomplete-alias 㯠bash-completion v2 ã«äŸåããŸã (brew install bash-completion@2
)ãããã«ã¯å°ãªããšã Bash 4.1 ãå¿
èŠã§ãã ã€ãŸããMacOS ã§å®å
šãšã€ãªã¢ã¹ã䜿çšããã«ã¯ãæ°ããããŒãžã§ã³ã® Bash ãã€ã³ã¹ããŒã«ããå¿
èŠããããŸãã
ã¹ã¯ãªãããããŠã³ããŒãããå¿
èŠããããŸã ~/.bashrc
:
source ~/bash_completion.sh
ã·ã§ã«ãåèµ·åãããšãcomplete-alias ãå®å šã«ã€ã³ã¹ããŒã«ãããŸãã
kubectl ãšã€ãªã¢ã¹ã®ãªãŒãã³ã³ããªãŒããæå¹ã«ãã
æè¡çã«å®å
šãªãšã€ãªã¢ã¹ã¯ã©ãããŒé¢æ°ãæäŸããŸã _complete_alias
ã ãã®é¢æ°ã¯ãšã€ãªã¢ã¹ããã§ãã¯ãããšã€ãªã¢ã¹ ã³ãã³ãã®å®äºãã³ããè¿ããŸãã
é¢æ°ãç¹å®ã®ãšã€ãªã¢ã¹ã«é¢é£ä»ããã«ã¯ãçµã¿èŸŒã¿ã® Bash ã¡ã«ããºã ã䜿çšããå¿
èŠããããŸãã _complete_alias
ãšã€ãªã¢ã¹è£å®æ©èœãšããŠã
äŸãšããŠãkubectl ã³ãã³ããè¡šããšã€ãªã¢ã¹ k ãèããŠã¿ãŸãããã ã€ã³ã¹ããŒã«ãã _complete_alias
ãã®ãšã€ãªã¢ã¹ã®è£å®æ©èœãšããŠã次ã®ã³ãã³ããå®è¡ããå¿
èŠããããŸãã
$ complete -F _complete_alias k
ãã®çµæããšã€ãªã¢ã¹ k ããªãŒãã³ã³ããªãŒããããã³ã«ãé¢æ°ãåŒã³åºãããŸãã _complete_alias
ããšã€ãªã¢ã¹ããã§ãã¯ããã³ãã³ãã®å®äºãã³ããè¿ããŸãã kubectl
.
XNUMX çªç®ã®äŸãšããŠããšã€ãªã¢ã¹ãèããŠã¿ãŸãããã kg
ãæå³ããŸã kubectl get
:
$ complete -F _complete_alias kg
åã®äŸãšåæ§ã«ãkg ããªãŒãã³ã³ããªãŒããããšãkg ã®å Žåãšåãè£å®ãã³ããåŸãããŸãã kubectl get
.
ã·ã¹ãã äžã®ä»»æã®ãšã€ãªã¢ã¹ã« complete-alias ã䜿çšã§ããããšã«æ³šæããŠãã ããã
ãããã£ãŠããã¹ãŠã® 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 ã®æ¡åŒµ
ããå§ãŸã
ããªãã粟éããŠããå Žå
ãã®ç« ã§ã¯ããã©ã°ã€ã³ãã€ã³ã¹ããŒã«ããæ¹æ³ããã©ã°ã€ã³ãèŠã€ããå Žæãããã³ç¬èªã®ãã©ã°ã€ã³ãäœæããæ¹æ³ã«ã€ããŠèª¬æããŸãã
ãã©ã°ã€ã³ã®ã€ã³ã¹ããŒã«
Kubectl ãã©ã°ã€ã³ã¯ã次ã®ãããªååã®åçŽãªå®è¡å¯èœãã¡ã€ã«ãšããŠé
åžãããŸãã kubectl-x
ã ãã¬ãã£ãã¯ã¹ kubectl-
ãå¿
èŠã§ããããã®åŸã«ãã©ã°ã€ã³ãåŒã³åºãããšãã§ããæ°ãã kubectl ãµãã³ãã³ããç¶ããŸãã
ããšãã°ãhello ãã©ã°ã€ã³ã¯æ¬¡ã®ãã¡ã€ã«ãšããŠé
åžãããŸãã kubectl-hello
.
ãã©ã°ã€ã³ãã€ã³ã¹ããŒã«ããã«ã¯ããã¡ã€ã«ãã³ããŒããå¿
èŠããããŸã kubectl-x
PATH å
ã®ä»»æã®ãã£ã¬ã¯ããªã«ã³ããŒãããããå®è¡å¯èœã«ããŸããããšãã°ã chmod +x
ã ãã®çŽåŸã«æ¬¡ã®ããã«ãã©ã°ã€ã³ãåŒã³åºãããšãã§ããŸã kubectl x
.
次ã®ã³ãã³ãã䜿çšãããšãã·ã¹ãã ã«çŸåšã€ã³ã¹ããŒã«ãããŠãããã¹ãŠã®ãã©ã°ã€ã³ãäžèŠ§è¡šç€ºã§ããŸãã
$ kubectl plugin list
ãã®ã³ãã³ãã¯ãåãååã®ãã©ã°ã€ã³ãè€æ°ããå ŽåããŸãã¯å®è¡äžå¯èœãªãã©ã°ã€ã³ ãã¡ã€ã«ãããå Žåã«ãèŠåã衚瀺ããŸãã
Krew ã䜿çšãããã©ã°ã€ã³ã®æ€çŽ¢ãšã€ã³ã¹ããŒã«
Kubectl ãã©ã°ã€ã³ã¯ããœãããŠã§ã¢ ããã±ãŒãžãšåæ§ã«å ±æãŸãã¯åå©çšã§ããŸãã ããããä»ã®äººãå ±æããŠãããã©ââã°ã€ã³ã¯ã©ãã§èŠã€ããããã®ã§ãããã?
Krew ã¯ãéžæããŠã€ã³ã¹ããŒã«ã§ãã kubectl ãã©ã°ã€ã³ã®ãªã¹ãã§ãã åæã«ãKrew 㯠kubectl ã®ãã©ã°ã€ã³ã§ããããŸãã
ããã¯ãKrew ã®ã€ã³ã¹ããŒã«ã¯åºæ¬çã«ä»ã® kubectl ãã©ã°ã€ã³ã®ã€ã³ã¹ããŒã«ãšåãããã«æ©èœããããšãæå³ããŸãã 詳现ãªæé ã«ã€ããŠã¯ã次ã®ãµã€ããåç
§ããŠãã ããã
æãéèŠãª 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 ã¯è¥ããããžã§ã¯ãã§ãçŸåšã¯
GitHub ã»ã¯ã·ã§ã³ãåç
§ããããšããå§ãããŸã
ç¬èªã®ãã©ã°ã€ã³ãäœæãã
ããªãã¯èªåã§ã§ããŸã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 ãç°¡åã«åŒã³åºãããšãã§ãããšããå©ç¹ããããŸãã ãã ãã次ã䜿çšãããšãå®éã®ããã°ã©ãã³ã°èšèªã§ããè€éãªãã©ã°ã€ã³ãäœæã§ããŸãã
ãã©ã°ã€ã³ãå ±æããæ¹æ³
ããªãã®ãã©ã°ã€ã³ãä»ã®äººã«ãšã£ãŠåœ¹ç«ã€ãšæãããå Žåã¯ããæ°è»œã« GitHub ã§å
±æããŠãã ããã å¿
ããããã¯ã«è¿œå ããŠãã ãã
ãã©ã°ã€ã³ã®è¿œå ããªã¯ãšã¹ãããããšãã§ããŸã
ã³ãã³ãã®å®äº
ãã©ã°ã€ã³ã¯çŸåšãªãŒãã³ã³ããªãŒãããµããŒãããŠããŸããã ã€ãŸãããã©ã°ã€ã³ã®å®å šåãšåŒæ°ã®å®å šåãå ¥åããå¿ èŠããããŸãã
ãã®é¢æ°ã® GitHub kubectl ãªããžããªã«ã¯ã
幞é!!!
ãã®ãããã¯ã«é¢ããŠä»ã«äœãèªãã¹ãã:
Kubernetes ã® XNUMX ã€ã®ã¬ãã«ã®èªåã¹ã±ãŒãªã³ã°ãšããããå¹æçã«äœ¿çšããæ¹æ³ .èäœæš©äŸµå®³ã®ç²Ÿç¥ãåãã Kubernetes ãšå®è£ çšã®ãã³ãã¬ãŒã .Telegram ã® Kubernetes ã«é¢ããç§ãã¡ã®ãã£ã³ãã« .
åºæïŒ habr.com