рдХрд╕рд░реА kubectl рдердк рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ: рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдЧрд╛рдЗрдб

рдХрд╕рд░реА kubectl рдердк рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ: рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдЧрд╛рдЗрдб
рдпрджрд┐ рддрдкрд╛рдЗрдБ Kubernetes рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рддрдм kubectl рддрдкрд╛рдЗрдБрд▓реЗ рдзреЗрд░реИ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдЙрдкрдпреЛрдЧрд┐рддрд╛рд╣рд░реВ рдордзреНрдпреЗ рдПрдХ рд╣реЛред рд░ рдЬрдм рддрдкрд╛рдЗрдБ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЙрдкрдХрд░рдгрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрди рдзреЗрд░реИ рд╕рдордп рдЦрд░реНрдЪ рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ, рдпрд╕рд▓реЗ рдпрд╕рд▓рд╛рдИ рд░рд╛рдореНрд░реЛрд╕рдБрдЧ рдЕрдзреНрдпрдпрди рдЧрд░реНрди рд░ рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рд░реВрдкрдорд╛ рдХрд╕рд░реА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рднрдиреЗрд░ рд╕рд┐рдХреНрди рднреБрдХреНрддрд╛рди рдЧрд░реНрджрдЫред

рдЯреЛрд▓реА Kubernetes aaS Mail.ru рдмрд╛рдЯ рдбреЗрдирд┐рдпрд▓ Weibel рджреНрд╡рд╛рд░рд╛ рдПрдЙрдЯрд╛ рд▓реЗрдЦ рдЕрдиреБрд╡рд╛рдж рдЧрд░рд┐рдпреЛ рдЬрд╕рдорд╛ рддрдкрд╛рдИрдВрд▓реЗ kubectl рд╕рдБрдЧ рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рд░реВрдкрдорд╛ рдХрд╛рдо рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рд╕реБрдЭрд╛рд╡рд╣рд░реВ рд░ рдЪрд╛рд▓рд╣рд░реВ рдкрд╛рдЙрдиреБрд╣реБрдиреЗрдЫред рдпрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ Kubernetes рдХреЛ рдЧрд╣рд┐рд░реЛ рд╕рдордЭ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдкрдирд┐ рдорджреНрджрдд рдЧрд░реНрдиреЗрдЫред

рд▓реЗрдЦрдХрдХрд╛ рдЕрдиреБрд╕рд╛рд░, рд▓реЗрдЦрдХреЛ рд▓рдХреНрд╖реНрдп Kubernetes рд╕рдБрдЧ рддрдкрд╛рдИрдХреЛ рджреИрдирд┐рдХ рдХрд╛рд░реНрдпрд▓рд╛рдИ рдЕрдЭ рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рдорд╛рддреНрд░ рд╣реЛрдЗрди, рдЕрдЭ рд░рдорд╛рдЗрд▓реЛ рдмрдирд╛рдЙрдиреБ рд╣реЛ!

рдкрд░рд┐рдЪрдп: kubectl рдХреЗ рд╣реЛ

рддрдкрд╛рдИрдВрд▓реЗ kubectl рд▓рд╛рдИ рдЕрдЭ рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рд┐рдХреНрдиреБ рдЕрдШрд┐, рддрдкрд╛рдИрдВрд▓реЗ рдпреЛ рдХреЗ рд╣реЛ рд░ рдпрд╕рд▓реЗ рдХрд╕рд░реА рдХрд╛рдо рдЧрд░реНрдЫ рднрдиреНрдиреЗ рдЖрдзрд╛рд░рднреВрдд рдмреБрдЭрд╛рдЗ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред

рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рдХреЛ рджреГрд╖реНрдЯрд┐рдХреЛрдгрдмрд╛рдЯ, kubectl рдПрдЙрдЯрд╛ рдирд┐рдпрдиреНрддреНрд░рдг рдкреНрдпрд╛рдирд▓ рд╣реЛ рдЬрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ Kubernetes рд╕рдЮреНрдЪрд╛рд▓рдирд╣рд░реВ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред

рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рд░реВрдкрдорд╛, kubectl рдПрдХ Kubernetes API рдЧреНрд░рд╛рд╣рдХ рд╣реЛред

Kubernetes API рдПрдХ HTTP REST API рд╣реЛред рдпреЛ API рд╕рд╛рдБрдЪреЛ Kubernetes рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдиреНрдЯрд░рдлреЗрд╕ рд╣реЛ, рдЬрд╕рдХреЛ рдорд╛рдзреНрдпрдордмрд╛рдЯ рдпреЛ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдирд┐рдпрдиреНрддреНрд░рдг рдЧрд░рд┐рдиреНрдЫред рдпрд╕рдХреЛ рдорддрд▓рдм рдкреНрд░рддреНрдпреЗрдХ Kubernetes рдЕрдкрд░реЗрд╕рди рдПрдкреАрдЖрдИ рдПрдиреНрдбрдкреЛрдЗрдиреНрдЯрдХреЛ рд░реВрдкрдорд╛ рдЙрдЬрд╛рдЧрд░ рдЧрд░рд┐рдПрдХреЛ рдЫ рд░ рддреНрдпреЛ рдЕрдиреНрддрд┐рдо рдмрд┐рдиреНрджреБрдорд╛ HTTP рдЕрдиреБрд░реЛрдзрдХреЛ рд╕рд╛рде рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред

рддреНрдпрд╕реИрд▓реЗ, kubectl рдХреЛ рдореБрдЦреНрдп рдХрд╛рдо Kubernetes API рдорд╛ HTTP рдЕрдиреБрд░реЛрдзрд╣рд░реВ рдмрдирд╛рдЙрдиреБ рд╣реЛ:

рдХрд╕рд░реА kubectl рдердк рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ: рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдЧрд╛рдЗрдб
Kubernetes рдПрдХ рдкреВрд░реНрдг рд╕рдВрд╕рд╛рдзрди рдЙрдиреНрдореБрдЦ рдкреНрд░рдгрд╛рд▓реА рд╣реЛред рдпрд╕рдХреЛ рдЕрд░реНрде рдпрд╕рд▓реЗ рд╕реНрд░реЛрддрд╣рд░реВрдХреЛ рдЖрдиреНрддрд░рд┐рдХ рдЕрд╡рд╕реНрдерд╛ рдХрд╛рдпрдо рд░рд╛рдЦреНрдЫ рд░ рд╕рдмреИ Kubernetes рд╕рдЮреНрдЪрд╛рд▓рдирд╣рд░реВ CRUD рд╕рдЮреНрдЪрд╛рд▓рдирд╣рд░реВ рд╣реБрдиреНред

рддрдкрд╛рдИрдВ рдпреА рд╕реНрд░реЛрддрд╣рд░реВ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЧрд░реЗрд░ Kubernetes рдХреЛ рдкреВрд░реНрдг рдирд┐рдпрдиреНрддреНрд░рдгрдорд╛ рд╣реБрдиреБрд╣реБрдиреНрдЫ, рд░ Kubernetes рд▓реЗ рд╕реНрд░реЛрддрд╣рд░реВрдХреЛ рд╣рд╛рд▓рдХреЛ рдЕрд╡рд╕реНрдерд╛рдХреЛ рдЖрдзрд╛рд░рдорд╛ рдХреЗ рдЧрд░реНрдиреЗ рднрдиреНрдиреЗ рдХреБрд░рд╛ рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрдБрдЫред рдпрд╕ рдХрд╛рд░рдгрд▓реЗ рдЧрд░реНрджрд╛, Kubernetes API рд╕рдиреНрджрд░реНрднрд▓рд╛рдИ рддрд┐рдиреАрд╣рд░реВрд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рдХрд╛рд░реНрдпрд╣рд░реВрд╕рдБрдЧ рд╕реНрд░реЛрдд рдкреНрд░рдХрд╛рд░рд╣рд░реВрдХреЛ рд╕реВрдЪреАрдХреЛ рд░реВрдкрдорд╛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫред

рдПрдЙрдЯрд╛ рдЙрджрд╛рд╣рд░рдг рд╣реЗрд░реМрдВ.

рдорд╛рдиреМрдВ рддрдкрд╛рдИ рдкреНрд░рддрд┐рдХреГрддрд┐рд╕реЗрдЯ рд╕реНрд░реЛрдд рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫред рдпреЛ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рддрдкрд╛рдИрдВрд▓реЗ рдирд╛рдорджреНрд╡рд╛рд░рд╛ рдлрд╛рдЗрд▓рдорд╛ рдкреНрд░рддрд┐рдХреГрддрд┐ рд╕реЗрдЯ рд╡рд░реНрдгрди рдЧрд░реНрдиреБрд╣реЛрд╕реН replicaset.yaml, рддреНрдпрд╕рдкрдЫрд┐ рдЖрджреЗрд╢ рдЪрд▓рд╛рдЙрдиреБрд╣реЛрд╕реН:

$ kubectl create -f replicaset.yaml

рдпрд╕рд▓реЗ ReplicaSet рд╕реНрд░реЛрдд рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗрдЫред рддрд░ рдкрд░реНрджрд╛ рдкрдЫрд╛рдбрд┐ рдХреЗ рд╣реБрдиреНрдЫ?

Kubernetes рд╕рдБрдЧ ReplicaSet рдирд┐рд░реНрдорд╛рдг рдХрд╛рд░реНрдп рдЫред рдХреБрдиреИ рдкрдирд┐ рдЕрдиреНрдп рдЕрдкрд░реЗрд╢рди рдЬрд╕реНрддреИ, рдпреЛ рдПрдХ рдПрдкреАрдЖрдИ рдЕрдиреНрдд рдмрд┐рдиреНрджреБ рдХреЛ рд░реВрдк рдорд╛ рдЙрдЬрд╛рдЧрд░ рдЧрд░рд┐рдПрдХреЛ рдЫред рдпрд╕ рдЕрдкрд░реЗрд╕рдирдХреЛ рд▓рд╛рдЧрд┐ рд╡рд┐рд╢рд┐рд╖реНрдЯ API рдЕрдиреНрддреНрдп рдмрд┐рдиреНрджреБ рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ:

POST /apis/apps/v1/namespaces/{namespace}/replicasets

рд╕рдмреИ Kubernetes рдЕрдкрд░реЗрд╕рдирд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ API рдЕрдиреНрддреНрдп рдмрд┐рдиреНрджреБрд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рд╕рдХрд┐рдиреНрдЫ API рд╕рдиреНрджрд░реНрдн (рд╕рд╣рд┐рдд) рдорд╛рдерд┐рдХреЛ рдЕрдиреНрддрд┐рдо рдмрд┐рдиреНрджреБ)ред рдЕрдиреНрддрд┐рдо рдмрд┐рдиреНрджреБрдорд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрдиреБрд░реЛрдз рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рддрдкрд╛рдИрдВрд▓реЗ рдкрд╣рд┐рд▓реЗ API рд╕рдиреНрджрд░реНрднрдорд╛ рд╕реВрдЪреАрдмрджреНрдз рдЕрдиреНрддрд┐рдо рдмрд┐рдиреНрджреБ рдорд╛рд░реНрдЧрд╣рд░реВрдорд╛ API рд╕рд░реНрднрд░ URL рдердкреНрдиреБрдкрд░реНрдЫред

рддрд╕рд░реНрде, рдЬрдм рддрдкрд╛рдЗрдБ рдорд╛рдерд┐рдХреЛ рдЖрджреЗрд╢ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ, kubectl рд▓реЗ рдорд╛рдерд┐рдХреЛ API рдЕрдиреНрддреНрдп рдмрд┐рдиреНрджреБрдорд╛ HTTP POST рдЕрдиреБрд░реЛрдз рдкрдард╛рдЙрдБрджрдЫред рддрдкрд╛рдИрдВрд▓реЗ рдлрд╛рдЗрд▓рдорд╛ рдкреНрд░рджрд╛рди рдЧрд░реНрдиреБрднрдПрдХреЛ ReplicaSet рдкрд░рд┐рднрд╛рд╖рд╛ replicaset.yaml, рдЕрдиреБрд░реЛрдз рдХреЛ рдореБрдЦреНрдп рднрд╛рдЧ рдорд╛ рдкрдард╛рдЗрдПрдХреЛ рдЫред

Kubernetes рдХреНрд▓рд╕реНрдЯрд░рд╕рдБрдЧ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛ рдЧрд░реНрдиреЗ рд╕рдмреИ рдЖрджреЗрд╢рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ kubectl рдпрд╕рд░реА рдХрд╛рдо рдЧрд░реНрджрдЫред рдпреА рд╕рдмреИ рдХреЗрд╕рд╣рд░реВрдорд╛, kubectl рд▓реЗ рдЙрдкрдпреБрдХреНрдд Kubernetes API рдЕрдиреНрддреНрдпрдмрд┐рдиреНрджреБрд╣рд░реВрдорд╛ HTTP рдЕрдиреБрд░реЛрдзрд╣рд░реВ рдорд╛рддреНрд░ рдЧрд░реНрджрдЫред

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджрд┐рдиреБрд╣реЛрд╕реН рдХрд┐ рддрдкрд╛рдЗрдБ рдХреБрдмреЗрд░рдиреЗрдЯрд╣рд░реВ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдЬрд╕реНрддреИ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ curlKubernetes API рдорд╛ рдореНрдпрд╛рдиреБрдЕрд▓ рд░реВрдкрдорд╛ HTTP рдЕрдиреБрд░реЛрдзрд╣рд░реВ рдкрдард╛рдПрд░ред Kubectl рд▓реЗ Kubernetes API рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдЬрд┐рд▓реЛ рдмрдирд╛рдЙрдБрдЫред

рдпреЛ kubectl рдХреЗ рд╣реЛ рд░ рдпрд╕рд▓реЗ рдХрд╕рд░реА рдХрд╛рдо рдЧрд░реНрдЫ рднрдиреНрдиреЗ рдЖрдзрд╛рд░рднреВрдд рдХреБрд░рд╛ рд╣реЛред рддрд░ рддреНрдпрд╣рд╛рдБ Kubernetes API рдХреЛ рдмрд╛рд░реЗ рдорд╛ рдХреЗрд╣рд┐ рдЕрдиреНрдп рдЫ рдХрд┐ рд╣рд░реЗрдХ kubectl рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдерд╛рд╣рд╛ рд╣реБрдиреБрдкрд░реНрдЫред Kubernetes рдХреЛ рднрд┐рддреНрд░реА рд╕рдВрд╕рд╛рд░рдорд╛ рдПрдХ рджреНрд░реБрдд рдирдЬрд░ рд░рд╛рдЦреМрдВред

Kubernetes рдХреЛ рднрд┐рддреНрд░реА рд╕рдВрд╕рд╛рд░

Kubernetes рдорд╛ рд╕реНрд╡рддрдиреНрддреНрд░ рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВрдХреЛ рд╕реЗрдЯ рд╣реБрдиреНрдЫ рдЬреБрди рдХреНрд▓рд╕реНрдЯрд░ рдиреЛрдбрд╣рд░реВрдорд╛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрдХреЛ рд░реВрдкрдорд╛ рдЪрд▓реНрдЫред рдХреЗрд╣рд┐ рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВ рдорд╛рд╕реНрдЯрд░ рдиреЛрдбрд╣рд░реВрдорд╛ рдЪрд▓реНрдЫрдиреН, рдЕрд░реВ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдиреЛрдбрд╣рд░реВрдорд╛, рдкреНрд░рддреНрдпреЗрдХ рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд▓реЗ рдЖрдлреНрдиреИ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдп рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрджрдЫред

рдпрд╣рд╛рдБ рдореБрдЦреНрдп рдиреЛрдбрд╣рд░реВрдорд╛ рд╕рдмреИрднрдиреНрджрд╛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдШрдЯрдХрд╣рд░реВ рдЫрдиреН:

  1. рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА - рднрдгреНрдбрд╛рд░рдг рд╕реНрд░реЛрдд рдкрд░рд┐рднрд╛рд╖рд╛ (рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдпреЛ etcd рд╣реЛ).
  2. API рд╕рд░реНрднрд░ - рдПрдХ API рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫ рд░ рднрдгреНрдбрд╛рд░рдг рдкреНрд░рдмрдиреНрдз рдЧрд░реНрджрдЫред
  3. рдирд┐рдпрдиреНрддреНрд░рдХ рдкреНрд░рдмрдиреНрдзрдХ - рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрджрдЫ рдХрд┐ рд╕реНрд░реЛрдд рд╕реНрдерд┐рддрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯреАрдХрд░рдгрд╣рд░реБ рд╕рдВрдЧ рдЕрдиреБрдкрд╛рд▓рдиред
  4. рдЕрдиреБрд╕реВрдЪреАрдХрд░реНрддрд╛ - рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдиреЛрдбрд╣рд░реВрдорд╛ рдкреЛрдбрд╣рд░реВ рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВред

рд░ рдпрд╣рд╛рдБ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдиреЛрдбрд╣рд░реВрдорд╛ рд╕рдмреИрднрдиреНрджрд╛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдШрдЯрдХ рд╣реЛ:

  1. рдХреБрдмреЗрд▓реЗрдЯ - рдХрд╛рдо рдЧрд░реНрдиреЗ рдиреЛрдбрдорд╛ рдХрдиреНрдЯреЗрдирд░рд╣рд░реВрдХреЛ рд╕реБрд░реБрд╡рд╛рдд рдкреНрд░рдмрдиреНрдз рдЧрд░реНрджрдЫред

рдпреА рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВрд▓реЗ рдХрд╕рд░реА рдХрд╛рдо рдЧрд░реНрдЫрдиреН рднрдиреНрдиреЗ рдмреБрдЭреНрдирдХреЛ рд▓рд╛рдЧрд┐, рдПрдЙрдЯрд╛ рдЙрджрд╛рд╣рд░рдг рд╣реЗрд░реМрдВред

рдорд╛рдиреМрдВ рддрдкрд╛рдИрдВрд▓реЗ рднрд░реНрдЦрд░реИ рдкреВрд░рд╛ рдЧрд░реНрдиреБрднрдпреЛ kubectl create -f replicaset.yaml, рдЬрд╕ рдкрдЫрд┐ kubectl рд▓реЗ HTTP POST рдЕрдиреБрд░реЛрдз рдЧрд░реНрдпреЛ ReplicaSet API рдЕрдиреНрддреНрдп рдмрд┐рдиреНрджреБ (ReplicaSet рд╕рдВрд╕рд╛рдзрди рдкрд░рд┐рднрд╛рд╖рд╛ рдкрд╛рд╕ рдЧрд░реНрджреИ)ред

рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рдХреЗ рд╣реБрдБрджреИрдЫ?

  1. рдЧрд░реЗрдкрдЫрд┐ kubectl create -f replicaset.yaml API рд╕рд░реНрднрд░рд▓реЗ рднрдгреНрдбрд╛рд░рдгрдорд╛ рддрдкрд╛рдИрдВрдХреЛ ReplicaSet рд╕реНрд░реЛрдд рдкрд░рд┐рднрд╛рд╖рд╛ рднрдгреНрдбрд╛рд░ рдЧрд░реНрджрдЫ:

    рдХрд╕рд░реА kubectl рдердк рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ: рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдЧрд╛рдЗрдб

  2. рдЕрд░реНрдХреЛ, ReplicaSet рдирд┐рдпрдиреНрддреНрд░рдХрд▓рд╛рдИ рдирд┐рдпрдиреНрддреНрд░рдХ рдкреНрд░рдмрдиреНрдзрдХрдорд╛ рд╕реБрд░реБ рдЧрд░рд┐рдПрдХреЛ рдЫ, рдЬрд╕рд▓реЗ ReplicaSet рд╕реНрд░реЛрддрд╣рд░реВрдХреЛ рд╕рд┐рд░реНрдЬрдирд╛, рдкрд░рд┐рдорд╛рд░реНрдЬрди рд░ рдореЗрдЯрд╛рдЙрдиреЗ рдХрд╛рдо рдЧрд░реНрдЫред

    рдХрд╕рд░реА kubectl рдердк рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ: рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдЧрд╛рдЗрдб

  3. ReplicaSet рдирд┐рдпрдиреНрддреНрд░рдХрд▓реЗ рдкреНрд░рддреНрдпреЗрдХ ReplicaSet рдкреНрд░рддрд┐рдХреГрддрд┐рдХреЛ рд▓рд╛рдЧрд┐ рдкреЛрдб рдкрд░рд┐рднрд╛рд╖рд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрдЫ (ReplicaSet рдкрд░рд┐рднрд╛рд╖рд╛рдорд╛ рдкреЛрдб рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдЕрдиреБрд╕рд╛рд░) рд░ рднрдгреНрдбрд╛рд░рдгрдорд╛ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрджрдЫ:

    рдХрд╕рд░реА kubectl рдердк рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ: рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдЧрд╛рдЗрдб

  4. рдЕрдиреБрд╕реВрдЪрдХ рд╕реБрд░реБ рднрдпреЛ, рдЯреНрд░реНрдпрд╛рдХрд┐рдЩ рдкреЛрдбрд╣рд░реВ рдЬреБрди рдЕрд╣рд┐рд▓реЗрд╕рдореНрдо рдХреБрдиреИ рдкрдирд┐ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдиреЛрдбрд╣рд░реВрдорд╛ рддреЛрдХрд┐рдПрдХреЛ рдЫреИрди:

    рдХрд╕рд░реА kubectl рдердк рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ: рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдЧрд╛рдЗрдб

  5. рдЕрдиреБрд╕реВрдЪрдХрд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рдкреЛрдбрдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрдпреБрдХреНрдд рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдиреЛрдб рдЪрдпрди рдЧрд░реНрджрдЫ рд░ рд╕реНрдЯреЛрд░рдорд╛ рдкреЛрдб рдкрд░рд┐рднрд╛рд╖рд╛рдорд╛ рдпреЛ рдЬрд╛рдирдХрд╛рд░реА рдердкреНрдЫ:

    рдХрд╕рд░реА kubectl рдердк рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ: рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдЧрд╛рдЗрдб

  6. рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдиреЛрдбрдорд╛ рдЬрд╕рдорд╛ рдкреЛрдб рддреЛрдХрд┐рдПрдХреЛ рдЫ, рдХреБрдмреЗрд▓реЗрдЯ рд╕реБрд░реВ рдЧрд░рд┐рдПрдХреЛ рдЫ, рдпрд╕рд▓реЗ рдпреЛ рдиреЛрдбрдорд╛ рддреЛрдХрд┐рдПрдХреЛ рдкреЛрдбрд╣рд░реВ рдЯреНрд░реНрдпрд╛рдХ рдЧрд░реНрджрдЫ:

    рдХрд╕рд░реА kubectl рдердк рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ: рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдЧрд╛рдЗрдб

  7. рдХреБрдмреЗрд▓реЗрдЯрд▓реЗ рднрдгреНрдбрд╛рд░рдгрдмрд╛рдЯ рдкреЛрдб рдкрд░рд┐рднрд╛рд╖рд╛ рдкрдвреНрдЫ рд░ рдХрдиреНрдЯреЗрдирд░ рд░рдирдЯрд╛рдЗрдо, рдЬрд╕реНрддреИ рдбрдХрд░, рдиреЛрдбрдорд╛ рдХрдиреНрдЯреЗрдирд░рд╣рд░реВ рд╕реБрд░реВ рдЧрд░реНрди рдирд┐рд░реНрджреЗрд╢рди рджрд┐рдиреНрдЫ:

    рдХрд╕рд░реА kubectl рдердк рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ: рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдЧрд╛рдЗрдб

рддрд▓ рдпрд╕ рд╡рд┐рд╡рд░рдгрдХреЛ рдкрд╛рда рд╕рдВрд╕реНрдХрд░рдг рд╣реЛред

ReplicaSet рд╕рд┐рд░реНрдЬрдирд╛ рдЕрдиреНрддреНрдп рдмрд┐рдиреНрджреБрдорд╛ API рдЕрдиреБрд░реЛрдз API рд╕рд░реНрднрд░ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╢реЛрдзрди рдЧрд░рд┐рдПрдХреЛ рдЫред API рд╕рд░реНрднрд░рд▓реЗ рдЕрдиреБрд░реЛрдзрд▓рд╛рдИ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдЧрд░реНрдЫ рд░ рднрдгреНрдбрд╛рд░рдорд╛ ReplicaSet рд╕реНрд░реЛрдд рдкрд░рд┐рднрд╛рд╖рд╛ рднрдгреНрдбрд╛рд░ рдЧрд░реНрджрдЫред

рдпреЛ рдШрдЯрдирд╛рд▓реЗ ReplicaSet рдирд┐рдпрдиреНрддреНрд░рдХ рд╕реБрд░реБ рдЧрд░реНрдЫ, рдЬреБрди рдирд┐рдпрдиреНрддреНрд░рдХ рдкреНрд░рдмрдиреНрдзрдХрдХреЛ рдЙрдкрдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реЛред ReplicaSet рдирд┐рдпрдиреНрддреНрд░рдХрд▓реЗ рд╕реНрдЯреЛрд░рдорд╛ ReplicaSet рд╕реНрд░реЛрддрд╣рд░реВрдХреЛ рд╕рд┐рд░реНрдЬрдирд╛, рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рд░ рдореЗрдЯрд╛рдЙрдиреЗ рдирд┐рдЧрд░рд╛рдиреА рдЧрд░реНрджрдЫ рд░ рдпреЛ рд╣реБрдБрджрд╛ рдШрдЯрдирд╛ рд╕реВрдЪрдирд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрджрдЫред

ReplicaSet рдирд┐рдпрдиреНрддреНрд░рдХрдХреЛ рдХрд╛рдо ReplicaSet рдкреЛрдбрд╣рд░реВрдХреЛ рдЖрд╡рд╢реНрдпрдХ рд╕рдВрдЦреНрдпрд╛ рдЕрд╡рд╕реНрдерд┐рдд рдЫ рднрдиреА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрдиреБ рд╣реЛред рд╣рд╛рдореНрд░реЛ рдЙрджрд╛рд╣рд░рдгрдорд╛, рдХреБрдиреИ рдкреЛрдбрд╣рд░реВ рдЕрдЭреИ рдЕрд╡рд╕реНрдерд┐рдд рдЫреИрдирдиреН, рддреНрдпрд╕реИрд▓реЗ ReplicaSet рдирд┐рдпрдиреНрддреНрд░рдХрд▓реЗ рдпреА рдкреЛрдб рдкрд░рд┐рднрд╛рд╖рд╛рд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрдЫ (ReplicaSet рдкрд░рд┐рднрд╛рд╖рд╛рдорд╛ рдкреЛрдб рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдЕрдиреБрд╕рд╛рд░) рд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рднрдгреНрдбрд╛рд░рдгрдорд╛ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрджрдЫред

рдирдпрд╛рдБ рдкреЛрдбрд╣рд░реВрдХреЛ рд╕рд┐рд░реНрдЬрдирд╛ рдПрдХ рд╢реЗрдбреНрдпреБрд▓рд░рджреНрд╡рд╛рд░рд╛ рдЯреНрд░рд┐рдЧрд░ рдЧрд░рд┐рдПрдХреЛ рдЫ рдЬрд╕рд▓реЗ рдкреЛрдб рдкрд░рд┐рднрд╛рд╖рд╛рд╣рд░реВрдХреЛ рдЯреНрд░реНрдпрд╛рдХ рд░рд╛рдЦреНрдЫ рдЬреБрди рдЕрдЭреИ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдиреЛрдбрд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫреИрдиред рдЕрдиреБрд╕реВрдЪрдХрд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рдкреЛрдбрдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрдпреБрдХреНрдд рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдиреЛрдб рдЪрдпрди рдЧрд░реНрджрдЫ рд░ рднрдгреНрдбрд╛рд░рдорд╛ рдкреЛрдб рдкрд░рд┐рднрд╛рд╖рд╛рд╣рд░реВ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░реНрджрдЫред

рдиреЛрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН рдХрд┐ рдпрд╕ рдмрд┐рдиреНрджреБ рд╕рдореНрдо, рдХреБрдиреИ рдкрдирд┐ рдХрд╛рд░реНрдпрднрд╛рд░ рдХреЛрдб рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рдХрддреИ рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдерд┐рдПрдиред рдЕрд╣рд┐рд▓реЗрд╕рдореНрдо рднрдПрдХрд╛ рд╕рдмреИ рдХреБрд░рд╛ - рдпреЛ рдорд╛рд╕реНрдЯрд░ рдиреЛрдбрдорд╛ рднрдгреНрдбрд╛рд░рдорд╛ рд╕реНрд░реЛрддрд╣рд░реВрдХреЛ рд╕рд┐рд░реНрдЬрдирд╛ рд░ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рд╣реЛред

рдЕрдиреНрддрд┐рдо рдШрдЯрдирд╛рд▓реЗ Kubelets рдЯреНрд░рд┐рдЧрд░ рдЧрд░реНрджрдЫ, рдЬрд╕рд▓реЗ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдиреЛрдбрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдкреЛрдбрд╣рд░реВ рдирд┐рдЧрд░рд╛рдиреА рдЧрд░реНрджрдЫред рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдиреЛрдбрдХреЛ Kubelet рдЬрд╕рдорд╛ рддрдкрд╛рдЗрдБрдХреЛ ReplicaSet рдкреЛрдбрд╣рд░реВ рд╕реНрдерд╛рдкрд┐рдд рдЫрдиреН рдХрдиреНрдЯреЗрдирд░ рд░рдирдЯрд╛рдЗрдорд▓рд╛рдИ рдирд┐рд░реНрджреЗрд╢рди рджрд┐рдиреБрдкрд░реНрдЫ, рдЬрд╕реНрддреИ рдбрдХрд░, рдЖрд╡рд╢реНрдпрдХ рдХрдиреНрдЯреЗрдирд░ рдЫрд╡рд┐рд╣рд░реВ рдбрд╛рдЙрдирд▓реЛрдб рдЧрд░реНрди рд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдЪрд▓рд╛рдЙрдиред

рдпрд╕ рдмрд┐рдиреНрджреБрдорд╛, рддрдкрд╛рдИрдВрдХреЛ ReplicaSet рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЕрдиреНрддрддрдГ рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдЫ!

Kubernetes API рдХреЛ рднреВрдорд┐рдХрд╛

рддрдкрд╛рдИрдВрд▓реЗ рдЕрдШрд┐рд▓реНрд▓реЛ рдЙрджрд╛рд╣рд░рдгрдорд╛ рджреЗрдЦреНрдиреБрднрдПрдЭреИрдВ, Kubernetes рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВ (рдПрдкреАрдЖрдИ рд╕рд░реНрднрд░ рд░ рднрдгреНрдбрд╛рд░рдг рдмрд╛рд╣реЗрдХ) рднрдгреНрдбрд╛рд░рдгрдорд╛ рд╕реНрд░реЛрддрд╣рд░реВрдорд╛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рд░ рднрдгреНрдбрд╛рд░рдгрдорд╛ рд╕реНрд░реЛрддрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдЬрд╛рдирдХрд╛рд░реА рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рд╣реЗрд░реНрдЫрдиреНред

рдирд┐рд╕реНрд╕рдиреНрджреЗрд╣, рдпреА рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВрд▓реЗ рднрдгреНрдбрд╛рд░рдгрд╕рдБрдЧ рд╕реАрдзреИ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛ рдЧрд░реНрджреИрдирдиреН, рддрд░ Kubernetes API рдорд╛рд░реНрдлрдд рдорд╛рддреНрд░ред

рдирд┐рдореНрди рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ рд╡рд┐рдЪрд╛рд░ рдЧрд░реНрдиреБрд╣реЛрд╕реН:

  1. ReplicaSet рдирд┐рдпрдиреНрддреНрд░рдХрд▓реЗ API рдЕрдиреНрддреНрдп рдмрд┐рдиреНрджреБ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ рд╕реВрдЪреА рдкреНрд░рддрд┐рдХреГрддрд┐ рд╕реЗрдЯ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░ рд╕рдВрдЧ watch ReplicaSet рд╕реНрд░реЛрддрд╣рд░реВрдорд╛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдирд┐рдЧрд░рд╛рдиреА рдЧрд░реНрдиред
  2. ReplicaSet рдирд┐рдпрдиреНрддреНрд░рдХрд▓реЗ API рдЕрдиреНрддреНрдп рдмрд┐рдиреНрджреБ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ Pod рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН (рдкреЛрдб рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН) рдкреЛрдбрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиред
  3. рд╢реЗрдбреНрдпреБрд▓рд░рд▓реЗ API рдЕрдиреНрддреНрдп рдмрд┐рдиреНрджреБ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ рдкреНрдпрд╛рдЪ рдкреЛрдб (рдкрдб рд╕рдореНрдкрд╛рджрди рдЧрд░реНрдиреБрд╣реЛрд╕реН) рдЪрдпрди рдЧрд░рд┐рдПрдХреЛ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдиреЛрдбрдХреЛ рдмрд╛рд░реЗрдорд╛ рдЬрд╛рдирдХрд╛рд░реАрдХреЛ рд╕рд╛рде рдкреЛрдбрд╣рд░реВ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░реНрдиред

рддрдкрд╛рдИрд▓реЗ рджреЗрдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рдпреЛ рдЙрд╣реА API рд╣реЛ рдЬреБрди kubectl рдкрд╣реБрдБрдЪ рдЧрд░реНрджрдЫред рдЖрдиреНрддрд░рд┐рдХ рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВ рд░ рдмрд╛рд╣реНрдп рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рд╕рдорд╛рди API рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБ Kubernetes рдбрд┐рдЬрд╛рдЗрдирдорд╛ рдЖрдзрд╛рд░рднреВрдд рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реЛред

рдЕрдм рд╣рд╛рдореА Kubernetes рдХрд╕рд░реА рдХрд╛рдо рдЧрд░реНрдЫ рд╕рдВрдХреНрд╖реЗрдк рдЧрд░реНрди рд╕рдХреНрдЫреМрдВ:

  1. рднрдгреНрдбрд╛рд░рдг рднрдгреНрдбрд╛рд░рд╣рд░реВ рд░рд╛рдЬреНрдп, рддреНрдпреЛ рд╣реЛ, Kubernetes рд╕реНрд░реЛрддрд╣рд░реВред
  2. API рд╕рд░реНрднрд░рд▓реЗ Kubernetes API рдХреЛ рд░реВрдкрдорд╛ рднрдгреНрдбрд╛рд░рдгрдорд╛ рдЗрдиреНрдЯрд░рдлреЗрд╕ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред
  3. рдЕрдиреНрдп рд╕рдмреИ Kubernetes рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВ рд░ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ API рдорд╛рд░реНрдлрдд Kubernetes рдЕрд╡рд╕реНрдерд╛ (рд╕рдВрд╕рд╛рдзрдирд╣рд░реВ) рдкрдвреНрдЫрдиреН, рдЕрд╡рд▓реЛрдХрди рдЧрд░реНрдЫрдиреН рд░ рд╣реЗрд░рдлреЗрд░ рдЧрд░реНрдЫрдиреНред

рдпреА рдЕрд╡рдзрд╛рд░рдгрд╛рд╣рд░реВ рдЬрд╛рдиреНрдирд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ kubectl рд▓рд╛рдИ рдЕрдЭ рд░рд╛рдореНрд░реЛрд╕рдБрдЧ рдмреБрдЭреНрди рд░ рдпрд╕рдмрд╛рдЯ рдзреЗрд░реИ рднрдиреНрджрд╛ рдзреЗрд░реИ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдорджреНрджрдд рдЧрд░реНрдиреЗрдЫред

рдЕрдм рдХреЗрд╣реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реБрдЭрд╛рд╡рд╣рд░реВ рд░ рдЪрд╛рд▓рд╣рд░реВ рд╣реЗрд░реМрдВ рдЬрд╕рд▓реЗ kubectl рдХреЛ рд╕рд╛рде рддрдкрд╛рдИрдВрдХреЛ рдЙрддреНрдкрд╛рджрдХрддрд╛ рд╕реБрдзрд╛рд░ рдЧрд░реНрди рдорджреНрджрдд рдЧрд░реНрдиреЗрдЫред

1. рдХрдорд╛рдгреНрдб рдХрдореНрдкреНрд▓рд┐рд╕рди рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдЗрдирдкреБрдЯрдХреЛ рдЧрддрд┐ рдмрдврд╛рдЙрдиреБрд╣реЛрд╕реН

рдПрдХ рд╕рдмреИрднрдиреНрджрд╛ рдЙрдкрдпреЛрдЧреА, рддрд░ рдЕрдХреНрд╕рд░ рдмреЗрд╡рд╛рд╕реНрддрд╛ рдЧрд░рд┐рдПрдХреЛ, kubectl рд╕рдБрдЧ рдХрд╛рд░реНрдпрд╕рдореНрдкрд╛рджрди рд╕реБрдзрд╛рд░ рдЧрд░реНрдиреЗ рдкреНрд░рд╡рд┐рдзрд┐ рднрдиреЗрдХреЛ рдХрдорд╛рдгреНрдб рдХрдореНрдкреНрд▓рд┐рд╕рди рд╣реЛред

рдЖрджреЗрд╢ рдкреВрд░реНрдгрддрд╛рд▓реЗ рддрдкрд╛рдЗрдБрд▓рд╛рдИ рдЯреНрдпрд╛рдм рдХреБрдЮреНрдЬреА рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ kubectl рдЖрджреЗрд╢рд╣рд░реВрдХреЛ рднрд╛рдЧрд╣рд░реВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рдкреВрд░рд╛ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рдпрд╕рд▓реЗ рдЙрдкрдХрдорд╛рдиреНрдбрд╣рд░реВ, рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ, рд░ рддрд░реНрдХрд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рдХрд╛рдо рдЧрд░реНрджрдЫ, рдЬрд╕рдорд╛ рд╕рдВрд╕рд╛рдзрди рдирд╛рдорд╣рд░реВ рдЬрд╕реНрддреИ рдЬрдЯрд┐рд▓ рдЪреАрдЬрд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЫрдиреНред

рд╣реЗрд░реНрдиреБрд╣реЛрд╕реН рдХрд╕рд░реА kubectl рдЖрджреЗрд╢ рд╕рдорд╛рдкреНрддрд┐ рдХрд╛рдо рдЧрд░реНрджрдЫ:

рдХрд╕рд░реА kubectl рдердк рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ: рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдЧрд╛рдЗрдб
Bash рд░ Zsh рд╢реЗрд▓рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЖрджреЗрд╢ рд╕рдорд╛рдкреНрддрд┐ рдХрд╛рдо рдЧрд░реНрджрдЫред

рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЧрд╛рдЗрдб рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛ рд╕реЗрдЯрдЕрдк рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рд╡рд┐рд╕реНрддреГрдд рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫ, рддрд░ рддрд▓ рд╣рд╛рдореА рдЫреЛрдЯреЛ рдЕрдВрд╢ рдкреНрд░рджрд╛рди рдЧрд░реНрдиреЗрдЫреМрдВред

рдХрдорд╛рдгреНрдб рдХрдореНрдкреНрд▓реАрд╕рдирд▓реЗ рдХрд╕рд░реА рдХрд╛рдо рдЧрд░реНрдЫ

рдХрдорд╛рдгреНрдб рдХрдореНрдкреНрд▓рд┐рд╕рди рдПрдЙрдЯрд╛ рд╢реЗрд▓ рдлрд┐рдЪрд░ рд╣реЛ рдЬрд╕рд▓реЗ рдкреВрд░рд╛ рд▓рд┐рдкрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдХрд╛рдо рдЧрд░реНрдЫред рдПрдХ рдПрдХреНрд╕рдЯреЗрдиреНрд╕рди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХ рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реЛ рдЬрд╕рд▓реЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЖрджреЗрд╢рдХреЛ рд▓рд╛рдЧрд┐ рд╡рд┐рд╕реНрддрд╛рд░рдХреЛ рд╡реНрдпрд╡рд╣рд╛рд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрджрдЫред

Kubectl рд▓реЗ рдирд┐рдореНрди рдЖрджреЗрд╢рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ Bash рд░ Zsh рдХреЛ рд▓рд╛рдЧрд┐ рдПрдХреНрд╕рдЯреЗрдиреНрд╕рди рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рдЙрддреНрдкрдиреНрди рд░ рдЖрдЙрдЯрдкреБрдЯ рдЧрд░реНрджрдЫ:

$ kubectl completion bash

рд╡рд╛:

$ kubectl completion zsh

рд╕рд┐рджреНрдзрд╛рдиреНрддрдорд╛, рдпреА рдЖрджреЗрд╢рд╣рд░реВрдХреЛ рдЖрдЙрдЯрдкреБрдЯрд▓рд╛рдИ рдЙрдкрдпреБрдХреНрдд рдХрдорд╛рдгреНрдб рд╢реЗрд▓рдорд╛ рдЬрдбрд╛рди рдЧрд░реНрди рдкрд░реНрдпрд╛рдкреНрдд рдЫ рддрд╛рдХрд┐ kubectl рд▓реЗ рдЖрджреЗрд╢рд╣рд░реВрд▓рд╛рдИ рдкреВрд░рдХ рдмрдирд╛рдЙрди рд╕рдХреНрдЫред

рдЕрднреНрдпрд╛рд╕рдорд╛, Bash (Linux рд░ MacOS рдмреАрдЪрдХреЛ рднрд┐рдиреНрдирддрд╛ рд╕рд╣рд┐рдд) рд░ Zsh рдХреЛ рд▓рд╛рдЧрд┐ рдЬрдбрд╛рди рд╡рд┐рдзрд┐ рдлрд░рдХ рдЫред рддрд▓ рд╣рд╛рдореА рдпреА рд╕рдмреИ рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рд╣реЗрд░реНрдиреЗрдЫреМрдВред

рд▓рд┐рдирдХреНрд╕рдорд╛ рдмреНрдпрд╛рд╕

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-completion рдорд╛ рд╕рдорд╛рд╡реЗрд╢ рдЫрдиреНред

рджреБрдмреИ рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рд╕рдорд╛рди рд░реВрдкрдорд╛ рд▓рд╛рдЧреВ рд╣реБрдиреНрдЫрдиреНред

рд╢реЗрд▓ рдкреБрди: рд╕реБрд░реБ рдЧрд░реЗрдкрдЫрд┐, kubectl рдЖрджреЗрд╢ рд╕рдорд╛рдкреНрддрд┐рд▓реЗ рдХрд╛рдо рдЧрд░реНрдиреЗрдЫред

MacOS рдорд╛ рдмреНрдпрд╛рд╢

MacOS рдорд╛ рд╕реЗрдЯрдЕрдк рдЕрд▓рд┐ рдмрдвреА рдЬрдЯрд┐рд▓ рдЫред рддрдереНрдп рдпреЛ рд╣реЛ рдХрд┐ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛, MacOS рд▓реЗ Bash рд╕рдВрд╕реНрдХрд░рдг 3.2 рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ, рд░ kubectl рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд▓рд╛рдИ рдХрдореНрддрд┐рдорд╛ 4.1 рдХреЛ Bash рд╕рдВрд╕реНрдХрд░рдг рдЪрд╛рд╣рд┐рдиреНрдЫ рд░ Bash 3.2 рдорд╛ рдХрд╛рдо рдЧрд░реНрджреИрдиред

рддреНрдпрд╣рд╛рдБ MacOS рдорд╛ Bash рдХреЛ рдкреБрд░рд╛рдиреЛ рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдореНрдмрдиреНрдзрд┐рдд рдЗрдЬрд╛рдЬрддрдкрддреНрд░ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рдЫрдиреНред Bash рд╕рдВрд╕реНрдХрд░рдг 4 GPLv3 рдЕрдиреНрддрд░реНрдЧрдд рдЗрдЬрд╛рдЬрддрдкрддреНрд░ рджрд┐рдЗрдПрдХреЛ рдЫ, рдЬреБрди Apple рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдЫреИрдиред

MacOS рдорд╛ kubectl рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрди, рддрдкрд╛рдИрдВрд▓реЗ Bash рдХреЛ рд╣рд╛рд▓реИрдХреЛ рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рддрдкрд╛рдИрд▓реЗ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░рд┐рдПрдХреЛ рдмрд╛рд╕рд▓рд╛рдИ рддрдкрд╛рдЗрдБрдХреЛ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╢реЗрд▓рдХреЛ рд░реВрдкрдорд╛ рд╕реЗрдЯ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рдЬрд╕рд▓реЗ рддрдкрд╛рдЗрдБрд▓рд╛рдИ рднрд╡рд┐рд╖реНрдпрдорд╛ рдзреЗрд░реИ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рдмрдЪрдд рдЧрд░реНрдиреЗрдЫред рдпреЛ рдЧрд╛рд╣реНрд░реЛ рдЫреИрди, рд╡рд┐рд╡рд░рдг рд▓реЗрдЦрдорд╛ рджрд┐рдЗрдПрдХреЛ рдЫ "MacOS рдорд╛ Bash рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░реНрджреИ"ред

рдЬрд╛рд░реА рд░рд╛рдЦреНрдиреБ рдЕрдШрд┐, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрдиреБрд╣реЛрд╕реН рдХрд┐ рддрдкрд╛рдЗрдБ Bash рдХреЛ рднрд░реНрдЦрд░рдХреЛ рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ рд╣реБрдиреБрд╣реБрдиреНрдЫ (рдЖрдЙрдЯрдкреБрдЯ рдЬрд╛рдБрдЪ рдЧрд░реНрдиреБрд╣реЛрд╕реН bash --version).

Bash рдкреВрд░рд╛ рд▓рд┐рдкрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЕрдиреБрд╕рд╛рд░ рднрд┐рдиреНрди рд╣реБрдиреНрдЫ 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, рд░ in ~/.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

рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ Homebrew рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ bash-completion рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреБрднрдпреЛ рднрдиреЗ рдорд╛рддреНрд░ рдпреЛ рд╡рд┐рдзрд┐рд▓реЗ рдХрд╛рдо рдЧрд░реНрдиреЗрдЫред рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛, bash-completion рд▓реЗ рдпрд╕ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдмрд╛рдЯ рд╕рдмреИ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВ рд▓реЛрдб рдЧрд░реНрджрдЫред

рдпрджрд┐ рддрдкрд╛рдЗрдБ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреБрднрдпреЛ Homebrew рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ kubectl, рддреНрдпрд╕реЛрднрдП рдЕрдШрд┐рд▓реНрд▓реЛ рдЪрд░рдг рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫреИрди, рдХрд┐рдирдХрд┐ рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛ рд▓рд┐рдкрд┐ рд╕реНрд╡рддрдГ рдлреЛрд▓реНрдбрд░рдорд╛ рд░рд╛рдЦрд┐рдиреЗрдЫред /usr/local/etc/bash_completion.d рд╕реНрдерд╛рдкрдирд╛ рдХреЛ рд╕рдордпрдорд╛ред рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛, kubectl autocompletion рддрдкрд╛рдИрдВрд▓реЗ 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]...

рдЖрджреЗрд╢рд▓реЗ рдЕрдиреБрд░реЛрдз рдЧрд░рд┐рдПрдХреЛ рд╕реНрд░реЛрдд рд╡рд╛ рдХреНрд╖реЗрддреНрд░рдХреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рдЖрдЙрдЯрдкреБрдЯ рдЧрд░реНрдиреЗрдЫред рджреЗрдЦрд╛рдЗрдПрдХреЛ рдЬрд╛рдирдХрд╛рд░реА рдПрдкреАрдЖрдИ рдореНрдпрд╛рдиреБрдЕрд▓рдорд╛ рд╕рдорд╛рд╡реЗрд╢ рднрдПрдХреЛрд╕рдБрдЧ рдорд┐рд▓реНрджреЛрдЬреБрд▓реНрджреЛ рдЫред

рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд 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 рдкреЛрдбрдХреЛ рд╕реНрд░реЛрдд рд╡рд┐рд╡рд░рдгрдорд╛ред рдердк рд╡рд┐рд╡рд░рдгрд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рд╕рдХрд┐рдиреНрдЫ API рдЧрд╛рдЗрдб рд╡рд╛ рдЖрджреЗрд╢ рдЯрд╛рдЗрдк рдЧрд░реНрдиреБрд╣реЛрд╕реН 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.

JSONPath JSON рдХрд╛рдЧрдЬрд╛рддрд╣рд░реВрдмрд╛рдЯ рдбрд╛рдЯрд╛ рдкреБрди: рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреЗ рднрд╛рд╖рд╛ рд╣реЛред рдПрдХрд▓ рдХреНрд╖реЗрддреНрд░ рдЪрдпрди рдЧрд░реНрдиреБ JSONPath рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдмреИрднрдиреНрджрд╛ рд╕рд░рд▓ рдкреНрд░рдпреЛрдЧ рдХреЗрд╕ рд╣реЛред рдЙрд╣рд╛рдБрд╕рдБрдЧ рдзреЗрд░реИ рдЫ рдердк рд╕рдореНрднрд╛рд╡рдирд╛рд╣рд░реВ, рдЪрдпрдирдХрд░реНрддрд╛рд╣рд░реВ, рдлрд┐рд▓реНрдЯрд░рд╣рд░реВ рд░ рдпрддрд┐ рд╕рд╣рд┐рддред

Kubectl рд▓реЗ JSONPath рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВрдХреЛ рд╕реАрдорд┐рдд рд╕рдВрдЦреНрдпрд╛рд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫред рддрд┐рдиреАрд╣рд░реВрдХреЛ рдкреНрд░рдпреЛрдЧрдХреЛ рд╕рдореНрднрд╛рд╡рдирд╛ рд░ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ рддрд▓ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рдЫ:

# ╨Т╤Л╨▒╤А╨░╤В╤М ╨▓╤Б╨╡ ╤Н╨╗╨╡╨╝╨╡╨╜╤В╤Л ╤Б╨┐╨╕╤Б╨║╨░
$ kubectl get pods -o custom-columns='DATA:spec.containers[*].image'
# ╨Т╤Л╨▒╤А╨░╤В╤М ╤Б╨┐╨╡╤Ж╨╕╤Д╨╕╤З╨╡╤Б╨║╨╕╨╣ ╤Н╨╗╨╡╨╝╨╡╨╜╤В ╤Б╨┐╨╕╤Б╨║╨░
$ kubectl get pods -o custom-columns='DATA:spec.containers[0].image'
# ╨Т╤Л╨▒╤А╨░╤В╤М ╤Н╨╗╨╡╨╝╨╡╨╜╤В╤Л ╤Б╨┐╨╕╤Б╨║╨░, ╨┐╨╛╨┐╨░╨┤╨░╤О╤Й╨╕╨╡ ╨┐╨╛╨┤ ╤Д╨╕╨╗╤М╤В╤А
$ kubectl get pods -o custom-columns='DATA:spec.containers[?(@.image!="nginx")].image'
# ╨Т╤Л╨▒╤А╨░╤В╤М ╨▓╤Б╨╡ ╨┐╨╛╨╗╤П ╨┐╨╛ ╤Г╨║╨░╨╖╨░╨╜╨╜╨╛╨╝╤Г ╨┐╤Г╤В╨╕, ╨╜╨╡╨╖╨░╨▓╨╕╤Б╨╕╨╝╨╛ ╨╛╤В ╨╕╤Е ╨╕╨╝╨╡╨╜╨╕
$ kubectl get pods -o custom-columns='DATA:metadata.*'
# ╨Т╤Л╨▒╤А╨░╤В╤М ╨▓╤Б╨╡ ╨┐╨╛╨╗╤П ╤Б ╤Г╨║╨░╨╖╨░╨╜╨╜╤Л╨╝ ╨╕╨╝╨╡╨╜╨╡╨╝, ╨▓╨╜╨╡ ╨╖╨░╨▓╨╕╤Б╨╕╨╝╨╛╤Б╤В╨╕ ╨╛╤В ╨╕╤Е ╤А╨░╤Б╨┐╨╛╨╗╨╛╨╢╨╡╨╜╨╕╤П
$ kubectl get pods -o custom-columns='DATA:..image'

[] рдЕрдкрд░реЗрдЯрд░ рд╡рд┐рд╢реЗрд╖ рдЧрд░реА рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЫред рдзреЗрд░реИ Kubernetes рд╕реНрд░реЛрдд рдХреНрд╖реЗрддреНрд░рд╣рд░реВ рд╕реВрдЪреАрд╣рд░реВ рд╣реБрдиреН, рд░ рдпреЛ рдЕрдкрд░реЗрдЯрд░рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рддреА рд╕реВрдЪреАрд╣рд░реВрдХрд╛ рд╕рджрд╕реНрдпрд╣рд░реВ рдЪрдпрди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рдпреЛ рдкреНрд░рд╛рдпрдГ рд╕реВрдЪреАрдХрд╛ рд╕рдмреИ рддрддреНрд╡рд╣рд░реВ рдЪрдпрди рдЧрд░реНрди рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдб рдЬрд╕реНрддреИ [*] рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред

рдЖрд╡реЗрджрди рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ

рдЕрдиреБрдХреВрд▓рди рд╕реНрддрдореНрдн рдЖрдЙрдЯрдкреБрдЯ рдврд╛рдБрдЪрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рд╕рдореНрднрд╛рд╡рдирд╛рд╣рд░реВ рдЕрдирдиреНрдд рдЫрдиреН, рдХрд┐рдирдХрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдЙрддреНрдкрд╛рджрдирдорд╛ рдХреБрдиреИ рдкрдирд┐ рдХреНрд╖реЗрддреНрд░ рд╡рд╛ рд╕реНрд░реЛрдд рдХреНрд╖реЗрддреНрд░рд╣рд░реВрдХреЛ рд╕рдВрдпреЛрдЬрди рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдпрд╣рд╛рдБ рдХреЗрд╣реА рдирдореВрдирд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВ рдЫрдиреН, рддрд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдЖрдлреИрдВ рдЕрдиреНрд╡реЗрд╖рдг рдЧрд░реНрди рд░ рддрдкрд╛рдИрдВрдХреЛ рд▓рд╛рдЧрд┐ рдХрд╛рдо рдЧрд░реНрдиреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рд╕реНрд╡рддрдиреНрддреНрд░ рдорд╣рд╕реБрд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реНред

  1. рдкреЛрдбрдХрд╛ рд▓рд╛рдЧрд┐ рдХрдиреНрдЯреЗрдирд░ рдЫрд╡рд┐рд╣рд░реВ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрджреИ:
    $ kubectl get pods 
      -o custom-columns='NAME:metadata.name,IMAGES:spec.containers[*].image'
    
    NAME                        IMAGES
    engine-544b6b6467-22qr6     rabbitmq:3.7.8-management,nginx
    engine-544b6b6467-lw5t8     rabbitmq:3.7.8-management,nginx
    engine-544b6b6467-tvgmg     rabbitmq:3.7.8-management,nginx
    web-ui-6db964458-8pdw4      wordpress

    рдпреЛ рдЖрджреЗрд╢рд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рдкреЛрдбрдХреЛ рд▓рд╛рдЧрд┐ рдХрдиреНрдЯреЗрдирд░ рдЫрд╡рд┐ рдирд╛рдорд╣рд░реВ рджреЗрдЦрд╛рдЙрдБрдЫред

    рдпрд╛рдж рдЧрд░реНрдиреБрд╣реЛрд╕реН рдХрд┐ рдкреЛрдбрд▓реЗ рдзреЗрд░реИ рдХрдиреНрдЯреЗрдирд░рд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрди рд╕рдХреНрдЫ, рддреНрдпрд╕рдкрдЫрд┐ рдЫрд╡рд┐ рдирд╛рдорд╣рд░реВ рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдорджреНрд╡рд╛рд░рд╛ рдЫреБрдЯреНрдпрд╛рдПрд░ рдПрдХ рд▓рд╛рдЗрдирдорд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реБрдиреЗрдЫрдиреНред

  2. рдиреЛрдб рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреНрд╖реЗрддреНрд░рд╣рд░реВ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрджреИ:
    $ kubectl get nodes 
      -o 
    custom-columns='NAME:metadata.name,ZONE:metadata.labels.failure-domain.beta.kubernetes.io/zone'
    
    NAME                          ZONE
    ip-10-0-118-34.ec2.internal   us-east-1b
    ip-10-0-36-80.ec2.internal    us-east-1a
    ip-10-0-80-67.ec2.internal    us-east-1b

    рдпрджрд┐ рддрдкрд╛рдЗрдБрдХреЛ рдХреНрд▓рд╕реНрдЯрд░ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреНрд▓рд╛рдЙрдбрдорд╛ рд╣реЛрд╕реНрдЯ рдЧрд░рд┐рдПрдХреЛ рдЫ рднрдиреЗ рдпреЛ рдЖрджреЗрд╢ рдЙрдкрдпреЛрдЧреА рдЫред рдпрд╕рд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдбрдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреНрд╖реЗрддреНрд░ рджреЗрдЦрд╛рдЙрдБрдЫред

    рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреНрд╖реЗрддреНрд░ рдПрдХ рдХреНрд▓рд╛рдЙрдб рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реЛ рдЬрд╕рд▓реЗ рдкреНрд░рддрд┐рдХреГрддрд┐ рдХреНрд╖реЗрддреНрд░рд▓рд╛рдИ рднреМрдЧреЛрд▓рд┐рдХ рдХреНрд╖реЗрддреНрд░рдорд╛ рд╕реАрдорд┐рдд рдЧрд░реНрджрдЫред

    рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдбрдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреНрд╖реЗрддреНрд░рд╣рд░реВ рд╡рд┐рд╢реЗрд╖ рд▓реЗрдмрд▓ рдорд╛рд░реНрдлрдд рдкреНрд░рд╛рдкреНрдд рдЧрд░рд┐рдиреНрдЫ - failure-domain.beta.kubernetes.io/zoneред рдпрджрд┐ рдХреНрд▓рд╕реНрдЯрд░ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреНрд▓рд╛рдЙрдбрдорд╛ рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдЫ рднрдиреЗ, рдпреЛ рд▓реЗрдмрд▓ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рд╕рд┐рд░реНрдЬрдирд╛ рд╣реБрдиреНрдЫ рд░ рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдбрдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреНрд╖реЗрддреНрд░рд╣рд░реВрдХреЛ рдирд╛рдорд▓реЗ рднрд░рд┐рдиреНрдЫред

    рд▓реЗрдмрд▓рд╣рд░реВ Kubernetes рд╕рдВрд╕рд╛рдзрди рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛рдХреЛ рдЕрдВрд╢ рд╣реЛрдЗрдирдиреН, рддреНрдпрд╕реИрд▓реЗ рддрдкрд╛рдИрдВрд▓реЗ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдЬрд╛рдирдХрд╛рд░реА рдкрд╛рдЙрдиреБрд╣реБрдиреЗрдЫреИрди API рдЧрд╛рдЗрдбред рдпрджреНрдпрдкрд┐, рдпрджрд┐ рддрдкрд╛рдЗрдБ YAML рд╡рд╛ JSON рдврд╛рдБрдЪрд╛рдорд╛ рдиреЛрдбрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдЬрд╛рдирдХрд╛рд░реА рдЕрдиреБрд░реЛрдз рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ рддрд┐рдиреАрд╣рд░реВ рджреЗрдЦреНрди рд╕рдХрд┐рдиреНрдЫ (рдХреБрдиреИ рдЕрдиреНрдп рд▓реЗрдмрд▓рд╣рд░реВ рдЬрд╕реНрддреИ):

    $ kubectl get nodes -o yaml
    # ╨╕╨╗╨╕
    $ kubectl get nodes -o json

    рдпреЛ рд╕рдВрд╕рд╛рдзрди рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛рд╣рд░реВ рд╕рд┐рдХреНрдиреБрдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрд░реЛрддрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдердк рдЬрд╛рдиреНрдирдХреЛ рд▓рд╛рдЧрд┐ рдЙрддреНрдХреГрд╖реНрдЯ рддрд░рд┐рдХрд╛ рд╣реЛред

4. рд╕рдЬрд┐рд▓реИрд╕рдБрдЧ рдХреНрд▓рд╕реНрдЯрд░ рд░ рдиреЗрдорд╕реНрдкреЗрд╕рд╣рд░реВ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдЧрд░реНрдиреБрд╣реЛрд╕реН

рдЬрдм kubectl рд▓реЗ Kubernetes API рд▓рд╛рдИ рдЕрдиреБрд░реЛрдз рдЧрд░реНрджрдЫ, рдпрд╕рд▓реЗ рдЬрдбрд╛рдирдХреЛ рд▓рд╛рдЧрд┐ рд╕рдмреИ рдЖрд╡рд╢реНрдпрдХ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдкрд╣рд┐рд▓реЗ kubeconfig рдлрд╛рдЗрд▓ рдкрдвреНрдЫред

рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛ kubeconfig рдлрд╛рдЗрд▓ рд╣реЛ ~/.kube/configред рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдпреЛ рдлрд╛рдЗрд▓ рд╡рд┐рд╢реЗрд╖ рдЖрджреЗрд╢ рджреНрд╡рд╛рд░рд╛ рд╕рд┐рд░реНрдЬрдирд╛ рд╡рд╛ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░рд┐рдПрдХреЛ рдЫред

рдЬрдм рддрдкрд╛рдЗрдБ рдзреЗрд░реИ рдХреНрд▓рд╕реНрдЯрд░рд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ, рддрдкрд╛рдЗрдБрдХреЛ kubeconfig рдлрд╛рдЗрд▓рд▓реЗ рддреА рд╕рдмреИ рдХреНрд▓рд╕реНрдЯрд░рд╣рд░реВрдорд╛ рдЬрдбрд╛рди рдЧрд░реНрди рд╕реЗрдЯрд┐рдЩрд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫред рддрдкрд╛рдЗрдБ рдХреБрди рдХреНрд▓рд╕реНрдЯрд░ рд╕рдВрдЧ рдХрд╛рдо рдЧрд░реНрджреИ рд╣реБрдиреБрд╣реБрдиреНрдЫ kubectl рдЖрджреЗрд╢ рдмрддрд╛рдЙрди рдХреЛ рд▓рд╛рдЧреА рдПрдХ рддрд░рд┐рдХрд╛ рдЪрд╛рд╣рд┐рдиреНрдЫред

рдПрдХ рдХреНрд▓рд╕реНрдЯрд░ рднрд┐рддреНрд░, рддрдкрд╛рдИрд▓реЗ рдзреЗрд░реИ рдиреЗрдорд╕реНрдкреЗрд╕рд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ - рднреМрддрд┐рдХ рдХреНрд▓рд╕реНрдЯрд░ рднрд┐рддреНрд░ рднрд░реНрдЪреБрдЕрд▓ рдХреНрд▓рд╕реНрдЯрд░рдХреЛ рдПрдХ рдкреНрд░рдХрд╛рд░ред Kubectl рд▓реЗ kubeconfig рдлрд╛рдЗрд▓рдХреЛ рдЖрдзрд╛рд░рдорд╛ рдХреБрди рдиреЗрдорд╕реНрдкреЗрд╕ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рднрдиреЗрд░ рдкрдирд┐ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░реНрджрдЫред рдпрд╕рдХреЛ рдорддрд▓рдм рддрдкрд╛рдИрд▓рд╛рдИ kubectl рдХрдорд╛рдгреНрдбрд▓рд╛рдИ рдХреБрди рдиреЗрдорд╕реНрдкреЗрд╕рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдиреЗ рднрдиреЗрд░ рдмрддрд╛рдЙрдиреЗ рддрд░рд┐рдХрд╛ рдкрдирд┐ рдЪрд╛рд╣рд┐рдиреНрдЫред

рдпрд╕ рдЕрдзреНрдпрд╛рдпрдорд╛ рд╣рд╛рдореА рдпрд╕рд▓реЗ рдХрд╕рд░реА рдХрд╛рдо рдЧрд░реНрдЫ рд░ рдпрд╕рд▓рд╛рдИ рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рд░реВрдкрдорд╛ рдХрд╕рд░реА рдХрд╛рдо рдЧрд░реНрдиреЗ рднрдиреЗрд░ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдЧрд░реНрдиреЗрдЫреМрдВред

рдзреНрдпрд╛рди рджрд┐рдиреБрд╣реЛрд╕реН рдХрд┐ рддрдкрд╛рдЗрдБрд╕рдБрдЧ KUBECONFIG рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░рдорд╛ рд╕реВрдЪреАрдмрджреНрдз рдзреЗрд░реИ kubeconfig рдлрд╛рдЗрд▓рд╣рд░реВ рд╣реБрди рд╕рдХреНрдЫред рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛, рдпреА рд╕рдмреИ рдлрд╛рдЗрд▓рд╣рд░реВ рд░рдирдЯрд╛рдЗрдордорд╛ рдПрдХ рд╕рд╛рдЭрд╛ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирдорд╛ рдЬреЛрдбрд┐рдиреЗрдЫрдиреНред рддрдкрд╛рдЗрдБ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░ рд╕рдВрдЧ kubectl рдЪрд▓рд╛рдПрд░ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд kubeconfig рдлрд╛рдЗрд▓ рдкрдирд┐ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ --kubeconfigред рд╣реЗрд░ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ.

kubeconfig рдлрд╛рдЗрд▓рд╣рд░реВ

kubeconfig рдлрд╛рдЗрд▓рдорд╛ рдХреЗ рд╕рдорд╛рд╡реЗрд╢ рдЫ рд╣реЗрд░реМрдВ:

рдХрд╕рд░реА kubectl рдердк рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ: рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдЧрд╛рдЗрдб
рддрдкрд╛рдИрдВрд▓реЗ рджреЗрдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, kubeconfig рдлрд╛рдЗрд▓рд▓реЗ рд╕рдиреНрджрд░реНрднрд╣рд░реВрдХреЛ рд╕реЗрдЯ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫред рд╕рдиреНрджрд░реНрднрдорд╛ рддреАрди рддрддреНрд╡рд╣рд░реВ рдЫрдиреН:

  • рдХреНрд▓рд╕реНрдЯрд░ тАФ рдХреНрд▓рд╕реНрдЯрд░ рд╕рд░реНрднрд░рдХреЛ API URLред
  • рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ - рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреНрд░рдорд╛рдгрд╣рд░реВред
  • рдиреЗрдорд╕реНрдкреЗрд╕ - рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рд╕рд╛рдореЗрд▓ рд╣реБрдБрджрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХреЛ рдиреЗрдорд╕реНрдкреЗрд╕ред

рдЕрднреНрдпрд╛рд╕рдорд╛, рддрд┐рдиреАрд╣рд░реВ рдкреНрд░рд╛рдпрдГ рддрд┐рдиреАрд╣рд░реВрдХреЛ kubeconfig рдорд╛ рдкреНрд░рддрд┐ рдХреНрд▓рд╕реНрдЯрд░ рдПрдХ рд╕рдиреНрджрд░реНрдн рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫрдиреНред рдпрджреНрдпрдкрд┐, рддрдкрд╛рдЗрдБрд╕рдБрдЧ рдкреНрд░рддрд┐ рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рдзреЗрд░реИ рд╕рдиреНрджрд░реНрднрд╣рд░реВ рд╣реБрди рд╕рдХреНрдЫрдиреН, рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд╛ рдиреЗрдорд╕реНрдкреЗрд╕ рджреНрд╡рд╛рд░рд╛ рднрд┐рдиреНрдиред рдпрджреНрдпрдкрд┐, рдпреЛ рдмрд╣реБ-рд╕рдиреНрджрд░реНрдн рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдЕрд╕рд╛рдорд╛рдиреНрдп рдЫ, рддреНрдпрд╕реИрд▓реЗ рддреНрдпрд╣рд╛рдБ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдХреНрд▓рд╕реНрдЯрд░рд╣рд░реВ рд░ рд╕рдиреНрджрд░реНрднрд╣рд░реВ рдмреАрдЪ рдПрдХ-рджреЗрдЦрд┐-рдПрдХ рдореНрдпрд╛рдкрд┐рдЩ рд╣реБрдиреНрдЫред

рдХреБрдиреИ рдкрдирд┐ рд╕рдордпрдорд╛, рд╕рдиреНрджрд░реНрднрд╣рд░реВ рдордзреНрдпреЗ рдПрдХ рд╡рд░реНрддрдорд╛рди рд╣реЛ:

рдХрд╕рд░реА kubectl рдердк рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ: рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдЧрд╛рдЗрдб
рдЬрдм kubectl рд▓реЗ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдлрд╛рдЗрд▓ рдкрдвреНрдЫ, рдпрд╕рд▓реЗ рд╕рдзреИ рд╣рд╛рд▓рдХреЛ рд╕рдиреНрджрд░реНрднрдмрд╛рдЯ рдЬрд╛рдирдХрд╛рд░реА рд▓рд┐рдиреНрдЫред рдорд╛рдерд┐рдХреЛ рдЙрджрд╛рд╣рд░рдгрдорд╛, kubectl Hare рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рдЬрдбрд╛рди рд╣реБрдиреЗрдЫред

рддрджрдиреБрд╕рд╛рд░, рдЕрд░реНрдХреЛ рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рд╕реНрд╡рд┐рдЪ рдЧрд░реНрди, рддрдкрд╛рдИрдВрд▓реЗ kubeconfig рдлрд╛рдЗрд▓рдорд╛ рд╣рд╛рд▓рдХреЛ рд╕рдиреНрджрд░реНрдн рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ:

рдХрд╕рд░реА kubectl рдердк рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ: рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдЧрд╛рдЗрдб
рдЕрдм kubectl рдлрдХреНрд╕ рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рдЬрдбрд╛рди рд╣реБрдиреЗрдЫред

рдПрдЙрдЯреИ рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рдлрд░рдХ рдиреЗрдорд╕реНрдкреЗрд╕рдорд╛ рд╕реНрд╡рд┐рдЪ рдЧрд░реНрди, рддрдкрд╛рдИрдВрд▓реЗ рд╣рд╛рд▓рдХреЛ рд╕рдиреНрджрд░реНрднрдХреЛ рд▓рд╛рдЧрд┐ рдиреЗрдорд╕реНрдкреЗрд╕ рддрддреНрд╡рдХреЛ рдорд╛рди рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ:

рдХрд╕рд░реА kubectl рдердк рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ: рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдЧрд╛рдЗрдб
рдорд╛рдерд┐рдХреЛ рдЙрджрд╛рд╣рд░рдгрдорд╛, kubectl рд▓реЗ рдлрдХреНрд╕ рдХреНрд▓рд╕реНрдЯрд░рдХреЛ рдкреНрд░реЛрдб рдиреЗрдорд╕реНрдкреЗрд╕ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗрдЫ (рдкрд╣рд┐рд▓реЗ рдЯреЗрд╕реНрдЯ рдиреЗрдорд╕реНрдкреЗрд╕ рд╕реЗрдЯ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ)ред

рдзреНрдпрд╛рди рджрд┐рдиреБрд╣реЛрд╕реН рдХрд┐ kubectl рд▓реЗ рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рдкрдирд┐ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫ --cluster, --user, --namespace ╨╕ --context, рдЬрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рд╡реНрдпрдХреНрддрд┐рдЧрдд рддрддреНрд╡рд╣рд░реВ рд░ рд╣рд╛рд▓рдХреЛ рд╕рдиреНрджрд░реНрднрд▓рд╛рдИ рдЕрдзрд┐рд▓реЗрдЦрди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ, kubeconfig рдорд╛ рдХреЗ рд╕реЗрдЯ рдЧрд░рд┐рдПрдХреЛ рднрдПрддрд╛ рдкрдирд┐ред рд╣реЗрд░ kubectl options.

рд╕рд┐рджреНрдзрд╛рдиреНрддрдорд╛, рддрдкрд╛рдЗрдБ рдореНрдпрд╛рдиреБрдЕрд▓ рд░реВрдкрдорд╛ kubeconfig рдорд╛ рд╕реЗрдЯрд┐рдЩрд╣рд░реВ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рддрд░ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЫред рдпреА рдХрд╛рд░реНрдпрд╣рд░реВ рд╕рд░рд▓ рдмрдирд╛рдЙрди, рддреНрдпрд╣рд╛рдБ рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдпреЛрдЧрд┐рддрд╛рд╣рд░реВ рдЫрдиреН рдЬрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред

kubectx рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН

рдХреНрд▓рд╕реНрдЯрд░ рд░ рдиреЗрдорд╕реНрдкреЗрд╕рд╣рд░реВ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдПрдХ рдзреЗрд░реИ рд▓реЛрдХрдкреНрд░рд┐рдп рдЙрдкрдпреЛрдЧрд┐рддрд╛ред

рдЙрдкрдпреЛрдЧрд┐рддрд╛рд▓реЗ рдЖрджреЗрд╢рд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫ kubectx ╨╕ kubens рд╣рд╛рд▓рдХреЛ рд╕рдиреНрджрд░реНрдн рд░ рдиреЗрдорд╕реНрдкреЗрд╕ рдХреНрд░рдорд╢рдГ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиред

рдЙрд▓реНрд▓реЗрдЦ рдЧрд░рд┐рдП рдЕрдиреБрд╕рд╛рд░, рд╣рд╛рд▓рдХреЛ рд╕рдиреНрджрд░реНрдн рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиреБ рднрдиреЗрдХреЛ рдХреНрд▓рд╕реНрдЯрд░ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиреБ рд╣реЛ рдпрджрд┐ рддрдкрд╛рдИрдВрд╕рдБрдЧ рдкреНрд░рддрд┐ рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рдПрдЙрдЯрд╛ рдорд╛рддреНрд░ рд╕рдиреНрджрд░реНрдн рдЫ рднрдиреЗред

рдпрд╣рд╛рдБ рдпреА рдЖрджреЗрд╢рд╣рд░реВ рдЪрд▓рд╛рдЙрдиреЗ рдПрдЙрдЯрд╛ рдЙрджрд╛рд╣рд░рдг рд╣реЛ:

рдХрд╕рд░реА kubectl рдердк рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ: рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдЧрд╛рдЗрдб
рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдкрдорд╛, рдпреА рдЖрджреЗрд╢рд╣рд░реВрд▓реЗ рдорд╛рдерд┐ рд╡рд░реНрдгрди рдЧрд░рд┐рдП рдЕрдиреБрд╕рд╛рд░ kubeconfig рдлрд╛рдЗрд▓ рд╕рдореНрдкрд╛рджрди рдЧрд░реНрджрдЫред

рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди kubectx, рдорд╛ рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ рдкрд╛рд▓рдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН Githubред

рджреБрдмреИ рдЖрджреЗрд╢рд╣рд░реВрд▓реЗ рд╕рдиреНрджрд░реНрдн рд░ рдиреЗрдорд╕реНрдкреЗрд╕ рдирд╛рдорд╣рд░реВрдХреЛ рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛рд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫ, рдЬрд╕рд▓реЗ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдЯрд╛рдЗрдк рдЧрд░реНрдиреЗ рдЖрд╡рд╢реНрдпрдХрддрд╛рд▓рд╛рдИ рд╣рдЯрд╛рдЙрдБрдЫред рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛ рд╕реЗрдЯрдЕрдк рдЧрд░реНрди рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ рдпрд╣рд╛рдБ.

рдЕрд░реНрдХреЛ рдЙрдкрдпреЛрдЧреА рд╕реБрд╡рд┐рдзрд╛ kubectx рдпреЛ рдЫ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдореЛрдбред рдпреЛ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╕рдВрдЧ рд╕рдВрдпреЛрдЬрди рдорд╛ рдХрд╛рдо рдЧрд░реНрджрдЫ fzf, рдЬреЛ рдЕрд▓рдЧ рд╕реНрдерд╛рдкрд┐рдд рд╣реБрдиреБрдкрд░реНрдЫред fzf рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдирд╛рд▓реЗ рд╕реНрд╡рддрдГ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдореЛрдб рдЙрдкрд▓рдмреНрдз рдЧрд░рд╛рдЙрдБрдЫ kubectxред рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рд░реВрдкрдорд╛, рддрдкрд╛рдЗрдБ fzf рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдЧрд░рд┐рдПрдХреЛ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдирд┐: рд╢реБрд▓реНрдХ рдЦреЛрдЬ рдЗрдиреНрдЯрд░рдлреЗрд╕ рдорд╛рд░реНрдлрдд рд╕рдиреНрджрд░реНрдн рд░ рдиреЗрдорд╕реНрдкреЗрд╕ рдЪрдпрди рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред

рдЦреЛрд▓ рдЙрдкрдирд╛рдо рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ

рддрдкрд╛рдЗрдБрд▓рд╛рдИ рд╣рд╛рд▓рдХреЛ рд╕рдиреНрджрд░реНрдн рд░ рдиреЗрдорд╕реНрдкреЗрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рдЫреБрдЯреНрдЯреИ рдЙрдкрдХрд░рдгрд╣рд░реВ рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджреИрди рдХрд┐рдирднрдиреЗ kubectl рд▓реЗ рдпрд╕рдХреЛ рд▓рд╛рдЧрд┐ рдЖрджреЗрд╢рд╣рд░реВ рдкрдирд┐ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред рд╣реЛ, рдЯреЛрд▓реА kubectl config kubeconfig рдлрд╛рдЗрд▓рд╣рд░реВ рд╕рдореНрдкрд╛рджрди рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рдЙрдкрдХрдорд╛рдиреНрдбрд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред

рддрд┐рдиреАрд╣рд░реВрдордзреНрдпреЗ рдХреЗрд╣реА рдЫрдиреН:

  • kubectl config get-contexts: рд╕рдмреИ рд╕рдиреНрджрд░реНрднрд╣рд░реВ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрдиреБрд╣реЛрд╕реН;
  • kubectl config current-context: рд╡рд░реНрддрдорд╛рди рд╕рдиреНрджрд░реНрдн рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреБрд╣реЛрд╕реН;
  • kubectl config use-context: рд╡рд░реНрддрдорд╛рди рд╕рдиреНрджрд░реНрдн рдкрд░рд┐рд╡рд░реНрддрди;
  • kubectl config set-context: рд╕рдиреНрджрд░реНрдн рддрддреНрд╡ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиреБрд╣реЛрд╕реНред

рдпрджреНрдпрдкрд┐, рдпреА рдЖрджреЗрд╢рд╣рд░реВ рд╕реАрдзрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдзреЗрд░реИ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЫреИрди рдХрд┐рдирднрдиреЗ рддрд┐рдиреАрд╣рд░реВ рд▓рд╛рдореЛ рдЫрдиреНред рддрдкрд╛рдИрдВ рддрд┐рдиреАрд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рд╢реЗрд▓ рдЙрдкрдирд╛рдорд╣рд░реВ рдмрдирд╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдЬреБрди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрди рд╕рдЬрд┐рд▓реЛ рдЫред

рдореИрд▓реЗ рдпреА рдЖрджреЗрд╢рд╣рд░реВрдорд╛ рдЖрдзрд╛рд░рд┐рдд рдЙрдкрдирд╛рдорд╣рд░реВрдХреЛ рд╕реЗрдЯ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНтАНрдпреЛ рдЬрд╕рд▓реЗ kubectx рдЬрд╕реНрддреИ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред рдпрд╣рд╛рдБ рддрдкрд╛рдИрдВрд▓реЗ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдХрд╛рд░реНрдпрдорд╛ рджреЗрдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ:

рдХрд╕рд░реА kubectl рдердк рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ: рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдЧрд╛рдЗрдб
рдзреНрдпрд╛рди рджрд┐рдиреБрд╣реЛрд╕реН рдХрд┐ рдЙрдкрдирд╛рдорд╣рд░реВрд▓реЗ рдПрдХ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдореБрдХреНрдд рд▓реБрдХрдЕрдк рдЗрдиреНрдЯрд░рдлреЗрд╕ рдкреНрд░рджрд╛рди рдЧрд░реНрди fzf рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ (рдЬрд╕реНрддреИ kubectx рдХреЛ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдореЛрдб)ред рдпрд╕рдХреЛ рдорддрд▓рдм рддрдкрд╛рдИрд▓рд╛рдИ рдЪрд╛рд╣рд┐рдиреНрдЫ fzf рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реНрдпреА рдЙрдкрдирд╛рдорд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиред

рдпрд╣рд╛рдБ рдЙрдкрдирд╛рдорд╣рд░реВ рдЖрдлреИрдВрдХреЛ рдкрд░рд┐рднрд╛рд╖рд╛рд╣рд░реВ рдЫрдиреН:

# ╨Я╨╛╨╗╤Г╤З╨╕╤В╤М ╤В╨╡╨║╤Г╤Й╨╕╨╣ ╨║╨╛╨╜╤В╨╡╨║╤Б╤В
alias krc='kubectl config current-context'
# ╨б╨┐╨╕╤Б╨╛╨║ ╨▓╤Б╨╡╤Е ╨║╨╛╨╜╤В╨╡╨║╤Б╤В╨╛╨▓
alias klc='kubectl config get-contexts -o name | sed "s/^/  /;|^  $(krc)$|s/ /*/"'
# ╨Ш╨╖╨╝╨╡╨╜╨╕╤В╤М ╤В╨╡╨║╤Г╤Й╨╕╨╣ ╨║╨╛╨╜╤В╨╡╨║╤Б╤В
alias kcc='kubectl config use-context "$(klc | fzf -e | sed "s/^..//")"'

# ╨Я╨╛╨╗╤Г╤З╨╕╤В╤М ╤В╨╡╨║╤Г╤Й╨╡╨╡ ╨┐╤А╨╛╤Б╤В╤А╨░╨╜╤Б╤В╨▓╨╛ ╨╕╨╝╨╡╨╜
alias krn='kubectl config get-contexts --no-headers "$(krc)" | awk "{print $5}" | sed "s/^$/default/"'
# ╨б╨┐╨╕╤Б╨╛╨║ ╨▓╤Б╨╡╤Е ╨┐╤А╨╛╤Б╤В╤А╨░╨╜╤Б╤В╨▓ ╨╕╨╝╨╡╨╜
alias kln='kubectl get -o name ns | sed "s|^.*/|  |;|^  $(krn)$|s/ /*/"'
# ╨Ш╨╖╨╝╨╡╨╜╨╕╤В╤М ╤В╨╡╨║╤Г╤Й╨╡╨╡ ╨┐╤А╨╛╤Б╤В╤А╨░╨╜╤Б╤В╨▓╨╛ ╨╕╨╝╨╡╨╜
alias kcn='kubectl config set-context --current --namespace "$(kln | fzf -e | sed "s/^..//")"'

рдпреА рдЙрдкрдирд╛рдорд╣рд░реВ рд╕реЗрдЯ рдЧрд░реНрди рддрдкрд╛рдИрдВрд▓реЗ рдЖрдлреНрдиреЛ рдлрд╛рдЗрд▓рдорд╛ рдорд╛рдерд┐рдХрд╛ рдкрд░рд┐рднрд╛рд╖рд╛рд╣рд░реВ рдердкреНрди рдЖрд╡рд╢реНрдпрдХ рдЫ ~/.bashrc рд╡рд╛ ~/.zshrc рд░ рдЖрдлреНрдиреЛ рд╢реЗрд▓ рд░рд┐рдмреБрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реНред

рдкреНрд▓рдЧрдЗрдирд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ

Kubectl рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдкреНрд▓рдЧрдЗрдирд╣рд░реВ рд▓реЛрдб рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ рдЬреБрди рдЖрдзрд╛рд░рднреВрдд рдЖрджреЗрд╢рд╣рд░реВ рдЬрд╕реНрддреИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░рд┐рдиреНрдЫред рддрдкрд╛рдИрдВ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, kubectl-foo рдкреНрд▓рдЧрдЗрди рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рд░ рдЖрджреЗрд╢ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реЗрд░ рдпрд╕рд▓рд╛рдИ рдЪрд▓рд╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред kubectl foo.

рдпрд╕ рддрд░рд┐рдХрд╛рд▓реЗ рд╕рдиреНрджрд░реНрдн рд░ рдиреЗрдорд╕реНрдкреЗрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реБрдиреЗрдЫ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐ рдЪрд▓рд╛рдПрд░ kubectl ctx рд╕рдиреНрджрд░реНрдн рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рд░ kubectl ns рдирд╛рдо рд╕реНрдерд╛рди рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиред

рдореИрд▓реЗ рдпреЛ рдЧрд░реНрдиреЗ рджреБрдИ рдкреНрд▓рдЧрдЗрдирд╣рд░реВ рд▓реЗрдЦреЗрдХреЛ рдЫреБ:

рдкреНрд▓рдЧрдЗрдирд╣рд░реВрдХреЛ рдХрд╛рдо рдЕрдШрд┐рд▓реНрд▓реЛ рдЦрдгреНрдбрдмрд╛рдЯ рдЙрдкрдирд╛рдорд╣рд░реВрдорд╛ рдЖрдзрд╛рд░рд┐рдд рдЫред

рдпрд╣рд╛рдБ рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдХрд╕рд░реА рдХрд╛рдо рдЧрд░реНрдЫрдиреН:

рдХрд╕рд░реА kubectl рдердк рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ: рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдЧрд╛рдЗрдб
рдзреНрдпрд╛рди рджрд┐рдиреБрд╣реЛрд╕реН рдХрд┐ рдкреНрд▓рдЧрдЗрдирд╣рд░реВрд▓реЗ рдПрдХ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдирд┐: рд╢реБрд▓реНрдХ рдЦреЛрдЬ рдЗрдиреНрдЯрд░рдлреЗрд╕ рдкреНрд░рджрд╛рди рдЧрд░реНрди fzf рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ (рдЬрд╕реНрддреИ kubectx рдХреЛ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдореЛрдб)ред рдпрд╕рдХреЛ рдорддрд▓рдм рддрдкрд╛рдИрд▓рд╛рдИ рдЪрд╛рд╣рд┐рдиреНрдЫ fzf рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реНрдпреА рдЙрдкрдирд╛рдорд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиред

рдкреНрд▓рдЧрдЗрдирд╣рд░реВ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди, рддрдкрд╛рдИрдВрд▓реЗ рдирд╛рдордХреЛ рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВ рдбрд╛рдЙрдирд▓реЛрдб рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ kubectl-ctx ╨╕ kubectl-ns рддрдкрд╛рдИрдВрдХреЛ PATH рдЪрд░рдХреЛ рдХреБрдиреИ рдкрдирд┐ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдорд╛ рд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдпреЛрдЧреНрдп рдмрдирд╛рдЙрдиреБрд╣реЛрд╕реН рдЬрд╕реНрддреИред chmod +xред рдпрд╕ рдкрдЫрд┐ рддреБрд░реБрдиреНрддреИ рддрдкрд╛рдИрдВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрд╖рдо рд╣реБрдиреБрд╣реБрдиреЗрдЫ kubectl ctx ╨╕ kubectl ns.

5. autoaliases рдХреЛ рд╕рд╛рде рдЗрдирдкреБрдЯ рдШрдЯрд╛рдЙрдиреБрд╣реЛрд╕реН

рд╢реЗрд▓ рдЙрдкрдирд╛рдорд╣рд░реВ рдЗрдирдкреБрдЯ рдЧрддрд┐ рдмрдврд╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐ рд░рд╛рдореНрд░реЛ рддрд░рд┐рдХрд╛ рд╣реЛред рдкрд░рд┐рдпреЛрдЬрдирд╛ kubectl-рдЙрдкрдирд╛рдо рдЖрдзрд╛рд░рднреВрдд kubectl рдЖрджреЗрд╢рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд▓рдЧрднрдЧ 800 рд╕рд░реНрдЯрдХрдЯрд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫред

рддрдкрд╛рдИ рд╕реЛрдЪрд┐рд░рд╣рдиреБ рднрдПрдХреЛ рд╣реБрди рд╕рдХреНрдЫ - рддрдкрд╛рдИ 800 рдЙрдкрдирд╛рдо рдХрд╕рд░реА рд╕рдореНрдЭрдиреБрд╣реБрдиреНрдЫ? рддрд░ рддрдкрд╛рдИрд▓реЗ рддреА рд╕рдмреИ рд╕рдореНрдЭрдиреБ рдЖрд╡рд╢реНрдпрдХ рдЫреИрди, рдХрд┐рдирдХрд┐ рддрд┐рдиреАрд╣рд░реВ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдпреЛрдЬрдирд╛ рдЕрдиреБрд╕рд╛рд░ рдмрдирд╛рдЗрдПрдХрд╛ рдЫрдиреН, рдЬреБрди рддрд▓ рджрд┐рдЗрдПрдХреЛ рдЫ:

рдХрд╕рд░реА kubectl рдердк рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ: рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдЧрд╛рдЗрдб
рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐:

  1. kgpooyaml - kubectl рдкреНрд░рд╛рдкреНрдд pods oyaml
  2. ksysgsvcw тАФ kubectl -n kube-system svc w рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреБрд╣реЛрд╕реН
  3. ksysrmcm -kubectl -n kube-рд╕рд┐рд╕реНрдЯрдо rm рд╕реЗрдореА
  4. kgdepallsl - kubectl рдкреНрд░рд╛рдкреНрдд рдбрд┐рдкреНрд▓реЛрдпрдореЗрдиреНрдЯ рд╕рдмреИ sl

рддрдкрд╛рдИрдВрд▓реЗ рджреЗрдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреЗ рд░реВрдкрдорд╛, рдЙрдкрдирд╛рдорд╣рд░реВ рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВ рдорд┐рд▓реЗрд░ рдмрдиреЗрдХрд╛ рд╣реБрдиреНрдЫрдиреН, рдЬрд╕рдордзреНрдпреЗ рдкреНрд░рддреНрдпреЗрдХрд▓реЗ kubectl рдЖрджреЗрд╢рдХреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рддрддреНрд╡рд▓рд╛рдИ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдЧрд░реНрджрдЫред рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдирд╛рдордорд╛ рдЖрдзрд╛рд░ рдЖрджреЗрд╢, рдЕрдкрд░реЗрд╢рди, рд░ рд╕реНрд░реЛрдд, рд░ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдмрд╣реБ рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рдПрдЙрдЯрд╛ рдШрдЯрдХ рд╣реБрди рд╕рдХреНрдЫред рддрдкрд╛рдЗрдБ рдорд╛рдерд┐рдХреЛ рд░реЗрдЦрд╛рдЪрд┐рддреНрд░ рдЕрдиреБрд╕рд╛рд░ рдмрд╛рдпрд╛рдБ рджреЗрдЦрд┐ рджрд╛рдпрд╛рдБ рд╕рдореНрдо рдпреА рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВ "рдЖрдмрд╛рджреА" рдЧрд░реНрдиреБрд╣реЛрд╕реНред

рд╣рд╛рд▓рдХреЛ рд╡рд┐рд╕реНрддреГрдд рд░реЗрдЦрд╛рдЪрд┐рддреНрд░ рдорд╛ рдЫ GitHubред рддреНрдпрд╣рд╛рдБ рддрдкрд╛рдИрдВ рдкрдирд┐ рдкрд╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдЙрдкрдирд╛рдорд╣рд░реВрдХреЛ рдкреВрд░реНрдг рд╕реВрдЪреА.

рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреА, рдЙрдкрдирд╛рдо kgpooyamlall рдЖрджреЗрд╢ рдХреЛ рдмрд░рд╛рдмрд░ рдЫ kubectl get pods -o yaml --all-namespaces.

рд╡рд┐рдХрд▓реНрдкрд╣рд░реВрдХреЛ рд╕рд╛рдкреЗрдХреНрд╖ рдХреНрд░рдо рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЫреИрди: рдЖрджреЗрд╢ kgpooyamlall рдЖрджреЗрд╢ рдмрд░рд╛рдмрд░ рдЫ kgpoalloyaml.

рддрдкрд╛рдИрдВрд▓реЗ рдЙрдкрдирд╛рдордХреЛ рд░реВрдкрдорд╛ рд╕рдмреИ рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрдкрд░реНрджреИрдиред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐ k, kg, klo, ksys, kgpo рдкрдирд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рдпрд╕рдмрд╛рд╣реЗрдХ, рддрдкрд╛рдИрд▓реЗ рдЙрдкрдирд╛рдо рд░ рдирд┐рдпрдорд┐рдд рдЖрджреЗрд╢рд╣рд░реВ рд╡рд╛ рдЖрджреЗрд╢ рд▓рд╛рдЗрдирдорд╛ рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рд╕рдВрдпреЛрдЬрди рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ:

рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐:

  1. рдпрд╕рдХреЛ рд╕рдЯреНрдЯрд╛ kubectl proxy рддрдкрд╛рдИрдВ рд▓реЗрдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ k proxy.
  2. рдпрд╕рдХреЛ рд╕рдЯреНрдЯрд╛ kubectl get roles рддрдкрд╛рдИрдВ рд▓реЗрдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ kg roles (рднреВрдорд┐рдХрд╛ рд╕реНрд░реЛрддрдХреЛ рд▓рд╛рдЧрд┐ рд╣рд╛рд▓ рдХреБрдиреИ рдЙрдкрдирд╛рдо рдЫреИрди)ред
  3. рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреЛрдб рдХреЛ рд▓рд╛рдЧреА рдбрд╛рдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдХреЛ рд▓рд╛рдЧреА, рддрдкрд╛рдЗрдБ рдЖрджреЗрд╢ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ kgpo my-pod тАФ kubectl get pod my-pod.

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджрд┐рдиреБрд╣реЛрд╕реН рдХрд┐ рдХреЗрд╣рд┐ рдЙрдкрдирд╛рдорд╣рд░реВрд▓рд╛рдИ рдЖрджреЗрд╢ рд░реЗрдЦрд╛ рддрд░реНрдХ рдЪрд╛рд╣рд┐рдиреНрдЫред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдЙрдкрдирд╛рдо kgpol рдпрд╕рдХреЛ рдЕрд░реНрде kubectl get pods -lред рд╡рд┐рдХрд▓реНрдк -l рдПрдЙрдЯрд╛ рддрд░реНрдХ рдЪрд╛рд╣рд┐рдиреНрдЫ - рдПрдХ рд▓реЗрдмрд▓ рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ред рдпрджрд┐ рддрдкрд╛рдЗрдБ рдЙрдкрдирд╛рдо рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ рдпреЛ рдЬрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ kgpol app=ui.

рдХрд┐рдирднрдиреЗ рдХреЗрд╣реА рдЙрдкрдирд╛рдорд╣рд░реВрд▓рд╛рдИ рддрд░реНрдХрд╣рд░реВ рдЪрд╛рд╣рд┐рдиреНрдЫ, рдЙрдкрдирд╛рдорд╣рд░реВ a, f, рд░ l рдЕрдиреНрддрд┐рдордорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрдкрд░реНрдЫред

рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рддрдкрд╛рдИрдВрд▓реЗ рдпреЛ рдпреЛрдЬрдирд╛рдХреЛ рд╣реНрдпрд╛рдЩреНрдЧ рдкреНрд░рд╛рдкреНрдд рдЧрд░реЗрдкрдЫрд┐, рддрдкрд╛рдИрдВрд▓реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрди рдЪрд╛рд╣рдиреБрднрдПрдХреЛ рдЖрджреЗрд╢рд╣рд░реВрдмрд╛рдЯ рд╕рд╣рдЬ рд░реВрдкрдорд╛ рдЙрдкрдирд╛рдорд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рд░ рдзреЗрд░реИ рдЯрд╛рдЗрдкрд┐рдЩ рд╕рдордп рдмрдЪрдд рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред

рд╕реНрдерд╛рдкрдирд╛

kubectl-aliases рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди, рддрдкрд╛рдИрдВрд▓реЗ рдлрд╛рдЗрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ .kubectl_aliases GitHub рдмрд╛рдЯ рд░ рдлрд╛рдЗрд▓рдорд╛ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрдиреБрд╣реЛрд╕реН ~/.bashrc рд╡рд╛ ~/.zshrc:

source ~/.kubectl_aliases

рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛

рд╣рд╛рдореАрд▓реЗ рдкрд╣рд┐рд▓реЗ рднрдиреЗрдЭреИрдВ, рддрдкрд╛рдЗрдБ рдкреНрд░рд╛рдп: рдХрдорд╛рдВрдб рд▓рд╛рдЗрдирдорд╛ рдЙрдкрдирд╛рдордорд╛ рдердк рд╢рдмреНрджрд╣рд░реВ рдердкреНрдиреБрд╣реБрдиреНрдЫред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐:

$ kgpooyaml test-pod-d4b77b989

рдпрджрд┐ рддрдкрд╛рдЗрдБ kubectl рдЖрджреЗрд╢ рд╕рдорд╛рдкреНрддрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рддрдкрд╛рдЗрдБрд▓реЗ рд╕рдореНрднрд╡рддрдГ рд╕реНрд░реЛрдд рдирд╛рдорд╣рд░реВ рдЬрд╕реНрддреИ рдЪреАрдЬрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрднрдПрдХреЛ рдЫред рддрд░ рдЙрдкрдирд╛рдо рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд╛ рдпреЛ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ?

рдпреЛ рдПрдХ рдзреЗрд░реИ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдкреНрд░рд╢реНрди рд╣реЛ рдХрд┐рдирднрдиреЗ рдпрджрд┐ рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛рд▓реЗ рдХрд╛рдо рдЧрд░реНрджреИрди рднрдиреЗ, рддрдкрд╛рдИрдВрд▓реЗ рдЙрдкрдирд╛рдордХрд╛ рдХреЗрд╣реА рдлрд╛рдЗрджрд╛рд╣рд░реВ рдЧреБрдорд╛рдЙрдиреБрд╣реБрдиреЗрдЫред

рдЬрд╡рд╛рдл рддрдкрд╛рдИрд▓реЗ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рд░рд╣рдиреБ рднрдПрдХреЛ рд╢реЗрд▓рдорд╛ рдирд┐рд░реНрднрд░ рдЧрд░реНрджрдЫ:

  1. Zsh рдХреЛ рд▓рд╛рдЧрд┐, рдЙрдкрдирд╛рдо рдкреВрд░реНрдгрддрд╛ рдмрд╛рдХрд╕ рдмрд╛рд╣рд┐рд░ рдХрд╛рдо рдЧрд░реНрджрдЫред
  2. Bash рдХреЛ рд▓рд╛рдЧреА, рджреБрд░реНрднрд╛рдЧреНрдпрд╡рд╢, рдХреЗрд╣рд┐ рдХрд╛рдо рдХреЛ рд▓рд╛рдЧреА рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред

Bash рдорд╛ рдЙрдкрдирд╛рдорд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛ рд╕рдХреНрд╖рдо рдЧрд░реНрджреИ

Bash рдХреЛ рд╕рдорд╕реНрдпрд╛ рдпреЛ рд╣реЛ рдХрд┐ рдпрд╕рд▓реЗ рдЙрдкрдирд╛рдо (рдЬрд╕реНрддреИ Zsh рдЧрд░реНрдЫ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐) рд▓рд╛рдИ рдЬрдирд╛рдЙрдиреЗ рдЖрджреЗрд╢ рд╣реЛрдЗрди (рдЬрдм рддрдкрд╛рдИрдВрд▓реЗ рдЯреНрдпрд╛рдм рдерд┐рдЪреНрдиреБрд╣реБрдиреНрдЫ) рдкреВрд░рд╛ рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрджрдЫред рддрдкрд╛рдИрдВрд╕рдБрдЧ рд╕рдмреИ 800 рдЙрдкрдирд╛рдорд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рдкреВрд░рд╛ рдЧрд░реНрдиреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВ рдирднрдПрдХреЛрд▓реЗ, рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛рд▓реЗ рдХрд╛рдо рдЧрд░реНрджреИрдиред

рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреВрд░реНрдг рдЙрдкрдирд╛рдо рдпрд╕ рд╕рдорд╕реНрдпрд╛рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд╕рдорд╛рдзрд╛рди рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред рдпрд╕рд▓реЗ рдЙрдкрдирд╛рдордХрд╛ рд▓рд╛рдЧрд┐ рдкреВрд░реНрдгрддрд╛ рд╕рдВрдпрдиреНрддреНрд░рдорд╛ рдЬрдбрд╛рди рдЧрд░реНрджрдЫ, рдЖрдиреНрддрд░рд┐рдХ рд░реВрдкрдорд╛ рдЙрдкрдирд╛рдорд▓рд╛рдИ рдЖрджреЗрд╢рдорд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдЧрд░реНрджрдЫ, рд░ рдкреВрд░рд╛ рдЖрджреЗрд╢рдХреЛ рд▓рд╛рдЧрд┐ рдкреВрд░рд╛ рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рдлрд░реНрдХрд╛рдЙрдБрдЫред рдпрд╕рдХреЛ рдорддрд▓рдм рдЙрдкрдирд╛рдордХрд╛ рд▓рд╛рдЧрд┐ рдкреНрдпрд╛рдбрд┐рдЩрд▓реЗ рдкреВрд░реНрдг рдЖрджреЗрд╢рдХреЛ рд▓рд╛рдЧрд┐ рдЬрд╕реНрддреИ рд╡реНрдпрд╡рд╣рд╛рд░ рдЧрд░реНрдЫред

рдирд┐рдореНрдирдорд╛, рдо рдкрд╣рд┐рд▓реЗ рдХрд╕рд░реА рдкреВрд░реНрдг-рдЙрдкрдирд╛рдо рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреЗ рд░ рддреНрдпрд╕рдкрдЫрд┐ рд╕рдмреИ kubectl рдЙрдкрдирд╛рдорд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдкреВрд░реНрдгрддрд╛ рд╕рдХреНрд╖рдо рдЧрд░реНрди рдпрд╕рд▓рд╛рдИ рдХрд╕рд░реА рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрдиреЗ рднрдиреЗрд░ рд╡рд░реНрдгрди рдЧрд░реНрдиреЗрдЫреБред

рдкреВрд░реНрдг рдЙрдкрдирд╛рдо рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрджреИ

рд╕рдмреИ рднрдиреНрджрд╛ рдкрд╣рд┐рд▓реЗ, рдкреВрд░реНрдг рдЙрдкрдирд╛рдо рдорд╛ рдирд┐рд░реНрднрд░ рдЧрд░реНрджрдЫ bash-рд╕рдорд╛рдкрдиред рддрд╕рд░реНрде, рдкреВрд░рд╛-рдЙрдкрдирд╛рдо рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреБ рдЕрдШрд┐, рддрдкрд╛рдИрдВрд▓реЗ bash-completion рд╕реНрдерд╛рдкрд┐рдд рдЫ рднрдиреЗрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рд╕реНрдерд╛рдкрдирд╛ рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ рд▓рд┐рдирдХреНрд╕ рд░ MacOS рдХреЛ рд▓рд╛рдЧрд┐ рдкрд╣рд┐рд▓реЗ рдкреНрд░рджрд╛рди рдЧрд░рд┐рдПрдХреЛ рдЫред

MacOS рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдиреЛрдЯ: kubectl autocompletion рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬрд╕реНрддреИ, рдкреВрд░реНрдг рдЙрдкрдирд╛рдорд▓реЗ Bash 3.2 рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджреИрди, рдЬреБрди MacOS рдорд╛ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реЛред рд╡рд┐рд╢реЗрд╖ рдЧрд░реА, рдкреВрд░реНрдг рдЙрдкрдирд╛рдо bash-completion v2 рдорд╛ рдирд┐рд░реНрднрд░ рдЧрд░реНрджрдЫ (brew install bash-completion@2), рдЬрд╕рд▓рд╛рдИ рдХрдореНрддрд┐рдорд╛ рдмрд╛рд╕ рек.рез рдЪрд╛рд╣рд┐рдиреНрдЫред рдпрд╕рдХреЛ рдорддрд▓рдм рдпреЛ рд╣реЛ рдХрд┐ MacOS рдорд╛ рдкреВрд░реНрдг-рдЙрдкрдирд╛рдо рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рддрдкрд╛рдИрдВрд▓реЗ Bash рдХреЛ рдирдпрд╛рдБ рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред

рддрдкрд╛рдИрдВрд▓реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдбрд╛рдЙрдирд▓реЛрдб рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ bash_completion.sh рдмрд╛рдЯ GitHub рднрдгреНрдбрд╛рд░ рд░ рдЖрдлреНрдиреЛ рдлрд╛рдЗрд▓рдорд╛ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрдиреБрд╣реЛрд╕реН ~/.bashrc:

source ~/bash_completion.sh

рд╢реЗрд▓ рд░рд┐рдмреБрдЯ рдЧрд░реЗрдкрдЫрд┐, рдкреВрд░реНрдг рдЙрдкрдирд╛рдо рдкреВрд░реНрдг рд░реВрдкрдорд╛ рд╕реНрдерд╛рдкрд┐рдд рд╣реБрдиреЗрдЫред

kubectl рдЙрдкрдирд╛рдорд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛ рд╕рдХреНрд╖рдо рдЧрд░реНрджреИ

рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рд░реВрдкрдорд╛ рдкреВрд░реНрдг рдЙрдкрдирд╛рдорд▓реЗ рд░реНрдпрд╛рдкрд░ рдкреНрд░рдХрд╛рд░реНрдп рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫ _complete_aliasред рдпреЛ рдкреНрд░рдХрд╛рд░реНрдпрд▓реЗ рдЙрдкрдирд╛рдо рдЬрд╛рдБрдЪ рдЧрд░реНрдЫ рд░ рдЙрдкрдирд╛рдо рдЖрджреЗрд╢рдХреЛ рд▓рд╛рдЧрд┐ рдкреВрд░рд╛ рд╣реБрдиреЗ рд╕рдВрдХреЗрддрд╣рд░реВ рдлрд░реНрдХрд╛рдЙрдБрдЫред

рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЙрдкрдирд╛рдо рд╕рдВрдЧ рдПрдХ рдкреНрд░рдХрд╛рд░реНрдп рд╕рдореНрдмрджреНрдз рдЧрд░реНрди рдХреЛ рд▓рд╛рдЧреА, рддрдкрд╛рдЗрдБ рдирд┐рд░реНрдорд┐рдд рдмрд╛рд╕ рд╕рдВрдпрдиреНрддреНрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ рдкреВрд░рд╛, рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди _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 рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫ рдкреНрд▓рдЧрдЗрди рд╕рдВрдпрдиреНрддреНрд░, рдЬрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдердк рдЖрджреЗрд╢рд╣рд░реВрдХреЛ рд╕рд╛рде рдпрд╕рдХреЛ рдХрд╛рд░реНрдпрд╣рд░реВ рд╡рд┐рд╕реНрддрд╛рд░ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред

рдпрджрд┐ рддрдкрд╛рдЗрдБ рдкрд░рд┐рдЪрд┐рдд рд╣реБрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ Git рдкреНрд▓рдЧрдЗрди рд╕рдВрдпрдиреНрддреНрд░, рддреНрдпрд╕рдкрдЫрд┐ kubectl рдкреНрд▓рдЧрдЗрдирд╣рд░реВ рд╕рдорд╛рди рд╕рд┐рджреНрдзрд╛рдиреНрддрдорд╛ рдмрдирд╛рдЗрдПрдХрд╛ рдЫрдиреНред

рдпрд╕ рдЕрдзреНрдпрд╛рдпрдорд╛, рд╣рд╛рдореА рдХрд╕рд░реА рдкреНрд▓рдЧрдЗрдирд╣рд░реВ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреЗ, рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдХрд╣рд╛рдБ рдлреЗрд▓рд╛ рдкрд╛рд░реНрдиреЗ, рд░ рддрдкрд╛рдИрдВрдХреЛ рдЖрдлреНрдиреИ рдкреНрд▓рдЧрдЗрдирд╣рд░реВ рдХрд╕рд░реА рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗ рднрдиреЗрд░ рдХрднрд░ рдЧрд░реНрдиреЗрдЫреМрдВред

рдкреНрд▓рдЧрдЗрдирд╣рд░реВ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрджреИ

Kubectl рдкреНрд▓рдЧрдЗрдирд╣рд░реВ рдирд╛рдо рдЬрд╕реНрддреИ рд╕рд╛рдзрд╛рд░рдг рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдпреЛрдЧреНрдп рдлрд╛рдЗрд▓рд╣рд░реВрдХреЛ рд░реВрдкрдорд╛ рд╡рд┐рддрд░рдг рдЧрд░рд┐рдиреНрдЫ kubectl-xред рдЙрдкрд╕рд░реНрдЧ kubectl- рдЖрд╡рд╢реНрдпрдХ рдЫ, рддреНрдпрд╕рдкрдЫрд┐ рдирдпрд╛рдБ kubectl subcommand рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдкреНрд▓рдЧрдЗрди рдХрд▓ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред

рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рд╣реЗрд▓реЛ рдкреНрд▓рдЧрдЗрдирд▓рд╛рдИ рдлрд╛рдЗрд▓рдХреЛ рд░реВрдкрдорд╛ рд╡рд┐рддрд░рдг рдЧрд░рд┐рдиреЗрдЫ kubectl-hello.

рдкреНрд▓рдЧрдЗрди рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди, рддрдкрд╛рдИрдВрд▓реЗ рдлрд╛рдЗрд▓ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ kubectl-x рддрдкрд╛рдИрдВрдХреЛ PATH рдорд╛ рдХреБрдиреИ рдкрдирд┐ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдорд╛ рд░ рдпрд╕рд▓рд╛рдИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдпреЛрдЧреНрдп рдмрдирд╛рдЙрдиреБрд╣реЛрд╕реН, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐ chmod +xред рдпрд╕ рдкрдЫрд┐ рддреБрд░реБрдиреНрддреИ рддрдкрд╛рдИрд▓реЗ рдкреНрд▓рдЧрдЗрдирд▓рд╛рдИ рдХрд▓ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ kubectl x.

рддрдкрд╛рдЗрдБ рддрдкрд╛рдЗрдБрдХреЛ рдкреНрд░рдгрд╛рд▓реАрдорд╛ рд╣рд╛рд▓ рд╕реНрдерд╛рдкрд┐рдд рднрдПрдХрд╛ рд╕рдмреИ рдкреНрд▓рдЧрдЗрдирд╣рд░реВ рд╕реВрдЪреАрдмрджреНрдз рдЧрд░реНрди рдирд┐рдореНрди рдЖрджреЗрд╢ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ:

$ kubectl plugin list

рдпрджрд┐ рддрдкрд╛рдЗрдБрд╕рдБрдЧ рдПрдЙрдЯреИ рдирд╛рдордХреЛ рдзреЗрд░реИ рдкреНрд▓рдЧрдЗрдирд╣рд░реВ рдЫрдиреН рднрдиреЗ, рд╡рд╛ рдпрджрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдпреЛрдЧреНрдп рдирднрдПрдХреЛ рдкреНрд▓рдЧрдЗрди рдлрд╛рдЗрд▓ рдЫ рднрдиреЗ рдпреЛ рдЖрджреЗрд╢рд▓реЗ рдЪреЗрддрд╛рд╡рдиреАрд╣рд░реВ рдкрдирд┐ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрдиреЗрдЫред

Krew рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдкреНрд▓рдЧрдЗрдирд╣рд░реВ рдЦреЛрдЬреНрджреИ рд░ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрджреИ

Kubectl рдкреНрд▓рдЧрдЗрдирд╣рд░реВ рд╕рд╛рдЭреЗрджрд╛рд░реА рд╡рд╛ рд╕рдлреНрдЯрд╡реЗрдпрд░ рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ рдЬрд╕реНрддреИ рдкреБрди: рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рддрд░ рддрдкрд╛рдИрд▓реЗ рдЕрд░реВрд▓реЗ рд╕рд╛рдЭрд╛ рдЧрд░реЗрдХреЛ рдкреНрд▓рдЧрдЗрдирд╣рд░реВ рдХрд╣рд╛рдБ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ?

рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреНрд░реБ kubectl рдкреНрд▓рдЧрдЗрдирд╣рд░реВ рд╕рд╛рдЭреЗрджрд╛рд░реА, рдЦреЛрдЬреА, рд╕реНрдерд╛рдкрдирд╛ рд░ рдкреНрд░рдмрдиреНрдзрдХрд╛ рд▓рд╛рдЧрд┐ рдПрдХреАрдХреГрдд рд╕рдорд╛рдзрд╛рди рдкреНрд░рджрд╛рди рдЧрд░реНрдиреЗ рд▓рдХреНрд╖реНрдп рд░рд╛рдЦреНрдЫред рдкрд░рд┐рдпреЛрдЬрдирд╛рд▓реЗ рдЖрдлреИрд▓рд╛рдИ "kubectl рдкреНрд▓рдЧрдЗрдирд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдкреНрдпрд╛рдХреЗрдЬ рдкреНрд░рдмрдиреНрдзрдХ" (Krew рд╕рдБрдЧ рдорд┐рд▓реНрджреЛрдЬреБрд▓реНрджреЛ рдЫред Brew).

Krew kubectl рдкреНрд▓рдЧрдЗрдирд╣рд░реВрдХреЛ рд╕реВрдЪреА рд╣реЛ рдЬреБрди рддрдкрд╛рдИрдВрд▓реЗ рдЪрдпрди рд░ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдПрдХреИ рд╕рдордпрдорд╛, Krew рдкрдирд┐ kubectl рдХреЛ рд▓рд╛рдЧреА рдПрдХ рдкреНрд▓рдЧрдЗрди рд╣реЛред

рдпрд╕рдХреЛ рдорддрд▓рдм рдпреЛ рд╣реЛ рдХрд┐ Krew рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреБ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдкрдорд╛ рдХреБрдиреИ рдкрдирд┐ рдЕрдиреНрдп kubectl рдкреНрд▓рдЧрдЗрди рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рдЬрд╕реНрддреИ рдХрд╛рдо рдЧрд░реНрджрдЫред рддрдкрд╛рдИрдВ рдорд╛ рд╡рд┐рд╕реНрддреГрдд рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ рдкрд╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ GitHub рдкреГрд╖реНрда.

рд╕рдмреИрднрдиреНрджрд╛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг Krew рдЖрджреЗрд╢рд╣рд░реВ рд╣реБрдиреН:

# ╨Я╨╛╨╕╤Б╨║ ╨▓ ╤Б╨┐╨╕╤Б╨║╨╡ ╨┐╨╗╨░╨│╨╕╨╜╨╛╨▓
$ kubectl krew search [<query>]
# ╨Я╨╛╤Б╨╝╨╛╤В╤А╨╡╤В╤М ╨╕╨╜╤Д╨╛╤А╨╝╨░╤Ж╨╕╤О ╨╛ ╨┐╨╗╨░╨│╨╕╨╜╨╡
$ kubectl krew info <plugin>
# ╨г╤Б╤В╨░╨╜╨╛╨▓╨╕╤В╤М ╨┐╨╗╨░╨│╨╕╨╜
$ kubectl krew install <plugin>
# ╨Ю╨▒╨╜╨╛╨▓╨╕╤В╤М ╨▓╤Б╨╡ ╨┐╨╗╨░╨│╨╕╨╜╤Л ╨┤╨╛ ╨┐╨╛╤Б╨╗╨╡╨┤╨╜╨╡╨╣ ╨▓╨╡╤А╤Б╨╕╨╕
$ kubectl krew upgrade
# ╨Я╨╛╤Б╨╝╨╛╤В╤А╨╡╤В╤М ╨▓╤Б╨╡ ╨┐╨╗╨░╨│╨╕╨╜╤Л, ╤Г╤Б╤В╨░╨╜╨╛╨▓╨╗╨╡╨╜╨╜╤Л╨╡ ╤З╨╡╤А╨╡╨╖ Krew
$ kubectl krew list
# ╨Ф╨╡╨╕╨╜╤Б╤В╨░╨╗╨╗╨╕╤А╨╛╨▓╨░╤В╤М ╨┐╨╗╨░╨│╨╕╨╜
$ kubectl krew remove <plugin>

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджрд┐рдиреБрд╣реЛрд╕реН рдХрд┐ Krew рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдкреНрд▓рдЧрдЗрдирд╣рд░реВ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрджрд╛ рдорд╛рдерд┐ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рдорд╛рдирдХ рд╡рд┐рдзрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдкреНрд▓рдЧрдЗрдирд╣рд░реВ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рд╣рд╕реНрддрдХреНрд╖реЗрдк рдЧрд░реНрджреИрдиред

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджрд┐рдиреБрд╣реЛрд╕реН рдХрд┐ рдЖрджреЗрд╢ kubectl krew list рдХреЗрд╡рд▓ рдкреНрд▓рдЧрдЗрдирд╣рд░реВ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрджрдЫ рдЬреБрди Krew рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ, рдЬрдмрдХрд┐ рдЖрджреЗрд╢ kubectl plugin list рд╕рдмреИ рдкреНрд▓рдЧрдЗрдирд╣рд░реВ рд╕реВрдЪреАрдмрджреНрдз рдЧрд░реНрджрдЫ, рддреНрдпреЛ рд╣реЛ, рддреА Krew рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░рд┐рдПрдХрд╛ рд░ рдЕрдиреНрдп рд╡рд┐рдзрд┐рд╣рд░реВрджреНрд╡рд╛рд░рд╛ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░рд┐рдПрдХрд╛ред

рдЕрдиреНрдпрддреНрд░ рдкреНрд▓рдЧрдЗрдирд╣рд░реВ рдЦреЛрдЬреНрджреИ

Krew рдПрдХ рдпреБрд╡рд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реЛ, рд╣рд╛рд▓ рдпрд╕рдХреЛ рдорд╛ рд╕реВрдЪреА рдХреЗрд╡рд▓ рд▓рдЧрднрдЧ 30 рдкреНрд▓рдЧрдЗрдирд╣рд░реВред рдпрджрд┐ рддрдкрд╛рдЗрдБ рддрдкрд╛рдЗрдБрд▓рд╛рдИ рдЪрд╛рд╣рд┐рдиреЗ рдЪреАрдЬрд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрди рднрдиреЗ, рддрдкрд╛рдЗрдБ рдЕрдиреНрдпрддреНрд░ рдкреНрд▓рдЧрдЗрдирд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рдЬрд╕реНрддреИ GitHubред

рдо GitHub рд╕реЗрдХреНрд╕рди рд╣реЗрд░реНрди рд╕рд┐рдлрд╛рд░рд┐рд╕ рдЧрд░реНрджрдЫреБ kubectl-pluginsред рддреНрдпрд╣рд╛рдБ рддрдкрд╛рдИрд▓реЗ рджрд░реНрдЬрдиреМрдВ рдЙрдкрд▓рдмреНрдз рдкреНрд▓рдЧрдЗрдирд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрдиреБрд╣реБрдиреЗрдЫ рдЬреБрди рдЬрд╛рдБрдЪ рдЧрд░реНрди рд▓рд╛рдпрдХ рдЫрдиреНред

рддрдкрд╛рдИрдВрдХреЛ рдЖрдлреНрдиреИ рдкреНрд▓рдЧрдЗрдирд╣рд░реВ рд▓реЗрдЦреНрджреИ

рддрдкрд╛рдИрдВ рдЖрдлреИрд▓реЗ рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдкреНрд▓рдЧрдЗрдирд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН - рдпреЛ рдЧрд╛рд╣реНрд░реЛ рдЫреИрдиред рддрдкрд╛рдИрд▓реЗ рдПрдЙрдЯрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдпреЛрдЧреНрдп рдмрдирд╛рдЙрдиреБ рдкрд░реНрдЫ рдЬрд╕рд▓реЗ рддрдкрд╛рдИрд▓рд╛рдИ рдХреЗ рдЪрд╛рд╣рд┐рдиреНрдЫ, рдпрд╕рд▓рд╛рдИ рдирд╛рдо рджрд┐рдиреБрд╣реЛрд╕реН 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 рдХрд▓ рдЧрд░реНрди рд╕рдХреНрд╖рдо рд╣реБрдиреБрдХреЛ рдлрд╛рдЗрджрд╛ред рдпрджреНрдпрдкрд┐, рддрдкрд╛рдИрд▓реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛рд╣рд░реВрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдердк рдЬрдЯрд┐рд▓ рдкреНрд▓рдЧрдЗрдирд╣рд░реВ рд▓реЗрдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ Kubernetes рдЧреНрд░рд╛рд╣рдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпред рдпрджрд┐ рддрдкрд╛рдЗрдБ Go рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ рд╣реБрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рддрдкрд╛рдЗрдБ рдкрдирд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ cli-рд░рдирдЯрд╛рдЗрдо рдкреБрд╕реНрддрдХрд╛рд▓рдп, рдЬреБрди kubectl рдкреНрд▓рдЧрдЗрдирд╣рд░реВ рд▓реЗрдЦреНрдирдХреЛ рд▓рд╛рдЧрд┐ рд╡рд┐рд╢реЗрд╖ рд░реВрдкрдорд╛ рдЕрд╡рд╕реНрдерд┐рдд рдЫред

рддрдкрд╛рдИрдВрдХреЛ рдкреНрд▓рдЧрдЗрдирд╣рд░реВ рдХрд╕рд░реА рд╕рд╛рдЭреЗрджрд╛рд░реА рдЧрд░реНрдиреЗ

рдпрджрд┐ рддрдкрд╛рдИрдВ рдЖрдлреНрдиреЛ рдкреНрд▓рдЧрдЗрдирд╣рд░реВ рдЕрд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрдпреЛрдЧреА рд╣реБрди рд╕рдХреНрдЫ рднрдиреНрдиреЗ рд╕реЛрдЪреНрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рдпрд╕рд▓рд╛рдИ GitHub рдорд╛ рд╕рд╛рдЭреЗрджрд╛рд░реА рдЧрд░реНрди рд╕реНрд╡рддрдиреНрддреНрд░ рдорд╣рд╕реБрд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рд╢реАрд░реНрд╖рдХрдорд╛ рдердкреНрди рдирд┐рд╢реНрдЪрд┐рдд рд╣реБрдиреБрд╣реЛрд╕реН kubectl-plugins.

рддрдкрд╛рдИрдВ рдЖрдлреНрдиреЛ рдкреНрд▓рдЧрдЗрди рдердкреНрди рдЕрдиреБрд░реЛрдз рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдХреНрд░реБ рд╕реВрдЪреАред рдпреЛ рдХрд╕рд░реА рдЧрд░реНрдиреЗ рднрдиреНрдиреЗ рдмрд╛рд░реЗ рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ рдЫрдиреН GitHub рднрдгреНрдбрд╛рд░рд╣рд░реВ.

рдЖрджреЗрд╢ рдкреВрд░рд╛

рдкреНрд▓рдЧрдЗрдирд╣рд░реВрд▓реЗ рд╣рд╛рд▓ рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛рд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджреИрдиред рддреНрдпреЛ рд╣реЛ, рддрдкрд╛рдИрдВрд▓реЗ рдкреНрд▓рдЧрдЗрдирдХреЛ рдкреВрд░рд╛ рдирд╛рдо рд░ рддрд░реНрдХрд╣рд░реВрдХреЛ рдкреВрд░рд╛ рдирд╛рдо рдкреНрд░рд╡рд┐рд╖реНрдЯ рдЧрд░реНрдиреБрдкрд░реНрдЫред

рдпрд╕ рдкреНрд░рдХрд╛рд░реНрдпрдХреЛ рд▓рд╛рдЧрд┐ GitHub kubectl рднрдгреНрдбрд╛рд░ рдЫ рдЦреБрд▓рд╛ рдЕрдиреБрд░реЛрдзред рддреНрдпрд╕реИрд▓реЗ рдпреЛ рд╕реБрд╡рд┐рдзрд╛ рднрд╡рд┐рд╖реНрдпрдорд╛ рдХреЗрд╣реА рд╕рдордп рд▓рд╛рдЧреВ рд╣реБрдиреЗ рд╕рдореНрднрд╛рд╡рдирд╛ рдЫред

рднрд╛рдЧреНрдпрд▓реЗ рд╕рд╛рде рджрд┐рдУрд╕реН!!!

рдмрд┐рд╖рдпрдорд╛ рдЕрд░реБ рдХреЗ рдкрдвреНрдиреБ рд╣реЛрд▓рд╛:

  1. Kubernetes рдорд╛ рд╕реНрд╡рдд: рд╕реНрдХреЗрд▓рд┐рдЩ рдХреЛ рддреАрди рд╕реНрддрд░ рд░ рдХрд╕рд░реА рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ.
  2. рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рд▓рд╛рдЧрд┐ рдЯреЗрдореНрдкреНрд▓реЗрдЯрдХреЛ рд╕рд╛рде рдкрд╛рдЗрд░реЗрд╕реАрдХреЛ рднрд╛рд╡рдирд╛рдорд╛ Kubernetes.
  3. Telegram рдорд╛ Kubernetes рдХреЛ рдЖрд╕рдкрд╛рд╕ рд╣рд╛рдореНрд░реЛ рдЪреНрдпрд╛рдирд▓.

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди