ααααα·αααΎα’αααααααΎααΆαααΆαα½α Kubernetes ααα kubectl αααα ααααΆα§αααααααααΎααααΆαααα½ααααα’αααααααΎα
αααΎααααα»αα α αΎααα
αααααΆαααα’αααα
αααΆααααα
αααΎααααα»αααΆαααααΎααΆαααΆαα½αα§αααααααΆααααΆαααα½α ααΆα
αααΆαααΎααααΈαα·ααααΆααΆα±ααααΆαααα’ αα·ααααααΈααααααααΎααααΆααααΆα±ααααΆαααααα·αααααΆαα
αααα»αααΆαααΆα
αααααΆαα’ααααα·αααα αααααααααα’αααααααΊααΎααααΈααααΎα±ααααΆαααΆααααα
αΆαααααααααα’αααααΆαα½α Kubernetes αα·αααααΉαααααΆαααααα·αααααΆαααα»ααααααα ααα»αααααααααΆααααΈαααΆααααααααα!
ααα ααααΈααααΎαα ααΎ kubectl ααΆα’αααΈ?
αα»ααααα’αααα’αΆα αααααααΎ kubectl α±ααααΆααααααΆαααααα·αααααΆα α’αααααααΌααααααΉαααΆααΌαααααΆαα’αααΈα’αααΈ αα·ααααααααααΆααααΎαααΆαα
ααΆαααααααααααα’αααααααΎ kubectl ααΊααΆααααΆαααααααΆαααα’αα»ααααΆαα±ααα’αααα’αα»ααααααααα·ααααα·ααΆα Kubernetes α
αα·ααΆαααΆααα αα ααααα kubectl ααΊααΆαααΆαααΈαααααα Kubernetes API α
Kubernetes API ααΊααΆ HTTP REST APIα API αααααΊααΆα ααα»α αααααΆααα’αααααααΎ Kubernetes αα·α αααααΆαααααααααΆααααΌαααΆααααααααααααΆαααααα»αα αααααΆααααααΆααΆααααααα·ααααα·ααΆα Kubernetes ααααΌαααΆαααΆααααααΆαααΆα ααα»α αααα αα API α αΎαα’αΆα ααααΌαααΆαααααΎα‘αΎααααααααΎ HTTP αα ααΆααα ααα»α αααα αααααα
ααΌα αααα ααΆαααΆαααααΆαααααα kubectl ααΊααααΎααααΎ HTTP αα ααΆαα Kubernetes APIα
Kubernetes ααΊααΆαααααααααααααααα·αααααΆαααΆαααααα»αα αααααΆααααααΆααΆαααααΆααααΆαααΆααααααααα»αααααααΆα α αΎαααααα·ααααα·ααΆα Kubernetes ααΆααα’ααααΊααΆααααα·ααααα·ααΆα CRUD α
α’ααααααα·ααααα»αααΆααααααααααααΆαααααα»ααααα Kubernetes αααααΆααααααααααααααΆαααΆααααα α αΎα Kubernetes ααααααααααΈα’αααΈαααααααΌαααααΎαααααα’ααααΎααααΆαααΆααα αα α»ααααααααααααΆαα αααααΆααα ααα»ααααα α―αααΆαααα Kubernetes API ααααΌαααΆααααα αααΆαααααΈααααααααααααΆαααΆαα½αααΉαααααα·ααααα·ααΆααααααΆααααααααααααα½αααα
ααΌααααα‘ααααΎαα§ααΆα ααααα½αα.
α
αΌααα·ααΆαααΆα’αααα
αααααααΎαααααΆα ReplicaSet α ααΎααααΈβααααΎβααΌα
αααα α’αααβαααααΆβα’αααΈβαααα»αβα
ααααβαααα»αβα―αααΆαβααΆαβααααα replicaset.yaml
αααααΆααααααααΎαααΆαααΆααααααααΆα
$ kubectl create -f replicaset.yaml
ααΆααΉααααααΎαααααΆα ReplicaSet α ααα»ααααααΎααΆαα’αααΈααΎαα‘αΎααα ααΈαααααααΆα?
Kubernetes ααΆαααααα·ααααα·ααΆααααααΎα ReplicaSetα ααΌα ααααα·ααααα·ααΆαααααααααααα ααΆααααΌαααΆαααΆααααααΆαααΆα ααα»α αααα αα API α α ααα»α αααα αα API ααΆααααΆαααααααΆααααααα·ααααα·ααΆααααααΎααα ααΌα αααα
POST /apis/apps/v1/namespaces/{namespace}/replicasets
α
ααα»α
αααα
αα API αααααΆααααααα·ααααα·ααΆα Kubernetes ααΆααα’ααα’αΆα
ααααΆααα
ααΌα
αααα αα
αααα’αααααααα·ααααα·ααΆααααααααΆααΆαααΎ 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 ααΆααααα»ααααααΆαααΆαα―αααΆααααααααααΎαααΆαααΆααααΎαααΆαααΆα ααααα‘αααα ααΎααααΆααα αααααα αααΆαααΆαα»ααααααααΎαααΆαααΎααααΆαααα ααααααααα ααΎααααΆαααααααα αααΆαααΆαα»ααΈαα½ααα’αα»ααααααΆααα·α αα ααΆααααΆαααααααααα½αα
αααααΊααΆαααΆαααΆαα»ααααΆαααααα»ααα ααΎααααΆααααααΆαααα
- ααααΆαα - αααααΆαα»ααα·αααααααααΆα (
ααΆααααααΆααΆααΆ αα ). - αααΆαααΈααα API - ααααα API αα·ααααααααααααΆααααα»αα
- α’ααααααααααααα§ααααααααααΆ - ααΆααΆααΆααααΆαααΆαααααΆαα’αα»αααααΆαααααααααΆααααΆααα
- α’ααααααα αααΆααα·ααΆα - αααααααΆααα·ααΆα pods αα ααΎααααΆααααααααα
α αΎααααααΊααΆαααΆαααΆαα»ααααΆαααααα»ααα½ααα ααΎααααΆααααααααα
- ααΌααα‘αα - αααααααααααΆαααΎαααααΎαααΆααα»αααΊααααα ααΎααααΆααααααααα»αααααΎαααΆαα
ααΎααααΈαααααΈααααααααααΆαααΆαα»ααΆαααααααααΎαααΆαααΆαα½αααααΆ ααΌααααα‘ααααΎαα§ααΆα ααααα½αα
α§αααΆααΆα’αααααΎαααααΆααααα
αα kubectl create -f replicaset.yaml
αααααΆααααΈααα kubectl ααΆαααααΎααααΎ HTTP POST αα
ααΎααΆαα’αααΈααΎαα‘αΎααα αααα»αα ααααα?
- αααααΆααααΈααααΎ
kubectl create -f replicaset.yaml
αααΆαααΈααα API αααααΆαα»ααα·αααααααααΆα ReplicaSet ααααα’ααααα αααα»αααΆααααα»αα - αααααΆαααα α§ααααααααααΆ ReplicaSet ααααΌαααΆαααΎαααααΎαααΆααα αααα»ααααααα·ααΈαααααααααα§ααααααααααΆ ααααααααααααααΆααααααΎα ααΆααααααα αα·αααΆααα»αααααΆα ReplicaSetα
- α§ααααααααααΆ ReplicaSet αααααΎααα·ααααα pod αααααΆααααΆαα αααα ReplicaSet ααΈαα½αα (αααααΆαααααΌ pod αααα»ααα·ααααα ReplicaSet) α αΎααααααΆαα»ααα½αααΆαα αααα»ααααααααααα»αα
- αααααα·ααΈααααααααααααΌαααΆαααΎαααααΎαααΆα αααααΆαααΆαααααααααα·αααΆααααααΌαααΆαα αΆααα αααα ααααΆααααααααααΆαα½αα
- α’αααααααααααααααΎαααΎαααααΆααααααααααααααααααααααΆααααααΈαα½αα α αΎαααααααααααααΆαααααα αα·ααααααααα αααα»αα αΆαα
- αα ααΎααααΆαααααααααααααααααΌαααΆαα αΆααααΆαα Kubelet ααααΌαααΆαααΎαααααΎαααΆα ααΆααΆαααΆααααααααααΆαααααααα ααααΆαααααα
- Kubelet α’αΆααα·ααααα pod ααΈααΆααααα»α αα·αααααΆαααααααααααΎαααΆααα»αααΊααα ααΌα ααΆ Docker ααΎααααΈααΎαααααΎαααΆααα»αααΊααααα ααΎααααΆααα
ααΆααααααααΊααΆααααα’αααααααααΆααααααΆαααα
ααααΎ API αα ααΆααα ααα»α αααα ααααααΆααααααΎα ReplicaSet ααααΌαααΆαααααΎαααΆαααααααΆαααΈααα API α αααΆαααΈααα API αααααααααΆααααααΎ αα·ααααααΆαα»ααα·αααααααααΆα ReplicaSet αα αααα»αααΆααααα»αα
ααααΉαααα·ααΆααααααα αΆααααααΎαα§ααααααααααΆ ReplicaSet αααααΆααααΎαααΆααααααααααααα·ααΈαααααααααα§ααααααααααΆα α§ααααααααααΆ ReplicaSet αααα½ααα·αα·αααααΆααααααΎα ααααΎαα αα α»ααααααααΆα αα·αααΆααα»αααααΆα ReplicaSet αα αααα»αα αΆα α αΎαααα½αααΆαααΆαααΌαααααΉαα’αααΈααααΉαααα·ααΆααααα ααααααααΆααΎαα‘αΎαα
ααΆαααΆααααα ReplicaSet controller ααΊααΎααααΈααΆααΆααΆα ααα½α ReplicaSet pods αααααααΌαααΆαα αααα»αα§ααΆα αααααααααΎα αα·αααΆααααΆα pods αα α‘αΎααα ααΌα ααααα§ααααααααααΆ ReplicaSet αααααΎααα·ααααα pod ααΆααααα (αααααΆαααααΌ pods αααα»ααα·ααααα ReplicaSet) α αΎααααααΆαα»αααΆαα αααα»ααααααααααα»αα
ααΆααααααΎαααααααααΈααααΌαααΆαααααα‘αΎαααααααααα·ααΈαααααααααααααΆαααΆααα·αααααααααααα·αααΆαααααααααααααααΆααααααΆααααααααα αααααα·ααΈααααααααααααΎαααΎαααααΆααααααααααααααααααααααΆααααααΈαα½αα α αΎαααααΎαα αα α»ααααααααΆααα·ααααααααα αααα»αααααΆααα
α αααΆαααΆαα αΌααααααα ααα»α ααα ααααΆαααΌαααααα»αααΆαααΆαααΆαα½ααααα»αααααΎαααΆααα ααααααααΆαα½ααα αααα»αα ααααααααααα α’αααΈβαααααβαααΆαβαααβααΆαβααααΎβααβαααβαααβαααα - αααααΊααΆααΆααααααΎα αα·αααααΎαα αα α»ααααααααΆαααααΆααα αααα»αααααΆαααα ααΎααααΆααααα
ααααΉαααα·ααΆαααα α»ααααααααααα±ααααΆα Kubelets ααααααα½ααα·αα·ααα pods αααααααααααααΆααααααΆαααααααααααααα½αααα Kubelet αα node ααααααααααααααα·ααΈ ReplicaSet pods ααααα’αααααααΌαααΆαααα‘αΎαααααΌαααααααΆααα»αααΊαααααααΎαααΆαααΌα ααΆ Docker ααΎααααΈααΆαααααΌαααΆααα»αααΊααααααααααΌαααΆα α αΎαααααΎαααΆαααΆα
αα αααααα αααααα·ααΈ ReplicaSet ααααα’ααααααα»αααααΎαααΆαα αΎα!
αα½ααΆααΈαααα Kubernetes API
ααΌα αααα’αααααΆαααΎααα αααα»αα§ααΆα ααααα»α αααΆαααΆαα» Kubernetes (ααΎαααααααααΆαααΈααα API αα·αααΆααααα»α) ααΎαααΆαααααΆααααααΌαααααΆααα αααα»ααααααααααα»α αα·αααααΆααααααΌαααααααΆαα’αααΈααααΆααα αααα»αααΆααααα»αα
ααΆααΆααα·αααΆαα αααΆαααΆαα»ααΆααααααα·αααΆαα’ααααααααααΆαα½αα§ααααααααα»ααααααααΆαααα ααα»ααααααΆαααα Kubernetes API ααα»αααααα
ααΌααα·α αΆαααΆα§ααΆα αααααΆαααααα:
- α§ααααααααααΆ ReplicaSet ααααΎα
ααα»α
αααα
αα API
αααααΈαααααα·ααΈα αααα ααΆαα½ααααΆαααΆααααααwatch
ααΎααααΈααΆαααΆαααΆαααααΆααααααΌαααααΆα ReplicaSet α - α§ααααααααααΆ ReplicaSet ααααΎα
ααα»α
αααα
αα API
αααααΎα Pod (αααααΎααα) ααΎααααΈαααααΎαααα - αααααα·ααΈααααααααααααΎα
ααα»α
αααα
αα API
ααααααααα (ααααααα½ααα) ααΎααααΈααααΎαα αα α»ααααααααΆαααααααΆαα½αααΉαααααααΆαα’αααΈααααΆαααααααααααααΆαααααΎαααΎαα
ααΌα αααα’αααα’αΆα ααΎα αααααΊααΆ API ααΌα ααααΆααα kubectl α αΌαααααΎα ααΆαααααΎααααΆαα API ααΌα ααααΆαααααΆαααααΆαααΆαααΆααααα»α αα·αα’αααααααΎααααΆααααΆααααα ααΊααΆαααα·αααΆααΌαααααΆααα αααα»αααΆααα ααΆ Kubernetes α
α₯α‘αΌααααααΎαα’αΆα ααααααααΈααααααα Kubernetes ααααΎαααΆαα
- αααααααααα»ααααα»ααα·αααααα αααααΊααααΆα Kubernetes α
- αααΆαααΈααα API αααααα ααα»α αααααΆαααα ααΉααααααααααα»ααααα»ααααααααα Kubernetes API α
- αααΆαααΆαα» Kubernetes ααααααααααΆααα’αα αα·αα’αααααααΎααααΆααα’αΆα αααααα αα·ααααα αααααΆαααΆα Kubernetes (ααααΆα) ααΆαααα API α
ααΆαααΉαααΈααααααα·αααΆαααααααΉααα½αα’αααα±αααααααΈ kubectl ααΆαααααααααΎα αα·αααα½αααΆαα’αααααααααααα αααΎααααα»αααΈααΆα
α₯α‘αΌαααα ααΌααααα‘ααααΎααααααΉα αα·ααααα·α ααΆααααΆαααα½αα ααα½α αααααΉααα½ααααααΎαααα·αααΆαααααα’αααααΆαα½α kubectlα
1. αααααΎαααααΏαααΆααααα αΌααααααααΎααΆααααααααΆααααααααΆ
αα αα ααααααα½ααααα»αα ααααααΆααααααααααααα»α ααα»ααααααΆααΏααααααΌαααΆαααααΎααααα αα αα ααααααααααΆαααααααα’ααΆαα’αα»ααααααΆαα½α kubectl ααΊααΆααααααααΆααααααααΆα
ααΆααααααααΆααααααααΆα’αα»ααααΆαα±ααα’αααααααααααααααααΆααααααααΆ kubectl αααααααααααααααα·αααααααΎααααΆααα α»α αααα ααΆααααΎαααΆααααααΆααααΆααααααααΆαα αααααΎα αα·αα’αΆαα»ααααα αα½αααΆααα’αααΈαα½αααααααα»αααααΆαααΌα ααΆαααααααααΆαα
ααΌαααΎαααΈαααααααααΆααααααααΆααααααααΆ kubectl ααααΎαααΆαα
ααΆααααα
ααααΆααααααααΆααααΎαααΆααααααΆααααα Bash αα·α Zsh α
αααααααααΆααααααααΆααααααααΆααααΎαααΆα
ααΆααααααααΆααααααααΆααΊααΆαα»αααΆαααααααααααΎαααΆααααααααΎααααααΈααααααα ααααααΈααααααααααααααΊααΆααααααΈααααααααααααα₯αα·ααΆααααααααααααααααααααΆααααΆααααααααΆααΆααααΆαααα½αα
Kubectl αααααΎα αα·ααααα ααααααααΈαααααααααααααααααααααααααααα·αααααΆαα Bash αα·α Zsh αααααααΎααΆααααααααΆααΆααααααα
$ kubectl completion bash
α¬:
$ kubectl completion zsh
ααΆαααααΉααααΈ ααΆαααααααααΆααααΎααααΈααααΆααααααααααααΆααααααααΆααΆααααααα αααααΆααααααααΆααααααααα ααΌα αααα kubectl α’αΆα αααααααΆααααααααΆααΆαα
αα αααα»αααΆαα’αα»αααα αα·ααΈααΆααααααααααΆααααΊαα»αααααΆαααααΆαα Bash (αα½αααΆααααΆααα»αααααΆαααΆα Linux αα·α MacOS) αα·α Zsh α ααΆαααααααααααΎαααΉααα·αα·αααααΎααααααΎαααΆααα’αααααα
Bash αα ααΎααΈαα»α
ααααααΈααααα αα Bash α’αΆαααααααΎαααα ααααΆαααααα bash ααΌα ααααα’αααααααΌαααα‘αΎαααΆααΆαα»ααα·αα
$ sudo apt-get install bash-completion
α¬:
$ yum install bash-completion
α’αααα’αΆα ααΆαααααααΆαααα ααααααΌαααΆαααα‘αΎαααααααααααααααααΎααΆααααααααΆααΆααααααα
$ type _init_completion
ααααα·αααΎααΆα
ααααΌααα»αααΆαααα αααααΆαααααα bash ααααΌαααΆαααα‘αΎααααΆαααααΉαααααΌαα ααααα·αααΎααΆααααααααΆαααααααα α»α "αααα·αααΎα" α’αααααααΌααααααααααααΆααααΆαααααααα
α―αααΆαααααα’αααα ~ / .bashrc
:
$ source /usr/share/bash-completion/bash_completion
ααΎααΆα
αΆαααΆα
αααΎααααΈαααααααααααΆααααααα
α―αααΆα ~ / .bashrc
α¬αα·αα’αΆαααααααΎαααααα·ααΈααααααααααααα
αααααα’αααααααΆααααα‘αΎα bash-completion α αααααΊα
αΆαααΆα
ααααααΆαα APT ααα»αααααα·αααααααααΆαα YUM ααα
αααααΆααααΈααα‘αΎα bash-completion α’αααααααΌαααααααα ααΆααααααααα’αααΈααααααααΆαααΎααααΈα±ααααααααΈααααα αα kubectl ααααΌαααΆαααΎααα αααα»ααααααααααΆααα’ααα
αα·ααΈβαα½αβααΎααααΈβααααΎβααΌα
ααααβααΊβααααΌαβααααααβαααααΆααβααΆααααααβαα
βα―αααΆα ~ / .bashrc
:
source <(kubectl completion bash)
αα·ααΈαα½ααααααΊααααΌαααααααααααααΈαααααααααααα kubectl αα
αα /etc/bash_completion.d
(αααααΎαααΆααααα·αααΎααΆαα·αααΆα)α
$ kubectl completion bash >/etc/bash_completion.d/kubectl
ααααααΈαααααααααΆααα’αααα
αααα»αααΆααΆα‘α»α /etc/bash_completion.d
ααααΌαααΆααα½ααααα
αΌααααααααααααααααα·αα
αααα»αααΆαααααα bash α
αααααΎαααΆααααΈαα’αΆα α’αα»ααααααΆαααΌα ααααΆα
αααααΆααααΈα αΆααααααΎααααα‘αΎααα·α ααΆααααα ααααΆααααααααΆ kubectl ααΉαααααΎαααΆαα
Bash αα ααΎ MacOS
αα ααΎ MacOS ααΆαααα‘αΎαααΆαααΆααααα»αααααΆαααααα·α α ααΆααα·αααΊααΆααΆαααααΆαααΎα MacOS ααααΎ Bash αααα 3.2 α αΎαααααααΈαααΆααααααααααααααααααα· kubectl ααΆαααΆααααα Bash αααΆαα αα ααΆαα 4.1 α αΎααα·αααααΎαααΆααααα»α Bash 3.2 ααα
ααΆαβαααα αΆβα’αΆααααΆαααααβαααβααΆααααβααΉαβααΆαβααααΎβααααβα α½αβααααβαααα Bash αα βααΎ MacOSα Bash αααα 4 ααΆαα’αΆααααΆαααααααααα GPLv3 ααααα·αααααΌαααΆαααΆααααααα Apple α
ααΎααααΈααααααα
ααΆααααααααααΆαααααααααααααααααααααα· kubectl αα
ααΎ MacOS α’αααααααΌαααα‘αΎαααααααααΈαααα Bash α α’αααααα’αΆα
ααααα Bash αααααΆαα’αΆαααααααΆαααααααΆαααΎαααααα’ααα αααααΉααα½αααααααααα’αααααΈαααα αΆααΆα
αααΎαααΆαααα’ααΆααα ααΆαα·ααα·ααΆααα ααααααΆααααα’α·αααααΌαααΆααααααα±αααα
αααα»αα’ααααα "
αα»αααααααα ααααΌαααααΆααααΆα’ααααααα»αααααΎααααααααΈαααα Bash (αα·αα·αααααΎααααααα 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
ααΆαααααα Caveats ααααααααΆααααΈα’αααΈαααααααΌααααααααα
α―αααΆα ~/.bash_profile
:
export BASH_COMPLETION_COMPAT_DIR=/usr/local/etc/bash_completion.d
[[ -r "/usr/local/etc/profile.d/bash_completion.sh" ]] && .
"/usr/local/etc/profile.d/bash_completion.sh"
ααααααΆαααΆααααα αααα»αααΌαααααΆαα±αααααααααααααΆααααΆααααααα·αα±αα ~/.bash_profile
αα·ααααα»αα ~/.bashrc
. αααα»αααααΈααα ααΆαααααααααααααααααααααα·ααΉαααΆααα·αααααΉααααα
αααα»αααααα»ααααααα ααα»ααααααααΆααα
αααα»ααααααΆααααααααΆαααααα»ααΆααααααα
αααααΆααααΈα αΆααααααΎααααααΆααααααααΆα‘αΎααα·α α’αααα’αΆα αααααααααΆααααΆαααα‘αΎαααααΉαααααΌααααααααΎααΆααααααααΆααΆααααααα
$ type _init_completion
ααααα·αααΎα’αααααΎααα»αααΆαααααα αααα»ααααααα αααα’αααΈαααΆααα’ααααααΌαααΆαααααααα ααΆααααααααααααΉαααααΌαα
α₯α‘αΌααααααΎαααααΌαααΆααΆααΆααΆαααααααααααααααααααααα· kubectl ααααΌαααΆαααΎααα αααα»αααααααΆααα’ααα
αα·ααΈαα½αααΊααααΌααααααααααααΆααααΆαααααααα
ααααα’αααα ~/.bashrc
:
source <(kubectl completion bash)
αα·ααΈααΈααΈαααΊααααΌαααααααααααααΈααααααααααααααααααα·αα
ααα―αααΆα /usr/local/etc/bash_completion.d
:
$ kubectl completion bash
>/usr/local/etc/bash_completion.d/kubectl
αα·ααΈααΆααααααααααΉαααααΎαααΆαααΆααα»αααααΆααα’αααααα‘αΎα bash-completion αααααααΎ Homebrew α αααα»αααααΈααα bash-completion αααα»αααααααΈαααΆααα’ααααΈαααααα
ααααα·αααΎα’αααααΆαααα‘αΎα /usr/local/etc/bash_completion.d
ααα‘α»ααααααα‘αΎαα αααα»αααααΈααα ααΆααααααααααααααααααα· kubectl ααΉαα
αΆααααααΎαααααΎαααΆαααααΆαααα
ααααααα’αααααα‘αΎα bash-completionα
ααΆαααααααααααΎαααΆααα’αααααααΊααααΌαα
Zsh
ααααααΈαααααααααααααααααααααα·αααααΆαα Zsh αα·ααααααΌαα±ααααΆαααΆαα’αΆαααααααΆαα½αααα α’αααΈαααα’αααααααΌαααααΎααΊααΎααα½αααΆαα αααα’ααααααα»ααααααΆααααααααΆα
α’αααβα’αΆα
βααααΎβααΆβααΆαβαααβααααααβαααααΆααβαα
βααΆααβααααβα’αααα ~/.zshrc
α―αααΆαα
source <(kubectl completion zsh)
ααααα·αααΎα’αααααα½αααΆαααα α»α not found: compdef
αααααΆααααΈα
αΆααααααΎααααααααα’αααα‘αΎααα·α α’αααααααΌαααΎααα»αααΆααααααααΆααααααΆαα½α compdef
. α’αααα’αΆα
ααΎαααΆαααααααααααΆαα
ααΎαα―αααΆαααααα’αααα ~/.zshrc
ααΌα
ααΆαααααα:
autoload -Uz compinit
compinit
2. ααΎααααΆααα ααααΌαααααααααΆααααΆααααααααΆα
αα αααα’ααααααααΎααα·αααααααααΆα YAML α’αααααααΌαααΉαααΈααΆα αα·αα’ααααααααααααΆαααααΆααααααΆαααΆαααααα αααααααα½αααΎααααΈαααααααααααααΆααααααΊαα αααα»αα―αααΆαααα API αααααΆααααααααα·ααααααααααααααΆααααααΆαααΆααα’ααα
ααααααΆαααΆααααα ααΆαααααΌααα
αααααα·ααΈαα»αααααΆαα’ααΈαααΊαα·αααΆααααααααα’αααααααΌαααΆααααααααα’αααΈαα½αααΊααΆαααΆααα’αΆαααα’α½αα ααΌα
αααα kubectl αααααααΆααααααααΆ kubectl explain
ααααααα αΆαααΈααααααααΆααααΆααααααααΆαααΆααα’αααα
αααα»αααααΆααΈαααααα’αααα
ααααααααΆααααααααΆααΆαααΌα ααΆααααααα
$ kubectl explain resource[.field]...
ααΆααααααααΆααΉααααα ααααΆααααααΆααααααααΆα α¬ααΆααααααΆαααααΎα ααααααΆαααααααα αΆαααΊααΌα ααααΆααααα·ααα ααΉαα’αααΈαααααΆααα αααα»αααααα ααααΆα API α
ααΆαααααΆαααΎα kubectl explain
αααα αΆαααααααα·αααΈαα½αααααΆαααΆαααααα»αααααΆαα
ααΎαααΆααΎααΆααΎααα
ααΌα
α’αααΈ
α’αααα’αΆα
αααα αΆααααααΆαααΆααααΌα ααααα·αααΎα’ααααααααααααααΎα --recursive
:
$ kubectl explain deployment.spec --recursive
ααααα·αααΎα’ααααα·αααΉαα αααΆααααΆααααΆαααΆαααααααΌαααΆα α’αααα’αΆα αααα αΆααα½αααΆααΆααα’αααααααααΎααΆααααααααΆααΆααααααα
$ kubectl api-resources
ααΆααααααααΆααααααα αΆααααααααααΆααααα»ααααααααα α»αα
αα α§. deployments
αααα½αα±ααα deployment
. α§ααΆα αααααΆαααα αΆααααααααααΈ deploy
αααααΆααααααΆαααΆααααααααααΆαααΆα αα»αααΆααααα’αααΈααΆααα»αααααΆααΆαααααα αααααΎαααΆαααααααααΆααα’αααααααΊααααΌααααααΆαα kubectlα αααααΊα’αααα’αΆα
ααααΎααΆαα½ααααα½αααΆαααααΆαα kubectl explain
.
ααΆααααααααΆααΆααααααααΆααα’ααααΊααααΌαα
$ kubectl explain deployments.spec
# ΠΈΠ»ΠΈ
$ kubectl explain deployment.spec
# ΠΈΠ»ΠΈ
$ kubectl explain deploy.spec
3. ααααΎαααααααααααααα½αααααααΆαααααα½α
ααααααααααααααΆααααααααΆααααΆαααΎα kubectl get
:
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
engine-544b6b6467-22qr6 1/1 Running 0 78d
engine-544b6b6467-lw5t8 1/1 Running 0 78d
engine-544b6b6467-tvgmg 1/1 Running 0 78d
web-ui-6db964458-8pdw4 1/1 Running 0 78d
αααααααααααΆααααα½α ααα»ααααααΆααΆαααααααΆαα ααα½ααααααα ααΎαααααααααα ααΉααααααααα·αααααααααΆααααααα ααΆαααααΆααα½αα ααα½αααα»ααααααααααααΌαααΆααααα αΆααα ααΈαααα
αααα»αααααΈααα α’αααα’αΆα ααααΎαααααααααααααα½αααααααΆαααααα½αα ααΆα’αα»ααααΆαα±ααα’ααααααααααΆααΎαα·ααααααααΆαααααααΌααααα ααα α’αααα’αΆα αααα αΆαααΆαααααΆαααΆαα½αααΆαα½αααααΆα ααααα‘ααα
ααΆαααααΎααααΆααααααααααααΆαααααα½αααααΌαααΆαααααααααααααΎαααααΎαα
-o custom-columns=<header>:<jsonpath>[,<header>:<jsonpath>]...
α’αααα’αΆα
ααααααα½αααααααααααΈαα½ααααΆααΌ <header>:<jsonpath>
αααααΆαααααα <header>
ααΊααΆααααααα½ααα αα·α <jsonpath>
- ααααααααααααααααΆαααααΆαα
αααααΎαα§ααΆα αααααΆαααααα½αα
$ kubectl get pods -o custom-columns='NAME:metadata.name'
NAME
engine-544b6b6467-22qr6
engine-544b6b6467-lw5t8
engine-544b6b6467-tvgmg
web-ui-6db964458-8pdw4
ααααααβααΆαβαα½αβααβαα½αβαααβααΆαβαααααβααααβααα
αααααααααααΎα ααααΎαααΎαααααααα ααΈααΆα metadata.name
. αααααΊαααααΆαααααααααααα pod ααααΌαααΆαααααααα
αααα»αααΆααααααααΌα metadata
αα
αααα»αααΆααα·αααααΆααααΆαααααααα ααααααΆααααα’α·αααααααα’αΆα
ααααΆααα
αααα»α kubectl explain pod.metadata.name
.
α₯α‘αΌαβααΌαβαα·ααΆαβααΆβα’αααβα ααβααααααβαα½αβααβααααααβαα½αβαα βαααααα α§ααΆα αααβαααα αΆαβααααΆααβααΈαα½ααβαααα»αβααααΎαααΆαα ααΎααααΈααααΎααΌα αααα α’αααααααΆααααα’αΆα ααααααααΆααααααΆαααα½ααααααααααα αααααΎααα½αααααααΆαααααα½αα
$ kubectl get pods
-o custom-columns='NAME:metadata.name,NODE:spec.nodeName'
NAME NODE
engine-544b6b6467-22qr6 ip-10-0-80-67.ec2.internal
engine-544b6b6467-lw5t8 ip-10-0-36-80.ec2.internal
engine-544b6b6467-tvgmg ip-10-0-118-34.ec2.internal
web-ui-6db964458-8pdw4 ip-10-0-118-34.ec2.internal
ααααααααααΎαααΎααααααααααΆααααΈ spec.nodeName
- αα
ααααααααααααΌαααΆαα
αΆααααΆαααα
ααααΆαα αααααααααααΆααααΌαααΆαααααααα
αααα»αααΆα spec.nodeName
ααΆααααααΆααααααΆα pod α ααααααΆααααα’α·αααααααα’αΆα
ααααΌαααΆαααααΎααα
αααα»ααααααα kubectl explain pod.spec.nodeName
.
ααΌαα αααΆαααΆααΆαααααΆα Kubernetes ααΊαααααΆααα’ααααααΌα ααα
α’αααα’αΆα ααΎαααΆαααααΆαααΆαα½αααΆαα½αααα ααααΆααβααβαα·αα·αααβααΎαβααΆαβαααααΆααβααααΆαβα αΎαβααΆαααααβααΆβααΆαα½αβααΉαβααΆαβααΆβαα½αβαααβα’αααβα αΌαα α·αααα
ααα»ααααααΆααααΌα ααΌααα·αα·αααααΎαα±ααααΆαααααα·ααααααΌαααααααααααΎαααΎαααΆαα
αααααα JSONPath
αααααααααααΆααααΆαααααΎαααΎαααΆαααααΆαααΊααα’ααααΎ
JSONPath ααΊααΆααΆααΆαααααΆααααΆααααα·ααααααααΈα―αααΆα 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 ααΆα αααΎαααΊααΆαααααΈ α αΎαααααα·ααααα·αααααα’αα»ααααΆαα±ααα’αααααααΎαααΎααααΆαα·ααααααααΈααΆαααααα ααΆααααΌαααΆαααααααΎααΆααΉαααΆααααΆαα½ααα½α’αααααααα½αααΌα ααΆ [*] ααΎααααΈααααΎαααΎαααΆαα»ααΆααα’αααααααααΈαα½αα
α§ααΆα ααααααααααα·ααΈ
ααααααΆααααααΆααααΆαααααΎααααΆαααααααααααααααα½αααααααΆαααααα½αααΊααααΆαααΈαααα αααα αααααα’αααα’αΆα αααα αΆαααΆαααΆαα½α α¬ααΆααα½ααααα αΌαααααΆααααΆαααααΆααα αααα»αααααααα αααβααΆβαααααα·ααΈβααααΌβαα½αβα ααα½α ααα»ααααβααΆαβα’αΆααααααβααααΈβαααα»αβααΆαβαααααβααβαα½αααΆβαααβαααα½αβα―α α αΎαβαααααβααβαααααα·ααΈβαααβααααΎαααΆαβαααααΆααβα’αααα
- αααα αΆαααΌαααΆααα»ααααααΆααααα
$ 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
ααΆααααααααΆααααααα αΆααααααααΌαααΆααα»αααΊααααααααΆααααααΈαα½ααα
ααΌαα αα αΆαααΆααα’αΆα ααΆααα»αααΆα αααΎα αααααΆαααααααααααΌαααΆαααΉαααααΌαααΆααααα αΆααα ααΎαααααΆαααα½α ααααααααααααααααΆαααααα
- αααα αΆαααααααααααΆαααααΆααα
$ kubectl get nodes -o custom-columns='NAME:metadata.name,ZONE:metadata.labels.failure-domain.beta.kubernetes.io/zone' NAME ZONE ip-10-0-118-34.ec2.internal us-east-1b ip-10-0-36-80.ec2.internal us-east-1a ip-10-0-80-67.ec2.internal us-east-1b
ααΆααααααααΆαααααΆαααααααααααααα·αααΎα αααααααααα’αααααααΌαααΆααααα αααα αααα»ααααααΆααΆαααα ααΆαααα αΆαααααααααααΆααααααΆααααααΆααααΈαα½ααα
Availability zone ααΊααΆαααα·αααααααααααααααααα αααααα αααααααΌαα·ααΆααααααα½αα
ααααααααααΆααααααΆααααααΆααααΈαα½ααααααΌαααΆαααα½αααΆααααααααΆααα·ααα -
. ααααα·αααΎα ααααααααα»αααααΎαααΆααααα»ααααααΆααΆααα ααααΆααααααααΌαααΆααααααΎααααααααααααααααα· αα·ααααααααααααααααααααααααΆααααααΆααααααΆααααΈαα½αααfailure-domain.beta.kubernetes.io/zone
ααααΆααα·ααααααΆαααααααααΆααααααΆααααααΆα Kubernetes αα ααΌα ααααα’αααααΉααα·ααααααααααααααΆαα’αααΈαα½αααΆαα αααα»ααααααα
ααΆαααααΆα API . ααααααΆαααΆααααα αα½αααα’αΆα ααααΌαααΆαααααΎαααΎα (ααΌα ααΆααααΆααααααααα) ααααα·αααΎα’αααααααΎαα»αααααααΆαα’αααΈααααΆαααααα»ααααααα YAML α¬ JSONα$ kubectl get nodes -o yaml # ΠΈΠ»ΠΈ $ kubectl get nodes -o json
αααααΊααΆαα·ααΈααααα’αα½αααΎααααΈααααααααααααααα’αααΈααααΆα ααααααααΈααΎααΆααααααΆααα’αααΈααααΆααα·ααααΆα
4. ααΆααααα½αααααΌααααΆαα ααααα αα·αα αααααααααα
αα αααααα kubectl ααααΎααααΎαα ααΆαα Kubernetes API ααααΌαααΆα’αΆαα―αααΆα kubeconfig ααΎααααΈααα½αααΆααααΆαααΆααααααα αΆαααΆα αααΆααα’αααααααΆααααΆααααααΆααα
ααΆαααααΆαααΎα α―αααΆα kubeconfig ααΊ ~/.kube/config
. ααΆααααααΆα―αααΆααααααααΌαααΆααααααΎα α¬ααααΎαα
αα
α»ααααααααΆααααααΆααααααααΆαα·αααα
αα αααα’αααααααΎααΆαααΆαα½αα αααααα αααΎα α―αααΆα kubeconfig ααααα’αααααΆαααΆαααααααααααΆααααααΆαααα αααααα αααααααΆαααααα α’αααααααΌαααΆααα·ααΈαα½αααΎααααΈααααΆααααΆααααααααΆ kubectl ααΆα ααααααααα’ααααααα»αααααΎααΆαααΆαα½αα
αα αααα»αα ααααααα½α α’αααα’αΆα αααααΎαα ααααααααααα αααΎαβααααααααα ααααααα·αααα·ααα αααα»αα αααααααΌαααααα Kubectl ααααααααααααααα αααααααΌαααααΎαααααα’ααααΎα―αααΆα kubeconfig α αααααΆααααααΆα’αααααααααΌαααΆααα·ααΈαα½αααΎααααΈααααΆααααΆααααααααΆ kubectl ααΌαα’αααΈααα namespace ααΎααααΈααααΎααΆαααΆαα½αα
αα αααα»αααααΌαααα ααΎαααΉαααααααααΈαααααααααΆααααΎαααΆα αα·αααααααααΎα±ααααΆααααΎαααΆαααααααααααααα·αααααΆαα
α
αααΆαααΆα’αααα’αΆα
ααΆαα―αααΆα kubeconfig ααΆα
αααΎααααααΆαααΆααααααΈαα
αααα»αα’αααααα·ααααΆα KUBECONFIG α αααα»αβααααΈβααα α―αααΆαβααΆααβα’ααβαααβααΉαβααααΌαβααΆαβαα½αβαααα
αΌαβαααα»αβααΆαβαααααβαα
ααΆααααααααβααΌαα
βαα½αβαα
βαααβααααΎαααΆαα α’αααααα’αΆα
ααααΆααααααΌαα―αααΆα kubeconfig ααααΆαααΎααααααααΎαααΆα kubectl ααΆαα½ααααΆαααΆαααααα --kubeconfig
. ααΎα
α―αααΆα kubeconfig
αααααΎαααΆααΎα―αααΆα kubeconfig ααΆαα’αααΈααααα
ααΌα
αααα’αααα’αΆα
ααΎα α―αααΆα kubeconfig ααΆααααα»αααα·ααα ααα·ααααΆαααΆαα»ααΈα
- α ααααα β API URL αααααααΆαααΈαααα αααααα
- α’αααααααΎααααΆαα - α’ααααααααΆααααααΆααααΆααααααααααΆααα’αααααααΎααααΆαααα αααα»αα αααααα
- Namespace - α αααααααααααααααααΎαα αααα αΌααα½αα αααααα
αα αααα»αααΆαα’αα»αααα αα½αααα αααΎαααααααΎααα·αααα½ααααα»ααα½αα ααααααααα»α kubeconfig αααααα½αααα ααααααΆαααΆααααα α’αααα’αΆα ααΆαααα·ααα αααΎααααα»ααα½αα ααααα ααααα»αααααΆαααα’αααααααΎααααΆαα α¬α ααααααααααα αααααΆαααΆαααΆααααα ααΆαααααααα ααΆαααααααααα α»ααα·αααααααΊαα·αααααααΆαα ααΌα ααααααΆααααααΆααΆαααΆαααΌααααααΈααΈαα½ααα αα½ααααΆαα ααααα αα·αααα·ααα
αα αααααΆαα½α ααα·αααα½ααααα»αα ααααααα·ααααΊαα αα α»ααααααα
αα
ααα kubectl α’αΆαα―αααΆαααααααα
ααΆαααααααα ααΆαααααααααααααΆαααΈααα·αααα
αα
α»ααααααα αααα»αα§ααΆα αααααΆαααΎ kubectl ααΉαααααΆαααα
αααα»α Hare α
ααΌα ααααα αΎα ααΎααααΈααααΌααα α ααααααα½ααααααααα α’αααααααΌαααααΆααααααΌαααα·αααα αα α»αααααααα αααα»αα―αααΆα kubeconfigα
α₯α‘αΌαααα kubectl ααΉαααααΆαααα
α
ααααα Fox α
ααΎααααΈααααΌααα ααα αααααααααααα αααα»αα ααααααααα½α α’αααααααΌαααααΆααααααΌααααααααααΆαα» namespace αααααΆααααα·αααα αα α»ααααααα
αααα»αα§ααΆα αααααΆαααΎ kubectl ααΉαααααΎ Prod namespace αααα Fox cluster (ααΈαα»α Test namespace ααααΌαααΆαααααα)α
α
αααΆαααΆ kubectl ααααααααααααΎααααααα --cluster
, --user
, --namespace
ΠΈ --context
αααα’αα»ααααΆαα±ααα’ααααααααααΆααααΎααΆαα»ααΈαα½αα αα·αααα·αααα
αα
α»ααααααααααααα½αα―α ααααα·ααα·αααΈα’αααΈαααααααΌαααΆαααααααα
αααα»α kubeconfigα ααΎα kubectl options
.
ααΆαααααΉααααΈ α’αααα’αΆα ααααΆααααααΌαααΆααααααααααααα αααα»α kubeconfig α ααα»ααααβααΆβααΆβααΆαβαα·αβαααα½αβα ααΎααααΈααααα½αααααα·ααααα·ααΆαααΆααααα ααΆαα§αααααααααΎααααΆαααααααααααα’αα»ααααΆαα±ααα’αααααααΆααααααΌααααΆαααΆαααααααααααααααααααααα·α
ααααΎ kubectx
α§αααααααααΎααααΆααααααααα·αααααααΆααααααΌααααΆαα ααααα αα·αα ααααααααααα
α§αααααααααΎααααΆαααααααααΌαααΆααααααααΆ kubectx
ΠΈ kubens
ααΎααααΈααααΆααααααΌαααα·αααα
αα
α»αααααα αα·αααα ααααααααααααα½αα
ααΌα αααααΆααααααΆαααα½α α αΎα ααΆαααααΆααααααΌαααα·αααα αα α»ααααααααΆααααααΆααααΆααααααΌαα ααααα ααααα·αααΎα’αααααΆαααα·αααααα½ααααα»ααα½αα αααααα
αααααΊααΆα§ααΆα αααααααΆαααααΎαααΆαααΆααααααααΆααΆαααααα
ααααΆαα ααΆααααααααΆααΆαααααααααΆααααααααααα½αα―αααΆα kubeconfig ααΌα
αααααΆααα·αααααΆααΆαααΎα
ααΎααααΈααα‘αΎα kubectx
α’αα»ααααααΆαααΆαααααΆααα
ααΎ
ααΆαααβαααααΆβααΆααβααΈαβααΆααααβααΆαβαααααβαααβαααααβαααααααα·βααβααα·αα αα·αβαααααβα
αααααβαααβαα»αβααααΆααβαααααΌαβααΆαβαααα»αβααΆαβααΆαβαααα
αΌαβααΆααβαααα»αα ααΆαααααΆααααααΆααααΆαααα‘αΎαααΆαααααααααααααααααααααα·
αα»αααΆαααΆααααααααααα½αααα kubectx
ααΆααΊααΆααΆα kubectx
. α’αααααααα α’αααα’αΆα
ααααΎαααΎαααα·αα αα·αα
ααααααααααααΆααααα
ααα»α
αααααΆαααααααααα₯ααα·αααααα’ααααααααααααααααααα fzf α
ααΆαααααΎααααααααααααααΆαααα
α’αααβαα·αβααααΌαβααΆαβα§αααααβααΆα
αβαααβα‘ααβααΎααααΈβααααΆααβααααΌβαβααα·ααβαα
αα
α»ααααααβαα·α namespace ααααα 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
ααΎααααΈααααΆααααααΌααααααα
αααα»αααΆαααααααααααα·ααΈαααα½αααΈααααααααΎααΌα αααα
ααΆαααΆααααααααααα·ααΈαααα½αααΊααα’ααααΎααααααααααααααΆαααΈααααααα»αα
αααααΆααααααααα½αααααααΎααΆαα
α
αααΆαααΆαααααα·ααΈαααα½αααααΎ fzf ααΎααααΈαααααααΌαα
ααα»α
αααααΆααααααααααααα₯ααα·αααααα’αααααααα (ααΌα
ααΆααααα’αααααααααααα kubectx) α αααααΆααααααΆα’αααααααΌαααΆα
ααΎααααΈααα‘αΎααααααα·ααΈαααα½α α’αααααααΌαααΆαααααααααΈαααααααααΆαααααα chmod +x
. ααααΆαααααααΆααααΈαααα’αααααΉαα’αΆα
ααααΎααΆαα kubectl ctx
ΠΈ kubectl ns
.
5. ααΆαααααααααΆααααα αΌαααΆαα½α autoaliases
αααααβαααααααααΆα Shell ααΊααΆβαα·ααΈβααα’βααΎααααΈβαααααΎαααααΏαβααΆααααα
αΌαα αααααα
α’ααααααα ααααΆααααα - ααΎα’αααα αα αΆαααααααααααααααΆα 800 αααΆαααΌα ααααα ? ααα»ααααβα’αααβαα·αβα αΆαβααΆα αβα αΆαβααΆβααΆααβα’ααβαααβαα αααααβααΆβααααΌαβααΆαβαααααΎαβα‘αΎαβααΆαβαααααααΆαααβααβααΆααααβαα½αβαααβααΆαβααΌα βααΆαβαααααα
α§ααΆα ααα:
- kgpooyaml - kubectl ααα½αααΆα pods oyaml
- ksysgsvcw β kubectl -n kube-system ααα½αααΆα svc w
- ksysrmcm -kubectl -n kube-αααααααα rm cm
- kgdepallsl - kubectl ααα½αααΆαααΆαααΆαααααααΆα sl
ααΌα αααα’αααα’αΆα ααΎαααααααααααααααΆαααααΌαααΆααααααΎαα‘αΎαααααααΆαααΆαα»αααααΈαα½ααααααΆαα±ααααΆαα»ααΆααααΆααααααΆααααααααΆ kubectl α ααααααααααααααΆαααΈαα½ααα’αΆα ααΆααααΆαααΆααα½ααααααΆααααΆααααααααΆααΌαααααΆα ααααα·ααααα·ααΆα αα·αααααΆα αα·ααααΆαααΆαα»ααΆα αααΎααααααΆαααααΆαααΆααααααα α’αααααααΆαααα "αααα αΌα" αααΆαααΆαα»ααΆαααααααΈααααααα ααααΆα αααααΆαααααΆααααΆαααΆαααΎα
ααααΆααααΆααααα’α·ααα
αα
α»ααααααααΊαα
α§ααΆα ααα αααααα α
αααα
kgpooyamlall ααΊααααΎααΉαααΆααααααααΆ kubectl get pods -o yaml --all-namespaces
.
ααααΆαααααααΆαααααααααααΎαααΊαα·αααααΆααααα ααΆααααααααΆ kgpooyamlall
ααΊααααΎααΉαααΆααααααααΆ kgpoalloyaml
.
α’ααααα·αα
αΆαααΆα
αααααΎαααΆαααΆαα»ααΆααα’ααααΆααααααααααααααΆαααα α§ααΆα ααα k
, kg
, klo
, ksys
, kgpo
ααα’αΆα
ααααΎααΆααααα ααΎαααΈααααα
ααα α’αααα’αΆα
ααααααααααααααααααΆα αα·αααΆααααααααΆααααααΆ α¬αααααΎααα
ααΎαααααΆααααΆααααααααΆα
α§ααΆα ααα:
- αααα½αα
kubectl proxy
α’αααα’αΆα αααααααΆααk proxy
. - αααα½αα
kubectl get roles
α’αααα’αΆα αααααααΆααkg 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 ααΊααΆααΆααααΆααΆααααα αα (ααΆααααααααα’αααα α»α Tab) ααααααααααααααΆα αα·ααααααΆααΆααααααααΆαααααααααααααααααΆααααα ααΎ (ααΌα ααα Zsh ααααΎ ααΆα§ααΆα ααα)α αααααΆαα’ααααα·αααΆαααααααΈαααααααααααΆααααααααααααααααΆαααΆααα’αα 800 ααΆαααααααααααααααααααααα·αα·αααααΎαααΆαααα
αααααα
ααΆααααααααα ααΆααααΌα αααα»αααΉαααααααααΈααααααα‘αΎαααααααααααα α αΎααααααΆααααααααααα ααΆααααααααααΆ ααΎααααΈααΎαααΆαααααααααααΆααααααααααααααααΆα kubectl ααΆααα’ααα
ααΆαααα‘αΎαααααααααααααααΆααααααα
ααΆααααΌα αααααα·ααΆαααααααα’αΆαααααααΎ
α
αααΆαααααΆαααααααΆααα’αααααααΎααααΆαα macOSα ααΌα
ααΆααααααΈαααΆααααααααααααααααααα· kubectl ααααααααααααααΆααααααααα·αααααΎαααΆαααΆαα½α Bash 3.2 αααααΆααααΆαααΎααα
ααΎ MacOS ααα ααΆαα·ααα ααααααααααααααΆαααααααααΊα’αΆαααααααΎ bash-completion v2 (brew install bash-completion@2
) αααααΆαααΆααααΆαα αα
ααΆαα Bash 4.1 α αααααΆααααααΆ ααΎααααΈααααΎααααααααααααααΆααααααααα
ααΎ MacOS α’αααααααΌαααα‘αΎαααααααααΈαα Bash α
α’αααααααΌαααΆαααααααααΈα ~/.bashrc
:
source ~/bash_completion.sh
αααααΆααααΈα αΆααααααΎααααα‘αΎααα·α ααΆααααααΌαααααααααΉαααααΌαααΆαααα‘αΎααααΆαααααααα
ααΎαααααΎαααΆαααΆαααααααααααααααααααααα·αααααΆααααααααααααααααΆα kubectl
αα
αα
ααααααααααα - ααααααααααααααΆααααααααΌααα»αααΆααα»α _complete_alias
. αα»αααΆαααααα·αα·αααααααααααααααααΆα αα·ααααα‘ααααααααΆααααα½ααααααΆααααΆααααααααΆααααααααΆα
ααΎααααΈααααΆαααα»αααΆαααΆαα½αααααααααααααααΆαααΆααααΆαααα½α α’αααααααΌαααααΎααααααΆα Bash αααααΆαααααΆαα _complete_alias
ααΆαα»αααΆααααααααααααααααααααΆαα
ααΆα§ααΆα ααα α
αΌαααΎαααααααααααααααααΆα k αααααααΆαα±ααααΆααααααααΆ kubectl α ααΎααααΈααα‘αΎα _complete_alias
ααΆαα»αααΆαααααααααααααααααΆααααααααααααααααΆαααα α’ααααα½αααααααΎαααΆαααΆααααααααΆααΆααααααα
$ complete -F _complete_alias k
ααααααβααβααΆαβαααβααΊβααΆ αα
βαααβααΆβαααβα’αααβαααααβαααααβαααααααααΆα k αααβαααααβαααααααα· αα»αααΆαβααααΌαβααΆαβα α
_complete_alias
ααααα·αα·αααααααααααααααααΆα αα·ααααα‘ααααααααΆααααα½ααααααΆααααΆααααααααΆααααααααΆ kubectl
.
ααΆα§ααΆα αααααΈααΈα α
αΌαααΎαααααααααααααααααΆα kg
αααααααΆαα±αα kubectl get
:
$ complete -F _complete_alias kg
ααΌα
βαααα»αβα§ααΆα αααβαα»αβααα αααβα’αααβαααααβαααβαααααβαααααααα· kg α’αααβααΉαβααα½αβααΆαβααααααΆαβαααα½αβααΆαβαααα
ααβααΌα
βααααΆβαααβα’αααβααΉαβααα½αβααΆα kubectl get
.
α αααΆαααΆα’αααα’αΆα ααααΎααααααααααααααΆααααααααααααΆααααααααααααααααΆαααΆαα½ααα ααΎααααααααααααα’αααα
ααΌα
αααα ααΎααααΈααΎαααΆαααααααααααααααααααααα·αααααΆααααααααααααααααΆα kubectl ααΆααα’αα α’αααααααΌαααααΎαααΆαααΆααααααααΆααΆαααΎαααααΆαααα½αααΆααΈαα½ααα α’αααααααααΈαααΆααααααααααΎαααΆααα·αααααΆααααα αααααααΌαα’αααααΆαααααα kubectl-aliases αα
~/.kubectl-aliases
:
for _a in $(sed '/^alias /!d;s/^alias //;s/=.*$//' ~/.kubectl_aliases);
do
complete -F _complete_alias "$_a"
done
αααααααααΌααααααααΌαααααΆαααα
αααα»αααααα’αααα ~/.bashrc
α
αΆααααααΎααααααΆααααααααΆα‘αΎααα·α α αΎαααΆαααααααααααααααααααααα·ααΉαααΆααααααΆααααααααααααααααΆα 800 kubectl ααΆααα’ααα
6. αααααΈα kubectl ααΆαα½ααααααα·ααΈαααα½α
α
αΆααααααΎαααΈ
ααααα·αααΎα’αααααααΆααααααΆαα
αα αααα»αααααΌαααα ααΎαααΉααααααΆααα’αααΈααααααα‘αΎααααααα·ααΈαααα½α αααααααααααααΌαααααααααα½αααΆ αα·ααααααααααΎααααααα·ααΈαααα½αααααΆαααααα½αααααα’αααα
ααΆαααα‘αΎααααααα·ααΈαααα½α
αααααα·ααΈαααα½α 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 αα·αααααααααΎααααΆαααα½αααΆααααααααααααα·αααααΆα .Kubernetes αααα»αααααΆαααΈααααΆααα½α α ααααααΆαα½αααααΌαααααΆααααΆαα’αα»αααα .ααα»αααα·αααααααΎααα αα»ααα·α Kubernetes αα αααα»α Telegram .
ααααα: www.habr.com