ืื ืืชื ืขืืื ืขื 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 ืืงืืืฅ ืืคื ืฉื 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 ืืื ืื ืืืกืื.
- ืื ืื ืืงืจ - ืืืืื ืฉืกืืืืกื ืืฉืืืื ืชืืืืื ืืืคืจืืื.
- ืืชืืื - ืืชืืื ืชืจืืืืื ืืฆืืชื ืขืืืืื.
ืืื ื ืืจืืื ืืื ืืฉืื ืืืืชืจ ืืฆืืชื ืืขืืื:
- ืงืืืื - ืื ืื ืืช ืืืฉืงื ืฉื ืืืืืืช ืืฆืืืช ืืขืืืื.
ืืื ืืืืื ืืืฆื ืืจืืืืื ืืื ืคืืขืืื ืืื, ืืื ื ืกืชืื ืขื ืืืืื.
ืืื ื ื ืื ืฉืื ืขืชื ืกืืืืช kubectl create -f replicaset.yaml
, ืฉืืืืจืื kubectl ืืืฆืขื ืืงืฉืช HTTP POST ืื
ืื ืงืืจื ืืืฉืืื?
- ืืืืจ ืืขืฉื
kubectl create -f replicaset.yaml
ืฉืจืช ื-API ืืืืกื ืืช ืืืืจืช ืืืฉืื ืฉื ReplicaSet ืืืืกืื: - ืืืืจ ืืื, ืืงืจ ื-ReplicaSet ืืืคืขื ืืื ืื ืืืงืจ, ืืืืคื ืืืฆืืจื, ืฉืื ืื ืืืืืงื ืฉื ืืฉืืื ReplicaSet:
- ืืงืจ ื-ReplicaSet ืืืฆืจ ืืืืจืช ืคืื ืขืืืจ ืื ืืขืชืง ืฉื ReplicaSet (ืืคื ืชืื ืืช ืืคืื ืืืืืจืช ReplicaSet) ืืืืืกื ืืืชื ืืืืกืื:
- ืืชืืื ืืืคืขื, ืขืืงื ืืืจ ืชืจืืืืื ืฉืขืืืื ืื ืืืงืฆื ืืฉืื ืฆืืืช ืขืืืืื:
- ืืืชืืื ืืืืจ ืฆืืืช ืขืืื ืืชืืื ืืื ืคืื ืืืืกืืฃ ืืืืข ืื ืืืืืจืช ืืคืื ืืื ืืช:
- ืืฆืืืช ืืขืืื ืฉืืืื ืืืงืฆื ืืคืื, Kubelet ืืืคืขื, ืืื ืขืืงื ืืืจ ืืคืืืื ืฉืืืงืฆื ืืฆืืืช ืื:
- ื-Kubelet ืงืืจื ืืช ืืืืจืช ืืชืจืืื ืืืืืกืื ืืืืจื ืืืื ืจืืฆื ืฉื ืืืื, ืืืื Docker, ืืืฉืืง ืงืื ืืืื ืจืื ืืฆืืืช:
ืืืื ืืจืกืช ืืงืกื ืฉื ืชืืืืจ ืื.
ืืงืฉืช ื-API ืื ืงืืืช ืืงืฆื ืฉื ืืฆืืจืช ReplicaSet ืืขืืืืช ืขื ืืื ืฉืจืช ื-API. ืฉืจืช ื-API ืืืืช ืืช ืืืงืฉื ืืืืืกื ืืช ืืืืจืช ืืืฉืื ืฉื ReplicaSet ืืืืกืื.
ืืืจืืข ืื ืืชืืื ืืช ืืงืจ ReplicaSet, ืฉืืื ืชืช-ืชืืืื ืฉื ืื ืื ืืืงืจ. ืืงืจ ReplicaSet ืขืืงื ืืืจ ืืฆืืจื, ืขืืืื ืืืืืงื ืฉื ืืฉืืื ReplicaSet ืืื ืืช ืืืงืื ืืืืขื ืขื ืืืจืืข ืืืฉืจ ืื ืืชืจืืฉ.
ืชืคืงืืื ืฉื ืืงืจ ื-ReplicaSet ืืื ืืืืื ืฉืงืืื ืืืกืคืจ ืื ืืจืฉ ืฉื ืชืจืืืืื ืฉื ReplicaSet. ืืืืืื ืฉืื ื, ืขืืืื ืื ืงืืืืื ืคืืืื, ืื ืืืงืจ ืฉื ReplicaSet ืืืฆืจ ืืช ืืืืจืืช ืืคืื ืืืื (ืืคื ืชืื ืืช ืืคืื ืืืืืจืช ReplicaSet) ืืืืืกื ืืืชื ืืืืกืื.
ืืืฆืืจื ืฉื ืชืจืืืืื ืืืฉืื ืืืคืขืืช ืขื ืืื ืืชืืื ืฉืขืืงื ืืืจ ืืืืจืืช ืชืจืืืืื ืฉืขืืืื ืื ืืชืืื ื ืืช ืืฆืืชื ืขืืืืื. ืืืชืืื ืืืืจ ืฆืืืช ืขืืื ืืชืืื ืืื ืคืื ืืืขืืื ืืช ืืืืจืืช ืืคืื ืืืืืจ.
ืฉืื ืื ืฉืขื ืื ืงืืื ืื, ืื ืคืขื ืงืื ืขืืืก ืขืืืื ืืฉืื ืืงืื ืืืฉืืื. ืื ืื ืฉื ืขืฉื ืขื ืื - ืืื ืืฆืืจื ืืขืืืื ืฉื ืืฉืืืื ืืืืืจ ืืฆืืืช ืืจืืฉื.
ืืืืจืืข ืืืืจืื ืืคืขืื Kubelets, ืฉืขืืงืืื ืืืจ ืืคืืืื ืืืชืืืื ืื ืืฆืืชื ืืขืืืืื ืฉืืื. ื-Kubelet ืฉื ืฆืืืช ืืขืืืื ืฉืขืืื ืืืชืงื ืื ืืคืืืื ืฉื ReplicaSet ืฉืื ืืืืืช ืืืืจืืช ืืืื ืืจืืฆื ืฉื ืืืืืื, ืืืื Docker, ืืืืจืื ืืช ืชืืื ืืช ืืืืืื ืื ืืจืฉืืช ืืืืคืขืื ืืืชื.
ืืฉืื ืื, ืืคืืืงืฆืืืช ReplicaSet ืฉืื ืกืืฃ ืกืืฃ ืคืืขืืช!
ืชืคืงืื ื-API ืฉื Kubernetes
ืืคื ืฉืจืืืช ืืืืืื ืืงืืืืช, ืจืืืื Kubernetes (ืืืขื ืฉืจืช ื-API ืืืืืกืื) ืขืืงืืื ืืืจ ืฉืื ืืืื ืืืฉืืืื ืืืืกืื ืืืฉื ืื ืืืืข ืขื ืืฉืืืื ืืืืกืื.
ืืืืื ืฉืจืืืืื ืืื ืืื ื ืืงืืืืื ืืื ืืจืืงืฆืื ืืฉืืจื ืขื ืืืืกืื, ืืื ืจืง ืืจื ื-API ืฉื Kubernetes.
ืฉืงืื ืืช ืืืืืืืืช ืืืืืช:
- ืืงืจ ReplicaSet ืืฉืชืืฉ ืื ืงืืืช ืืงืฆื ืฉื ื-API
ืจืฉืืืช ReplicaSets ืขื ืคืจืืืจwatch
ืืื ืื ืืจ ืฉืื ืืืื ืืืฉืืื ReplicaSet. - ืืงืจ ReplicaSet ืืฉืชืืฉ ืื ืงืืืช ืืงืฆื ืฉื ื-API
ืืืฆืืจ Pod (ืืฆืืจืช ืชืจืืื) ืืื ืืืฆืืจ ืชืจืืืืื. - ืืชืืื ืืฉืชืืฉ ืื ืงืืืช ืงืฆื API
ืชืจืืื ืชืืงืื (ืขืจืื ืคืื) ืืื ืืขืืื ืคืืืื ืขื ืืืืข ืขื ืฆืืืช ืืขืืืื ืฉื ืืืจ.
ืืคื ืฉืืชื ืืืื ืืจืืืช, ืืื ืืืชื API ืืืื kubectl ื ืืืฉืช. ืฉืืืืฉ ืืืืชื API ืขืืืจ ืจืืืืื ืคื ืืืืื ืืืฉืชืืฉืื ืืืฆืื ืืื ืืื ืจืขืืื ืืกืืกื ืืขืืฆืื Kubernetes.
ืขืืฉืื ืื ืื ื ืืืืืื ืืกืื ืืื Kubernetes ืขืืื:
- ืื ืืืืช ืืืืกืื ืืฆืืื ืืช, ืืืืืจ ืืฉืืื Kubernetes.
- ืฉืจืช ื-API ืืกืคืง ืืืฉืง ืืืืกืื ืืฆืืจื ืฉื ื-API ืฉื Kubernetes.
- ืื ืฉืืจ ืืจืืืืื ืืืืฉืชืืฉืื ืฉื Kubernetes ืงืืจืืื, ืืชืืื ื ืื ืืืชืคืขืืื ืืช ืืฆื Kubernetes (ืืฉืืืื) ืืืืฆืขืืช ื-API.
ืืืจืช ืืืืฉืืื ืืืื ืชืขืืืจ ืื ืืืืื ืืื ืืืชืจ ืืช kubectl ืืืืคืืง ืืื ื ืืช ืืืจื.
ืขืืฉืื ืืืื ื ืกืชืื ืขื ืืื ืืืคืื ืืืจืืงืื ืกืคืฆืืคืืื ืฉืืขืืจื ืืฉืคืจ ืืช ืืคืจืืืืงืืืืืืช ืฉืืื ืขื kubectl.
1. ืืืฅ ืืช ืืงืื ืืืืฆืขืืช ืืฉืืืช ืคืงืืื
ืืืช ืืืื ืืงืืช ืืฉืืืืฉืืืช ืืืืชืจ, ืื ืืขืชืื ืงืจืืืืช ืืชืขืืืืช ืืื ื, ืืฉืืคืืจ ืืืืฆืืขืื ืขื kubectl ืืื ืืฉืืืช ืคืงืืืืช.
ืืฉืืืช ืคืงืืื ืืืคืฉืจืช ืื ืืืฉืืื ืืืืคื ืืืืืืื ืืืงืื ืืคืงืืืืช kubectl ืืืืฆืขืืช ืืงืฉ Tab. ืื ืขืืื ืขืืืจ ืคืงืืืืช ืืฉื ื, ืืคืฉืจืืืืช ืืืจืืืื ืืื, ืืืื ืืฉืื ืืืจืื ืืื ืฉืืืช ืืฉืืืื.
ืจืื ืืืฆื ืคืืขืืช ืืฉืืืช ืคืงืืืืช kubectl:
ืืฉืืืช ืืคืงืืื ืคืืขืืช ืขืืืจ ืคืืื Bash ื-Zsh.
ืืืฆื ืคืืขืืช ืืฉืืืช ืคืงืืื
ืืฉืืืช ืคืงืืื ืืื ืชืืื ืช ืืขืืคืช ืฉืคืืขืืช ืืืืฆืขืืช ืกืงืจืืคื ืืฉืืื. ืกืงืจืืคื ืืจืืื ืืื ืกืงืจืืคื ืืขืืคืช ืืืืืืจ ืืช ืืืชื ืืืืช ืฉื ืืจืืื ืขืืืจ ืคืงืืื ืกืคืฆืืคืืช.
Kubectl ืืืืฆืจ ืืืืฆืื ืืืืืืืืช ืกืงืจืืคืืื ืฉื ืืจืืืืช ืขืืืจ Bash ื-Zsh ืืืืฆืขืืช ืืคืงืืืืช ืืืืืช:
$ kubectl completion bash
ะะปะธ:
$ kubectl completion zsh
ืืชืืืืจืื, ืืกืคืืง ืืืืจ ืืช ืืคืื ืฉื ืืคืงืืืืช ืืืื ืืืขืืคืช ืืคืงืืื ืืืชืืืื ืืื ืฉ-kubectl ืืืื ืืืฉืืื ืืช ืืคืงืืืืช.
ืืคืืขื, ืฉืืืช ืืืืืืจ ืฉืื ื ืขืืืจ Bash (ืืืื ืืืืืื ืืื ืืื ืืงืก ื-MacOS) ื-Zsh. ืืืื ื ืืื ืืช ืื ืืืคืฉืจืืืืช ืืืื.
Bash ืขื ืืื ืืงืก
ืกืงืจืืคื ืืฉืืืช 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 ืืืคืขื ืืื ืืคืขืืืช ืืืขืืคืช.
ืืืช ืืืจืืื ืืขืฉืืช ืืืช ืืื ืืืืกืืฃ ืืช ืืฉืืจื ืืืื ืืงืืืฅ ~ / .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 ืืฉืชืืฉ ืืืจืกื 3.2 ืฉื Bash, ืืกืงืจืืคื ืืืฉืืื ืืืืืืืืืช ืฉื kubectl ืืืจืฉืช ืืจืกืช Bash ืฉื ืืคืืืช 4.1 ืืืื ื ืขืืื ื-Bash 3.2.
ืืฉื ื ืืขืืืช ืจืืฉืื ืืงืฉืืจืืช ืืฉืืืืฉ ืืืจืกื ืืืืฉื ืช ืฉื Bash ื-MacOS. Bash ืืจืกื 4 ืืืจืฉืืช ืชืืช GPLv3, ืฉืืื ื ื ืชืืืช ืขื ืืื ืืคื.
ืืื ืืืืืืจ ืืฉืืื ืืืืืืืืช ืฉื kubectl ื-MacOS, ืขืืื ืืืชืงืื ืืจืกื ืขืืื ืืช ืืืชืจ ืฉื Bash. ืืชื ืืืื ืื ืืืืืืจ ืืช Bash ืืืขืืืื ืืชืืจ ืืขืืคืช ืืจืืจืช ืืืืื ืฉืื, ืื ืฉืืืกืื ืื ืืจืื ืืขืืืช ืืขืชืื. ืื ืื ืงืฉื, ืคืจืืื ื ืืชื ืื ืืืืืจ "
ืืคื ื ืฉืชืืฉืื, ืืื ืฉืืชื ืืฉืชืืฉ ืืืจืกื ืขืืื ืืช ืฉื Bash (ืืืืง ืืช ืืคืื bash --version
).
ืกืงืจืืคื ืืฉืืืช Bash ืืฉืชื ื ืืคื ืคืจืืืงื
ืืชื ืืืื ืืืชืงืื bash-completion ืืืืฆืขืืช
$ brew install bash-completion@2
ืืื @2
ืืืืฆื ืืช ืืจืกื 2 ืฉื ืืฉืืืช bash. ืืฉืืื ืืืืืืืืช ืฉื kubectl ืืืจืฉืช ืืฉืืืช bash v2, ืืืฉืืืช bash 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 ืืืคืขืืช ืืื ืืืคืขืืืช.
ืืจื ืืืช ืืื ืืืืกืืฃ ืืช ืืฉืืจื ืืืื ืฉืื ~/.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
ืืชืขืืคื post
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
. ืืกืืื ืืื ืืื ืฉืฉื ืืคืื ืืืืืจ ืืฉืื ืฉื ืืืื 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 ืื ืชืืืื ืจืืฉืืืช.
ืืชื ืืืื ืืืฆืื ืื ืฉืื ืืฉืื ืืขืืืื. ืคืฉืื ืขืืื ืืืคืจื ืืืฉืื ืื ืกื ืืืชื ืืื ืฉืื ืฉืชืจืฆื.
ืืื ืจืืฉืืช, ืืืื ื ืกืชืื ืืงืจืื ืขื ืืืืืื ืืืืจืช ืฉืืืช.
ืืืืืื JSONPath
ืืืืืืื ืืืืืจืช ืฉืืืช ืืฉืืืื ืืืืกืกืื ืขื
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
ืคืงืืื ืื ืืฆืืื ืืช ืฉืืืช ืชืืื ืช ืืืื ืขืืืจ ืื ืชืจืืื.
ืืืืจ ืื ืคืื ืืืื ืืืืื ืืกืคืจ ืืืืืื, ืืื ืฉืืืช ืืชืืื ืืช ืืืฆืื ืืฉืืจื ืืืช, ืืืคืจืืื ืืคืกืืงืื.
- ืืฆืืช ืืืืจื ืืืื ืืช ืฉื ืฆืืืช:
$ 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 ืฉืืื ืืงืฉื ืืืืฉืง ื-API ืฉื Kubernetes, ืืื ืงืืจื ืชืืืื ืืช ืงืืืฅ kubeconfig ืืื ืืงืื ืืช ืื ืืคืจืืืจืื ืืืจืืฉืื ืืืืืืจ.
ืืืจืืจืช ืืืื, ืงืืืฅ kubeconfig ืืื ~/.kube/config
. ืืืจื ืืื ืงืืืฅ ืื ื ืืฆืจ ืื ืืชืขืืื ืขื ืืื ืคืงืืื ืืืืืืช.
ืืืฉืจ ืืชื ืขืืื ืขื ืืฉืืืืืช ืืจืืืื, ืงืืืฅ kubeconfig ืฉืื ืืืื ืืืืจืืช ืืืืืืจ ืืื ืืืชื ืืฉืืืืืช. ืืชื ืฆืจืื ืืจื ืืืืจ ืืคืงืืื kubectl ืขื ืืืื ืืฉืืื ืืชื ืขืืื.
ืืชืื ืืฉืืื, ืืชื ืืืื ืืืฆืืจ ืืจืืื ืฉืืืช ืืจืืืื - ืกืื ืฉื ืืฉืืื ืืืจืืืืื ืืชืื ืืฉืืื ืคืืื. Kubectl ืื ืงืืืข ืืืืื ืืจืื ืฉืืืช ืืืฉืชืืฉ ืืืชืืกืก ืขื ืงืืืฅ kubeconfig. ืื ืืืืจ ืฉืืชื ืฆืจืื ืื ืืจื ืืืืื ืืคืงืืื kubectl ืขื ืืืื ืืจืื ืฉืืืช ืืขืืื.
ืืคืจืง ืื ื ืกืืืจ ืืืฆื ืื ืขืืื ืืืืฆื ืืืจืื ืืื ืืขืืื ืืืขืืืืช.
ืฉืื ืื ืฉืืืชืื ืฉืืฉ ืื ืงืืืฆื kubeconfig ืืจืืืื ืืจืฉืืืื ืืืฉืชื ื ืืกืืืื KUBECONFIG. ืืืงืจื ืื, ืื ืืงืืฆืื ืืืื ืืฉืืืื ืืชืฆืืจื ืืฉืืชืคืช ืืืช ืืืื ืืจืืฆื. ืืชื ืืืื ืื ืืฉื ืืช ืืช ืงืืืฅ ืืจืืจืช ืืืืื ืฉื kubeconfig ืขื ืืื ืืคืขืืช kubectl ืขื ืืคืจืืืจ --kubeconfig
. ืชืจืื
ืงืืฆื kubeconfig
ืืื ื ืจืื ืื ืืืืืง ืืืื ืงืืืฅ kubeconfig:
ืืคื ืฉืืชื ืืืื ืืจืืืช, ืงืืืฅ kubeconfig ืืืื ืงืืืฆื ืฉื ืืงืฉืจืื. ืืืงืฉืจ ืืืจืื ืืฉืืืฉื ืืืื ืืื:
- ืืฉืืื - ืืชืืืช API ืฉื ืฉืจืช ืืืฉืืื.
- ืืฉืชืืฉ - ืืืฉืืจื ืืืืืช ืืฉืชืืฉ ืืืฉืืื.
- ืืจืื ืฉืืืช - ืืจืื ืืฉืืืช ืืืฉืืฉ ืืขืช ืืืฆืืจืคืืช ืืืฉืืื.
ืืคืืขื, ืืขืชืื ืงืจืืืืช ืื ืืฉืชืืฉืื ืืืงืฉืจ ืืื ืืื ืืฉืืื ื-kubeconfig ืฉืืื. ืขื ืืืช, ืืชื ืืืื ืืงืื ืืงืฉืจืื ืืจืืืื ืืื ืืฉืืื, ืืืืื ืื ืืคื ืืฉืชืืฉ ืื ืืจืื ืฉืืืช. ืขื ืืืช, ืชืฆืืจื ืืจืืืช ืืงืฉืจืื ืื ืืื ื ื ืคืืฆื, ืื ืฉืืืจื ืืื ืืฉ ืืืคืื ืืื ืืืื ืืื ืืฉืืืืืช ืืืงืฉืจืื.
ืืื ืืื ื ืชืื, ืืื ืืืงืฉืจืื ืืื ืขืืื ื:
ืืืฉืจ kubectl ืงืืจื ืงืืืฅ ืชืฆืืจื, ืืื ืชืืื ืืืงื ืืืืข ืืืืงืฉืจ ืื ืืืื. ืืืืืื ืืืขืื, kubectl ืืชืืืจ ืืืฉืืื ืืืจื ื.
ืืืชืื, ืืื ืืขืืืจ ืืืฉืืื ืืืจ, ืขืืื ืืฉื ืืช ืืช ืืืงืฉืจ ืื ืืืื ืืงืืืฅ kubeconfig:
ืืขืช kubectl ืืชืืืจ ืืืฉืืื ืคืืงืก.
ืืื ืืขืืืจ ืืืจืื ืฉืืืช ืืืจ ืืืืชื ืืฉืืื, ืขืืื ืืฉื ืืช ืืช ืืขืจื ืฉื ืจืืื ืืจืื ืืฉืืืช ืขืืืจ ืืืงืฉืจ ืื ืืืื:
ืืืืืื ืฉืืืขืื, kubectl ืืฉืชืืฉ ืืืจืื ืืฉืืืช Prod ืฉื ืืฉืืื Fox (ืงืืื ืืื ืืืืืจ ืืจืื ืืฉืืืช Test).
ืฉืืื ืื ืฉ-kubectl ืืกืคืงืช ืื ืืคืฉืจืืืืช --cluster
, --user
, --namespace
ะธ --context
, ืืืืคืฉืจืื ืื ืืืืืืฃ ืืืื ืืื ืืืืืื ืืืช ืืืงืฉืจ ืื ืืืื ืขืฆืื, ืืื ืงืฉืจ ืืื ืฉืืืืืจ ื-kubeconfig. ืชืจืื kubectl options
.
ืืชืืืืจืื, ืืชื ืืืื ืืฉื ืืช ืืื ืืช ืืช ืืืืืจืืช ื-kubeconfig. ืืื ืื ืื ื ืื. ืืื ืืคืฉื ืืช ืืคืขืืืืช ืืืื, ืืฉื ื ืืื ืขืืจ ืฉืื ืื ืืืืคืฉืจืื ืื ืืฉื ืืช ืคืจืืืจืื ืืืืคื ืืืืืืื.
ืืฉืชืืฉ ื-kubectx
ืืื ืขืืจ ืคืืคืืืจื ืืืื ืืืขืืจ ืืื ืืฉืืืืืช ืืืจืืื ืฉืืืช.
ืืื ืืฉืืจืืช ืืกืคืง ืคืงืืืืช kubectx
ะธ kubens
ืืื ืืฉื ืืช ืืช ืืืงืฉืจ ืื ืืืื ืืืช ืืจืื ืืฉืืืช ืืืชืืื.
ืืืืืจ, ืฉืื ืื ืืืงืฉืจ ืื ืืืื ืคืืจืืฉื ืฉืื ืื ืืืฉืืื ืื ืืฉ ืื ืจืง ืืงืฉืจ ืืื ืืื ืืฉืืื.
ืืืื ืืืืื ืืืคืขืืช ืืคืงืืืืช ืืืื:
ืืขืืงืจื ืฉื ืืืจ, ืคืงืืืืช ืืื ืคืฉืื ืขืืจืืืช ืืช ืงืืืฅ 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
ืืื ืืฉื ืืช ืืช ืืจืื ืืฉืืืช.
ืืชืืชื ืฉื ื ืชืืกืคืื ืฉืขืืฉืื ืืช ืื:
ืขืืืืช ืืชืืกืคืื ืืืืกืกืช ืขื ืืื ืืืื ืืืกืขืืฃ ืืงืืื.
ืื ืื ืขืืืืื:
ืฉืืื ืื ืฉืืชืืกืคืื ืืฉืชืืฉืื ื-fzf ืืื ืืกืคืง ืืืฉืง ืืืคืืฉ ืืื ืืจืืงืืืื ืืืื ื (ืืื ืืืฆื ืืืื ืืจืืงืืืื ืฉื kubectx). ืื ืืืืจ ืฉืืชื ืฆืจืื
ืืื ืืืชืงืื ืชืืกืคืื, ืขืืื ืืืืจืื ืกืงืจืืคืืื ืฉื ืืขืืคืช ืืฉื chmod +x
. ืืื ืืืืจ ืืื ืชืืื ืืืฉืชืืฉ kubectl ctx
ะธ kubectl ns
.
5. ืฆืืฆื ืืช ืืงืื ืขื ืืื ืืืื ืืืืืืืืื
ืืื ืืืื ืฉื ืืขืืคืช ืื ืืจื ืืืื ืืืืืฅ ืืช ืืงืื. ืคึผืจืึนืึถืงื
ืืชื ืืืื ืชืืื - ืืื ืืชื ืืืืจ 800 ืืื ืืืื? ืืื ืืชื ืื ืฆืจืื ืืืืืจ ืืช ืืืื, ืื ืื ืื ืืืื ืขื ืคื ืชืืื ืืช ืคืฉืืื, ืืืคืืจืืช ืืืื:
ืืืืืื:
- kgpooyaml - kubectl get pods oyaml
- ksysgsvcw โ kubectl -n kube-system ืงืื svc w
- ksysrmcm -kubectl -n kube-system 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 ืืืื ืืืื, ืืฉืืื ืืืืืืืืช ืื ืขืืืืช.
ืคืจืืืงื
ืืืืฉื, ืชืืืื ืืกืืืจ ืืืฆื ืืืชืงืื ืืช complete-alias ืืืืืจ ืืื ืืืฆื ืืืืืืจ ืืืชื ืื ืฉืืืคืฉืจ ืืฉืืื ืขืืืจ ืื ืืืื ืืืื ืฉื kubectl.
ืืชืงื ืช ืืื ืื ืฉืื
ืงืืื ืื, ืืื ืื ืืฉืื ืชืืื ื
ืืขืจื ืืฉืืื ืืืฉืชืืฉื MacOS: ืืื ืกืงืจืืคื ืืืฉืืื ืืืืืืืืืช ืฉื kubectl, complete-alias ืื ืขืืื ืขื Bash 3.2, ืฉืืื ืืจืืจืช ืืืืื ื-MacOS. ืืคืจื, ืืื ืื ืืฉืืื ืชืืื ืืืฉืืื ืฉื bash v2 (brew install bash-completion@2
), ืืืืจืฉ ืืคืืืช Bash 4.1. ืืฉืืขืืช ืืืืจ ืืื ืฉืืื ืืืฉืชืืฉ ืืืื ืื ืฉืื ื-MacOS, ืขืืื ืืืชืงืื ืืจืกื ืืืฉื ืืืชืจ ืฉื Bash.
ืืชื ืฆืจืื ืืืืจืื ืืช ืืกืงืจืืคื ~/.bashrc
:
source ~/bash_completion.sh
ืืืืจ ืืชืืื ืืืืฉ ืฉื ืืืขืืคืช, ื-complet-alias ืืืชืงื ืืืืืื.
ืืคืขืืช ืืฉืืื ืืืืืืืืช ืขืืืจ ืืื ืืืื ืฉื 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
ืืืืืง ืืื ืืืืืื ืืงืืืืช, ืืืฉืจ ืืชื ืืฉืืื ืืืืืืืืช ืง"ื, ืืชื ืืงืื ืืช ืืืชื ืจืืื ืืฉืืื ืฉืืืืช ืืงืื ืขืืืจ kubectl get
.
ืฉืื ืื ืฉืืชื ืืืื ืืืฉืชืืฉ ืืืื ืื ืืฉืื ืขืืืจ ืื ืืื ืื ืืืขืจืืช ืฉืื.
ืืื, ืืื ืืืคืฉืจ ืืฉืืื ืืืืืืืืช ืขืืืจ ืื ืืืื ืืืื ืฉื kubectl, ืขืืื ืืืคืขืื ืืช ืืคืงืืื ืืขืื ืขืืืจ ืื ืืื ืืื. ืืงืืข ืืื ืขืืฉื ืืืืืง ืืช ืื, ืืชื ืื ืฉืืืืจืช kubectl-ืืื ืืืื ื ~/.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 ืืจืื ืืคืืจืืืืืช ืขื ืชืื ืืช ืืืืฉืื .ืืขืจืืฅ ืฉืื ื Around Kubernetes ืืืืืจื .
ืืงืืจ: www.habr.com