á¡áááºá áááºááẠKubernetes ááŸáá·áºá¡áá¯ááºáá¯ááºáá«á kubectl ááẠáááºá¡áá»á¬ážáá¯á¶ážá¡áá¯á¶ážááŒá¯ááá·áº á¡áá¯á¶ážá¡áá±á¬ááºáá»á¬ážáá²ááŸáá
áºáá¯ááŒá
áºááá¯ááºáááºá áá®ážááŒá¬ážáááááá¬áá
áºáá¯ááŸáá·áº áááºá¡áá»áááºáá»á¬ážá
áœá¬ á¡áá¯ááºáá¯ááºááá·áºá¡áá«ááá¯ááºáž áááºážááᯠáá±á¬ááºážá
áœá¬áá±á·áá¬ááŒá®áž áááá±á¬ááºá
áœá¬á¡áá¯á¶ážááŒá¯áááºážááᯠáá±á·áá¬ááẠá¡áááŒá±ážááœá±áá±ážáááºá
á¡ááœá²á·
á
á¬áá±ážáá°áá¡ááá¯á¡áá áá±á¬ááºážáá«ážááááºááœááºáá»ááºááŸá¬ Kubernetes ááŸáá·áº áááºááá±á·á
ááºáá¯ááºáááºážáá±á¬ááºáá¬áá»á¬ážááᯠááá¯ááá¯áááá±á¬ááºáá¯á¶áá¬áá ááá¯ááá¯áá»á±á¬áºááœáŸááºááœááºááŒá
áºá
á±áááºááŒá
áºáááºá
áááá«ááºáž- kubectl ááá¯áᬠáá¬áá²á
kubectl ááá¯ááá¯ááá¯áááá±á¬ááºá áœá¬á¡áá¯á¶ážááŒá¯áááºáááºááá±á·áá¬áá®á áááºážáááºáá¬ááŸáá·áºáááºáá²á·ááá¯á·á¡áá¯ááºáá¯ááºáááºááá¯áááºá¡ááŒá±áá¶áá¬ážáááºáááºááá¯á¡ááºáááºá
á¡áá¯á¶ážááŒá¯áá°áááŸá¯áá±á¬áá·áºááŸááŒáá·áºáá»áŸáẠKubectl ááẠKubernetes áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠáá¯ááºáá±á¬ááºááá¯ááºá á±ááá·áº ááááºážáá»á¯áẠpanel áá áºáá¯ááŒá áºáááºá
áááºážááá¬á¡áá kubectl ááẠKubernetes API client áá áºáá¯ááŒá áºáááºá
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
ááá¯á·áá±á¬áẠcommand ááᯠrun áá«á
$ kubectl create -f replicaset.yaml
áááºážááẠReplicaSet á¡áááºážá¡ááŒá áºááᯠáááºáá®ážáá±ážáááá·áºáááºá áá«áá±ááá·áº áá±á¬ááºááœááºááŸá¬ áá¬ááŒá áºááœá¬ážááá²á
Kubernetes ááœáẠReplicaSet áááºáá®ážááŸá¯ áá¯ááºáá±á¬ááºáá»áẠááŸááááºá á¡ááŒá¬ážáá¯ááºáá±á¬ááºááŸá¯áá»á¬ážáá²á·ááá¯á·áááºá áááºážááᯠAPI á¡áá¯á¶ážááŸááºá¡ááŒá Ạáá±á¬áºáá¯ááºáá¬ážáááºá á€áá¯ááºáá±á¬ááºáá»ááºá¡ááœáẠáá®ážááŒá¬áž API á¡áá¯á¶ážááŸááºááẠá€áá²á·ááá¯á· ááŒá áºáááº-
POST /apis/apps/v1/namespaces/{namespace}/replicasets
Kubernetes áá¯ááºáá±á¬ááºáá»ááºá¡á¬ážáá¯á¶ážá¡ááœáẠAPI á¡áá¯á¶ážááŸááºáá»á¬ážááᯠááœáẠááœá±á·ááá¯ááºáá«áááºá
ááá¯á·ááŒá±á¬áá·áºá á¡áááºáá±á¬áºááŒáá«á¡áááá·áºááᯠáááºáá¯ááºáá±á¬ááºáá±á¬á¡áá« kubectl ááẠá¡áááºáá±á¬áºááŒáá« API á¡áá¯á¶ážááŸááºááá¯á· HTTP POST áá±á¬ááºážááá¯áá»ááºááᯠáá±ážááá¯á·áááºá ááá¯ááºááœáẠáááºáá±ážáá¬ážáá±á¬ ReplicaSet á¡áááá¹áá«áẠreplicaset.yaml
áá±á¬ááºážááá¯áá»ááºáááá¯ááºáááºááá±ážááá¯á·áááºá
Kubectl ááẠKubernetes á¡á á¯á¡áá±ážááŸáá·áº á¡ááŒááºá¡ááŸááºáá¯á¶á·ááŒááºááá·áº ááœáŸááºááŒá¬ážáá»ááºá¡á¬ážáá¯á¶ážá¡ááœáẠkubectl á¡áá¯ááºáá¯ááºáá¯á¶ááŒá áºáááºá á€ááá á¹á áá»á¬ážááœááºá kubectl ááẠááá·áºáá»á±á¬áºáá±á¬ Kubernetes API á¡áá¯á¶ážááŸááºáá»á¬ážááá¯á· HTTP áá±á¬ááºážááá¯ááŸá¯áá»á¬ážááᯠááá¯ážááá¯ážááŸááºážááŸááºážááŒá¯áá¯ááºáááºá
áá»á±ážáá°ážááŒá¯á áá»á±ážáá°ážááŒá¯á áááááŒá¯áá«á curl
HTTP áá±á¬ááºážááá¯ááŸá¯áá»á¬ážááᯠKubernetes API ááá¯á· ááá¯ááºááá¯ááºáá±ážááá¯á·ááŒááºážááŒáá·áºá Kubectl ááẠKubernetes API ááᯠá¡áá¯á¶ážááŒá¯ááẠááá¯ááá¯ááœááºáá°á
á±áááºá
á€áááºááŸá¬ kubectl áá¡ááŒá±áá¶ááŸáá·áºáááºááá¯á·á¡áá¯ááºáá¯ááºáá¯á¶ááŒá áºáááºá ááá¯á·áá±á¬áº kubectl á¡áá¯á¶ážááŒá¯áá°ááá¯ááºážáááá¬ážááá·áºááá·áº Kubernetes API ááŸáá·áºáááºáááºááá·áº á¡ááŒá¬ážá¡áá¬áá áºáá¯ááŸááá«áááºá Kubernetes á á¡ááœááºážááá¹áá¬ááᯠá¡ááŒááºááŒáá·áºááŒáá«á áá¯á·á
Kubernetes á á¡ááœááºážááá¹áá¬
Kubernetes ááœáẠcluster node áá»á¬ážáá±á«áºááœáẠáá®ážááŒá¬áž áá¯ááºáááºážá ááºáá»á¬ážá¡ááŒá Ạáá¯ááºáá±á¬ááºááá·áº áá®ážááŒá¬áž á¡á áááºá¡ááá¯ááºážáá»á¬áž áá«áááºáááºá á¡áá»áá¯á·áá±á¬ á¡á áááºá¡ááá¯ááºážáá»á¬ážááẠmaster node áá»á¬ážáá±á«áºááœáẠáá¯ááºáá±á¬ááºááŒááŒá®ážá á¡áá»áá¯á·áá±á¬ worker node áá»á¬ážááœáẠáá¯ááºáá±á¬ááºááŒáááºá á¡á áááºá¡ááá¯ááºážáá áºáá¯á á®ááẠáááºážá áá®ážááŒá¬ážáá¯ááºáááºážáá¬áááºááᯠáá¯ááºáá±á¬ááºáááºá
á€áááºááŸá¬ á¡ááá node áá»á¬ážááœáẠá¡áá±ážááŒá®ážáá¯á¶áž á¡á áááºá¡ááá¯ááºážáá»á¬áž ááŒá áºáááº-
- Vault - á¡áááºážá¡ááŒá
Ạá¡áááá¹áá«ááºááœáá·áºááá¯áá»ááºáá»á¬ážááᯠááááºážáááºážáá« (
áá»á¬ážáá±á¬á¡á¬ážááŒáá·áº etcd áá«á ). - API áá¬áᬠâ API áá áºáᯠáá¶á·ááá¯ážáá±ážááŒá®áž ááá¯ááŸá±á¬ááºááŸá¯ááᯠá á®áá¶ááá·áºááœá²áááºá
- ááááºážáá»á¯ááºáá°áááºáá±áá»á¬ â á¡áááºážá¡ááŒá áºá¡ááŒá±á¡áá±áá»á¬ážááẠáááºááŸááºáá»ááºáá»á¬ážááŸáá·áºá¡áá® ááá¯ááºáá¬ááŒá±á¬ááºáž áá±áá»á¬áá«á á±á
- á á®á ááºáá±ážáá° - á¡áá¯ááºááá¬áž node áá»á¬ážááœáẠpods áá»á¬ážááᯠá¡áá»áááºááá¬ážááœá²áá«á
á€áááºááŸá¬ á¡áá¯ááºááá¬áž node áá»á¬ážááœáẠá¡áá±ážááŒá®ážáá¯á¶áž á¡á áááºá¡ááá¯ááºážáá áºáá¯ááŒá áºáááºá
- kubelet - á¡áá¯ááºáá¯ááºáá±á¬ node áá±á«áºááŸá containers áá»á¬ážá áááºááŒááºážááᯠá á®áá¶ááá·áºááœá²áááºá
á€á¡á áááºá¡ááá¯ááºážáá»á¬áž áááºáá²á·ááá¯á· á¡áá°ááᜠáá¯ááºáá±á¬ááºáááºááᯠáá¬ážáááºááẠá¥ááá¬áá áºáá¯ááᯠááŒáá·áºááŒáá«á áá¯á·á
ááŒá®ážááœá¬ážááŒá®ááá¯á· áá°áááŒáá«á
áá¯á· kubectl create -f replicaset.yaml
ááá¯á·áá±á¬áẠkubectl á០HTTP POST áá±á¬ááºážááá¯áá»ááºááᯠááŒá¯áá¯ááºáá²á·áááºá
á¡á á¯á¡áá±ážááŸá¬ áá¬ááœá±ááŒá áºáá±áá²á
- áá¯ááºááŒá®ážááŸ
kubectl create -f replicaset.yaml
API áá¬áá¬ááẠáááºá ReplicaSet á¡áááºážá¡ááŒá Ạá¡áááá¹áá«ááºááœáá·áºááá¯áá»ááºááᯠááá¯ááŸá±á¬ááºááŸá¯ááœáẠááááºážáááºážáááº- - ááá¯á·áá±á¬áẠReplicaSet controller ááᯠReplicaSet á¡áááºážá¡ááŒá áºáá»á¬ážááᯠáááºáá®ážááŒááºážá ááŒá¯ááŒááºááœááºážáá¶ááŒááºážááŸáá·áº áá»ááºááŒááºážáá»á¬ážááᯠááá¯ááºááœááºááá·áº controller manager ááœáẠá áááºáá¯ááºáá±á¬ááºáááº-
- ReplicaSet ááááºážáá»á¯ááºáá°ááẠReplicaSet áá¯á¶á á¶áá°áá áºáá¯á á®á¡ááœáẠáá±á«á·áẠá¡áááá¹áá«ááºááœáá·áºááá¯áá»áẠ(ReplicaSet á á¡áááá¹áá«ááºáááºááŸááºáá»ááºááŸá áá±á«á·ááºáá¯á¶á á¶á¡ááá¯ááºáž) ááŸáá·áº áááºážááá¯á·ááᯠááá¯ááŸá±á¬ááºááŸá¯ááœáẠááááºážáááºážáááº-
- á¡áá»áááºááá¬ážááœá²áá°ááẠáááºááá·áºá¡áá¯ááºááá¬áž áá¯á¶ááŸááºáá»á¬ážááá¯á· áá¬áááºááá±ážá¡ááºááá±ážááá·áº á¡ááœááºáá»á¬ážááᯠááŒá±áá¬áá¶ááá¯ááºáááº-
- á¡áá»áááºááá¬ážááœá²áá°ááẠpod áá áºáá¯á á®á¡ááœáẠááá·áºáá»á±á¬áºáá±á¬ áá¯ááºáá¬áž node áá áºáá¯ááᯠááœá±ážáá»ááºááŒá®áž á ááá¯ážááá¯ááºááŸá pod á¡áááá¹áá«ááºááœáá·áºááá¯áá»ááºááá¯á· á€á¡áá»ááºá¡áááºááᯠáá±á«ááºážááá·áºáááº-
- áá±á«á·ááºááᯠáááºááŸááºáá±ážááá·áº á¡áá¯ááºááá¬áž áá¯ááºááœáẠKubelet ááᯠááœáá·áºááá¯ááºáááºá áááºážááẠဠnode á¡ááœáẠáááºááŸááºáá±ážáá¬ážááá·áº pods áá»á¬ážááᯠááŒá±áá¬áá¶áááº-
- Kubelet ááẠááá¯ááŸá±á¬ááºááŸá¯á០áá±á«á·áẠá¡áááá¹áá«ááºááœáá·áºááá¯áá»ááºááᯠáááºááŒá®áž node áá±á«áºááŸá ááœááºááááºáá¬áá»á¬ážááᯠááœáá·áºááẠDocker áá²á·ááá¯á·áá±á¬ ááœááºááááºáᬠruntime ááᯠááœáŸááºááŒá¬ážáááº-
á¡á±á¬ááºááœáẠá€áá±á¬áºááŒáá»ááºá á á¬áá¬ážáá¬ážááŸááºážááŒá áºáááºá
ReplicaSet áááºáá®ážááŸá¯ á¡áá¯á¶ážááŸááºááá¯á· API áá±á¬ááºážááá¯áá»ááºááᯠAPI áá¬áá¬á០áá¯ááºáá±á¬ááºáá«áááºá API áá¬áá¬ááẠáá±á¬ááºážááá¯áá»ááºááᯠá á áºááŸááºááŒá±á¬ááºáž áááºáá±ááŒááŒá®áž ReplicaSet á¡áááºážá¡ááŒá Ạá¡áááá¹áá«ááºááœáá·áºááá¯áá»ááºááᯠááá¯ááŸá±á¬ááºááŸá¯ááœáẠááááºážáááºážáá¬ážáááºá
á€ááŒá áºáááºááẠááááºážáá»á¯ááºáá°áááºáá±áá»á¬á áá¯ááºáááºážá ááºááœá²ááŒá áºááá·áº ReplicaSet ááááºážáá»á¯ááºáááááá¬ááᯠá áááºáááºá ReplicaSet ááááºážáá»á¯ááºáá°ááẠá ááá¯ážááá¯ááºááŸá ReplicaSet áááºážááŒá áºáá»á¬ážááᯠáááºáá®ážááŒááºážá á¡ááºááááºáá¯ááºááŒááºážááŸáá·áº áá»ááºááŒááºážááá¯á·ááᯠá á±á¬áá·áºááŒáá·áºá á áºáá±ážááŒá®áž áááºážááŒá áºáá±á«áºááá·áºá¡áá« ááŒá áºáááºááááá±ážáá»ááºááᯠáááºáá¶áááŸááá«áááºá
ReplicaSet controller áá¡áá¯ááºááŸá¬ ááá¯á¡ááºáá±á¬ ReplicaSet pods á¡áá±á¡ááœááºááŸáááŒá±á¬ááºáž áá±áá»á¬á á±áááºááŒá áºáááºá áá»áœááºá¯ááºááá¯á·áááá°áá¬ááœááºá áá±á«á·ááºáá»á¬áž áááŸááá±ážáá«á ááá¯á·ááŒá±á¬áá·áº ReplicaSet ááááºážáá»á¯ááºáá°ááẠဠpod á¡áááá¹áá«ááºááœáá·áºááá¯áá»ááºáá»á¬áž (ReplicaSet á¡áááá¹áá«ááºáááºááŸááºáá»ááºááŸá áá±á«á·ááºáá¯á¶á á¶á¡ááá¯ááºáž) áááºáá®ážááŒá®áž áááºážááá¯á·ááᯠááá¯ááŸá±á¬ááºááŸá¯ááœáẠááááºážáááºážáá¬ážáááºá
pods á¡áá áºáá»á¬ážáááºáá®ážááŒááºážááᯠworker node á¡ááœáẠá á®á ááºáá¬ážááŒááºážáááŸááá±ážáá±á¬ pod á¡áááá¹áá«ááºáá»á¬ážááᯠááŒá±áá¬áá¶ááá·áº á¡áá»áááºááá¬ážááœá²ááŒááºážááŒáá·áº á¡á áá»áá¯ážáá«áááºá á¡áá»áááºááá¬ážááœá²áá°ááẠpod áá áºáá¯á á®á¡ááœáẠááá·áºáá»á±á¬áºáá±á¬ áá¯ááºáá¬áž node áá áºáá¯ááᯠááœá±ážáá»ááºááŒá®áž ááá¯ááŸá±á¬ááºáááºážááŸá pod á¡áááá¹áá«ááºááœáá·áºááá¯áá»ááºáá»á¬ážááᯠá¡ááºááááºáá¯ááºáá«áááºá
á€á¡áá»ááºá¡ááá á¡áá¯ááºáááºáá¯ááºááẠá¡á á¯á¡áá±ážá¡ááœááºáž áááºááá·áºáá±áá¬ááœááºáá»áŸ áá¯ááºáá±á¬ááºááŒááºážáááŸáááŒá±á¬ááºáž áááááŒá¯áá«á á¡áá¯áá ááŒá®ážáá²á·ááá»áŸ - áááºážááẠmaster node ááŸá repository á¡ááœááºážááŸá á¡áááºážá¡ááŒá áºáá»á¬ážááᯠáááºáá®ážááŒááºážááŸáá·áº á¡ááºááááºáá¯ááºááŒááºáž ááŒá áºáááºá
áá±á¬ááºáá¯á¶ážááŒá áºáááºááẠáááºážááá¯á·áá¡áá¯ááºááŸáẠnode á¡ááœááºá á®á ááºáá¬ážáá±á¬ pods áá»á¬ážááᯠá á±á¬áá·áºááŒáá·áºááá·áº Kubelets ááᯠá¡á áá»áá¯ážá á±áááºá áááºá ReplicaSet pods áá»á¬ážááᯠáááºáááºáá¬ážááá·áº á¡áá¯ááºááá¬áž node á Kubelet ááẠááá¯á¡ááºáá±á¬ container áá¯á¶áá»á¬ážááᯠáá±á«ááºážáá¯ááºáá¯ááºááŒá®áž áááºážááá¯á·ááᯠrun áááºá¡ááœáẠDocker áá²á·ááá¯á·áá±á¬ container runtime ááᯠááœáŸááºááŒá¬ážááááºááŒá áºáááºá
á€á¡áá»áááºááœááºá áááºá ReplicaSet á¡ááá®áá±ážááŸááºážááẠáá±á¬ááºáá¯á¶ážááœáẠá¡áá¯ááºáá¯ááºáá±áá«áááºá
Kubernetes API á á¡áááºážááá¹á
ááááºááá°áá¬ááœáẠáááºááœá±á·áá²á·ááá·áºá¡ááá¯ááºážá Kubernetes á¡á áááºá¡ááá¯ááºážáá»á¬áž ( API áá¬áá¬ááŸáá·áº ááá¯ááŸá±á¬ááºááŸá¯ááŸááœá²á ) ááẠááá¯ááŸá±á¬ááºááŸá¯ááœáẠá¡áááºážá¡ááŒá áºáá»á¬ážááŒá±á¬ááºážáá²ááŸá¯áá»á¬ážááŸáá·áº ááá¯ááŸá±á¬ááºááŸá¯á¡ááœááºážááŸá á¡áááºážá¡ááŒá áºáá»á¬ážá¡ááŒá±á¬ááºáž á¡áá»ááºá¡áááºáá»á¬ážááᯠááŒá±á¬ááºážáá²áááºá¡ááœáẠá á±á¬áá·áºááŒáá·áºáá«áááºá
áá¯ááºáá«áááºá á€á¡á áááºá¡ááá¯ááºážáá»á¬ážááẠááá¯ááŸá±á¬ááºááŸá¯ááŸáá·áº ááá¯ááºááá¯ááºááá¯á¶á·ááŒááºáá² Kubernetes API ááŸáááá·áºáᬠáá¯ááºáá±á¬ááºáá«áááºá
á¡á±á¬ááºáá«á¥ááá¬áá»á¬ážááᯠáá¯á¶ážáááºááŒáá·áºáá«á:
- ReplicaSet ááááºážáá»á¯ááºáá°ááẠAPI á¡áá¯á¶ážááŸááºááᯠá¡áá¯á¶ážááŒá¯áááºá
ReplicaSets á á¬áááºáž ááá·áºáááºáá»ááºáá»á¬ážááŸáá·áºá¡áá°watch
ReplicaSet á¡áááºážá¡ááŒá áºáá»á¬ážááᯠá¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠá á±á¬áá·áºááŒáá·áºáááºá - ReplicaSet ááááºážáá»á¯ááºáá°ááẠAPI á¡áá¯á¶ážááŸááºááᯠá¡áá¯á¶ážááŒá¯áááºá
Pod ááá¯áááºáá®ážáá«á pods áááºáá®ážááẠ(áááºáá®ážáá«)á - á¡á
á®á¡á
ááºááœá²áá°ááẠAPI á¡áá¯á¶ážááŸááºááᯠá¡áá¯á¶ážááŒá¯áááºá
patch pod ááœá±ážáá»ááºáá¬ážáá±á¬ á¡áá¯ááºááá¬áž node áá»á¬ážá¡ááŒá±á¬ááºáž á¡áá»ááºá¡áááºáá»á¬ážááŒáá·áº pods áá»á¬ážááᯠá¡ááºááááºáá¯ááºááẠ(áááºážááŒááºáá«)á
áááºááœá±á·ááŒááºáááá·áºá¡ááá¯ááºážá á€ááẠkubectl áááºáá±á¬ááºááá·áº á¡áá¬ážáá° API ááŒá áºáááºá á¡ááœááºážááá¯ááºážá¡á áááºá¡ááá¯ááºážáá»á¬ážááŸáá·áº ááŒááºáá¡áá¯á¶ážááŒá¯áá°áá»á¬ážá¡ááœáẠáá°áá®áá±á¬ API ááá¯á¡áá¯á¶ážááŒá¯ááŒááºážááẠKubernetes áá®ááá¯ááºážááœáẠá¡ááŒá±áá¶ááá±á¬ááá¬ážáá áºáá¯ááŒá áºáááºá
ááᯠKubernetes á¡áá¯ááºáá¯ááºáá¯á¶ááᯠá¡áá»ááºážáá»á¯ááºááá¯ááºáá«ááŒá®-
- ááá¯ááŸá±á¬ááºááŸá¯ááœáẠKubernetes á¡áááºážá¡ááŒá áºáá»á¬ážááᯠááááºážáááºážáá¬ážáááºá
- API áá¬áá¬ááẠKubernetes API áá¯á¶á á¶ááŒáá·áº ááá¯ááŸá±á¬ááºááŸá¯á¡ááœáẠá¡ááºáá¬áá±á·á áºááᯠáá¶á·ááá¯ážáá±ážáááºá
- á¡ááŒá¬áž Kubernetes á¡á áááºá¡ááá¯ááºážáá»á¬ážááŸáá·áº áá¯á¶ážá áœá²áá°áá»á¬ážá¡á¬ážáá¯á¶áž API ááŸáá áºááá·áº Kubernetes ááŒááºááẠ(á¡áááºážá¡ááŒá áºáá»á¬áž) ááᯠáááºááŒááºážá á á±á¬áá·áºááŒáá·áºáá±á·áá¬ááŒááºážááŸáá·áº ááá¯ááºááœááºááŒá±ááŸááºážááŒááºážá
á€ááá±á¬ááá¬ážáá»á¬ážááᯠááááŸáááŒááºážá kubectl ááᯠááá¯ááá¯áá¬ážáááºá á±ááŒá®áž áááºážááᯠá¡áá±á¬ááºážáá¯á¶ážá¡áá¯á¶ážáá»ááá¯ááºáááºááŒá áºáááºá
ááᯠkubectl ááŒáá·áº ááá·áºáá¯ááºáá¯ááºá áœááºážá¡á¬ážááᯠááŒáŸáá·áºáááºáá±ážááá·áº áááá»áá±á¬ á¡ááŒá¶ááŒá¯áá»ááºáá»á¬ážááŸáá·áº ááŸáá·áºááœááºá¡áá»áá¯á·ááᯠááŒáá·áºááŒáá«á áá¯á·á
1. command completion ááᯠá¡áá¯á¶ážááŒá¯á ááá·áºááœááºážááŸá¯ááᯠá¡ááŸáááºááŒáŸáá·áºáá«á
kubectl ááŒáá·áº á áœááºážáá±á¬ááºááẠááŒáŸáá·áºáááºáááºá¡ááœáẠá¡áá¯á¶ážáááºáá¯á¶ážááŒá áºáá±á¬áºáááºáž áááŒá¬áá áááááá°áááá±á¬ áááºážá áá áºáá áºáá¯ááŸá¬ command completion ááŒá áºáááºá
Command ááŒáá·áºááœááºážááŒááºážááẠTab áá±á¬á·ááᯠá¡áá¯á¶ážááŒá¯á kubectl ááœáŸááºááŒá¬ážáá»ááºáá»á¬ážá á¡á áááºá¡ááá¯ááºážáá»á¬ážááᯠá¡ááá¯á¡áá»á±á¬áẠááŒáá·áºááá¯ááºá á±áá«áááºá áááºážááẠá¡áááºážá¡ááŒá áºá¡áááºáá»á¬ážáá²á·ááá¯á· ááŸá¯ááºááœá±ážááá·áºá¡áá¬áá»á¬ážá¡áá«á¡ááẠááœááºáááºážáá»á¬ážá ááœá±ážáá»ááºááŸá¯áá»á¬ážááŸáá·áº á¡ááŒá±á¬ááºážááŒáá»ááºáá»á¬ážá¡ááœáẠáá¯ááºáá±á¬ááºáááºá
kubectl command completion á¡áá¯ááºáá¯ááºáá¯á¶ááá¯ááŒáá·áºáá«-
Command ááŒá®ážá
á®ážááŸá¯ááẠBash ááŸáá·áº Zsh ááœá¶áá»á¬ážá¡ááœáẠá¡áá¯ááºáá¯ááºáááºá
Command Completion á¡áá¯ááºáá¯ááºáá¯á¶
Command completion ááẠcompletion script ááá¯á¡áá¯á¶ážááŒá¯á á¡áá¯ááºáá¯ááºáá±á¬ shell á¡ááºá¹áá«áááºáá áºáá¯ááŒá áºáááºá extension script ááẠáá®ážááŒá¬áž command áá áºáá¯á¡ááœáẠextension áá áºáá¯á á¡ááŒá¯á¡áá°ááᯠáááºááŸááºáá±ážááá·áº shell script áá áºáá¯ááŒá áºáááºá
Kubectl ááẠá¡á±á¬ááºáá« command áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯á Bash ááŸáá·áº Zsh á¡ááœáẠextension script áá»á¬ážááᯠá¡ááá¯á¡áá»á±á¬ááºáá¯ááºáá±ážááŒá®áž áá¯ááºáááº-
$ kubectl completion bash
ááá¯á·ááá¯ááº:
$ kubectl completion zsh
áá®á¡áá¯áá®á¡áá ဠcommand áá»á¬ážá output ááᯠááá·áºáá»á±á¬áºáá±á¬ command shell ááŸáá·áº áá»áááºáááºááẠkubectl ááẠcommand áá»á¬ážááᯠááŒáá·áºá áœááºááá¯ááºá á±ááẠáá¯á¶áá±á¬ááºáá«áááºá
áááºááœá±á·ááœááºá áá»áááºáááºááŸá¯áááºážáááºážááẠBash (Linux ááŸáá·áº MacOS ááŒá¬ážááŒá¬ážáá¬ážáá»ááºáá»á¬ážá¡áá«á¡áááº) ááŸáá·áº Zsh á¡ááœáẠááá°áá®áá«á á¡á±á¬ááºááœááºáá»áœááºá¯ááºááá¯á·áááºá€ááœá±ážáá»ááºááŸá¯áá»á¬ážá¡á¬ážáá¯á¶ážááá¯ááŒáá·áºááŸá¯áá«áááºá
Linux áá±á«áºááœáẠBash
Bash ááŒá®ážá á®ážááŸá¯ script ááẠbash-completion package áá±á«áºááœááºáá°áááºáá±á¬ááŒá±á¬áá·áº áááºážááᯠáŠážá áœá¬ ááá·áºááœááºážááẠááá¯á¡ááºáááº-
$ sudo apt-get install bash-completion
ááá¯á·ááá¯ááº:
$ yum install bash-completion
á¡á±á¬ááºáá« command ááᯠá¡áá¯á¶ážááŒá¯á package ááᯠá¡á±á¬ááºááŒááºá áœá¬ ááá·áºááœááºážáá¬ážááŒá±á¬ááºáž áááºá ááºážáááºááá¯ááºáá«áááºá
$ type _init_completion
áááºážááẠshell function code ááá¯áá¯ááºáá±ážáá«áá ááá¯á·áá±á¬áẠbash-completion ááᯠááŸááºáááºá
áœá¬ ááá·áºááœááºážáá¬ážáááºá á¡áááºá command ááẠ"Not Found" error áá±ážáááºááá¯áá«áá áááºááẠáááºáááá¯ááºáá²ááá¯á· á¡á±á¬ááºáá«á
á¬ááŒá±á¬ááºážááᯠááá·áºááẠááá¯á¡ááºáá«áááºá ~ / .bashrc
:
$ source /usr/share/bash-completion/bash_completion
á€á
á¬ááŒá±á¬ááºážááᯠááá¯ááºááœáẠááá·áºááẠááá¯á¡ááºáá«ááá¬ážá ~ / .bashrc
ááá¯á·ááá¯áẠbash-completion ááᯠááá·áºááœááºážááẠáááºá¡áá¯á¶ážááŒá¯áá²á·ááá·áº áááºáá±á·áá»áºáááºáá±áá»á¬á¡áá±á«áº áá°áááºáááºá áááºážááẠAPT á¡ááœáẠááá¯á¡ááºáá±á¬áºáááºáž YUM á¡ááœáẠááá¯ááºáá«á
bash-completion ááᯠááá·áºááœááºážááŒá®ážáá±á¬ááºá shell sessions á¡á¬ážáá¯á¶ážááœáẠkubectl ááŒá®ážá á®ážááŸá¯ script ááá¯ááœáá·áºáá¬ážááẠá¡áá¬á¡á¬ážáá¯á¶ážááᯠconfigure áá¯ááºááẠááá¯á¡ááºáá«áááºá
áááºážááá¯ááŒá¯áá¯ááºáááºáááºážáááºážáá
áºáá¯ááŸá¬ ááá¯ááºáá²ááá¯á· á¡á±á¬ááºáá«á
á¬ááŒá±á¬ááºážááᯠááá·áºáááºááŒá
áºáááºá ~ / .bashrc
:
source <(kubectl completion bash)
á¡ááŒá¬ážáááºážáááºážááŸá¬ directory ááœáẠkubectl extension script ááá¯ááá·áºáááºááŒá
áºáááºá /etc/bash_completion.d
(áááŸááá»áŸáẠáááºáá®ážáá«á)
$ kubectl completion bash >/etc/bash_completion.d/kubectl
áááºááá±á¬ááºááŸá add-on script áá»á¬ážá¡á¬ážáá¯á¶áž /etc/bash_completion.d
bash-completion ááœáẠá¡ááá¯á¡áá»á±á¬ááºáá«áááºáá«áááºá
ááœá±ážáá»ááºááŸá¯ááŸá áºáá¯á áá¯á¶ážááẠá¡áá®á¡áá»áŸ áááºááá¯ááºáá«áááºá
shell ááᯠááŒááºáááºá áááºááŒá®ážáá±á¬ááºá kubectl command ááŒá®ážáá¯á¶ážááŒááºáž á¡áá¯ááºáá¯ááºáá«áááºá
MacOS ááœáẠBash
MacOS ááœááºáááºáááºááŸá¯áááºá¡áááºážáááºááá¯ááá¯ááŸá¯ááºááœá±ážáááºá á¡ááŸááºááŸá¬ áá¯á¶ááŸááºá¡á¬ážááŒáá·áº MacOS ááẠBash áá¬ážááŸááºáž 3.2 ááᯠá¡áá¯á¶ážááŒá¯ááŒá®áž kubectl á¡ááá¯á¡áá»á±á¬ááºááŒáá·áºááœááºážááá·áº script ááẠá¡áááºážáá¯á¶áž Bash áá¬ážááŸááºáž ááá¯á¡ááºááŒá®áž Bash 4.1 ááœáẠá¡áá¯ááºááá¯ááºáá«á
MacOS ááŸá Bash á áá±ááºááá®áá±á¬ áá¬ážááŸááºážááᯠá¡áá¯á¶ážááŒá¯ááŒááºážááŸáá·áº áááºá ááºáá±á¬ ááá¯ááºá ááºááŒá¿áá¬áá»á¬áž ááŸááá«áááºá Bash áá¬ážááŸááºáž 4 ááᯠApple á០ááá¶á·ááá¯ážáá¬ážááá·áº GPLv3 á¡á±á¬ááºááœáẠááá¯ááºá ááºááá¬ážáááºá
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
ááá¯ááºááá¯á·ááá·áºááẠááá¯á¡ááºáááºáá»á¬ážááᯠáááºááŸááºáá±ážááá·áº 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
. á€ááá
á¹á
ááœááºá á¡ááá¯á¡áá»á±á¬ááºááŒáá·áºá
áœááºááŒááºážááᯠmain ááœááºáá¬áá ááá±áž command shells áá»á¬ážááœááºáááºáž áááŸáááá¯ááºáá«áááºá
command shell ááᯠááŒááºáááºá áááºááŒá®ážáá±á¬ááºá á¡á±á¬ááºáá« command ááá¯áá¯á¶ážááŒá®áž áááºáááºááŸá¯ááŸááºáááºááŒá±á¬ááºáž á¡áááºááŒá¯ááá¯ááºáááº-
$ type _init_completion
output ááœáẠshell function ááá¯ááœá±á·áá«áá á¡áá¬á¡á¬ážáá¯á¶ážááá¯ááŸááºáááºá áœá¬ááŒááºáááºáá¬ážáááºá
ááᯠáá»áœááºá¯ááºááá¯á·ááẠá ááºááŸááºáá»á¬ážá¡á¬ážáá¯á¶ážááœáẠkubectl á¡ááá¯á¡áá»á±á¬ááºááŒáá·áºááŒááºážá¡á¬áž ááœáá·áºáá¬ážááŒá±á¬ááºáž áá±áá»á¬á á±ááẠááá¯á¡ááºáá«áááºá
áá
áºáááºážá ááá·áºáá¶ááá¯á· á¡á±á¬ááºáá«á
á¬ááŒá±á¬ááºážááᯠááá·áºáááºááŒá
áºáááºá ~/.bashrc
:
source <(kubectl completion bash)
áá¯ááááááºážáááºážááŸá¬ ááá¯áá«ááœáẠá¡ááá¯á¡áá»á±á¬ááºááŒáá·áºá
ááá
áºááᯠááá·áºáááºááŒá
áºáááºá /usr/local/etc/bash_completion.d
:
$ kubectl completion bash
>/usr/local/etc/bash_completion.d/kubectl
Homebrew ááᯠá¡áá¯á¶ážááŒá¯á bash-completion ááᯠááá·áºááœááºážáá¬ážááŸáᬠá€áááºážáááºážááẠá¡áá¯ááºááŒá áºáá«áááºá á€ááá á¹á ááœááºá bash-completion ááẠá€áááºážááœáŸááºá០script á¡á¬ážáá¯á¶ážááᯠload áá¯ááºáááºá
áááºáááºáááºááá¯ááẠ/usr/local/etc/bash_completion.d
áááºáááºáá±á
ááºá á€ááá
á¹á
ááœááºá bash-completion ááᯠáááºááá·áºááœááºážááŒá®ážáááºááŸáá·áº kubectl á¡ááá¯á¡áá»á±á¬ááºááŒáá·áºááŒááºáž á
áááºáá¯ááºáá±á¬ááºáá«áááºá
ááááºá¡áá±ááŒáá·áº á€ááœá±ážáá»ááºááŸá¯á¡á¬ážáá¯á¶ážááẠáá°áá®áá«áááºá
zsh
Zsh á¡ááœáẠá¡ááá¯á¡áá»á±á¬ááºááŒáá·áºá áœááºááŒááºáž scripts áá»á¬ážááẠáááºááá·áºááŸá®ááá¯ááŸá¯á០áááá¯á¡ááºáá«á command shell ááᯠload áá¯ááºáá²á·á¡áá« áááºáá¯ááºáááŸá¬á á¡á²áá«ááœá±ááᯠenable áá¯ááºááá¯á·áá«áá²á
ááá·áºáá¶ááá¯á· ááá¯ááºážáá
áºáá¯ááᯠáá±á«ááºážááá·áºááŒááºážááŒáá·áº áááºážááᯠáááºáá¯ááºáá±á¬ááºááá¯ááºáááºá ~/.zshrc
ááá¯ááº-
source <(kubectl completion zsh)
á¡ááŸá¬ážáá
áºáá¯áááºáá¶áááŸááá»áŸáẠnot found: compdef
áááºá shell ááá¯ááŒááºáááºá
áááºááŒá®ážáá±á¬ááºá áááºááẠbuiltin áá¯ááºáá±á¬ááºáá»ááºááá¯ááœáá·áºáááºááá¯á¡ááºáááºá compdef
. ááá·áºááá¯ááºáá¡á
ááœáẠáááºážááá¯ááá·áºááŒááºážááŒáá·áº áááºážááá¯áááºááœáá·áºááá¯ááºáááºá ~/.zshrc
á¡á±á¬ááºáá«:
autoload -Uz compinit
compinit
2. á¡áááºážá¡ááŒá áºáááºááŸááºáá»ááºáá»á¬ážááᯠá¡ááŒááºááŒáá·áºááŸá¯áá«á
YAML á¡áááºážá¡ááŒá Ạá¡áááá¹áá«ááºááœáá·áºááá¯áá»ááºáá»á¬ážááᯠáááºáá®ážáá±á¬á¡áá«á ááá¯á¡áááºážá¡ááŒá áºáá»á¬ážá¡ááœáẠáááºáááºáá»á¬ážááŸáá·áº áááºážááá¯á·á á¡áááá¹áá«ááºááᯠááááŸáááẠááá¯á¡ááºáááºá á€á¡áá»ááºá¡áááºááá¯ááŸá¬ááœá±áááºáá±áá¬áá áºáá¯ááẠá¡áááºážá¡ááŒá áºá¡á¬ážáá¯á¶ážá¡ááœáẠááŒá®ážááŒáá·áºá á¯á¶áá±á¬áááºááŸááºáá»ááºáá»á¬ážáá«ááŸááá±á¬ API ááá¯ážáá¬ážááŸá¯ááœááºááŒá áºáááºá
ááá¯á·áá±á¬áºá áááºáá
áºáá¯áá¯ááá¯ááŸá¬ááœá±ááẠááá¯á¡ááºááá¯ááºáž áááºááá±á¬ááºáá¬ááá¯á· ááŒá±á¬ááºážááŒááºážááẠá¡áááºáááŒá±áá«á ááá¯á·ááŒá±á¬áá·áº kubectl ááẠcommand ááá¯áá±ážáááºá kubectl explain
ááá·áº terminal ááŸá á¡áááºážá¡ááŒá
áºá¡á¬ážáá¯á¶ážá áááºááŸááºáá»ááºáá»á¬ážááᯠááŒááá±ážáá±á¬á
command format ááŸá¬ á¡á±á¬ááºáá«á¡ááá¯ááºážááŒá áºááẠá
$ kubectl explain resource[.field]...
command ááẠáá±á¬ááºážááá¯áá¬ážáá±á¬ á¡áááºážá¡ááŒá Ạááá¯á·ááá¯áẠá¡ááœááºá áááºááŸááºáá»ááºááᯠáá¯ááºáá±ážáááá·áºáááºá ááŒááá¬ážáá±á¬ á¡áá»ááºá¡áááºááẠAPI áááºá áœá²ááœááºáá«ááŸááá±á¬ áá°áá®áá«áááºá
áá¯á¶ááŸááºá¡á¬ážááŒááºá· kubectl explain
á¡ááœááºáá»á¬ážá áááá¡ááá·áºááá¯áᬠááŒááááºá
áááºááá¯áá¯á¶á
á¶áá²ááá¯áᬠááŒáá·áºáá«á
ááœá±ážáá»ááºááœáá·áºááᯠááá·áºáá«á áá
áºáááºáá
áºáá¯áá¯á¶ážááᯠááŒáááá¯ááºáááºá --recursive
:
$ kubectl explain deployment.spec --recursive
áááºááá·áºá¡áááºážá¡ááŒá áºáá»á¬áž ááá¯á¡ááºáááºááᯠá¡ááá¡áá»ááááá«áá áááºážááá¯á·á¡á¬ážáá¯á¶ážááᯠá¡á±á¬ááºáá« command ááŒáá·áº ááŒáááá¯ááºáááº-
$ kubectl api-resources
ဠcommand ááẠá¡áááºážá¡ááŒá
áºá¡áááºáá»á¬ážááᯠá¡áá»á¬ážááááºážáá¯á¶á
á¶ááŒáá·áº ááŒááááºá á¥ááá¬á deployments
á¡á
á¬áž deployment
. á¥ááá¬á¡á¬ážááŒáá·áº áááºážááẠáá¬áááºá¡ááá¯ááᯠáá±á¬áºááŒáááºá deploy
á¡áááºážá¡ááŸá®ážááŸááá°áá»á¬ážá¡ááœááºá áá®ááœá²ááŒá¬ážááŸá¯ááœá±á¡ááœáẠá
áááºááá°áá«áá²á·á á€á¡áááºáá±ážááœá±ážáá»ááºááŸá¯á¡á¬ážáá¯á¶ážááẠkubectl á¡ááœáẠáá°áá®áá«áááºá ááá¯ááá¯áááºááŸá¬á áááºááẠáááºážááá¯á·ááᯠáááºááá·áºá¡ááœááºáááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºáááºá kubectl explain
.
á¡á±á¬ááºáá« command áá»á¬ážá¡á¬ážáá¯á¶ážááẠáá°áá®áááº-
$ kubectl explain deployments.spec
# ОлО
$ kubectl explain deployment.spec
# ОлО
$ kubectl explain deploy.spec
3. á áááºááŒáá¯ááºáá±á¬áºáᶠá¡ááœááºáá±á¬áºáááºááᯠá¡áá¯á¶ážááŒá¯áá«á
áá¯á¶áá± command output áá±á¬áºááẠ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
á¡ááœááºááœáẠpods áá»á¬ážáá¡áááºáá»á¬ážáá«áá±á¬áá±á¬áºáá¶áá áºáá¯áá«ááŸááááºá
ááœá±ážáá»ááºá
áᬠá
áá¬ážáááºááẠá¡ááœááºá០pod á¡áááºáá»á¬ážááᯠááœá±ážáá»ááºáááºá metadata.name
. á¡ááŒá±á¬ááºážááŸá¬ pod áá¡áááºááᯠááá±ážá¡áááºá¡ááœááºááœáẠáááºááŸááºáá¬ážáá±á¬ááŒá±á¬áá·áºááŒá
áºáááºá metadata
pod áá¡áááºážá¡ááŒá
áºáá±á¬áºááŒáá»ááºááœááºá á¡áá±ážá
áááºá¡áá»ááºá¡áááºáá»á¬ážááᯠááœáẠááŒáá·áºááŸá¯ááá¯ááºáá«áááºá kubectl explain pod.metadata.name
.
ááá¯ááœáẠáááºááẠá¡ááœááºááœáẠáá±á¬áºáá¶áá áºáᯠáááºááá·áºááá¯áááºááá¯áá«á áá¯á·á á¥ááᬠáá±á«á·ááºáá áºáá¯á á®ááœáẠáá¯ááºáá±á¬ááºáá±ááá·áº node ááá¯ááŒááááºá áááºážááá¯áá¯ááºáá±á¬ááºáááºá á áááºááŒáá¯ááºáá±á¬áºáá¶áá»á¬ážááœá±ážáá»ááºááŸá¯ááœáẠááá·áºáá»á±á¬áºáá±á¬áá±á¬áºáá¶áááºááŸááºáá»ááºááᯠááá¯ážááá¯ážááŸááºážááŸááºážááá·áºááá¯ááºáááºá
$ kubectl get pods
-o custom-columns='NAME:metadata.name,NODE:spec.nodeName'
NAME NODE
engine-544b6b6467-22qr6 ip-10-0-80-67.ec2.internal
engine-544b6b6467-lw5t8 ip-10-0-36-80.ec2.internal
engine-544b6b6467-tvgmg ip-10-0-118-34.ec2.internal
web-ui-6db964458-8pdw4 ip-10-0-118-34.ec2.internal
á
áá¬ážáááºááẠnode á¡áááºá០ááœá±ážáá»ááºáááºá spec.nodeName
â pod áá
áºáá¯ááᯠnode áá
áºáá¯ááá¯á· áááºááŸááºáá±á¬á¡áá«á áááºážáá¡áááºááᯠá¡ááœááºááœáẠáá±ážáá¬ážáááºá spec.nodeName
pod á¡áááºážá¡ááŒá
áºáááºááŸááºáá»ááºá á¡áá±ážá
áááºá¡áá»ááºá¡áááºáá»á¬ážááᯠoutput ááœááºááœá±á·ááá¯ááºáááºá 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'
[] operator ááẠá¡áá°ážá¡áá±ážááŒá®ážáá«áááºá Kubernetes áááºážááŒá áºá¡ááœááºá¡áá»á¬ážá¡ááŒá¬ážááẠá á¬áááºážáá»á¬ážááŒá áºááŒá®ážá á€á¡á±á¬áºááá±áá¬ááẠááá·áºá¡á¬áž ááá¯á á¬áááºážáá»á¬ážá á¡ááœá²á·áááºáá»á¬ážááᯠááœá±ážáá»ááºááœáá·áºááŒá¯áááºá á á¬áááºážáá áºáá¯áááŒááºá ááºá¡á¬ážáá¯á¶ážááᯠááœá±ážáá»ááºááẠ[*] áá²á·ááá¯á·áá±á¬ áááºá¹áá±áááŒáá·áº á¡áá¯á¶ážááŒá¯áá±á·ááŸááááºá
áá»áŸá±á¬ááºááœáŸá¬á¥ááá¬
á áááºááŒáá¯ááºáá±á¬áºáᶠá¡ááœááºáá±á¬áºáááºááᯠá¡áá¯á¶ážááŒá¯áááºá¡ááœáẠááŒá áºááá¯ááºááŒá±áá»á¬ážááŸá¬ á¡áá¯á¶ážáááŸááá±á¬á áááºááá·áºá¡ááœáẠááá¯á·ááá¯áẠá¡áááºážá¡ááŒá áºá¡ááœááºáá»á¬ážá áá±á«ááºážá ááºááŸá¯ááᯠáááºááŒáááá¯ááºáá±á¬ááŒá±á¬áá·áº ááŒá áºááá¯ááºááŒá±áááŸááá«á á€áááºááŸá¬ ááá°áá¬á¡ááºááºá¡áá»áá¯á·ááŒá áºáá±á¬áºáááºáž áááºážááá¯á·ááᯠáááºááá¯ááºááá¯ááºá á°ážá ááºážáá±á·áá¬ááŒá®áž ááá·áºá¡ááœáẠá¡áááºááŒá±ááá·áºá¡ááºááºáá»á¬ážááᯠááŸá¬ááœá±áá«á
- pods á¡ááœáẠááœááºááááºáá¬áá¯á¶áá»á¬ážááᯠááŒááá±áááº-
$ kubectl get pods -o custom-columns='NAME:metadata.name,IMAGES:spec.containers[*].image' NAME IMAGES engine-544b6b6467-22qr6 rabbitmq:3.7.8-management,nginx engine-544b6b6467-lw5t8 rabbitmq:3.7.8-management,nginx engine-544b6b6467-tvgmg rabbitmq:3.7.8-management,nginx web-ui-6db964458-8pdw4 wordpress
á€á¡áááá·áºááẠpod áá áºáá¯á á®á¡ááœáẠááœááºááááºáá¬áá¯á¶á¡áááºáá»á¬ážááᯠááŒááááºá
áá±á«á·ááºáá áºáá¯ááœáẠááœááºááááºáá¬áá»á¬ážá áœá¬áá«ááŸáááá¯ááºááŒá®ážá ááá¯á·áá±á¬áẠáá±á¬áºáá¬áá»á¬ážááŒáá·áº ááá¯ááºážááŒá¬ážáá¬ážáá±á¬ áá»ááºážáá áºááŒá±á¬ááºážáá±á«áºááœáẠáá¯á¶á¡áááºáá»á¬ážááᯠááŒááááºááŒá áºááŒá±á¬ááºáž áááááá«á
- node áááŸáááá¯ááºááŸá¯áá¯ááºáá»á¬ážááᯠááŒááá±áááº-
$ kubectl get nodes -o custom-columns='NAME:metadata.name,ZONE:metadata.labels.failure-domain.beta.kubernetes.io/zone' NAME ZONE ip-10-0-118-34.ec2.internal us-east-1b ip-10-0-36-80.ec2.internal us-east-1a ip-10-0-80-67.ec2.internal us-east-1b
áááºáá¡á á¯á¡áá±ážááᯠá¡áá»á¬ážáá°ááŸá¬ cloud ááœáẠáááºáá¶áá¬ážáá»áŸáẠá€á¡áááá·áºááẠá¡áá¯á¶ážáááºáááºá áááºážááẠnode áá áºáá¯á á®á¡ááœááºáááŸáááá¯ááºááŸá¯áá¯ááºááá¯ááŒááááºá
Availability zone ááẠáá¯á¶áá°ááœá¬ážáá¯ááºááᯠáááá®áááºáá±ááá áºáá¯ááá¯á· ááá·áºáááºáá¬ážááá·áº cloud concept áá áºáá¯ááŒá áºáááºá
node áá áºáá¯á á®á¡ááœáẠáááŸáááá¯ááºááŸá¯áá¯ááºáá»á¬ážááᯠá¡áá°ážáá¶ááááºáá áºáá¯ááŒáá·áº ááá°ááẠ-
. á¡á á¯á¡áá±ážááẠá¡áá»á¬ážáá°ááŸá¬ cloud ááœáẠá¡áá¯ááºáá¯ááºáá±áá«áá á€á¡ááœáŸááºážááᯠá¡ááá¯á¡áá»á±á¬áẠáááºáá®ážááŒá®áž node áá áºáá¯á á®á¡ááœáẠáááŸáááá¯ááºááŸá¯áá¯ááºáá»á¬ážá á¡áááºáá»á¬ážááŒáá·áº ááŒáá·áºáá¬ážáááºáfailure-domain.beta.kubernetes.io/zone
á¡ááœáŸááºážáá»á¬ážááẠKubernetes á¡áááºážá¡ááŒá áºáááºááŸááºáá»ááºá á¡á áááºá¡ááá¯ááºážááá¯ááºáá±á¬ááŒá±á¬áá·áº áááºážááá¯á·ááŸáá·áºáááºáááºááá·áº á¡áá»ááºá¡áááºáá»á¬ážááᯠáááºááŸá¬ááœá±ááá¯ááºáááºááá¯ááºáá±á
API áááºážááœáŸáẠ. ááá¯á·áá±á¬áºá YAML ááá¯á·ááá¯áẠJSON áá±á¬áºáááºááŸá node áá»á¬ážá¡ááŒá±á¬ááºáž á¡áá»ááºá¡áááºááᯠáááºáá±á¬ááºážááá¯áá«á áááºážááá¯á· (á¡ááŒá¬ážá¡ááœáŸááºážáá»á¬ážáá²á·ááá¯á·) ááŒááºááá¯ááºáááº-$ kubectl get nodes -o yaml # ОлО $ kubectl get nodes -o json
á¡áááºážá¡ááŒá áºáá»á¬ážááᯠáá±á·áá¬ááŒááºážá¡ááŒáẠá¡áááºážá¡ááŒá áºáááºááŸááºáá»ááºáá»á¬ážá¡ááŒá±á¬ááºáž ááá¯ááá¯áá±á·áá¬ááẠá€áááºážáááºážáá±á¬ááºážáá áºáá¯ááŒá áºáááºá
4. á¡á á¯á¡áá±ážáá»á¬ážááŸáá·áº namespaces áá»á¬ážá¡ááŒá¬áž ááœááºáá°á áœá¬ááŒá±á¬ááºážáá«á
Kubectl ááẠKubernetes API ááá¯á· áá±á¬ááºážááá¯áá±á¬á¡áá«á áá»áááºáááºááŸá¯á¡ááœáẠááá¯á¡ááºáá±á¬ áá±á¬ááºáá»á¬ážá¡á¬ážáá¯á¶ážááᯠááá°ááẠkubeconfig ááá¯ááºááᯠáŠážá áœá¬áááºáááºá
default á¡áá±áá²á· kubeconfig ááá¯ááºááŒá
áºáá«áááºá ~/.kube/config
. áá¯á¶ááŸááºá¡á¬ážááŒáá·áº á€ááá¯ááºááᯠá¡áá°ážá¡áááá·áºáá
áºáá¯ááŒáá·áº áááºáá®áž ááá¯á·ááá¯áẠá¡ááºááááºáá¯ááºáááºá
áááºááẠá¡á á¯á¡áá±ážáá»á¬ážá áœá¬ááŸáá·áº á¡áá¯ááºáá¯ááºáá±á¬á¡áá«á áááºá kubeconfig ááá¯ááºááœáẠááá¯á¡á á¯á¡áá±ážáá»á¬ážá¡á¬ážáá¯á¶ážááá¯á· áá»áááºáááºáááºá¡ááœáẠáááºáááºáá»á¬ážáá«ááŸááááºá áááºáá¯ááºáá±á¬ááºáá±ááá·áº á¡á á¯á¡áá±ážááᯠkubectl á¡áááá·áºááᯠááŒá±á¬ááŒááẠáááºážáááºážáá áºáᯠááá¯á¡ááºáá«áááºá
á¡á á¯á¡áá±ážáá áºáá¯á¡ááœááºážá áááºááẠáá¯ááºááá¯ááºážááá¯ááºáᬠá¡á á¯á¡áá±ážáá áºáá¯á¡ááœááºáž virtual á¡á á¯á¡áá±ážá¡áá»áá¯ážá¡á á¬ážáá áºáá¯ááŒá áºáá±á¬ namespace á¡áá»á¬ážá¡ááŒá¬ážááᯠáááºáá®ážááá¯ááºáááºá Kubectl ááẠkubeconfig ááá¯ááºá¡áá±á«áº á¡ááŒá±áá¶á áááºááá·áº namespace ááᯠá¡áá¯á¶ážááŒá¯ááááºááᯠáá¯á¶ážááŒááºáááºá ááá¯ááá¯áááºááŸá¬ kubectl command ááá¯áááºááá·áº namespace ááŒáá·áºáá¯ááºáá±á¬ááºááááºááá¯áááºááŒá±á¬ááŒáááºáááºážáááºážáá áºáá¯ááá¯á¡ááºáááºá
á€á¡áááºážááœáẠáááºážááẠáááºááá¯á·á¡áá¯ááºáá¯ááºáá¯á¶ááŸáá·áº áááºážááᯠáááááá±á¬ááºáá±á¬áẠáá¯ááºáá±á¬ááºááá¯ááºáá¯á¶ááᯠááŸááºážááŒáá«áááºá
ááá·áºááœáẠKUBECONFIG áááºáááºážáá»áẠááŒá±á¬ááºážáá²ááá¯ááºáá±á¬ ááááºážááŸááºááœáẠáá±á¬áºááŒáá¬ážáá±á¬ kubeconfig ááá¯ááºáá»á¬ážá
áœá¬ ááŸáááá¯ááºáááºááᯠáááááŒá¯áá«á á€ááá
á¹á
ááœááºá á€ááá¯ááºáá»á¬ážá¡á¬ážáá¯á¶ážááᯠruntime ááœáẠáá¯á¶ááœá²á·á
ááºážáá¯á¶áá
áºáá¯á¡ááŒá
Ạáá±á«ááºážá
ááºáááºááŒá
áºáááºá ááá·áºáááºáá»ááºááŒáá·áº kubectl ááᯠrun ááŒááºážááŒáá·áº áá°áááºáž kubeconfig ááá¯ááºááᯠáááºááŒá±á¬ááºážááá¯ááºáááºá --kubeconfig
. ááŒáá·áºááá¯ááº
kubeconfig ááá¯ááºáá»á¬áž
kubeconfig ááá¯ááºááœáẠá¡ááá¡áá»áá«áááºáááºáá»á¬ážááᯠááŒáá·áºááŒáá«á áá¯á·á
áááºááœá±á·ááŒááºáááá·áºá¡ááá¯ááºáž kubeconfig ááá¯ááºááœáẠá¡ááŒá±á¬ááºážá¡áá¬á¡á
á¯á¶áá«ááŸááááºá á¡ááŒá±á¬ááºážá¡áᬠáá¯á¶ážáᯠáá«áááºáááº-
- Cluster â á¡á á¯ááá¯ááºáá¬áá¬á API URLá
- á¡áá¯á¶ážááŒá¯áá° - á¡á á¯á¡áá±ážááŸá á¡áá¯á¶ážááŒá¯áá° á á áºááŸááºááŒá±á¬ááºážá¡áá±á¬ááºá¡áá¬ážáá»á¬ážá
- Namespace - á¡á á¯á¡áá±ážááœááºáá«áááºááá·áºá¡áá« á¡áá¯á¶ážááŒá¯ááá·áº namespaceá
áááºááœá±á·ááœááºá áááºážááá¯á·ááẠáááºážááá¯á·á kubeconfig ááœáẠá¡á á¯áá áºáá¯áá»áŸáẠcontext áá áºáá¯ááᯠá¡áá¯á¶ážááŒá¯áá±á·ááŸááááºá ááá¯á·áá±á¬áºá á¡áá¯á¶ážááŒá¯áá° ááá¯á·ááá¯áẠnamespace á¡á ááœá²ááŒá¬ážáá±á¬ á¡á á¯áá áºáá¯á á®ááœáẠáááºá ááºá¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážá áœá¬ ááŸáááá¯ááºáá«áááºá ááá¯á·áá±á¬áºá á€á¡ááŒá±á¬ááºážá¡áá¬á¡á á¯á¶á¡áááºááœá²á·á ááºážáá¯á¶ááẠá¡áááºážááá¯ááºáá±á¬ááŒá±á¬áá·áº á¡á á¯á¡áá±ážáá»á¬ážááŸáá·áº á¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááŒá¬ážááœáẠáá áºáá¯ááŸáá áºáá¯ááá¯á· ááŒá±áá¯á¶ááœá²ááŒááºážááŸááááºáááºá
áááºááá·áºá¡áá»áááºááœááºáááᯠá¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážáá²á០áá áºáá¯ááẠáááºááŸáááŒá áºáááº-
kubectl ááẠconfiguration ááá¯ááºááá¯áááºáá±á¬á¡áá«á áááºážááẠáááºááŸáá¡ááŒá±á¬ááºážá¡áá¬á០á¡áá»ááºá¡áááºáá»á¬ážááᯠá¡ááŒá²áá°áááºá á¡áááºáá« á¥ááá¬ááœáẠkubectl ááẠHare á¡á
á¯á¡áá±ážááá¯á· áá»áááºáááºáááºááŒá
áºáááºá
ááá¯á·ááŒá±á¬áá·áºá á¡ááŒá¬ážá¡á á¯á¡áá±ážááá¯á·ááŒá±á¬ááºážááẠkubeconfig ááá¯ááºááœáẠáááºááŸáá¡ááŒá±á¬ááºážá¡áá¬ááᯠááŒá±á¬ááºážáá²ááẠááá¯á¡ááºáááº-
ááᯠkubectl ááẠFox á¡á
á¯á¡áá±ážááá¯á· áá»áááºáááºáááºááŒá
áºáááºá
áá°áá®áá±á¬á¡á á¯á¡áá±ážááŸá ááá°áá®áá±á¬ namespace ááá¯á·ááŒá±á¬ááºážáááºá áááºááŸáá¡ááŒá±á¬ááºážá¡áá¬á¡ááœáẠnamespace ááŒááºá ááºááááºááá¯ážááᯠáááºááŒá±á¬ááºážáá²ááẠááá¯á¡ááºáááº-
á¡áááºáá« á¥ááá¬ááœáẠkubectl ááẠFox cluster á Prod namespace ááᯠá¡áá¯á¶ážááŒá¯áááá·áºááẠ(ááááºá Test namespace ááᯠáááºááŸááºáá²á·áááº)á
kubectl áááºáááºáž ááœá±ážáá»ááºá
áá¬áá»á¬áž áá±ážáááºááᯠáááááŒá¯áá«á --cluster
, --user
, --namespace
О --context
kubeconfig ááœáẠáááºááá·áºá¡áá¬áᯠáááºááŸááºáá¬ážáááºááŒá
áºá
á± ááá·áºá¡á¬áž áá
áºáŠážáá»ááºážááŒááºá
ááºáá»á¬ážááŸáá·áº áááºááŸáá¡ááŒá±á¬ááºážá¡áá¬ááá¯ááºááá¯ááºá áááºáá±ážááá¯ááºá
á±áá«áááºá ááŒáá·áºááá¯áẠkubectl options
.
áá®á¡áá¯áá®á¡áá kubeconfig ááŸá áááºáááºáá»á¬ážááᯠáááºááá¯ááºááá¯áẠááŒá±á¬ááºážáá²ááá¯ááºáááºá áá«áá±ááá·áº á¡áááºáááŒá±áá°ážá á€áá¯ááºáááºážáá±á¬ááºáá¬áá»á¬ážááᯠááá¯ážááŸááºážá á±áááºá¡ááœáẠáá±á¬ááºáá»á¬ážááᯠá¡ááá¯á¡áá»á±á¬áẠááŒá±á¬ááºážáá²ááá¯ááºá á±ááá·áº á¡áá¯á¶ážáááºááŸá¯áá»á¬áž á¡áá»áá¯ážáá»áá¯ážááŸááá«áááºá
kubectx ááá¯áá¯á¶ážáá«á
á¡á á¯á¡á ááºážáá»á¬ážááŸáá·áº namespaces áá»á¬ážááŒá¬ážááŒá±á¬ááºážáááºá¡ááœáẠá¡ááœááºáá±áááºážá á¬ážáá±á¬ á¡áá¯á¶ážáááºááŸá¯áá áºáá¯á
utility ááẠcommand áá»á¬ážááá¯áá±ážáááºá kubectx
О kubens
áááºááŸáá¡ááŒá±á¬ááºážá¡áá¬ááŸáá·áº namespace á¡áá®ážáá®ážááŒá±á¬ááºážáá²áááºá
áá±á¬áºááŒáá²á·ááá·áºá¡ááá¯ááºážá áááºááŸáá¡ááŒá±á¬ááºážá¡áá¬ááá¯ááŒá±á¬ááºážáá²ááŒááºážááẠá¡á á¯á¡áá±ážáá áºáá¯áá»áŸáẠá¡ááŒá±á¬ááºážá¡áá¬áá áºáá¯áá¬ááŸááá»áŸáẠá¡á á¯á¡áá±ážááá¯ááŒá±á¬ááºážáá²ááŒááºážááá¯ááá¯áááºá
á€áááºááŸá¬ ဠcommand áá»á¬ážááᯠáá¯ááºáá±á¬ááºááŒááºážá á¥ááá¬áá áºáá¯ááŒá áºáááºá
á¡ááŒá±áá¶á¡á¬ážááŒáá·áºá á€á¡áááá·áºáá»á¬ážááẠá¡áááºááœááºáá±á¬áºááŒáá¬ážááá·áºá¡ááá¯ááºáž kubeconfig ááá¯ááºááᯠááá¯ážááá¯ážááŸááºážááŸááºážáááºážááŒááºááŒááºážááŒá
áºáááºá
install áá¯ááºááẠkubectx
ááœáẠááœáŸááºááŒá¬ážáá»ááºáá»á¬ážááᯠááá¯ááºáá¬áá«á
ááœááºáááºážááŸá
áºáá¯áá¯á¶ážááẠáááºážááá¯á·ááᯠááá¯ááºááá·áºááẠáááá¯á¡ááºáá² á¡ááá¯á¡áá»á±á¬ááºááŒáá·áºááœááºážááŒááºážááŸáá·áº namespace á¡áááºáá»á¬ážááᯠáá¶á·ááá¯ážáá±ážáááºá á¡ááá¯á¡áá»á±á¬áẠááŒáá·áºááœááºážááŒááºážááᯠá
áá
áºááá·áºááœááºážááẠááœáŸááºááŒá¬ážáá»ááºáá»á¬áž
áá±á¬ááºáááºá¡áá¯á¶ážáááºáá±á¬á¡ááºá¹áá«ááẠkubectx
áá«áá¬ááŒá
áºáá«ááẠkubectx
. á¡ááŒááºá¡ááŸááºá¡á¬ážááŒáá·áºá áááºááẠfzf ááŸáá±ážáá±á¬ááºáá±á¬ á¡ááŒááºá¡ááŸááºá¡áá»áá¯ážááŒá¯áá±á¬á¡ááá²á·ááŸá¬ááœá±ááŸá¯á¡ááºáá¬áá±á·á
áºááŸáááá·áº á¡ááŒá±á¬ááºážá¡áá¬ááŸáá·áº namespace ááá¯ááœá±ážáá»ááºááá¯ááºáááºá
shell áá¬áááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááŒááºážá
kubectl ááẠáááºážá¡ááœáẠá¡áááá·áºáá»á¬ážáá±ážáá±á¬ááŒá±á¬áá·áº áááºááŸáá¡ááŒá±á¬ááºážá¡áá¬ááŸáá·áº namespace ááá¯ááŒá±á¬ááºážáá²ááẠáá®ážááŒá¬ážáááááá¬áá»á¬áž áááá¯á¡ááºáá«á áá¯ááºáááºá á¡ááœá²á· kubectl config
kubeconfig ááá¯ááºáá»á¬ážááᯠáááºážááŒááºáááºá¡ááœáẠsubcommands áá»á¬ážááᯠáá¶á·ááá¯ážáá±ážáá«áááºá
á€ááœááºáá°ááá¯á·áá²áá¡áá»áá¯á·áá±áá±á¬áá±á«ááºážá ááº:
kubectl config get-contexts
: áááºá ááºá¡ááŒá±á¬ááºážá¡áá¬á¡á¬ážáá¯á¶ážááᯠááŒááááºákubectl config current-context
: áááºááŸáá¡ááŒá±á¬ááºážá¡áá¬ááᯠááá°áá«ákubectl config use-context
: áááºááŸáá¡ááŒá±á¬ááºážá¡áá¬ááᯠááŒá±á¬ááºážáá²áá«ákubectl config set-context
: áááºá ááºááŒááºá ááºááᯠááŒá±á¬ááºážáá«á
ááá¯á·áá±á¬áºá á€á¡áááá·áºáá»á¬ážááᯠááá¯ááºááá¯ááºá¡áá¯á¶ážááŒá¯ááŒááºážááẠááŸááºáá±á¬ááŒá±á¬áá·áº á¡áááºáááŒá±áá«á áá¯ááºáá±á¬ááºááẠááœááºáá°áá±á¬ áááºážááá¯á·á¡ááœáẠshell áá¬áááºáá»á¬áž áááºáá®ážááá¯ááºáááºá
Kubectx ááŸáá·áº áááºáá°áá±á¬ áá¯ááºáá±á¬ááºááá¯ááºá áœááºážááᯠáá±ážáá±á¬ááºááá·áº á€á¡áááá·áºáá»á¬ážá¡áá±á«áº á¡ááŒá±áá¶á áá¶áááºáá áºá¡á á¯ááᯠáááºáá®ážáá²á·áááºá áááºážááá¯á·ááᯠá€áá±áá¬ááœáẠáááºááœá±á·ááŒááºááá¯ááºáááº-
á¡ááŒááºá¡ááŸááºá¡áá»áá¯ážááŒá¯áá±á¬á¡ááá²á·ááŸá¬ááœá±ááŸá¯á¡ááºáá¬áá±á·á
Ạ( kubectx áá¡ááŒááºá¡ááŸááºáá¯á¶á·ááŒááºááŸá¯áá¯ááºáá²á·ááá¯á·) áá±ážáá±á¬ááºááẠaliases ááẠfzf ááá¯á¡áá¯á¶ážááŒá¯áááºááᯠáááááŒá¯áá«á ááá¯ááá¯áá¬á áááºážááá¯áááºá
á€áááºááŸá¬ áááºážááá¯á·ááá¯ááºááá¯áẠáá¬áááºáá°áá»á¬ážá á¡áááá¹áá«ááºááœáá·áºááá¯áá»ááºáá»á¬ážááŒá áºáááºá
# ÐПлÑÑОÑÑ ÑекÑÑОй кПМÑекÑÑ
alias krc='kubectl config current-context'
# СпОÑПк вÑеÑ
кПМÑекÑÑПв
alias klc='kubectl config get-contexts -o name | sed "s/^/ /;|^ $(krc)$|s/ /*/"'
# ÐзЌеМОÑÑ ÑекÑÑОй кПМÑекÑÑ
alias kcc='kubectl config use-context "$(klc | fzf -e | sed "s/^..//")"'
# ÐПлÑÑОÑÑ ÑекÑÑее пÑПÑÑÑаМÑÑвП ОЌеМ
alias krn='kubectl config get-contexts --no-headers "$(krc)" | awk "{print $5}" | sed "s/^$/default/"'
# СпОÑПк вÑеÑ
пÑПÑÑÑаМÑÑв ОЌеМ
alias kln='kubectl get -o name ns | sed "s|^.*/| |;|^ $(krn)$|s/ /*/"'
# ÐзЌеМОÑÑ ÑекÑÑее пÑПÑÑÑаМÑÑвП ОЌеМ
alias kcn='kubectl config set-context --current --namespace "$(kln | fzf -e | sed "s/^..//")"'
á€á¡áááºááœá¬ážáá»á¬áž áááºááŸááºááẠá¡áááºáá±á¬áºááŒáá« á¡áááá¹áá«ááºááœáá·áºááá¯áá»ááºáá»á¬ážááᯠááá·áºááá¯ááºááœáẠááá·áºááœááºážááẠááá¯á¡ááºáá«áááºá ~/.bashrc
ááá¯á·ááá¯áẠ~/.zshrc
ááŒá®ážáá»áŸáẠááá·áº shell ááᯠreboot áá¯ááºáá«á
ááááºá¡ááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááŒááºážá
Kubectl ááẠááá·áºá¡á¬áž á¡ááŒá±áá¶á¡áááá·áºáá»á¬ážáá²á·ááá¯á· á¡áá¬ážáá°áá¯ááºáá±á¬ááºááá·áº ááááºá¡ááºáá»á¬ážááᯠáááºááá¯ááºá
á±áá«áááºá á¥ááá¬á¡á¬ážááŒáá·áºá áááºááẠkubectl-foo ááááºá¡ááºááᯠááá·áºááœááºážááá¯ááºááŒá®áž á¡áááá·áºááᯠáá¯ááºáá±á¬ááºááŒááºážááŒáá·áº áááºážááᯠáá¯ááºáá±á¬ááºááá¯ááºáááºá kubectl foo
.
á¥ááá¬á¡á¬ážááŒáá·áº Run ááŒááºážááŒáá·áº context ááŸáá·áº namespace ááá¯ááŒá±á¬ááºážááẠá¡áááºááŒá±áá«áááºá kubectl ctx
á¡ááŒá±á¬ááºážá¡áá¬ááŸáá·áº ááŒá±á¬ááºážáá²ááẠkubectl ns
namespace ááá¯ááŒá±á¬ááºážáááºá
áá®ááá¯áá¯ááºáá±á¬ááºááá¯ááºáá²á· plugin ááŸá áºáá¯ááᯠáá»áœááºáá±á¬áºáá±ážáá¬ážáá«áááºá
ááááºá¡ááºáá»á¬ážá á¡áá¯ááºááẠááááºá¡ááá¯ááºážá០áá¬áááºááœá¬ážáá»á¬ážá¡áá±á«áº á¡ááŒá±áá¶áá¬ážáááºá
á€ááœáẠáááºážááá¯á·áá¯ááºáá±á¬ááºáá¯á¶ááŸá¬-
ááááºá¡ááºáá»á¬ážááẠá¡ááŒááºá¡ááŸááºá¡áá»áá¯ážááŒá¯áá±á¬ á¡ááá²á·ááŸá¬ááœá±ááŸá¯á¡ááºáá¬áá±á·á
Ạ( kubectx áá¡ááŒááºá¡ááŸááºáá¯á¶á·ááŒááºááŸá¯áá¯ááºáá²á·ááá¯á·) áá¶á·ááá¯ážáá±ážááẠfzf ááá¯á¡áá¯á¶ážááŒá¯ááŒá±á¬ááºáž áááááŒá¯áá«á ááá¯ááá¯áá¬á áááºážááá¯áááºá
ááááºá¡ááºáá»á¬ážááᯠááá·áºááœááºážáááºá á¡áááºááŸá shell script áá»á¬ážááᯠáá±á«ááºážáá¯ááºáá¯ááºááẠááá¯á¡ááºáááºá chmod +x
. á¡á²áá«ááŒá®ážááẠáá»ááºááŒááºážáá¯á¶ážááá¯ááºáá«áááá·áºáááºá kubectl ctx
О kubectl ns
.
5. autoaliases ááŒáá·áº ááá·áºááœááºážááŸá¯ááᯠáá»áŸá±á¬á·áá»áá«á
Shell aliases ááẠá
á¬ááá¯ááºááŒááºážááᯠá¡ááŸáááºááŒáŸáá·áºááẠáááºážáááºážáá±á¬ááºážáá
áºáá¯ááŒá
áºáááºá ááá±á¬áá»ááº
áááºá¡á¶á·ááŒáá±ááá¯ááºááẠ- áá¬ááẠ800 ááᯠáááºáááºááá¯á·ááŸááºááááááºážá ááá¯á·áá±á¬áº áááºážááá¯á·á¡á¬ážáá¯á¶ážááᯠá¡á±á¬ááºáá±á¬áºááŒáá« ááá¯ážááŸááºážáá±á¬á¡á á®á¡á á¥áºá¡ááá¯ááºáž áááºáá±á¬ááºáá¬ážáá±á¬ááŒá±á¬áá·áº áááºážááá¯á·á¡á¬ážáá¯á¶ážááᯠáááºááŸááºáááááºáááá¯á¡ááºáá«á
á¥ááá¬:
- kgpooyaml - kubectl á¡á á±á·áá»á¬áž oyaml ááá°áááºá
- ksysgsvcw â kubectl -n kube-system get svc w
- ksysrmcm -kubectl -n kube-á áá Ạrm á ááºáá®áá®áá¬
- kgdepallsl - kubectl sl á¡á¬ážáá¯á¶ážááᯠááŒáá·áºáá»ááºááá°áááºá
áááºááœá±á·ááŒááºáááá·áºá¡ááá¯ááºážá aliases áá»á¬ážááẠkubectl command á áá®ážááŒá¬ážááŒááºá ááºáá áºáá¯ááᯠááá¯ááºá á¬ážááŒá¯ááá·áº á¡á áááºá¡ááá¯ááºážáá áºáá¯á á®ááŒáá·áº ááœá²á·á ááºážáá¬ážáááºá alias áá áºáá¯á á®ááœáẠbase commandá operation ááŸáá·áº resource á¡ááœáẠá¡á áááºá¡ááá¯ááºážáá áºáá¯ááŸáá·áº parameters áá»á¬ážá¡ááœáẠá¡á áááºá¡ááá¯ááºážáá»á¬ážá áœá¬ ááŸáááá¯ááºáá«áááºá áááºááẠá¡áááºáá±á¬áºááŒáá« áá¯á¶ááŒááºážá¡ááá¯ááºáž á€á¡á áááºá¡ááá¯ááºážáá»á¬ážááᯠáááºááŸáá¬ááá¯á· "populate" áá¯ááºáá¯á¶áá«áá²á
áááºááŸáá¡áá±ážá
ááẠdiagram ááŸá¬ ááŸááááºá
á¥ááá¬á¡á¬ážááŒáá·áºá alias kgpooyamlall ááẠcommand ááŸáá·áº áá®áá»áŸáááºá kubectl get pods -o yaml --all-namespaces
.
ááœá±ážáá»ááºááŸá¯áá»á¬ážá ááŸáá¯ááºážáá¡á
á®á¡á
á¥áºááẠá¡áá±ážáááŒá®ážáá«- á¡áááá·áº kgpooyamlall
command ááŸáá·áº áá®áá»áŸáááºá kgpoalloyaml
.
á¡á
áááºá¡ááá¯ááºážá¡á¬ážáá¯á¶ážááᯠáá¬áááºáá°á¡ááŒá
Ạá¡áá¯á¶ážááŒá¯ááẠáááá¯á¡ááºáá«á á¥ááá¬á¡á¬ážááŒááºá· k
, kg
, klo
, ksys
, kgpo
áá¯á¶ážááá¯á·áááºážááá«áááºá ááá¯á·á¡ááŒááºá áááºááẠaliases ááŸáá·áº áá¯á¶ááŸáẠcommand áá»á¬áž ááá¯á·ááá¯áẠááœá±ážáá»ááºá
áá¬áá»á¬ážááᯠcommand line ááœáẠáá±á«ááºážá
ááºááá¯ááºáááº-
á¥ááá¬:
- á¡á
á¬áž
kubectl proxy
áááºáá±ážááá¯ááºáááºák proxy
. - á¡á
á¬áž
kubectl get roles
áááºáá±ážááá¯ááºáááºákg roles
(áááºááŸáááœáẠRoles á¡áááºážá¡ááŒá áºá¡ááœáẠáá¶áááºáá»áŸáááŸááá«á) - áá®ážááŒá¬áž pod áá
áºáá¯á¡ááœáẠáá±áá¬ááá°áááºá áááºááẠcommand ááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºáááºá
kgpo my-pod â kubectl get pod my-pod
.
á¡áá»áá¯á·áá±á¬ aliases áá»á¬ážááẠcommand line argument áá
áºáᯠááá¯á¡ááºááŒá±á¬ááºáž áá»á±ážáá°ážááŒá¯á áááááŒá¯áá«á á¥ááᬠalias kgpol
áááºážáááºáž kubectl get pods -l
. ááœá±ážáá»ááºááŸá¯ -l
á¡ááŒááºážá¡áá¯á¶áá
áºáᯠááá¯á¡ááºááẠ- á¡ááœáŸááºážáááºááŸááºáá»ááºáá
áºáá¯á alias ááá¯áá¯á¶ážááẠáá¯á¶áá±á«áºáá«áááºá kgpol app=ui
.
á¡áá»áá¯á·áá±á¬ aliases áá»á¬ážááẠááŒááºážáá¯á¶ááŸá¯áá»á¬áž ááá¯á¡ááºáá±á¬ááŒá±á¬áá·áºá aá f ááŸáá·áº l ááá¯á·ááᯠáá±á¬ááºáá¯á¶ážá¡áá¯á¶ážááŒá¯ááá«áááºá
áá±áá°áá»á¡á¬ážááŒáá·áºá áááºááẠá€á¡á á®á¡á á¥áºááᯠáá¯ááºááááºážááá¯ááºáááºááŸáá·áº áááºááẠáááºáá¯ááºáá±á¬ááºááá¯áá±á¬ ááœáŸááºááŒá¬ážáá»ááºáá»á¬ážá០áá¶áááºáá»á¬ážááᯠá¡ááá¯ááá¯áááŸáááá¯ááºááŒá®áž á á¬ááá¯ááºáá»áááºáá»á¬ážá áœá¬ááᯠáááºáá¬á á±áá«áááºá
áááºáááº
kubectl-aliases ááá·áºááœááºážáááºá áááºááẠááá¯ááºááᯠáá±á«ááºážáá¯ááºáá¯ááºááẠááá¯á¡ááºáááºá ~/.bashrc
ááá¯á·ááá¯áẠ~/.zshrc
:
source ~/.kubectl_aliases
á¡ááá¯á¡áá»á±á¬áẠááŒáá·áºá áœááºááŒááºážá
ááááºá áá»áœááºá¯ááºááá¯á·ááŒá±á¬áá²á·ááá·áºá¡ááá¯ááºážá áááºááẠcommand line ááŸá alias áá áºáá¯ááá¯á· áááºáá±á¬ááºážá áá¬ážáá¯á¶ážáá»á¬ážááᯠááá·áºáá±á·ááŸááááºá á¥ááá¬á¡á¬ážááŒááºá·:
$ kgpooyaml test-pod-d4b77b989
kubectl command completion ááᯠáááºá¡áá¯á¶ážááŒá¯áá«áá á¡áááºážá¡ááŒá áºá¡áááºáá»á¬ážáá²á·ááá¯á·áá±á¬ á¡áá¬áá»á¬ážá¡ááœáẠá¡ááá¯á¡áá»á±á¬ááºááŒáá·áºááœááºážááŒááºážááᯠáááºá¡áá¯á¶ážááŒá¯áá±áá±áááºá ááá¯á·áá±á¬áº áá¬áááºáá°áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááá·áºá¡áá« áááºážááᯠáá¯ááºáá±á¬ááºááá¯ááºáá«ááá¬ážá
á¡ááá¯á¡áá»á±á¬ááºááŒáá·áºá áœááºááŒááºáž á¡áá¯ááºááá¯ááºáá«áá áá¬áááºáá°áá»á¬ážá á¡áá»áá¯ážáá»á±ážáá°ážá¡áá»áá¯á·ááᯠáááºáá¯á¶ážááŸá¯á¶ážááááá·áºáááºááŒá áºáá±á¬ááŒá±á¬áá·áº á€áá±ážááœááºážááẠá¡ááœááºá¡áá±ážááŒá®ážáá«áááºá
á¡ááŒá±ááẠáááºá¡áá¯á¶ážááŒá¯áá±ááá·áº shell áá±á«áºááœááºáá°áááºáááºá
- Zsh á¡ááœááºá alias completion ááẠbox ááŸááœááºáááºá
- Bash á¡ááœááºá áá¶ááá±á¬ááºážá áœá¬ááŒáá·áºá á¡áá¯ááºáá¯ááºááẠá¡ááá¯á¡áá»á±á¬ááºááŒáá·áºá áœááºááŸá¯áááŸáááẠá¡áá»áá¯á·áá±á¬á¡áá¯áẠááá¯á¡ááºáá«áááºá
Bash ááŸá áá¬áááºáá°áá»á¬áž á¡ááœáẠá¡ááá¯á¡áá»á±á¬áẠááŒáá·áºááŒááºážááᯠááœáá·áºááŒááºáž
Bash áááŒá¿áá¬ááŸá¬ (ááẠTab ááá¯ááŸáááºááá¯ááºáž) alias ááᯠááŒá®ážááŒá±á¬ááºá¡á±á¬ááºááŒáá¯ážá á¬ážááŒááºážááŒá áºááẠ(á¥ááᬠZsh áá²á·ááá¯á·) alias ááá¯áááºááœáŸááºážáá±á¬ command ááá¯ááºáá«á ááá·áºááœáẠáá¬áááºáá° 800 áá¯á¶ážá¡ááœáẠááŒá®ážá á®ážááŸá¯ scripts áá»á¬ážáááŸááá±á¬ááŒá±á¬áá·áºá á¡ááá¯á¡áá»á±á¬ááºááŒáá·áºá áœááºááŒááºáž á¡áá¯ááºááá¯ááºáá«á
á
á®áá¶ááááºážá
á¡á±á¬ááºáá±á¬áºááŒáá«ááœááºá á¡ááŒáá·áºá¡á á¯á¶-alias áááºáááºáááºážááŸáá·áº kubectl aliases á¡á¬ážáá¯á¶ážá¡ááœáẠááŒá®ážá á®ážááŸá¯ááᯠááœáá·áºááẠáááºážááᯠáááºááá¯á· configure áá¯ááºááááºááᯠáŠážá áœá¬ ááŸááºážááŒáá«áááºá
áá¬áááºá¡ááŒáá·áºá¡á á¯á¶ááᯠááá·áºááœááºážááŒááºážá
ááááŠážá
áœá¬á ááŒáá·áºá
á¯á¶áá±á¬á¡áááºáá»á¬ážáá±á«áºááœááºáá°áááºáááºá
MacOS á¡áá¯á¶ážááŒá¯áá°áá»á¬ážá¡ááœáẠá¡áá±ážááŒá®ážáá±á¬ááŸááºáá»ááº: kubectl á¡ááá¯á¡áá»á±á¬ááºááŒáá·áºá
áœááºááŸá¯ script áá²á·ááá¯á·á ááŒáá·áºá
á¯á¶áá±á¬á¡áááºáá»á¬áž ááẠMacOS ááœáẠáá°áááºážááŒá
áºááá·áº Bash 3.2 ááŸáá·áº á¡áá¯ááºááá¯ááºáá«á á¡áá°ážáááŒáá·áºá Complete-alias ááẠbash-completion v2 áá±á«áºááœááºáá°áááºááẠ(brew install bash-completion@2
á¡áááºážáá¯á¶áž Bash 4.1 ááá¯á¡ááºáááºá ááá¯ááá¯áááºááŸá¬ MacOS ááœáẠááŒáá·áºá
á¯á¶áá±á¬á¡áááºáá»á¬ážá¡áá¯á¶ážááŒá¯ááẠBash áá¬ážááŸááºážá¡áá
áºááᯠááá·áºááœááºážááẠááá¯á¡ááºáá«áááºá
áá¬ááºááœáŸááºážááᯠáá±á«ááºážáá¯ááºáá¯ááºááẠááá¯á¡ááºáááºá ~/.bashrc
:
source ~/bash_completion.sh
Shell ááᯠááŒááºáááºá áááºááŒá®ážáá±á¬ááºá ááŒáá·áºá á¯á¶áá±á¬á¡áááºáá»á¬áž á¡ááŒáá·áºá¡á á¯á¶ ááá·áºááœááºážááœá¬ážáá«áááºá
kubectl aliases á¡ááœáẠá¡ááá¯á¡áá»á±á¬áẠááŒáá·áºááŒááºážááᯠááœáá·áºáá¬ážáááºá
áááºážááá¬á¡á ááŒá®ážááŒáá·áºá
á¯á¶áá±á¬-alias ááẠwrapper áá¯ááºáá±á¬ááºáá»ááºááᯠáá¶á·ááá¯ážáá±ážáááºá _complete_alias
. á€áá¯ááºáá±á¬ááºáá»ááºááẠalias ááá¯á
á
áºáá±ážááŒá®áž alias command á¡ááœáẠááŒá®ážá
á®ážááŸá¯á¡ááááºá¡ááŒáœááºáá»á¬ážááᯠááŒááºáá±ážáááºá
áá¯ááºáá±á¬ááºáá»ááºáá
áºáá¯á¡á¬áž áááºáááºááŸááºááŸáẠalias áá
áºáá¯ááŸáá·áº áá»áááºáááºáááºá ááẠbuilt-in Bash ááá¹ááá¬ážááᯠá¡áá¯á¶ážááŒá¯ááẠááá¯á¡ááºáááºá _complete_alias
alias ááŒá®ážá
á®ážááŸá¯áá¯ááºáá±á¬ááºáá»ááºá¡ááŒá
áºá
á¥ááá¬á¡áá±áá²á· kubectl command ááá¯ááá¯ááºá
á¬ážááŒá¯áá²á· alias k ááá¯ááŒáá·áºáá¡á±á¬ááºá áááºáááºááẠ_complete_alias
á€á¡áááºááŸááºá¡ááœáẠááŒáá·áºá
áœááºáá¯ááºáá±á¬ááºáá»ááºáá
áºáá¯á¡áá±ááŒáá·áºá áááºááẠá¡á±á¬ááºáá« command ááᯠáá¯ááºáá±á¬ááºááá·áºáááº-
$ complete -F _complete_alias k
á€á¡áá¬áááááºááŸá¬ áááºááẠalias k ááᯠá¡ááá¯á¡áá»á±á¬ááºááŒáá·áºááá·áºá¡áá«ááá¯ááºážá áá¯ááºáá±á¬ááºáá»ááºááᯠáá±á«áºáááºá _complete_alias
alias ááᯠá
á
áºáá±ážááŒá®áž command á¡ááœáẠááŒá®ážááŒá±á¬ááºááŸá¯ á¡ááááºá¡ááŒáœááºáá»á¬ážááᯠááŒááºáá±ážáááºá kubectl
.
áá¯ááá á¥ááá¬á¡áá±áá²á·á áá¶áááºááᯠáá°ááŒáá·áºáá¡á±á¬áẠkg
ááá¯ááá¯áááºááŸá¬á kubectl get
:
$ complete -F _complete_alias kg
ááááºá¥ááá¬ááœááºáá²á·ááá¯á·áááºá áááºááẠáá®ááá¯ááááºááᯠá¡ááá¯á¡áá»á±á¬ááºááŒáá·áºááá·áºá¡áá«á áááºáááŸáááá·áº áá°áá®áá±á¬ ááŒá®ážá
á®ážááŸá¯á¡ááááºá¡ááŒáœááºáá»á¬ážááᯠáááºáááŸááááºááŒá
áºáááºá kubectl get
.
ááá·áºá áá áºááŸá áááºááá·áº alias á¡ááœááºáááᯠá¡ááŒáá·áºá¡á á¯á¶-alias ááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºááŒá±á¬ááºáž áááááŒá¯áá«á
ááá¯á·ááŒá±á¬áá·áº kubectl aliases á¡á¬ážáá¯á¶ážá¡ááœáẠá¡ááá¯á¡áá»á±á¬ááºááŒáá·áºááœááºážááŒááºážááᯠááœáá·áºáááºá áááºážááá¯á·áá
áºáá¯á
á®á¡ááœáẠá¡áááºáá±á¬áºááŒáá« command ááᯠáááºáá¯ááºáá±á¬ááºááẠááá¯á¡ááºáááºá kubectl-aliases ááᯠáááºáááºááŸááºáá±ážáá¬ážáá«á á¡á±á¬ááºáá«á¡ááá¯á¡ááœá¬áá»á¬ážááẠáááºážááᯠá¡ááá¡áá»áá¯ááºáá±á¬ááºáá«áááºá ~/.kubectl-aliases
:
for _a in $(sed '/^alias /!d;s/^alias //;s/=.*$//' ~/.kubectl_aliases);
do
complete -F _complete_alias "$_a"
done
á€áá¯ááºá¡ááá¯ááºážá¡á
ááᯠááá·áºááœáẠááá·áºáá¬ážááẠááá¯á¡ááºáááºá ~/.bashrc
á command shell ááᯠááŒááºáááºá
áááºááŒá®áž á¡ááá¯á¡áá»á±á¬áẠááŒáá·áºááœááºážááŒááºážááẠ800 kubectl aliases á¡á¬ážáá¯á¶ážá¡ááœáẠáááá¯ááºáá«áááºá
6. plugins áá»á¬ážááŒáá·áº kubectl ááᯠááá¯ážáá»á²á·ááŒááºážá
ááá±á
áááº
áááºááŸáá·áºáááºážááŸá®ážáááºá
á€á¡áááºážááœááºá áá»áœááºá¯ááºááá¯á·ááẠááááºá¡ááºáá»á¬ážááᯠáááºáááºáááºážá áááºážááá¯á·ááᯠáááºááá·áºáá±áá¬ááœáẠááŸá¬ááœá±ááááºááŸáá·áº ááá·áºááá¯ááºááá¯áẠplugins áááºáá®ážáááºážááá¯á·ááᯠáá±á¬áºááŒáá«áááºá
ááááºá¡ááºáá»á¬ážááᯠááá·áºááœááºážááŒááºážá
Kubectl ááááºá¡ááºáá»á¬ážááᯠááá¯ážááŸááºážáá±á¬ executable ááá¯ááºáá»á¬ážá¡ááŒá
ẠááŒáá·áºáá±áá¬ážáá«áááºá kubectl-x
. ááŸá±á·ááẠkubectl-
plugin ááá¯áá±á«áºááá¯áááºááœáá·áºááŒá¯áá±á¬ kubectl subcommand á¡áá
áºáá
áºáá¯ááŒáá·áºáá±á¬ááºááœááºááá¯á¡ááºáááºá
á¥ááá¬á¡á¬ážááŒáá·áºá hello plugin ááᯠáá±á«áºáá±á¬ ááá¯ááºáá
áºáá¯á¡ááŒá
ẠááŒáá·áºáá±áá«áááºá kubectl-hello
.
ááááºá¡ááºááᯠááá·áºááœááºážáááºá ááá¯ááºááᯠáá°ážáá°ááẠááá¯á¡ááºáááºá kubectl-x
áááºá PATH á¡ááœááºážááŸááááºááá·áºáááºážááŒá±á¬ááºážááá¯áááᯠexecutable áá¯ááºáá±ážáá«á á¥ááá¬á¡á¬ážááŒáá·áº chmod +x
. áááºážááŒá®ážáá±á¬ááºáá»ááºáá»ááºážááẠplugin ááá¯áá±á«áºááá¯ááá¯ááºáááºá kubectl x
.
ááá·áºá áá áºááœáẠáááºááŸáááá·áºááœááºážáá¬ážááá·áº ááááºá¡ááºáá»á¬ážá¡á¬ážáá¯á¶ážááᯠá á¬áááºážááŒá¯á á¯ááẠá¡á±á¬ááºáá« command ááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºáááºá
$ kubectl plugin list
ááá·áºááœáẠáá¬áááºáá° ááááºá¡ááºáá»á¬ážá áœá¬ááŸááá»áŸáẠááá¯á·ááá¯áẠáá¯ááºáá±á¬ááºááááá±á¬ ááááºá¡ááºááá¯ááºáá áºáá¯ááŸááá»áŸáẠá€á¡áááá·áºáá±ážáá»ááºáá»á¬ážááá¯áááºáž ááŒááá«áááºá
Krew ááᯠá¡áá¯á¶ážááŒá¯á ááááºá¡ááºáá»á¬ážááᯠááŸá¬ááœá±ááŒááºážááŸáá·áº ááá·áºááœááºážááŒááºážá
Kubectl ááááºá¡ááºáá»á¬ážááᯠáá±á¬á·ááºáá²ááºáááºáá±á·ááºá»áá»á¬ážáá²á·ááá¯á· áá»áŸáá±ááá¯ááºááẠááá¯á·ááá¯áẠááŒááºáááºá¡áá¯á¶ážááŒá¯ááá¯ááºáá«áááºá ááá¯á·áá±á¬áº á¡ááŒá¬ážáá°áá»á¬ážáá»áŸáá±áá¬ážáá±á¬ ááááºá¡ááºáá»á¬ážááᯠáááºááá·áºáá±áá¬ááœáẠááŸá¬ááœá±á·ááá¯ááºáááºáááºážá
Krew ááẠáááºááœá±ážáá»ááºááŒá®áž ááá·áºááœááºážááá¯ááºáá±á¬ kubectl ááááºá¡ááºáá»á¬ážá á¬áááºážááŒá áºáááºá áá áºáá»áááºáááºážááŸá¬áááºá Krew ááẠkubectl á¡ááœáẠááááºá¡ááºáá áºáá¯áááºážááŒá áºáááºá
ááá¯ááá¯áááºááŸá¬ Krew ááá·áºááœááºážááŒááºážááẠá¡ááŒá¬ážáá±á¬ kubectl plugin áá
áºáá¯áá¯ááᯠáááºáááºááŒááºážáá²á·ááá¯á· á¡ááŒá±áá¶á¡á¬ážááŒáá·áº á¡áá¯ááºáá¯ááºáá«áááºá á¡áá±ážá
áááºáááºážááœáŸááºáá»ááºáá»á¬ážááᯠááœáẠááŒáá·áºááŸá¯ááá¯ááºáá«áááºá
á¡áá±ážá¡ááŒá®ážáá¯á¶áž Krew command áá»á¬ážááŸá¬-
# ÐПОÑк в ÑпОÑке плагОМПв
$ 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
command ááœáẠKrew ááᯠá¡áá¯á¶ážááŒá¯á ááá·áºááœááºážáá¬ážááá·áº ááááºá¡ááºáá»á¬ážááá¯áᬠááŒááááºá kubectl plugin list
Krew ááᯠá¡áá¯á¶ážááŒá¯á ááá·áºááœááºážáá¬ážááá·áº ááááºá¡ááºáá»á¬ážá¡á¬ážáá¯á¶ážááᯠá
á¬áááºážááŒá¯á
á¯ááŒá®áž á¡ááŒá¬ážáááºážáááºážáá»á¬ážááŒáá·áº ááá·áºááœááºážáá¬ážáááºá
á¡ááŒá¬ážáá±áá¬áá»á¬ážááœáẠááááºá¡ááºáá»á¬ážááᯠááŸá¬ááœá±ááŒááºážá
Kew ááẠáááºááŸáááœáẠáááºážá áá°áááºááá±á¬áá»ááºáá
áºáá¯ááŒá
áºáááºá
GitHub á¡ááá¯ááºážááᯠááŒáá·áºááá¯á· á¡ááŒá¶ááŒá¯ááá¯áá«áááºá
áááºáááá¯ááºááá¯áẠplugins áá»á¬ážááá¯áá±ážáá«á
áááºááá¯ááºááá¯ááºáá¯ááºááá¯ááºáááºákubectl-x
á¡áááºáá±á¬áºááŒáá«á¡ááá¯ááºáž install áá¯ááºáá«á
ááá¯ááºááẠbash scriptá python script ááá¯á·ááá¯áẠcompiled GO application ááŒá áºááá¯ááºááẠ- ááá á¹á áááŸááá«á áá áºáá¯áááºážáá±á¬á¡ááŒá±á¡áá±ááŸá¬ áááºážááᯠoperating system ááœáẠááá¯ááºááá¯ááºáá¯ááºáá±á¬ááºááá¯ááºáááºá
á¡áá¯áá² á¥ááᬠááááºá¡ááºáá
áºáá¯ááᯠáááºáá®ážááá¯ááºáá¡á±á¬ááºá ááááºá¡ááá¯ááºážááœááºá áááºááẠpod áá
áºáá¯á
á®á¡ááœáẠááœááºááááºáá¬áá»á¬ážááᯠá
á¬áááºážááŒá¯á
á¯ááẠkubectl á¡áááá·áºááᯠá¡áá¯á¶ážááŒá¯áá²á·áááºá á¥ááá¬á¡á¬ážááŒáá·áº á€á¡áááá·áºááᯠáááºáá±á«áºááá¯ááá¯ááºáá±á¬ ááááºá¡ááºáá
áºáá¯á¡ááŒá
ẠááŒá±á¬ááºážáá²ááẠááœááºáá°áááºá kubectl img
.
ááá¯ááºáá
áºáá¯áááºáá®ážáá«á kubectl-img
á¡á±á¬ááºáá«á¡ááŒá±á¬ááºážá¡áá¬-
#!/bin/bash
kubectl get pods -o custom-columns='NAME:metadata.name,IMAGES:spec.containers[*].image'
ááá¯ááá¯ááºááᯠexecutable áá¯ááºáá«á chmod +x kubectl-img
áááºážááᯠáááºá PATH ááŸá áááºááá·áºáááºážááœáŸááºááá¯á· ááœáŸá±á·áá«á áááºážááŒá®ážáá±á¬ááºáá»ááºáá»ááºážááẠplugin ááá¯áá¯á¶ážááá¯ááºáááºá kubectl img
.
áá±á¬áºááŒáá²á·ááá·áºá¡ááá¯ááºáž kubectl ááááºá¡ááºáá»á¬ážááᯠáááºááá·áºáááá¯ááááºážáááºáž ááá¯á·ááá¯áẠáá¬ááºááœáŸááºážáá¬áá¬á
áá¬ážááŒáá·áºáááᯠáá±ážáá¬ážááá¯ááºáááºá á¡áááºá áááºááẠshell script áá»á¬ážááá¯á¡áá¯á¶ážááŒá¯áá±áá«áá plugin á¡ááœááºážá០kubectl ááá¯á¡ááœááºááá°áá±á«áºááá¯ááá¯ááºááŒááºážáá¡á¬ážáá¬áá»ááºá ááá¯á·áá±á¬áºá áááºááẠáááá¯ááááºážáááºážáá¬áá¬á
áá¬ážáá»á¬ážááŒáá·áº ááá¯ááá¯ááŸá¯ááºááœá±ážáá±á¬ ááááºá¡ááºáá»á¬ážááᯠáá±ážááá¯ááºáááºá
ááá·áºááááºá¡ááºáá»á¬ážááᯠáááºááá¯á·áá»áŸáá±áááºáááºážá
ááá·áºááááºá¡ááºáá»á¬ážááẠá¡ááŒá¬ážáá°áá»á¬ážá¡ááœáẠá¡áá¯á¶ážáááºááá¯ááºáááºáᯠáááºáááºáá«áá áááºážááᯠGitHub ááœáẠáá»áŸáá±áá¶á
á¬ážáá«á áááºážááá¯á·ááᯠáá±á«ááºážá
ááºááœáẠáá±áá»á¬ááá·áºáá«á
ááá·áºááááºá¡ááºááᯠááá·áºááœááºážáááºáááºáž áá±á¬ááºážááá¯ááá¯ááºáááºá
Command ááŒá®ážááŒá±á¬ááºááŒááºážá
ááááºá¡ááºáá»á¬ážááẠá¡ááá¯á¡áá»á±á¬ááºááŒáá·áºá áœááºááŒááºážááᯠáá±á¬áá±á¬áááºááœáẠááá¶á·ááá¯ážáá«á ááá¯ááá¯áááºááŸá¬á áááºááẠplugin áá¡áááºá¡ááŒáá·áºá¡á á¯á¶ááŸáá·áº á¡ááŒá±á¬ááºážááŒáá»ááºáá»á¬ážá á¡áááºá¡ááŒáá·áºá¡á á¯á¶ááᯠááá·áºááœááºážááá«áááºá
á€áá¯ááºáá±á¬ááºáá»ááºá¡ááœáẠGitHub kubectl repository áá«ááŸááááºá
áá¶áá±á¬ááºážáá«á á±!!!
áá±á¬ááºááẠáá¬á¡ááŒá±á¬ááºážá¡áá¬ááœá± áááºáááºáááá²:
Kubernetes ááœáẠá¡á±á¬áºááá¯á áá±ážáá»á²á·ááŒááºáž á¡ááá·áºáá¯á¶ážááá·áºááŸáá·áº áááºážááá¯á·ááᯠáááá±á¬ááºá áœá¬ á¡áá¯á¶ážááŒá¯áááºáž .á¡áá±á¬ááºá¡áááºáá±á¬áºáááºá¡ááœáẠááá°áá¬áá¯á¶á á¶ááŒáá·áº ááá¯ážáá°ážááŸá¯ááá±á¬ááŒáá·áº Kubernetes .Telegram ááŸá Kubernetes áááºážáá»ááºááœáẠáá»áœááºá¯ááºááá¯á·ááá»ááºááẠ.
source: www.habr.com