рдпрджрд┐ рддрдкрд╛рдЗрдБ Kubernetes рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рддрдм kubectl рддрдкрд╛рдЗрдБрд▓реЗ рдзреЗрд░реИ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдЙрдкрдпреЛрдЧрд┐рддрд╛рд╣рд░реВ рдордзреНрдпреЗ рдПрдХ рд╣реЛред рд░ рдЬрдм рддрдкрд╛рдЗрдБ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЙрдкрдХрд░рдгрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрди рдзреЗрд░реИ рд╕рдордп рдЦрд░реНрдЪ рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ, рдпрд╕рд▓реЗ рдпрд╕рд▓рд╛рдИ рд░рд╛рдореНрд░реЛрд╕рдБрдЧ рдЕрдзреНрдпрдпрди рдЧрд░реНрди рд░ рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рд░реВрдкрдорд╛ рдХрд╕рд░реА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рднрдиреЗрд░ рд╕рд┐рдХреНрди рднреБрдХреНрддрд╛рди рдЧрд░реНрджрдЫред
рдЯреЛрд▓реА
рд▓реЗрдЦрдХрдХрд╛ рдЕрдиреБрд╕рд╛рд░, рд▓реЗрдЦрдХреЛ рд▓рдХреНрд╖реНрдп Kubernetes рд╕рдБрдЧ рддрдкрд╛рдИрдХреЛ рджреИрдирд┐рдХ рдХрд╛рд░реНрдпрд▓рд╛рдИ рдЕрдЭ рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рдорд╛рддреНрд░ рд╣реЛрдЗрди, рдЕрдЭ рд░рдорд╛рдЗрд▓реЛ рдмрдирд╛рдЙрдиреБ рд╣реЛ!
рдкрд░рд┐рдЪрдп: kubectl рдХреЗ рд╣реЛ
рддрдкрд╛рдИрдВрд▓реЗ kubectl рд▓рд╛рдИ рдЕрдЭ рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рд┐рдХреНрдиреБ рдЕрдШрд┐, рддрдкрд╛рдИрдВрд▓реЗ рдпреЛ рдХреЗ рд╣реЛ рд░ рдпрд╕рд▓реЗ рдХрд╕рд░реА рдХрд╛рдо рдЧрд░реНрдЫ рднрдиреНрдиреЗ рдЖрдзрд╛рд░рднреВрдд рдмреБрдЭрд╛рдЗ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред
рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рдХреЛ рджреГрд╖реНрдЯрд┐рдХреЛрдгрдмрд╛рдЯ, kubectl рдПрдЙрдЯрд╛ рдирд┐рдпрдиреНрддреНрд░рдг рдкреНрдпрд╛рдирд▓ рд╣реЛ рдЬрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ Kubernetes рд╕рдЮреНрдЪрд╛рд▓рдирд╣рд░реВ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред
рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рд░реВрдкрдорд╛, kubectl рдПрдХ Kubernetes API рдЧреНрд░рд╛рд╣рдХ рд╣реЛред
Kubernetes API рдПрдХ HTTP REST API рд╣реЛред рдпреЛ API рд╕рд╛рдБрдЪреЛ Kubernetes рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдиреНрдЯрд░рдлреЗрд╕ рд╣реЛ, рдЬрд╕рдХреЛ рдорд╛рдзреНрдпрдордмрд╛рдЯ рдпреЛ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдирд┐рдпрдиреНрддреНрд░рдг рдЧрд░рд┐рдиреНрдЫред рдпрд╕рдХреЛ рдорддрд▓рдм рдкреНрд░рддреНрдпреЗрдХ Kubernetes рдЕрдкрд░реЗрд╕рди рдПрдкреАрдЖрдИ рдПрдиреНрдбрдкреЛрдЗрдиреНрдЯрдХреЛ рд░реВрдкрдорд╛ рдЙрдЬрд╛рдЧрд░ рдЧрд░рд┐рдПрдХреЛ рдЫ рд░ рддреНрдпреЛ рдЕрдиреНрддрд┐рдо рдмрд┐рдиреНрджреБрдорд╛ HTTP рдЕрдиреБрд░реЛрдзрдХреЛ рд╕рд╛рде рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред
рддреНрдпрд╕реИрд▓реЗ, kubectl рдХреЛ рдореБрдЦреНрдп рдХрд╛рдо Kubernetes API рдорд╛ HTTP рдЕрдиреБрд░реЛрдзрд╣рд░реВ рдмрдирд╛рдЙрдиреБ рд╣реЛ:
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 рдЕрдиреНрддреНрдп рдмрд┐рдиреНрджреБрд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рд╕рдХрд┐рдиреНрдЫ
рддрд╕рд░реНрде, рдЬрдм рддрдкрд╛рдЗрдБ рдорд╛рдерд┐рдХреЛ рдЖрджреЗрд╢ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ, kubectl рд▓реЗ рдорд╛рдерд┐рдХреЛ API рдЕрдиреНрддреНрдп рдмрд┐рдиреНрджреБрдорд╛ HTTP POST рдЕрдиреБрд░реЛрдз рдкрдард╛рдЙрдБрджрдЫред рддрдкрд╛рдИрдВрд▓реЗ рдлрд╛рдЗрд▓рдорд╛ рдкреНрд░рджрд╛рди рдЧрд░реНрдиреБрднрдПрдХреЛ ReplicaSet рдкрд░рд┐рднрд╛рд╖рд╛ replicaset.yaml
, рдЕрдиреБрд░реЛрдз рдХреЛ рдореБрдЦреНрдп рднрд╛рдЧ рдорд╛ рдкрдард╛рдЗрдПрдХреЛ рдЫред
Kubernetes рдХреНрд▓рд╕реНрдЯрд░рд╕рдБрдЧ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛ рдЧрд░реНрдиреЗ рд╕рдмреИ рдЖрджреЗрд╢рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ kubectl рдпрд╕рд░реА рдХрд╛рдо рдЧрд░реНрджрдЫред рдпреА рд╕рдмреИ рдХреЗрд╕рд╣рд░реВрдорд╛, kubectl рд▓реЗ рдЙрдкрдпреБрдХреНрдд Kubernetes API рдЕрдиреНрддреНрдпрдмрд┐рдиреНрджреБрд╣рд░реВрдорд╛ HTTP рдЕрдиреБрд░реЛрдзрд╣рд░реВ рдорд╛рддреНрд░ рдЧрд░реНрджрдЫред
рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджрд┐рдиреБрд╣реЛрд╕реН рдХрд┐ рддрдкрд╛рдЗрдБ рдХреБрдмреЗрд░рдиреЗрдЯрд╣рд░реВ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдЬрд╕реНрддреИ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ curl
Kubernetes API рдорд╛ рдореНрдпрд╛рдиреБрдЕрд▓ рд░реВрдкрдорд╛ HTTP рдЕрдиреБрд░реЛрдзрд╣рд░реВ рдкрдард╛рдПрд░ред Kubectl рд▓реЗ Kubernetes API рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдЬрд┐рд▓реЛ рдмрдирд╛рдЙрдБрдЫред
рдпреЛ kubectl рдХреЗ рд╣реЛ рд░ рдпрд╕рд▓реЗ рдХрд╕рд░реА рдХрд╛рдо рдЧрд░реНрдЫ рднрдиреНрдиреЗ рдЖрдзрд╛рд░рднреВрдд рдХреБрд░рд╛ рд╣реЛред рддрд░ рддреНрдпрд╣рд╛рдБ Kubernetes API рдХреЛ рдмрд╛рд░реЗ рдорд╛ рдХреЗрд╣рд┐ рдЕрдиреНрдп рдЫ рдХрд┐ рд╣рд░реЗрдХ kubectl рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдерд╛рд╣рд╛ рд╣реБрдиреБрдкрд░реНрдЫред Kubernetes рдХреЛ рднрд┐рддреНрд░реА рд╕рдВрд╕рд╛рд░рдорд╛ рдПрдХ рджреНрд░реБрдд рдирдЬрд░ рд░рд╛рдЦреМрдВред
Kubernetes рдХреЛ рднрд┐рддреНрд░реА рд╕рдВрд╕рд╛рд░
Kubernetes рдорд╛ рд╕реНрд╡рддрдиреНрддреНрд░ рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВрдХреЛ рд╕реЗрдЯ рд╣реБрдиреНрдЫ рдЬреБрди рдХреНрд▓рд╕реНрдЯрд░ рдиреЛрдбрд╣рд░реВрдорд╛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрдХреЛ рд░реВрдкрдорд╛ рдЪрд▓реНрдЫред рдХреЗрд╣рд┐ рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВ рдорд╛рд╕реНрдЯрд░ рдиреЛрдбрд╣рд░реВрдорд╛ рдЪрд▓реНрдЫрдиреН, рдЕрд░реВ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдиреЛрдбрд╣рд░реВрдорд╛, рдкреНрд░рддреНрдпреЗрдХ рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд▓реЗ рдЖрдлреНрдиреИ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдп рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрджрдЫред
рдпрд╣рд╛рдБ рдореБрдЦреНрдп рдиреЛрдбрд╣рд░реВрдорд╛ рд╕рдмреИрднрдиреНрджрд╛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдШрдЯрдХрд╣рд░реВ рдЫрдиреН:
- рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА - рднрдгреНрдбрд╛рд░рдг рд╕реНрд░реЛрдд рдкрд░рд┐рднрд╛рд╖рд╛ (
рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдпреЛ etcd рд╣реЛ ). - API рд╕рд░реНрднрд░ - рдПрдХ API рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫ рд░ рднрдгреНрдбрд╛рд░рдг рдкреНрд░рдмрдиреНрдз рдЧрд░реНрджрдЫред
- рдирд┐рдпрдиреНрддреНрд░рдХ рдкреНрд░рдмрдиреНрдзрдХ - рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрджрдЫ рдХрд┐ рд╕реНрд░реЛрдд рд╕реНрдерд┐рддрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯреАрдХрд░рдгрд╣рд░реБ рд╕рдВрдЧ рдЕрдиреБрдкрд╛рд▓рдиред
- рдЕрдиреБрд╕реВрдЪреАрдХрд░реНрддрд╛ - рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдиреЛрдбрд╣рд░реВрдорд╛ рдкреЛрдбрд╣рд░реВ рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВред
рд░ рдпрд╣рд╛рдБ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдиреЛрдбрд╣рд░реВрдорд╛ рд╕рдмреИрднрдиреНрджрд╛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдШрдЯрдХ рд╣реЛ:
- рдХреБрдмреЗрд▓реЗрдЯ - рдХрд╛рдо рдЧрд░реНрдиреЗ рдиреЛрдбрдорд╛ рдХрдиреНрдЯреЗрдирд░рд╣рд░реВрдХреЛ рд╕реБрд░реБрд╡рд╛рдд рдкреНрд░рдмрдиреНрдз рдЧрд░реНрджрдЫред
рдпреА рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВрд▓реЗ рдХрд╕рд░реА рдХрд╛рдо рдЧрд░реНрдЫрдиреН рднрдиреНрдиреЗ рдмреБрдЭреНрдирдХреЛ рд▓рд╛рдЧрд┐, рдПрдЙрдЯрд╛ рдЙрджрд╛рд╣рд░рдг рд╣реЗрд░реМрдВред
рдорд╛рдиреМрдВ рддрдкрд╛рдИрдВрд▓реЗ рднрд░реНрдЦрд░реИ рдкреВрд░рд╛ рдЧрд░реНрдиреБрднрдпреЛ kubectl create -f replicaset.yaml
, рдЬрд╕ рдкрдЫрд┐ kubectl рд▓реЗ HTTP POST рдЕрдиреБрд░реЛрдз рдЧрд░реНрдпреЛ
рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рдХреЗ рд╣реБрдБрджреИрдЫ?
- рдЧрд░реЗрдкрдЫрд┐
kubectl create -f replicaset.yaml
API рд╕рд░реНрднрд░рд▓реЗ рднрдгреНрдбрд╛рд░рдгрдорд╛ рддрдкрд╛рдИрдВрдХреЛ ReplicaSet рд╕реНрд░реЛрдд рдкрд░рд┐рднрд╛рд╖рд╛ рднрдгреНрдбрд╛рд░ рдЧрд░реНрджрдЫ: - рдЕрд░реНрдХреЛ, ReplicaSet рдирд┐рдпрдиреНрддреНрд░рдХрд▓рд╛рдИ рдирд┐рдпрдиреНрддреНрд░рдХ рдкреНрд░рдмрдиреНрдзрдХрдорд╛ рд╕реБрд░реБ рдЧрд░рд┐рдПрдХреЛ рдЫ, рдЬрд╕рд▓реЗ ReplicaSet рд╕реНрд░реЛрддрд╣рд░реВрдХреЛ рд╕рд┐рд░реНрдЬрдирд╛, рдкрд░рд┐рдорд╛рд░реНрдЬрди рд░ рдореЗрдЯрд╛рдЙрдиреЗ рдХрд╛рдо рдЧрд░реНрдЫред
- ReplicaSet рдирд┐рдпрдиреНрддреНрд░рдХрд▓реЗ рдкреНрд░рддреНрдпреЗрдХ ReplicaSet рдкреНрд░рддрд┐рдХреГрддрд┐рдХреЛ рд▓рд╛рдЧрд┐ рдкреЛрдб рдкрд░рд┐рднрд╛рд╖рд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрдЫ (ReplicaSet рдкрд░рд┐рднрд╛рд╖рд╛рдорд╛ рдкреЛрдб рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдЕрдиреБрд╕рд╛рд░) рд░ рднрдгреНрдбрд╛рд░рдгрдорд╛ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрджрдЫ:
- рдЕрдиреБрд╕реВрдЪрдХ рд╕реБрд░реБ рднрдпреЛ, рдЯреНрд░реНрдпрд╛рдХрд┐рдЩ рдкреЛрдбрд╣рд░реВ рдЬреБрди рдЕрд╣рд┐рд▓реЗрд╕рдореНрдо рдХреБрдиреИ рдкрдирд┐ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдиреЛрдбрд╣рд░реВрдорд╛ рддреЛрдХрд┐рдПрдХреЛ рдЫреИрди:
- рдЕрдиреБрд╕реВрдЪрдХрд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рдкреЛрдбрдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрдпреБрдХреНрдд рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдиреЛрдб рдЪрдпрди рдЧрд░реНрджрдЫ рд░ рд╕реНрдЯреЛрд░рдорд╛ рдкреЛрдб рдкрд░рд┐рднрд╛рд╖рд╛рдорд╛ рдпреЛ рдЬрд╛рдирдХрд╛рд░реА рдердкреНрдЫ:
- рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдиреЛрдбрдорд╛ рдЬрд╕рдорд╛ рдкреЛрдб рддреЛрдХрд┐рдПрдХреЛ рдЫ, рдХреБрдмреЗрд▓реЗрдЯ рд╕реБрд░реВ рдЧрд░рд┐рдПрдХреЛ рдЫ, рдпрд╕рд▓реЗ рдпреЛ рдиреЛрдбрдорд╛ рддреЛрдХрд┐рдПрдХреЛ рдкреЛрдбрд╣рд░реВ рдЯреНрд░реНрдпрд╛рдХ рдЧрд░реНрджрдЫ:
- рдХреБрдмреЗрд▓реЗрдЯрд▓реЗ рднрдгреНрдбрд╛рд░рдгрдмрд╛рдЯ рдкреЛрдб рдкрд░рд┐рднрд╛рд╖рд╛ рдкрдвреНрдЫ рд░ рдХрдиреНрдЯреЗрдирд░ рд░рдирдЯрд╛рдЗрдо, рдЬрд╕реНрддреИ рдбрдХрд░, рдиреЛрдбрдорд╛ рдХрдиреНрдЯреЗрдирд░рд╣рд░реВ рд╕реБрд░реВ рдЧрд░реНрди рдирд┐рд░реНрджреЗрд╢рди рджрд┐рдиреНрдЫ:
рддрд▓ рдпрд╕ рд╡рд┐рд╡рд░рдгрдХреЛ рдкрд╛рда рд╕рдВрд╕реНрдХрд░рдг рд╣реЛред
ReplicaSet рд╕рд┐рд░реНрдЬрдирд╛ рдЕрдиреНрддреНрдп рдмрд┐рдиреНрджреБрдорд╛ API рдЕрдиреБрд░реЛрдз API рд╕рд░реНрднрд░ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╢реЛрдзрди рдЧрд░рд┐рдПрдХреЛ рдЫред API рд╕рд░реНрднрд░рд▓реЗ рдЕрдиреБрд░реЛрдзрд▓рд╛рдИ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдЧрд░реНрдЫ рд░ рднрдгреНрдбрд╛рд░рдорд╛ ReplicaSet рд╕реНрд░реЛрдд рдкрд░рд┐рднрд╛рд╖рд╛ рднрдгреНрдбрд╛рд░ рдЧрд░реНрджрдЫред
рдпреЛ рдШрдЯрдирд╛рд▓реЗ ReplicaSet рдирд┐рдпрдиреНрддреНрд░рдХ рд╕реБрд░реБ рдЧрд░реНрдЫ, рдЬреБрди рдирд┐рдпрдиреНрддреНрд░рдХ рдкреНрд░рдмрдиреНрдзрдХрдХреЛ рдЙрдкрдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реЛред ReplicaSet рдирд┐рдпрдиреНрддреНрд░рдХрд▓реЗ рд╕реНрдЯреЛрд░рдорд╛ ReplicaSet рд╕реНрд░реЛрддрд╣рд░реВрдХреЛ рд╕рд┐рд░реНрдЬрдирд╛, рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рд░ рдореЗрдЯрд╛рдЙрдиреЗ рдирд┐рдЧрд░рд╛рдиреА рдЧрд░реНрджрдЫ рд░ рдпреЛ рд╣реБрдБрджрд╛ рдШрдЯрдирд╛ рд╕реВрдЪрдирд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрджрдЫред
ReplicaSet рдирд┐рдпрдиреНрддреНрд░рдХрдХреЛ рдХрд╛рдо ReplicaSet рдкреЛрдбрд╣рд░реВрдХреЛ рдЖрд╡рд╢реНрдпрдХ рд╕рдВрдЦреНрдпрд╛ рдЕрд╡рд╕реНрдерд┐рдд рдЫ рднрдиреА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрдиреБ рд╣реЛред рд╣рд╛рдореНрд░реЛ рдЙрджрд╛рд╣рд░рдгрдорд╛, рдХреБрдиреИ рдкреЛрдбрд╣рд░реВ рдЕрдЭреИ рдЕрд╡рд╕реНрдерд┐рдд рдЫреИрдирдиреН, рддреНрдпрд╕реИрд▓реЗ ReplicaSet рдирд┐рдпрдиреНрддреНрд░рдХрд▓реЗ рдпреА рдкреЛрдб рдкрд░рд┐рднрд╛рд╖рд╛рд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрдЫ (ReplicaSet рдкрд░рд┐рднрд╛рд╖рд╛рдорд╛ рдкреЛрдб рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдЕрдиреБрд╕рд╛рд░) рд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рднрдгреНрдбрд╛рд░рдгрдорд╛ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрджрдЫред
рдирдпрд╛рдБ рдкреЛрдбрд╣рд░реВрдХреЛ рд╕рд┐рд░реНрдЬрдирд╛ рдПрдХ рд╢реЗрдбреНрдпреБрд▓рд░рджреНрд╡рд╛рд░рд╛ рдЯреНрд░рд┐рдЧрд░ рдЧрд░рд┐рдПрдХреЛ рдЫ рдЬрд╕рд▓реЗ рдкреЛрдб рдкрд░рд┐рднрд╛рд╖рд╛рд╣рд░реВрдХреЛ рдЯреНрд░реНрдпрд╛рдХ рд░рд╛рдЦреНрдЫ рдЬреБрди рдЕрдЭреИ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдиреЛрдбрд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫреИрдиред рдЕрдиреБрд╕реВрдЪрдХрд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рдкреЛрдбрдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрдпреБрдХреНрдд рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдиреЛрдб рдЪрдпрди рдЧрд░реНрджрдЫ рд░ рднрдгреНрдбрд╛рд░рдорд╛ рдкреЛрдб рдкрд░рд┐рднрд╛рд╖рд╛рд╣рд░реВ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░реНрджрдЫред
рдиреЛрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН рдХрд┐ рдпрд╕ рдмрд┐рдиреНрджреБ рд╕рдореНрдо, рдХреБрдиреИ рдкрдирд┐ рдХрд╛рд░реНрдпрднрд╛рд░ рдХреЛрдб рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рдХрддреИ рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдерд┐рдПрдиред рдЕрд╣рд┐рд▓реЗрд╕рдореНрдо рднрдПрдХрд╛ рд╕рдмреИ рдХреБрд░рд╛ - рдпреЛ рдорд╛рд╕реНрдЯрд░ рдиреЛрдбрдорд╛ рднрдгреНрдбрд╛рд░рдорд╛ рд╕реНрд░реЛрддрд╣рд░реВрдХреЛ рд╕рд┐рд░реНрдЬрдирд╛ рд░ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рд╣реЛред
рдЕрдиреНрддрд┐рдо рдШрдЯрдирд╛рд▓реЗ Kubelets рдЯреНрд░рд┐рдЧрд░ рдЧрд░реНрджрдЫ, рдЬрд╕рд▓реЗ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдиреЛрдбрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдкреЛрдбрд╣рд░реВ рдирд┐рдЧрд░рд╛рдиреА рдЧрд░реНрджрдЫред рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдиреЛрдбрдХреЛ Kubelet рдЬрд╕рдорд╛ рддрдкрд╛рдЗрдБрдХреЛ ReplicaSet рдкреЛрдбрд╣рд░реВ рд╕реНрдерд╛рдкрд┐рдд рдЫрдиреН рдХрдиреНрдЯреЗрдирд░ рд░рдирдЯрд╛рдЗрдорд▓рд╛рдИ рдирд┐рд░реНрджреЗрд╢рди рджрд┐рдиреБрдкрд░реНрдЫ, рдЬрд╕реНрддреИ рдбрдХрд░, рдЖрд╡рд╢реНрдпрдХ рдХрдиреНрдЯреЗрдирд░ рдЫрд╡рд┐рд╣рд░реВ рдбрд╛рдЙрдирд▓реЛрдб рдЧрд░реНрди рд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдЪрд▓рд╛рдЙрдиред
рдпрд╕ рдмрд┐рдиреНрджреБрдорд╛, рддрдкрд╛рдИрдВрдХреЛ ReplicaSet рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЕрдиреНрддрддрдГ рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдЫ!
Kubernetes API рдХреЛ рднреВрдорд┐рдХрд╛
рддрдкрд╛рдИрдВрд▓реЗ рдЕрдШрд┐рд▓реНрд▓реЛ рдЙрджрд╛рд╣рд░рдгрдорд╛ рджреЗрдЦреНрдиреБрднрдПрдЭреИрдВ, Kubernetes рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВ (рдПрдкреАрдЖрдИ рд╕рд░реНрднрд░ рд░ рднрдгреНрдбрд╛рд░рдг рдмрд╛рд╣реЗрдХ) рднрдгреНрдбрд╛рд░рдгрдорд╛ рд╕реНрд░реЛрддрд╣рд░реВрдорд╛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рд░ рднрдгреНрдбрд╛рд░рдгрдорд╛ рд╕реНрд░реЛрддрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдЬрд╛рдирдХрд╛рд░реА рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рд╣реЗрд░реНрдЫрдиреНред
рдирд┐рд╕реНрд╕рдиреНрджреЗрд╣, рдпреА рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВрд▓реЗ рднрдгреНрдбрд╛рд░рдгрд╕рдБрдЧ рд╕реАрдзреИ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛ рдЧрд░реНрджреИрдирдиреН, рддрд░ Kubernetes API рдорд╛рд░реНрдлрдд рдорд╛рддреНрд░ред
рдирд┐рдореНрди рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ рд╡рд┐рдЪрд╛рд░ рдЧрд░реНрдиреБрд╣реЛрд╕реН:
- ReplicaSet рдирд┐рдпрдиреНрддреНрд░рдХрд▓реЗ API рдЕрдиреНрддреНрдп рдмрд┐рдиреНрджреБ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ
рд╕реВрдЪреА рдкреНрд░рддрд┐рдХреГрддрд┐ рд╕реЗрдЯ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░ рд╕рдВрдЧwatch
ReplicaSet рд╕реНрд░реЛрддрд╣рд░реВрдорд╛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдирд┐рдЧрд░рд╛рдиреА рдЧрд░реНрдиред - ReplicaSet рдирд┐рдпрдиреНрддреНрд░рдХрд▓реЗ API рдЕрдиреНрддреНрдп рдмрд┐рдиреНрджреБ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ
Pod рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН (рдкреЛрдб рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН) рдкреЛрдбрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиред - рд╢реЗрдбреНрдпреБрд▓рд░рд▓реЗ API рдЕрдиреНрддреНрдп рдмрд┐рдиреНрджреБ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ
рдкреНрдпрд╛рдЪ рдкреЛрдб (рдкрдб рд╕рдореНрдкрд╛рджрди рдЧрд░реНрдиреБрд╣реЛрд╕реН) рдЪрдпрди рдЧрд░рд┐рдПрдХреЛ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдиреЛрдбрдХреЛ рдмрд╛рд░реЗрдорд╛ рдЬрд╛рдирдХрд╛рд░реАрдХреЛ рд╕рд╛рде рдкреЛрдбрд╣рд░реВ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░реНрдиред
рддрдкрд╛рдИрд▓реЗ рджреЗрдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рдпреЛ рдЙрд╣реА API рд╣реЛ рдЬреБрди kubectl рдкрд╣реБрдБрдЪ рдЧрд░реНрджрдЫред рдЖрдиреНрддрд░рд┐рдХ рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВ рд░ рдмрд╛рд╣реНрдп рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рд╕рдорд╛рди API рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБ Kubernetes рдбрд┐рдЬрд╛рдЗрдирдорд╛ рдЖрдзрд╛рд░рднреВрдд рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реЛред
рдЕрдм рд╣рд╛рдореА Kubernetes рдХрд╕рд░реА рдХрд╛рдо рдЧрд░реНрдЫ рд╕рдВрдХреНрд╖реЗрдк рдЧрд░реНрди рд╕рдХреНрдЫреМрдВ:
- рднрдгреНрдбрд╛рд░рдг рднрдгреНрдбрд╛рд░рд╣рд░реВ рд░рд╛рдЬреНрдп, рддреНрдпреЛ рд╣реЛ, Kubernetes рд╕реНрд░реЛрддрд╣рд░реВред
- API рд╕рд░реНрднрд░рд▓реЗ Kubernetes API рдХреЛ рд░реВрдкрдорд╛ рднрдгреНрдбрд╛рд░рдгрдорд╛ рдЗрдиреНрдЯрд░рдлреЗрд╕ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред
- рдЕрдиреНрдп рд╕рдмреИ Kubernetes рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВ рд░ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ API рдорд╛рд░реНрдлрдд Kubernetes рдЕрд╡рд╕реНрдерд╛ (рд╕рдВрд╕рд╛рдзрдирд╣рд░реВ) рдкрдвреНрдЫрдиреН, рдЕрд╡рд▓реЛрдХрди рдЧрд░реНрдЫрдиреН рд░ рд╣реЗрд░рдлреЗрд░ рдЧрд░реНрдЫрдиреНред
рдпреА рдЕрд╡рдзрд╛рд░рдгрд╛рд╣рд░реВ рдЬрд╛рдиреНрдирд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ kubectl рд▓рд╛рдИ рдЕрдЭ рд░рд╛рдореНрд░реЛрд╕рдБрдЧ рдмреБрдЭреНрди рд░ рдпрд╕рдмрд╛рдЯ рдзреЗрд░реИ рднрдиреНрджрд╛ рдзреЗрд░реИ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдорджреНрджрдд рдЧрд░реНрдиреЗрдЫред
рдЕрдм рдХреЗрд╣реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реБрдЭрд╛рд╡рд╣рд░реВ рд░ рдЪрд╛рд▓рд╣рд░реВ рд╣реЗрд░реМрдВ рдЬрд╕рд▓реЗ kubectl рдХреЛ рд╕рд╛рде рддрдкрд╛рдИрдВрдХреЛ рдЙрддреНрдкрд╛рджрдХрддрд╛ рд╕реБрдзрд╛рд░ рдЧрд░реНрди рдорджреНрджрдд рдЧрд░реНрдиреЗрдЫред
1. рдХрдорд╛рдгреНрдб рдХрдореНрдкреНрд▓рд┐рд╕рди рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдЗрдирдкреБрдЯрдХреЛ рдЧрддрд┐ рдмрдврд╛рдЙрдиреБрд╣реЛрд╕реН
рдПрдХ рд╕рдмреИрднрдиреНрджрд╛ рдЙрдкрдпреЛрдЧреА, рддрд░ рдЕрдХреНрд╕рд░ рдмреЗрд╡рд╛рд╕реНрддрд╛ рдЧрд░рд┐рдПрдХреЛ, 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 рдХреЛ рд╣рд╛рд▓реИрдХреЛ рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рддрдкрд╛рдИрд▓реЗ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░рд┐рдПрдХреЛ рдмрд╛рд╕рд▓рд╛рдИ рддрдкрд╛рдЗрдБрдХреЛ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╢реЗрд▓рдХреЛ рд░реВрдкрдорд╛ рд╕реЗрдЯ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рдЬрд╕рд▓реЗ рддрдкрд╛рдЗрдБрд▓рд╛рдИ рднрд╡рд┐рд╖реНрдпрдорд╛ рдзреЗрд░реИ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рдмрдЪрдд рдЧрд░реНрдиреЗрдЫред рдпреЛ рдЧрд╛рд╣реНрд░реЛ рдЫреИрди, рд╡рд┐рд╡рд░рдг рд▓реЗрдЦрдорд╛ рджрд┐рдЗрдПрдХреЛ рдЫ "
рдЬрд╛рд░реА рд░рд╛рдЦреНрдиреБ рдЕрдШрд┐, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрдиреБрд╣реЛрд╕реН рдХрд┐ рддрдкрд╛рдЗрдБ Bash рдХреЛ рднрд░реНрдЦрд░рдХреЛ рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ рд╣реБрдиреБрд╣реБрдиреНрдЫ (рдЖрдЙрдЯрдкреБрдЯ рдЬрд╛рдБрдЪ рдЧрд░реНрдиреБрд╣реЛрд╕реН bash --version
).
Bash рдкреВрд░рд╛ рд▓рд┐рдкрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЕрдиреБрд╕рд╛рд░ рднрд┐рдиреНрди рд╣реБрдиреНрдЫ
рддрдкрд╛рдИрдВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ bash-completion рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ
$ brew install bash-completion@2
рдпреЛ рдЫ @2
bash-completion рд╕рдВрд╕реНрдХрд░рдг 2 рдХреЛ рд▓рд╛рдЧрд┐ рдЦрдбрд╛ рдЫред kubectl рд╕реНрд╡рдд: рдкреВрд░рд╛ рдЧрд░реНрди bash-completion v2 рдЖрд╡рд╢реНрдпрдХ рдЫ, рд░ bash-completion v2 рд▓рд╛рдИ рдиреНрдпреВрдирддрдо Bash рд╕рдВрд╕реНрдХрд░рдг 4.1 рдЪрд╛рд╣рд┐рдиреНрдЫред
рдЖрджреЗрд╢ рдЖрдЙрдЯрдкреБрдЯ brew-install
Caveats рдЦрдгреНрдб рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫ, рдЬрд╕рд▓реЗ рдлрд╛рдЗрд▓рдорд╛ рдХреЗ рдердкреНрди рдЖрд╡рд╢реНрдпрдХ рдЫ рднрдиреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрджрдЫ ~/.bash_profile
:
export BASH_COMPLETION_COMPAT_DIR=/usr/local/etc/bash_completion.d
[[ -r "/usr/local/etc/profile.d/bash_completion.sh" ]] && .
"/usr/local/etc/profile.d/bash_completion.sh"
рдпрджреНрдпрдкрд┐, рдо рдпреА рд░реЗрдЦрд╛рд╣рд░реВ рдердкреНрди рд╕рд┐рдлрд╛рд░рд┐рд╕ рдЧрд░реНрджрдЫреБ ~/.bash_profile
, рд░ 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 рд▓реЗ рдпрд╕ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдмрд╛рдЯ рд╕рдмреИ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВ рд▓реЛрдб рдЧрд░реНрджрдЫред
рдпрджрд┐ рддрдкрд╛рдЗрдБ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреБрднрдпреЛ /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
рдкреЛрдбрдХреЛ рд╕реНрд░реЛрдд рд╡рд┐рд╡рд░рдгрдорд╛ред рдердк рд╡рд┐рд╡рд░рдгрд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рд╕рдХрд┐рдиреНрдЫ kubectl explain pod.metadata.name
.
рдЕрдм рднрдиреМрдВ рддрдкрд╛рдИрдВ рдЖрдЙрдЯрдкреБрдЯрдорд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрддрдореНрдн рдердкреНрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐ рдкреНрд░рддреНрдпреЗрдХ рдкреЛрдб рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдиреЛрдб рджреЗрдЦрд╛рдЙрдБрджреИред рдпреЛ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рддрдкрд╛рдЗрдБ рдХреЗрд╡рд▓ рдЕрдиреБрдХреВрд▓рди рд╕реНрддрдореНрдн рд╡рд┐рдХрд▓реНрдкрдорд╛ рдЙрдкрдпреБрдХреНрдд рд╕реНрддрдореНрдн рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рдердкреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ:
$ kubectl get pods
-o custom-columns='NAME:metadata.name,NODE:spec.nodeName'
NAME NODE
engine-544b6b6467-22qr6 ip-10-0-80-67.ec2.internal
engine-544b6b6467-lw5t8 ip-10-0-36-80.ec2.internal
engine-544b6b6467-tvgmg ip-10-0-118-34.ec2.internal
web-ui-6db964458-8pdw4 ip-10-0-118-34.ec2.internal
рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рд▓реЗ рдиреЛрдб рдирд╛рдордмрд╛рдЯ рдЪрдпрди рдЧрд░реНрдЫ spec.nodeName
- рдЬрдм рдкреЛрдб рдиреЛрдбрдорд╛ рддреЛрдХрд┐рдПрдХреЛ рдЫ, рдпрд╕рдХреЛ рдирд╛рдо рдлрд┐рд▓реНрдбрдорд╛ рд▓реЗрдЦрд┐рдПрдХреЛ рдЫ spec.nodeName
рдкреЛрдб рд╕реНрд░реЛрдд рд╡рд┐рдирд┐рд░реНрджреЗрд╢ред рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реА рдЖрдЙрдЯрдкреБрдЯ рдорд╛ рдкрд╛рдЙрди рд╕рдХрд┐рдиреНрдЫ kubectl explain pod.spec.nodeName
.
рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджрд┐рдиреБрд╣реЛрд╕реН рдХрд┐ Kubernetes рд╕реНрд░реЛрдд рдХреНрд╖реЗрддреНрд░рд╣рд░реВ рдХреЗрд╕ рд╕реЗрдиреНрд╕реЗрдЯрд┐рдн рдЫрдиреНред
рддрдкрд╛рдИрд▓реЗ рдХреБрдиреИ рдкрдирд┐ рд╕реНрд░реЛрдд рдХреНрд╖реЗрддреНрд░рд▓рд╛рдИ рд╕реНрддрдореНрднрдХреЛ рд░реВрдкрдорд╛ рд╣реЗрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдХреЗрд╡рд▓ рд╕рдВрд╕рд╛рдзрди рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛рдХреЛ рд╕рдореАрдХреНрд╖рд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рддрдкрд╛рдЗрдБрд▓рд╛рдИ рдордирдкрд░реНрдиреЗ рдХреБрдиреИ рдкрдирд┐ рдХреНрд╖реЗрддреНрд░рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реНред
рддрд░ рдкрд╣рд┐рд▓реЗ, рдлрд┐рд▓реНрдб рдЪрдпрди рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рд▓рд╛рдИ рдирдЬрд┐рдХрдмрд╛рдЯ рд╣реЗрд░реМрдВред
JSONPath рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐
рд╕реНрд░реЛрдд рдХреНрд╖реЗрддреНрд░рд╣рд░реВ рдЪрдпрди рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рд╣рд░реВрдорд╛ рдЖрдзрд╛рд░рд┐рдд рдЫрдиреН
JSONPath JSON рдХрд╛рдЧрдЬрд╛рддрд╣рд░реВрдмрд╛рдЯ рдбрд╛рдЯрд╛ рдкреБрди: рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреЗ рднрд╛рд╖рд╛ рд╣реЛред рдПрдХрд▓ рдХреНрд╖реЗрддреНрд░ рдЪрдпрди рдЧрд░реНрдиреБ JSONPath рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдмреИрднрдиреНрджрд╛ рд╕рд░рд▓ рдкреНрд░рдпреЛрдЧ рдХреЗрд╕ рд╣реЛред рдЙрд╣рд╛рдБрд╕рдБрдЧ рдзреЗрд░реИ рдЫ
Kubectl рд▓реЗ JSONPath рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВрдХреЛ рд╕реАрдорд┐рдд рд╕рдВрдЦреНрдпрд╛рд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫред рддрд┐рдиреАрд╣рд░реВрдХреЛ рдкреНрд░рдпреЛрдЧрдХреЛ рд╕рдореНрднрд╛рд╡рдирд╛ рд░ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ рддрд▓ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рдЫ:
# ╨Т╤Л╨▒╤А╨░╤В╤М ╨▓╤Б╨╡ ╤Н╨╗╨╡╨╝╨╡╨╜╤В╤Л ╤Б╨┐╨╕╤Б╨║╨░
$ kubectl get pods -o custom-columns='DATA:spec.containers[*].image'
# ╨Т╤Л╨▒╤А╨░╤В╤М ╤Б╨┐╨╡╤Ж╨╕╤Д╨╕╤З╨╡╤Б╨║╨╕╨╣ ╤Н╨╗╨╡╨╝╨╡╨╜╤В ╤Б╨┐╨╕╤Б╨║╨░
$ kubectl get pods -o custom-columns='DATA:spec.containers[0].image'
# ╨Т╤Л╨▒╤А╨░╤В╤М ╤Н╨╗╨╡╨╝╨╡╨╜╤В╤Л ╤Б╨┐╨╕╤Б╨║╨░, ╨┐╨╛╨┐╨░╨┤╨░╤О╤Й╨╕╨╡ ╨┐╨╛╨┤ ╤Д╨╕╨╗╤М╤В╤А
$ kubectl get pods -o custom-columns='DATA:spec.containers[?(@.image!="nginx")].image'
# ╨Т╤Л╨▒╤А╨░╤В╤М ╨▓╤Б╨╡ ╨┐╨╛╨╗╤П ╨┐╨╛ ╤Г╨║╨░╨╖╨░╨╜╨╜╨╛╨╝╤Г ╨┐╤Г╤В╨╕, ╨╜╨╡╨╖╨░╨▓╨╕╤Б╨╕╨╝╨╛ ╨╛╤В ╨╕╤Е ╨╕╨╝╨╡╨╜╨╕
$ kubectl get pods -o custom-columns='DATA:metadata.*'
# ╨Т╤Л╨▒╤А╨░╤В╤М ╨▓╤Б╨╡ ╨┐╨╛╨╗╤П ╤Б ╤Г╨║╨░╨╖╨░╨╜╨╜╤Л╨╝ ╨╕╨╝╨╡╨╜╨╡╨╝, ╨▓╨╜╨╡ ╨╖╨░╨▓╨╕╤Б╨╕╨╝╨╛╤Б╤В╨╕ ╨╛╤В ╨╕╤Е ╤А╨░╤Б╨┐╨╛╨╗╨╛╨╢╨╡╨╜╨╕╤П
$ kubectl get pods -o custom-columns='DATA:..image'
[] рдЕрдкрд░реЗрдЯрд░ рд╡рд┐рд╢реЗрд╖ рдЧрд░реА рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЫред рдзреЗрд░реИ Kubernetes рд╕реНрд░реЛрдд рдХреНрд╖реЗрддреНрд░рд╣рд░реВ рд╕реВрдЪреАрд╣рд░реВ рд╣реБрдиреН, рд░ рдпреЛ рдЕрдкрд░реЗрдЯрд░рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рддреА рд╕реВрдЪреАрд╣рд░реВрдХрд╛ рд╕рджрд╕реНрдпрд╣рд░реВ рдЪрдпрди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рдпреЛ рдкреНрд░рд╛рдпрдГ рд╕реВрдЪреАрдХрд╛ рд╕рдмреИ рддрддреНрд╡рд╣рд░реВ рдЪрдпрди рдЧрд░реНрди рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдб рдЬрд╕реНрддреИ [*] рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред
рдЖрд╡реЗрджрди рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ
рдЕрдиреБрдХреВрд▓рди рд╕реНрддрдореНрдн рдЖрдЙрдЯрдкреБрдЯ рдврд╛рдБрдЪрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рд╕рдореНрднрд╛рд╡рдирд╛рд╣рд░реВ рдЕрдирдиреНрдд рдЫрдиреН, рдХрд┐рдирдХрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдЙрддреНрдкрд╛рджрдирдорд╛ рдХреБрдиреИ рдкрдирд┐ рдХреНрд╖реЗрддреНрд░ рд╡рд╛ рд╕реНрд░реЛрдд рдХреНрд╖реЗрддреНрд░рд╣рд░реВрдХреЛ рд╕рдВрдпреЛрдЬрди рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдпрд╣рд╛рдБ рдХреЗрд╣реА рдирдореВрдирд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВ рдЫрдиреН, рддрд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдЖрдлреИрдВ рдЕрдиреНрд╡реЗрд╖рдг рдЧрд░реНрди рд░ рддрдкрд╛рдИрдВрдХреЛ рд▓рд╛рдЧрд┐ рдХрд╛рдо рдЧрд░реНрдиреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рд╕реНрд╡рддрдиреНрддреНрд░ рдорд╣рд╕реБрд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реНред
- рдкреЛрдбрдХрд╛ рд▓рд╛рдЧрд┐ рдХрдиреНрдЯреЗрдирд░ рдЫрд╡рд┐рд╣рд░реВ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрджреИ:
$ kubectl get pods -o custom-columns='NAME:metadata.name,IMAGES:spec.containers[*].image' NAME IMAGES engine-544b6b6467-22qr6 rabbitmq:3.7.8-management,nginx engine-544b6b6467-lw5t8 rabbitmq:3.7.8-management,nginx engine-544b6b6467-tvgmg rabbitmq:3.7.8-management,nginx web-ui-6db964458-8pdw4 wordpress
рдпреЛ рдЖрджреЗрд╢рд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рдкреЛрдбрдХреЛ рд▓рд╛рдЧрд┐ рдХрдиреНрдЯреЗрдирд░ рдЫрд╡рд┐ рдирд╛рдорд╣рд░реВ рджреЗрдЦрд╛рдЙрдБрдЫред
рдпрд╛рдж рдЧрд░реНрдиреБрд╣реЛрд╕реН рдХрд┐ рдкреЛрдбрд▓реЗ рдзреЗрд░реИ рдХрдиреНрдЯреЗрдирд░рд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрди рд╕рдХреНрдЫ, рддреНрдпрд╕рдкрдЫрд┐ рдЫрд╡рд┐ рдирд╛рдорд╣рд░реВ рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдорджреНрд╡рд╛рд░рд╛ рдЫреБрдЯреНрдпрд╛рдПрд░ рдПрдХ рд▓рд╛рдЗрдирдорд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реБрдиреЗрдЫрдиреНред
- рдиреЛрдб рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреНрд╖реЗрддреНрд░рд╣рд░реВ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрджреИ:
$ kubectl get nodes -o custom-columns='NAME:metadata.name,ZONE:metadata.labels.failure-domain.beta.kubernetes.io/zone' NAME ZONE ip-10-0-118-34.ec2.internal us-east-1b ip-10-0-36-80.ec2.internal us-east-1a ip-10-0-80-67.ec2.internal us-east-1b
рдпрджрд┐ рддрдкрд╛рдЗрдБрдХреЛ рдХреНрд▓рд╕реНрдЯрд░ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреНрд▓рд╛рдЙрдбрдорд╛ рд╣реЛрд╕реНрдЯ рдЧрд░рд┐рдПрдХреЛ рдЫ рднрдиреЗ рдпреЛ рдЖрджреЗрд╢ рдЙрдкрдпреЛрдЧреА рдЫред рдпрд╕рд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдбрдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреНрд╖реЗрддреНрд░ рджреЗрдЦрд╛рдЙрдБрдЫред
рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреНрд╖реЗрддреНрд░ рдПрдХ рдХреНрд▓рд╛рдЙрдб рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реЛ рдЬрд╕рд▓реЗ рдкреНрд░рддрд┐рдХреГрддрд┐ рдХреНрд╖реЗрддреНрд░рд▓рд╛рдИ рднреМрдЧреЛрд▓рд┐рдХ рдХреНрд╖реЗрддреНрд░рдорд╛ рд╕реАрдорд┐рдд рдЧрд░реНрджрдЫред
рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдбрдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреНрд╖реЗрддреНрд░рд╣рд░реВ рд╡рд┐рд╢реЗрд╖ рд▓реЗрдмрд▓ рдорд╛рд░реНрдлрдд рдкреНрд░рд╛рдкреНрдд рдЧрд░рд┐рдиреНрдЫ -
ред рдпрджрд┐ рдХреНрд▓рд╕реНрдЯрд░ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреНрд▓рд╛рдЙрдбрдорд╛ рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдЫ рднрдиреЗ, рдпреЛ рд▓реЗрдмрд▓ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рд╕рд┐рд░реНрдЬрдирд╛ рд╣реБрдиреНрдЫ рд░ рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдбрдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреНрд╖реЗрддреНрд░рд╣рд░реВрдХреЛ рдирд╛рдорд▓реЗ рднрд░рд┐рдиреНрдЫредfailure-domain.beta.kubernetes.io/zone
рд▓реЗрдмрд▓рд╣рд░реВ Kubernetes рд╕рдВрд╕рд╛рдзрди рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛рдХреЛ рдЕрдВрд╢ рд╣реЛрдЗрдирдиреН, рддреНрдпрд╕реИрд▓реЗ рддрдкрд╛рдИрдВрд▓реЗ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдЬрд╛рдирдХрд╛рд░реА рдкрд╛рдЙрдиреБрд╣реБрдиреЗрдЫреИрди
API рдЧрд╛рдЗрдб ред рдпрджреНрдпрдкрд┐, рдпрджрд┐ рддрдкрд╛рдЗрдБ YAML рд╡рд╛ JSON рдврд╛рдБрдЪрд╛рдорд╛ рдиреЛрдбрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдЬрд╛рдирдХрд╛рд░реА рдЕрдиреБрд░реЛрдз рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ рддрд┐рдиреАрд╣рд░реВ рджреЗрдЦреНрди рд╕рдХрд┐рдиреНрдЫ (рдХреБрдиреИ рдЕрдиреНрдп рд▓реЗрдмрд▓рд╣рд░реВ рдЬрд╕реНрддреИ):$ kubectl get nodes -o yaml # ╨╕╨╗╨╕ $ kubectl get nodes -o json
рдпреЛ рд╕рдВрд╕рд╛рдзрди рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛рд╣рд░реВ рд╕рд┐рдХреНрдиреБрдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрд░реЛрддрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдердк рдЬрд╛рдиреНрдирдХреЛ рд▓рд╛рдЧрд┐ рдЙрддреНрдХреГрд╖реНрдЯ рддрд░рд┐рдХрд╛ рд╣реЛред
4. рд╕рдЬрд┐рд▓реИрд╕рдБрдЧ рдХреНрд▓рд╕реНрдЯрд░ рд░ рдиреЗрдорд╕реНрдкреЗрд╕рд╣рд░реВ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдЧрд░реНрдиреБрд╣реЛрд╕реН
рдЬрдм kubectl рд▓реЗ Kubernetes API рд▓рд╛рдИ рдЕрдиреБрд░реЛрдз рдЧрд░реНрджрдЫ, рдпрд╕рд▓реЗ рдЬрдбрд╛рдирдХреЛ рд▓рд╛рдЧрд┐ рд╕рдмреИ рдЖрд╡рд╢реНрдпрдХ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдкрд╣рд┐рд▓реЗ kubeconfig рдлрд╛рдЗрд▓ рдкрдвреНрдЫред
рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛ kubeconfig рдлрд╛рдЗрд▓ рд╣реЛ ~/.kube/config
ред рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдпреЛ рдлрд╛рдЗрд▓ рд╡рд┐рд╢реЗрд╖ рдЖрджреЗрд╢ рджреНрд╡рд╛рд░рд╛ рд╕рд┐рд░реНрдЬрдирд╛ рд╡рд╛ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░рд┐рдПрдХреЛ рдЫред
рдЬрдм рддрдкрд╛рдЗрдБ рдзреЗрд░реИ рдХреНрд▓рд╕реНрдЯрд░рд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ, рддрдкрд╛рдЗрдБрдХреЛ kubeconfig рдлрд╛рдЗрд▓рд▓реЗ рддреА рд╕рдмреИ рдХреНрд▓рд╕реНрдЯрд░рд╣рд░реВрдорд╛ рдЬрдбрд╛рди рдЧрд░реНрди рд╕реЗрдЯрд┐рдЩрд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫред рддрдкрд╛рдЗрдБ рдХреБрди рдХреНрд▓рд╕реНрдЯрд░ рд╕рдВрдЧ рдХрд╛рдо рдЧрд░реНрджреИ рд╣реБрдиреБрд╣реБрдиреНрдЫ kubectl рдЖрджреЗрд╢ рдмрддрд╛рдЙрди рдХреЛ рд▓рд╛рдЧреА рдПрдХ рддрд░рд┐рдХрд╛ рдЪрд╛рд╣рд┐рдиреНрдЫред
рдПрдХ рдХреНрд▓рд╕реНрдЯрд░ рднрд┐рддреНрд░, рддрдкрд╛рдИрд▓реЗ рдзреЗрд░реИ рдиреЗрдорд╕реНрдкреЗрд╕рд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ - рднреМрддрд┐рдХ рдХреНрд▓рд╕реНрдЯрд░ рднрд┐рддреНрд░ рднрд░реНрдЪреБрдЕрд▓ рдХреНрд▓рд╕реНрдЯрд░рдХреЛ рдПрдХ рдкреНрд░рдХрд╛рд░ред Kubectl рд▓реЗ kubeconfig рдлрд╛рдЗрд▓рдХреЛ рдЖрдзрд╛рд░рдорд╛ рдХреБрди рдиреЗрдорд╕реНрдкреЗрд╕ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рднрдиреЗрд░ рдкрдирд┐ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░реНрджрдЫред рдпрд╕рдХреЛ рдорддрд▓рдм рддрдкрд╛рдИрд▓рд╛рдИ kubectl рдХрдорд╛рдгреНрдбрд▓рд╛рдИ рдХреБрди рдиреЗрдорд╕реНрдкреЗрд╕рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдиреЗ рднрдиреЗрд░ рдмрддрд╛рдЙрдиреЗ рддрд░рд┐рдХрд╛ рдкрдирд┐ рдЪрд╛рд╣рд┐рдиреНрдЫред
рдпрд╕ рдЕрдзреНрдпрд╛рдпрдорд╛ рд╣рд╛рдореА рдпрд╕рд▓реЗ рдХрд╕рд░реА рдХрд╛рдо рдЧрд░реНрдЫ рд░ рдпрд╕рд▓рд╛рдИ рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рд░реВрдкрдорд╛ рдХрд╕рд░реА рдХрд╛рдо рдЧрд░реНрдиреЗ рднрдиреЗрд░ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдЧрд░реНрдиреЗрдЫреМрдВред
рдзреНрдпрд╛рди рджрд┐рдиреБрд╣реЛрд╕реН рдХрд┐ рддрдкрд╛рдЗрдБрд╕рдБрдЧ KUBECONFIG рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░рдорд╛ рд╕реВрдЪреАрдмрджреНрдз рдзреЗрд░реИ kubeconfig рдлрд╛рдЗрд▓рд╣рд░реВ рд╣реБрди рд╕рдХреНрдЫред рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛, рдпреА рд╕рдмреИ рдлрд╛рдЗрд▓рд╣рд░реВ рд░рдирдЯрд╛рдЗрдордорд╛ рдПрдХ рд╕рд╛рдЭрд╛ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирдорд╛ рдЬреЛрдбрд┐рдиреЗрдЫрдиреНред рддрдкрд╛рдЗрдБ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░ рд╕рдВрдЧ kubectl рдЪрд▓рд╛рдПрд░ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд kubeconfig рдлрд╛рдЗрд▓ рдкрдирд┐ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ --kubeconfig
ред рд╣реЗрд░
kubeconfig рдлрд╛рдЗрд▓рд╣рд░реВ
kubeconfig рдлрд╛рдЗрд▓рдорд╛ рдХреЗ рд╕рдорд╛рд╡реЗрд╢ рдЫ рд╣реЗрд░реМрдВ:
рддрдкрд╛рдИрдВрд▓реЗ рджреЗрдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, kubeconfig рдлрд╛рдЗрд▓рд▓реЗ рд╕рдиреНрджрд░реНрднрд╣рд░реВрдХреЛ рд╕реЗрдЯ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫред рд╕рдиреНрджрд░реНрднрдорд╛ рддреАрди рддрддреНрд╡рд╣рд░реВ рдЫрдиреН:
- рдХреНрд▓рд╕реНрдЯрд░ тАФ рдХреНрд▓рд╕реНрдЯрд░ рд╕рд░реНрднрд░рдХреЛ API URLред
- рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ - рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреНрд░рдорд╛рдгрд╣рд░реВред
- рдиреЗрдорд╕реНрдкреЗрд╕ - рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рд╕рд╛рдореЗрд▓ рд╣реБрдБрджрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХреЛ рдиреЗрдорд╕реНрдкреЗрд╕ред
рдЕрднреНрдпрд╛рд╕рдорд╛, рддрд┐рдиреАрд╣рд░реВ рдкреНрд░рд╛рдпрдГ рддрд┐рдиреАрд╣рд░реВрдХреЛ kubeconfig рдорд╛ рдкреНрд░рддрд┐ рдХреНрд▓рд╕реНрдЯрд░ рдПрдХ рд╕рдиреНрджрд░реНрдн рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫрдиреНред рдпрджреНрдпрдкрд┐, рддрдкрд╛рдЗрдБрд╕рдБрдЧ рдкреНрд░рддрд┐ рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рдзреЗрд░реИ рд╕рдиреНрджрд░реНрднрд╣рд░реВ рд╣реБрди рд╕рдХреНрдЫрдиреН, рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд╛ рдиреЗрдорд╕реНрдкреЗрд╕ рджреНрд╡рд╛рд░рд╛ рднрд┐рдиреНрдиред рдпрджреНрдпрдкрд┐, рдпреЛ рдмрд╣реБ-рд╕рдиреНрджрд░реНрдн рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдЕрд╕рд╛рдорд╛рдиреНрдп рдЫ, рддреНрдпрд╕реИрд▓реЗ рддреНрдпрд╣рд╛рдБ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдХреНрд▓рд╕реНрдЯрд░рд╣рд░реВ рд░ рд╕рдиреНрджрд░реНрднрд╣рд░реВ рдмреАрдЪ рдПрдХ-рджреЗрдЦрд┐-рдПрдХ рдореНрдпрд╛рдкрд┐рдЩ рд╣реБрдиреНрдЫред
рдХреБрдиреИ рдкрдирд┐ рд╕рдордпрдорд╛, рд╕рдиреНрджрд░реНрднрд╣рд░реВ рдордзреНрдпреЗ рдПрдХ рд╡рд░реНрддрдорд╛рди рд╣реЛ:
рдЬрдм kubectl рд▓реЗ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдлрд╛рдЗрд▓ рдкрдвреНрдЫ, рдпрд╕рд▓реЗ рд╕рдзреИ рд╣рд╛рд▓рдХреЛ рд╕рдиреНрджрд░реНрднрдмрд╛рдЯ рдЬрд╛рдирдХрд╛рд░реА рд▓рд┐рдиреНрдЫред рдорд╛рдерд┐рдХреЛ рдЙрджрд╛рд╣рд░рдгрдорд╛, kubectl Hare рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рдЬрдбрд╛рди рд╣реБрдиреЗрдЫред
рддрджрдиреБрд╕рд╛рд░, рдЕрд░реНрдХреЛ рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рд╕реНрд╡рд┐рдЪ рдЧрд░реНрди, рддрдкрд╛рдИрдВрд▓реЗ kubeconfig рдлрд╛рдЗрд▓рдорд╛ рд╣рд╛рд▓рдХреЛ рд╕рдиреНрджрд░реНрдн рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ:
рдЕрдм kubectl рдлрдХреНрд╕ рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рдЬрдбрд╛рди рд╣реБрдиреЗрдЫред
рдПрдЙрдЯреИ рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рдлрд░рдХ рдиреЗрдорд╕реНрдкреЗрд╕рдорд╛ рд╕реНрд╡рд┐рдЪ рдЧрд░реНрди, рддрдкрд╛рдИрдВрд▓реЗ рд╣рд╛рд▓рдХреЛ рд╕рдиреНрджрд░реНрднрдХреЛ рд▓рд╛рдЧрд┐ рдиреЗрдорд╕реНрдкреЗрд╕ рддрддреНрд╡рдХреЛ рдорд╛рди рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ:
рдорд╛рдерд┐рдХреЛ рдЙрджрд╛рд╣рд░рдгрдорд╛, kubectl рд▓реЗ рдлрдХреНрд╕ рдХреНрд▓рд╕реНрдЯрд░рдХреЛ рдкреНрд░реЛрдб рдиреЗрдорд╕реНрдкреЗрд╕ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗрдЫ (рдкрд╣рд┐рд▓реЗ рдЯреЗрд╕реНрдЯ рдиреЗрдорд╕реНрдкреЗрд╕ рд╕реЗрдЯ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ)ред
рдзреНрдпрд╛рди рджрд┐рдиреБрд╣реЛрд╕реН рдХрд┐ kubectl рд▓реЗ рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рдкрдирд┐ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫ --cluster
, --user
, --namespace
╨╕ --context
, рдЬрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рд╡реНрдпрдХреНрддрд┐рдЧрдд рддрддреНрд╡рд╣рд░реВ рд░ рд╣рд╛рд▓рдХреЛ рд╕рдиреНрджрд░реНрднрд▓рд╛рдИ рдЕрдзрд┐рд▓реЗрдЦрди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ, kubeconfig рдорд╛ рдХреЗ рд╕реЗрдЯ рдЧрд░рд┐рдПрдХреЛ рднрдПрддрд╛ рдкрдирд┐ред рд╣реЗрд░ kubectl options
.
рд╕рд┐рджреНрдзрд╛рдиреНрддрдорд╛, рддрдкрд╛рдЗрдБ рдореНрдпрд╛рдиреБрдЕрд▓ рд░реВрдкрдорд╛ kubeconfig рдорд╛ рд╕реЗрдЯрд┐рдЩрд╣рд░реВ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рддрд░ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЫред рдпреА рдХрд╛рд░реНрдпрд╣рд░реВ рд╕рд░рд▓ рдмрдирд╛рдЙрди, рддреНрдпрд╣рд╛рдБ рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдпреЛрдЧрд┐рддрд╛рд╣рд░реВ рдЫрдиреН рдЬрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред
kubectx рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН
рдХреНрд▓рд╕реНрдЯрд░ рд░ рдиреЗрдорд╕реНрдкреЗрд╕рд╣рд░реВ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдПрдХ рдзреЗрд░реИ рд▓реЛрдХрдкреНрд░рд┐рдп рдЙрдкрдпреЛрдЧрд┐рддрд╛ред
рдЙрдкрдпреЛрдЧрд┐рддрд╛рд▓реЗ рдЖрджреЗрд╢рд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫ kubectx
╨╕ kubens
рд╣рд╛рд▓рдХреЛ рд╕рдиреНрджрд░реНрдн рд░ рдиреЗрдорд╕реНрдкреЗрд╕ рдХреНрд░рдорд╢рдГ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиред
рдЙрд▓реНрд▓реЗрдЦ рдЧрд░рд┐рдП рдЕрдиреБрд╕рд╛рд░, рд╣рд╛рд▓рдХреЛ рд╕рдиреНрджрд░реНрдн рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиреБ рднрдиреЗрдХреЛ рдХреНрд▓рд╕реНрдЯрд░ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиреБ рд╣реЛ рдпрджрд┐ рддрдкрд╛рдИрдВрд╕рдБрдЧ рдкреНрд░рддрд┐ рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рдПрдЙрдЯрд╛ рдорд╛рддреНрд░ рд╕рдиреНрджрд░реНрдн рдЫ рднрдиреЗред
рдпрд╣рд╛рдБ рдпреА рдЖрджреЗрд╢рд╣рд░реВ рдЪрд▓рд╛рдЙрдиреЗ рдПрдЙрдЯрд╛ рдЙрджрд╛рд╣рд░рдг рд╣реЛ:
рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдкрдорд╛, рдпреА рдЖрджреЗрд╢рд╣рд░реВрд▓реЗ рдорд╛рдерд┐ рд╡рд░реНрдгрди рдЧрд░рд┐рдП рдЕрдиреБрд╕рд╛рд░ kubeconfig рдлрд╛рдЗрд▓ рд╕рдореНрдкрд╛рджрди рдЧрд░реНрджрдЫред
рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди kubectx
, рдорд╛ рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ рдкрд╛рд▓рдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН
рджреБрдмреИ рдЖрджреЗрд╢рд╣рд░реВрд▓реЗ рд╕рдиреНрджрд░реНрдн рд░ рдиреЗрдорд╕реНрдкреЗрд╕ рдирд╛рдорд╣рд░реВрдХреЛ рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛рд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫ, рдЬрд╕рд▓реЗ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдЯрд╛рдЗрдк рдЧрд░реНрдиреЗ рдЖрд╡рд╢реНрдпрдХрддрд╛рд▓рд╛рдИ рд╣рдЯрд╛рдЙрдБрдЫред рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛ рд╕реЗрдЯрдЕрдк рдЧрд░реНрди рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ
рдЕрд░реНрдХреЛ рдЙрдкрдпреЛрдЧреА рд╕реБрд╡рд┐рдзрд╛ kubectx
рдпреЛ рдЫ kubectx
ред рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рд░реВрдкрдорд╛, рддрдкрд╛рдЗрдБ fzf рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдЧрд░рд┐рдПрдХреЛ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдирд┐: рд╢реБрд▓реНрдХ рдЦреЛрдЬ рдЗрдиреНрдЯрд░рдлреЗрд╕ рдорд╛рд░реНрдлрдд рд╕рдиреНрджрд░реНрдн рд░ рдиреЗрдорд╕реНрдкреЗрд╕ рдЪрдпрди рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред
рдЦреЛрд▓ рдЙрдкрдирд╛рдо рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ
рддрдкрд╛рдЗрдБрд▓рд╛рдИ рд╣рд╛рд▓рдХреЛ рд╕рдиреНрджрд░реНрдн рд░ рдиреЗрдорд╕реНрдкреЗрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рдЫреБрдЯреНрдЯреИ рдЙрдкрдХрд░рдгрд╣рд░реВ рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджреИрди рдХрд┐рдирднрдиреЗ kubectl рд▓реЗ рдпрд╕рдХреЛ рд▓рд╛рдЧрд┐ рдЖрджреЗрд╢рд╣рд░реВ рдкрдирд┐ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред рд╣реЛ, рдЯреЛрд▓реА kubectl config
kubeconfig рдлрд╛рдЗрд▓рд╣рд░реВ рд╕рдореНрдкрд╛рджрди рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рдЙрдкрдХрдорд╛рдиреНрдбрд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред
рддрд┐рдиреАрд╣рд░реВрдордзреНрдпреЗ рдХреЗрд╣реА рдЫрдиреН:
kubectl config get-contexts
: рд╕рдмреИ рд╕рдиреНрджрд░реНрднрд╣рд░реВ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрдиреБрд╣реЛрд╕реН;kubectl config current-context
: рд╡рд░реНрддрдорд╛рди рд╕рдиреНрджрд░реНрдн рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреБрд╣реЛрд╕реН;kubectl config use-context
: рд╡рд░реНрддрдорд╛рди рд╕рдиреНрджрд░реНрдн рдкрд░рд┐рд╡рд░реНрддрди;kubectl config set-context
: рд╕рдиреНрджрд░реНрдн рддрддреНрд╡ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиреБрд╣реЛрд╕реНред
рдпрджреНрдпрдкрд┐, рдпреА рдЖрджреЗрд╢рд╣рд░реВ рд╕реАрдзрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдзреЗрд░реИ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЫреИрди рдХрд┐рдирднрдиреЗ рддрд┐рдиреАрд╣рд░реВ рд▓рд╛рдореЛ рдЫрдиреНред рддрдкрд╛рдИрдВ рддрд┐рдиреАрд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рд╢реЗрд▓ рдЙрдкрдирд╛рдорд╣рд░реВ рдмрдирд╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдЬреБрди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрди рд╕рдЬрд┐рд▓реЛ рдЫред
рдореИрд▓реЗ рдпреА рдЖрджреЗрд╢рд╣рд░реВрдорд╛ рдЖрдзрд╛рд░рд┐рдд рдЙрдкрдирд╛рдорд╣рд░реВрдХреЛ рд╕реЗрдЯ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНтАНрдпреЛ рдЬрд╕рд▓реЗ kubectx рдЬрд╕реНрддреИ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред рдпрд╣рд╛рдБ рддрдкрд╛рдИрдВрд▓реЗ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдХрд╛рд░реНрдпрдорд╛ рджреЗрдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ:
рдзреНрдпрд╛рди рджрд┐рдиреБрд╣реЛрд╕реН рдХрд┐ рдЙрдкрдирд╛рдорд╣рд░реВрд▓реЗ рдПрдХ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдореБрдХреНрдд рд▓реБрдХрдЕрдк рдЗрдиреНрдЯрд░рдлреЗрд╕ рдкреНрд░рджрд╛рди рдЧрд░реНрди fzf рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ (рдЬрд╕реНрддреИ kubectx рдХреЛ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдореЛрдб)ред рдпрд╕рдХреЛ рдорддрд▓рдм рддрдкрд╛рдИрд▓рд╛рдИ рдЪрд╛рд╣рд┐рдиреНрдЫ
рдпрд╣рд╛рдБ рдЙрдкрдирд╛рдорд╣рд░реВ рдЖрдлреИрдВрдХреЛ рдкрд░рд┐рднрд╛рд╖рд╛рд╣рд░реВ рдЫрдиреН:
# ╨Я╨╛╨╗╤Г╤З╨╕╤В╤М ╤В╨╡╨║╤Г╤Й╨╕╨╣ ╨║╨╛╨╜╤В╨╡╨║╤Б╤В
alias krc='kubectl config current-context'
# ╨б╨┐╨╕╤Б╨╛╨║ ╨▓╤Б╨╡╤Е ╨║╨╛╨╜╤В╨╡╨║╤Б╤В╨╛╨▓
alias klc='kubectl config get-contexts -o name | sed "s/^/ /;|^ $(krc)$|s/ /*/"'
# ╨Ш╨╖╨╝╨╡╨╜╨╕╤В╤М ╤В╨╡╨║╤Г╤Й╨╕╨╣ ╨║╨╛╨╜╤В╨╡╨║╤Б╤В
alias kcc='kubectl config use-context "$(klc | fzf -e | sed "s/^..//")"'
# ╨Я╨╛╨╗╤Г╤З╨╕╤В╤М ╤В╨╡╨║╤Г╤Й╨╡╨╡ ╨┐╤А╨╛╤Б╤В╤А╨░╨╜╤Б╤В╨▓╨╛ ╨╕╨╝╨╡╨╜
alias krn='kubectl config get-contexts --no-headers "$(krc)" | awk "{print $5}" | sed "s/^$/default/"'
# ╨б╨┐╨╕╤Б╨╛╨║ ╨▓╤Б╨╡╤Е ╨┐╤А╨╛╤Б╤В╤А╨░╨╜╤Б╤В╨▓ ╨╕╨╝╨╡╨╜
alias kln='kubectl get -o name ns | sed "s|^.*/| |;|^ $(krn)$|s/ /*/"'
# ╨Ш╨╖╨╝╨╡╨╜╨╕╤В╤М ╤В╨╡╨║╤Г╤Й╨╡╨╡ ╨┐╤А╨╛╤Б╤В╤А╨░╨╜╤Б╤В╨▓╨╛ ╨╕╨╝╨╡╨╜
alias kcn='kubectl config set-context --current --namespace "$(kln | fzf -e | sed "s/^..//")"'
рдпреА рдЙрдкрдирд╛рдорд╣рд░реВ рд╕реЗрдЯ рдЧрд░реНрди рддрдкрд╛рдИрдВрд▓реЗ рдЖрдлреНрдиреЛ рдлрд╛рдЗрд▓рдорд╛ рдорд╛рдерд┐рдХрд╛ рдкрд░рд┐рднрд╛рд╖рд╛рд╣рд░реВ рдердкреНрди рдЖрд╡рд╢реНрдпрдХ рдЫ ~/.bashrc
рд╡рд╛ ~/.zshrc
рд░ рдЖрдлреНрдиреЛ рд╢реЗрд▓ рд░рд┐рдмреБрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реНред
рдкреНрд▓рдЧрдЗрдирд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ
Kubectl рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдкреНрд▓рдЧрдЗрдирд╣рд░реВ рд▓реЛрдб рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ рдЬреБрди рдЖрдзрд╛рд░рднреВрдд рдЖрджреЗрд╢рд╣рд░реВ рдЬрд╕реНрддреИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░рд┐рдиреНрдЫред рддрдкрд╛рдИрдВ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, kubectl-foo рдкреНрд▓рдЧрдЗрди рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рд░ рдЖрджреЗрд╢ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реЗрд░ рдпрд╕рд▓рд╛рдИ рдЪрд▓рд╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред kubectl foo
.
рдпрд╕ рддрд░рд┐рдХрд╛рд▓реЗ рд╕рдиреНрджрд░реНрдн рд░ рдиреЗрдорд╕реНрдкреЗрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реБрдиреЗрдЫ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐ рдЪрд▓рд╛рдПрд░ kubectl ctx
рд╕рдиреНрджрд░реНрдн рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рд░ kubectl ns
рдирд╛рдо рд╕реНрдерд╛рди рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиред
рдореИрд▓реЗ рдпреЛ рдЧрд░реНрдиреЗ рджреБрдИ рдкреНрд▓рдЧрдЗрдирд╣рд░реВ рд▓реЗрдЦреЗрдХреЛ рдЫреБ:
рдкреНрд▓рдЧрдЗрдирд╣рд░реВрдХреЛ рдХрд╛рдо рдЕрдШрд┐рд▓реНрд▓реЛ рдЦрдгреНрдбрдмрд╛рдЯ рдЙрдкрдирд╛рдорд╣рд░реВрдорд╛ рдЖрдзрд╛рд░рд┐рдд рдЫред
рдпрд╣рд╛рдБ рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдХрд╕рд░реА рдХрд╛рдо рдЧрд░реНрдЫрдиреН:
рдзреНрдпрд╛рди рджрд┐рдиреБрд╣реЛрд╕реН рдХрд┐ рдкреНрд▓рдЧрдЗрдирд╣рд░реВрд▓реЗ рдПрдХ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдирд┐: рд╢реБрд▓реНрдХ рдЦреЛрдЬ рдЗрдиреНрдЯрд░рдлреЗрд╕ рдкреНрд░рджрд╛рди рдЧрд░реНрди fzf рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ (рдЬрд╕реНрддреИ kubectx рдХреЛ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдореЛрдб)ред рдпрд╕рдХреЛ рдорддрд▓рдм рддрдкрд╛рдИрд▓рд╛рдИ рдЪрд╛рд╣рд┐рдиреНрдЫ
рдкреНрд▓рдЧрдЗрдирд╣рд░реВ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди, рддрдкрд╛рдИрдВрд▓реЗ рдирд╛рдордХреЛ рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВ рдбрд╛рдЙрдирд▓реЛрдб рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ chmod +x
ред рдпрд╕ рдкрдЫрд┐ рддреБрд░реБрдиреНрддреИ рддрдкрд╛рдИрдВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрд╖рдо рд╣реБрдиреБрд╣реБрдиреЗрдЫ kubectl ctx
╨╕ kubectl ns
.
5. autoaliases рдХреЛ рд╕рд╛рде рдЗрдирдкреБрдЯ рдШрдЯрд╛рдЙрдиреБрд╣реЛрд╕реН
рд╢реЗрд▓ рдЙрдкрдирд╛рдорд╣рд░реВ рдЗрдирдкреБрдЯ рдЧрддрд┐ рдмрдврд╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐ рд░рд╛рдореНрд░реЛ рддрд░рд┐рдХрд╛ рд╣реЛред рдкрд░рд┐рдпреЛрдЬрдирд╛
рддрдкрд╛рдИ рд╕реЛрдЪрд┐рд░рд╣рдиреБ рднрдПрдХреЛ рд╣реБрди рд╕рдХреНрдЫ - рддрдкрд╛рдИ 800 рдЙрдкрдирд╛рдо рдХрд╕рд░реА рд╕рдореНрдЭрдиреБрд╣реБрдиреНрдЫ? рддрд░ рддрдкрд╛рдИрд▓реЗ рддреА рд╕рдмреИ рд╕рдореНрдЭрдиреБ рдЖрд╡рд╢реНрдпрдХ рдЫреИрди, рдХрд┐рдирдХрд┐ рддрд┐рдиреАрд╣рд░реВ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдпреЛрдЬрдирд╛ рдЕрдиреБрд╕рд╛рд░ рдмрдирд╛рдЗрдПрдХрд╛ рдЫрдиреН, рдЬреБрди рддрд▓ рджрд┐рдЗрдПрдХреЛ рдЫ:
рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐:
- kgpooyaml - kubectl рдкреНрд░рд╛рдкреНрдд pods oyaml
- ksysgsvcw тАФ kubectl -n kube-system svc w рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреБрд╣реЛрд╕реН
- ksysrmcm -kubectl -n kube-рд╕рд┐рд╕реНрдЯрдо rm рд╕реЗрдореА
- kgdepallsl - kubectl рдкреНрд░рд╛рдкреНрдд рдбрд┐рдкреНрд▓реЛрдпрдореЗрдиреНрдЯ рд╕рдмреИ sl
рддрдкрд╛рдИрдВрд▓реЗ рджреЗрдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреЗ рд░реВрдкрдорд╛, рдЙрдкрдирд╛рдорд╣рд░реВ рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВ рдорд┐рд▓реЗрд░ рдмрдиреЗрдХрд╛ рд╣реБрдиреНрдЫрдиреН, рдЬрд╕рдордзреНрдпреЗ рдкреНрд░рддреНрдпреЗрдХрд▓реЗ kubectl рдЖрджреЗрд╢рдХреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рддрддреНрд╡рд▓рд╛рдИ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдЧрд░реНрджрдЫред рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдирд╛рдордорд╛ рдЖрдзрд╛рд░ рдЖрджреЗрд╢, рдЕрдкрд░реЗрд╢рди, рд░ рд╕реНрд░реЛрдд, рд░ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдмрд╣реБ рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рдПрдЙрдЯрд╛ рдШрдЯрдХ рд╣реБрди рд╕рдХреНрдЫред рддрдкрд╛рдЗрдБ рдорд╛рдерд┐рдХреЛ рд░реЗрдЦрд╛рдЪрд┐рддреНрд░ рдЕрдиреБрд╕рд╛рд░ рдмрд╛рдпрд╛рдБ рджреЗрдЦрд┐ рджрд╛рдпрд╛рдБ рд╕рдореНрдо рдпреА рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВ "рдЖрдмрд╛рджреА" рдЧрд░реНрдиреБрд╣реЛрд╕реНред
рд╣рд╛рд▓рдХреЛ рд╡рд┐рд╕реНрддреГрдд рд░реЗрдЦрд╛рдЪрд┐рддреНрд░ рдорд╛ рдЫ
рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреА, рдЙрдкрдирд╛рдо kgpooyamlall рдЖрджреЗрд╢ рдХреЛ рдмрд░рд╛рдмрд░ рдЫ kubectl get pods -o yaml --all-namespaces
.
рд╡рд┐рдХрд▓реНрдкрд╣рд░реВрдХреЛ рд╕рд╛рдкреЗрдХреНрд╖ рдХреНрд░рдо рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЫреИрди: рдЖрджреЗрд╢ kgpooyamlall
рдЖрджреЗрд╢ рдмрд░рд╛рдмрд░ рдЫ kgpoalloyaml
.
рддрдкрд╛рдИрдВрд▓реЗ рдЙрдкрдирд╛рдордХреЛ рд░реВрдкрдорд╛ рд╕рдмреИ рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрдкрд░реНрджреИрдиред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐ k
, kg
, klo
, ksys
, kgpo
рдкрдирд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рдпрд╕рдмрд╛рд╣реЗрдХ, рддрдкрд╛рдИрд▓реЗ рдЙрдкрдирд╛рдо рд░ рдирд┐рдпрдорд┐рдд рдЖрджреЗрд╢рд╣рд░реВ рд╡рд╛ рдЖрджреЗрд╢ рд▓рд╛рдЗрдирдорд╛ рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рд╕рдВрдпреЛрдЬрди рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ:
рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐:
- рдпрд╕рдХреЛ рд╕рдЯреНрдЯрд╛
kubectl proxy
рддрдкрд╛рдИрдВ рд▓реЗрдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫk proxy
. - рдпрд╕рдХреЛ рд╕рдЯреНрдЯрд╛
kubectl get roles
рддрдкрд╛рдИрдВ рд▓реЗрдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫkg roles
(рднреВрдорд┐рдХрд╛ рд╕реНрд░реЛрддрдХреЛ рд▓рд╛рдЧрд┐ рд╣рд╛рд▓ рдХреБрдиреИ рдЙрдкрдирд╛рдо рдЫреИрди)ред - рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреЛрдб рдХреЛ рд▓рд╛рдЧреА рдбрд╛рдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдХреЛ рд▓рд╛рдЧреА, рддрдкрд╛рдЗрдБ рдЖрджреЗрд╢ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ
kgpo my-pod тАФ kubectl get pod my-pod
.
рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджрд┐рдиреБрд╣реЛрд╕реН рдХрд┐ рдХреЗрд╣рд┐ рдЙрдкрдирд╛рдорд╣рд░реВрд▓рд╛рдИ рдЖрджреЗрд╢ рд░реЗрдЦрд╛ рддрд░реНрдХ рдЪрд╛рд╣рд┐рдиреНрдЫред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдЙрдкрдирд╛рдо kgpol
рдпрд╕рдХреЛ рдЕрд░реНрде kubectl get pods -l
ред рд╡рд┐рдХрд▓реНрдк -l
рдПрдЙрдЯрд╛ рддрд░реНрдХ рдЪрд╛рд╣рд┐рдиреНрдЫ - рдПрдХ рд▓реЗрдмрд▓ рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ред рдпрджрд┐ рддрдкрд╛рдЗрдБ рдЙрдкрдирд╛рдо рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ рдпреЛ рдЬрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ kgpol app=ui
.
рдХрд┐рдирднрдиреЗ рдХреЗрд╣реА рдЙрдкрдирд╛рдорд╣рд░реВрд▓рд╛рдИ рддрд░реНрдХрд╣рд░реВ рдЪрд╛рд╣рд┐рдиреНрдЫ, рдЙрдкрдирд╛рдорд╣рд░реВ a, f, рд░ l рдЕрдиреНрддрд┐рдордорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрдкрд░реНрдЫред
рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рддрдкрд╛рдИрдВрд▓реЗ рдпреЛ рдпреЛрдЬрдирд╛рдХреЛ рд╣реНрдпрд╛рдЩреНрдЧ рдкреНрд░рд╛рдкреНрдд рдЧрд░реЗрдкрдЫрд┐, рддрдкрд╛рдИрдВрд▓реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрди рдЪрд╛рд╣рдиреБрднрдПрдХреЛ рдЖрджреЗрд╢рд╣рд░реВрдмрд╛рдЯ рд╕рд╣рдЬ рд░реВрдкрдорд╛ рдЙрдкрдирд╛рдорд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рд░ рдзреЗрд░реИ рдЯрд╛рдЗрдкрд┐рдЩ рд╕рдордп рдмрдЪрдд рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред
рд╕реНрдерд╛рдкрдирд╛
kubectl-aliases рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди, рддрдкрд╛рдИрдВрд▓реЗ рдлрд╛рдЗрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ ~/.bashrc
рд╡рд╛ ~/.zshrc
:
source ~/.kubectl_aliases
рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛
рд╣рд╛рдореАрд▓реЗ рдкрд╣рд┐рд▓реЗ рднрдиреЗрдЭреИрдВ, рддрдкрд╛рдЗрдБ рдкреНрд░рд╛рдп: рдХрдорд╛рдВрдб рд▓рд╛рдЗрдирдорд╛ рдЙрдкрдирд╛рдордорд╛ рдердк рд╢рдмреНрджрд╣рд░реВ рдердкреНрдиреБрд╣реБрдиреНрдЫред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐:
$ kgpooyaml test-pod-d4b77b989
рдпрджрд┐ рддрдкрд╛рдЗрдБ kubectl рдЖрджреЗрд╢ рд╕рдорд╛рдкреНрддрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рддрдкрд╛рдЗрдБрд▓реЗ рд╕рдореНрднрд╡рддрдГ рд╕реНрд░реЛрдд рдирд╛рдорд╣рд░реВ рдЬрд╕реНрддреИ рдЪреАрдЬрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрднрдПрдХреЛ рдЫред рддрд░ рдЙрдкрдирд╛рдо рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд╛ рдпреЛ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ?
рдпреЛ рдПрдХ рдзреЗрд░реИ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдкреНрд░рд╢реНрди рд╣реЛ рдХрд┐рдирднрдиреЗ рдпрджрд┐ рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛рд▓реЗ рдХрд╛рдо рдЧрд░реНрджреИрди рднрдиреЗ, рддрдкрд╛рдИрдВрд▓реЗ рдЙрдкрдирд╛рдордХрд╛ рдХреЗрд╣реА рдлрд╛рдЗрджрд╛рд╣рд░реВ рдЧреБрдорд╛рдЙрдиреБрд╣реБрдиреЗрдЫред
рдЬрд╡рд╛рдл рддрдкрд╛рдИрд▓реЗ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рд░рд╣рдиреБ рднрдПрдХреЛ рд╢реЗрд▓рдорд╛ рдирд┐рд░реНрднрд░ рдЧрд░реНрджрдЫ:
- Zsh рдХреЛ рд▓рд╛рдЧрд┐, рдЙрдкрдирд╛рдо рдкреВрд░реНрдгрддрд╛ рдмрд╛рдХрд╕ рдмрд╛рд╣рд┐рд░ рдХрд╛рдо рдЧрд░реНрджрдЫред
- Bash рдХреЛ рд▓рд╛рдЧреА, рджреБрд░реНрднрд╛рдЧреНрдпрд╡рд╢, рдХреЗрд╣рд┐ рдХрд╛рдо рдХреЛ рд▓рд╛рдЧреА рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред
Bash рдорд╛ рдЙрдкрдирд╛рдорд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛ рд╕рдХреНрд╖рдо рдЧрд░реНрджреИ
Bash рдХреЛ рд╕рдорд╕реНрдпрд╛ рдпреЛ рд╣реЛ рдХрд┐ рдпрд╕рд▓реЗ рдЙрдкрдирд╛рдо (рдЬрд╕реНрддреИ Zsh рдЧрд░реНрдЫ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐) рд▓рд╛рдИ рдЬрдирд╛рдЙрдиреЗ рдЖрджреЗрд╢ рд╣реЛрдЗрди (рдЬрдм рддрдкрд╛рдИрдВрд▓реЗ рдЯреНрдпрд╛рдм рдерд┐рдЪреНрдиреБрд╣реБрдиреНрдЫ) рдкреВрд░рд╛ рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрджрдЫред рддрдкрд╛рдИрдВрд╕рдБрдЧ рд╕рдмреИ 800 рдЙрдкрдирд╛рдорд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рдкреВрд░рд╛ рдЧрд░реНрдиреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВ рдирднрдПрдХреЛрд▓реЗ, рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛рд▓реЗ рдХрд╛рдо рдЧрд░реНрджреИрдиред
рдкрд░рд┐рдпреЛрдЬрдирд╛
рдирд┐рдореНрдирдорд╛, рдо рдкрд╣рд┐рд▓реЗ рдХрд╕рд░реА рдкреВрд░реНрдг-рдЙрдкрдирд╛рдо рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреЗ рд░ рддреНрдпрд╕рдкрдЫрд┐ рд╕рдмреИ kubectl рдЙрдкрдирд╛рдорд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдкреВрд░реНрдгрддрд╛ рд╕рдХреНрд╖рдо рдЧрд░реНрди рдпрд╕рд▓рд╛рдИ рдХрд╕рд░реА рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрдиреЗ рднрдиреЗрд░ рд╡рд░реНрдгрди рдЧрд░реНрдиреЗрдЫреБред
рдкреВрд░реНрдг рдЙрдкрдирд╛рдо рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрджреИ
рд╕рдмреИ рднрдиреНрджрд╛ рдкрд╣рд┐рд▓реЗ, рдкреВрд░реНрдг рдЙрдкрдирд╛рдо рдорд╛ рдирд┐рд░реНрднрд░ рдЧрд░реНрджрдЫ
MacOS рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдиреЛрдЯ: kubectl autocompletion рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬрд╕реНрддреИ, рдкреВрд░реНрдг рдЙрдкрдирд╛рдорд▓реЗ Bash 3.2 рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджреИрди, рдЬреБрди MacOS рдорд╛ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реЛред рд╡рд┐рд╢реЗрд╖ рдЧрд░реА, рдкреВрд░реНрдг рдЙрдкрдирд╛рдо bash-completion v2 рдорд╛ рдирд┐рд░реНрднрд░ рдЧрд░реНрджрдЫ (brew install bash-completion@2
), рдЬрд╕рд▓рд╛рдИ рдХрдореНрддрд┐рдорд╛ рдмрд╛рд╕ рек.рез рдЪрд╛рд╣рд┐рдиреНрдЫред рдпрд╕рдХреЛ рдорддрд▓рдм рдпреЛ рд╣реЛ рдХрд┐ MacOS рдорд╛ рдкреВрд░реНрдг-рдЙрдкрдирд╛рдо рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рддрдкрд╛рдИрдВрд▓реЗ Bash рдХреЛ рдирдпрд╛рдБ рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред
рддрдкрд╛рдИрдВрд▓реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдбрд╛рдЙрдирд▓реЛрдб рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ ~/.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 рдкреНрд▓рдЧрдЗрдирд╣рд░реВ рдирд╛рдо рдЬрд╕реНрддреИ рд╕рд╛рдзрд╛рд░рдг рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдпреЛрдЧреНрдп рдлрд╛рдЗрд▓рд╣рд░реВрдХреЛ рд░реВрдкрдорд╛ рд╡рд┐рддрд░рдг рдЧрд░рд┐рдиреНрдЫ kubectl-x
ред рдЙрдкрд╕рд░реНрдЧ kubectl-
рдЖрд╡рд╢реНрдпрдХ рдЫ, рддреНрдпрд╕рдкрдЫрд┐ рдирдпрд╛рдБ kubectl subcommand рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдкреНрд▓рдЧрдЗрди рдХрд▓ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред
рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рд╣реЗрд▓реЛ рдкреНрд▓рдЧрдЗрдирд▓рд╛рдИ рдлрд╛рдЗрд▓рдХреЛ рд░реВрдкрдорд╛ рд╡рд┐рддрд░рдг рдЧрд░рд┐рдиреЗрдЫ kubectl-hello
.
рдкреНрд▓рдЧрдЗрди рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди, рддрдкрд╛рдИрдВрд▓реЗ рдлрд╛рдЗрд▓ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ kubectl-x
рддрдкрд╛рдИрдВрдХреЛ PATH рдорд╛ рдХреБрдиреИ рдкрдирд┐ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдорд╛ рд░ рдпрд╕рд▓рд╛рдИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдпреЛрдЧреНрдп рдмрдирд╛рдЙрдиреБрд╣реЛрд╕реН, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐ chmod +x
ред рдпрд╕ рдкрдЫрд┐ рддреБрд░реБрдиреНрддреИ рддрдкрд╛рдИрд▓реЗ рдкреНрд▓рдЧрдЗрдирд▓рд╛рдИ рдХрд▓ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ kubectl x
.
рддрдкрд╛рдЗрдБ рддрдкрд╛рдЗрдБрдХреЛ рдкреНрд░рдгрд╛рд▓реАрдорд╛ рд╣рд╛рд▓ рд╕реНрдерд╛рдкрд┐рдд рднрдПрдХрд╛ рд╕рдмреИ рдкреНрд▓рдЧрдЗрдирд╣рд░реВ рд╕реВрдЪреАрдмрджреНрдз рдЧрд░реНрди рдирд┐рдореНрди рдЖрджреЗрд╢ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ:
$ kubectl plugin list
рдпрджрд┐ рддрдкрд╛рдЗрдБрд╕рдБрдЧ рдПрдЙрдЯреИ рдирд╛рдордХреЛ рдзреЗрд░реИ рдкреНрд▓рдЧрдЗрдирд╣рд░реВ рдЫрдиреН рднрдиреЗ, рд╡рд╛ рдпрджрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдпреЛрдЧреНрдп рдирднрдПрдХреЛ рдкреНрд▓рдЧрдЗрди рдлрд╛рдЗрд▓ рдЫ рднрдиреЗ рдпреЛ рдЖрджреЗрд╢рд▓реЗ рдЪреЗрддрд╛рд╡рдиреАрд╣рд░реВ рдкрдирд┐ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрдиреЗрдЫред
Krew рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдкреНрд▓рдЧрдЗрдирд╣рд░реВ рдЦреЛрдЬреНрджреИ рд░ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрджреИ
Kubectl рдкреНрд▓рдЧрдЗрдирд╣рд░реВ рд╕рд╛рдЭреЗрджрд╛рд░реА рд╡рд╛ рд╕рдлреНрдЯрд╡реЗрдпрд░ рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ рдЬрд╕реНрддреИ рдкреБрди: рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рддрд░ рддрдкрд╛рдИрд▓реЗ рдЕрд░реВрд▓реЗ рд╕рд╛рдЭрд╛ рдЧрд░реЗрдХреЛ рдкреНрд▓рдЧрдЗрдирд╣рд░реВ рдХрд╣рд╛рдБ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ?
Krew kubectl рдкреНрд▓рдЧрдЗрдирд╣рд░реВрдХреЛ рд╕реВрдЪреА рд╣реЛ рдЬреБрди рддрдкрд╛рдИрдВрд▓реЗ рдЪрдпрди рд░ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдПрдХреИ рд╕рдордпрдорд╛, Krew рдкрдирд┐ kubectl рдХреЛ рд▓рд╛рдЧреА рдПрдХ рдкреНрд▓рдЧрдЗрди рд╣реЛред
рдпрд╕рдХреЛ рдорддрд▓рдм рдпреЛ рд╣реЛ рдХрд┐ Krew рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреБ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдкрдорд╛ рдХреБрдиреИ рдкрдирд┐ рдЕрдиреНрдп kubectl рдкреНрд▓рдЧрдЗрди рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рдЬрд╕реНрддреИ рдХрд╛рдо рдЧрд░реНрджрдЫред рддрдкрд╛рдИрдВ рдорд╛ рд╡рд┐рд╕реНрддреГрдд рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ рдкрд╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ
рд╕рдмреИрднрдиреНрджрд╛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг Krew рдЖрджреЗрд╢рд╣рд░реВ рд╣реБрдиреН:
# ╨Я╨╛╨╕╤Б╨║ ╨▓ ╤Б╨┐╨╕╤Б╨║╨╡ ╨┐╨╗╨░╨│╨╕╨╜╨╛╨▓
$ kubectl krew search [<query>]
# ╨Я╨╛╤Б╨╝╨╛╤В╤А╨╡╤В╤М ╨╕╨╜╤Д╨╛╤А╨╝╨░╤Ж╨╕╤О ╨╛ ╨┐╨╗╨░╨│╨╕╨╜╨╡
$ kubectl krew info <plugin>
# ╨г╤Б╤В╨░╨╜╨╛╨▓╨╕╤В╤М ╨┐╨╗╨░╨│╨╕╨╜
$ kubectl krew install <plugin>
# ╨Ю╨▒╨╜╨╛╨▓╨╕╤В╤М ╨▓╤Б╨╡ ╨┐╨╗╨░╨│╨╕╨╜╤Л ╨┤╨╛ ╨┐╨╛╤Б╨╗╨╡╨┤╨╜╨╡╨╣ ╨▓╨╡╤А╤Б╨╕╨╕
$ kubectl krew upgrade
# ╨Я╨╛╤Б╨╝╨╛╤В╤А╨╡╤В╤М ╨▓╤Б╨╡ ╨┐╨╗╨░╨│╨╕╨╜╤Л, ╤Г╤Б╤В╨░╨╜╨╛╨▓╨╗╨╡╨╜╨╜╤Л╨╡ ╤З╨╡╤А╨╡╨╖ Krew
$ kubectl krew list
# ╨Ф╨╡╨╕╨╜╤Б╤В╨░╨╗╨╗╨╕╤А╨╛╨▓╨░╤В╤М ╨┐╨╗╨░╨│╨╕╨╜
$ kubectl krew remove <plugin>
рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджрд┐рдиреБрд╣реЛрд╕реН рдХрд┐ Krew рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдкреНрд▓рдЧрдЗрдирд╣рд░реВ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрджрд╛ рдорд╛рдерд┐ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рдорд╛рдирдХ рд╡рд┐рдзрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдкреНрд▓рдЧрдЗрдирд╣рд░реВ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рд╣рд╕реНрддрдХреНрд╖реЗрдк рдЧрд░реНрджреИрдиред
рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджрд┐рдиреБрд╣реЛрд╕реН рдХрд┐ рдЖрджреЗрд╢ kubectl krew list
рдХреЗрд╡рд▓ рдкреНрд▓рдЧрдЗрдирд╣рд░реВ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрджрдЫ рдЬреБрди Krew рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ, рдЬрдмрдХрд┐ рдЖрджреЗрд╢ kubectl plugin list
рд╕рдмреИ рдкреНрд▓рдЧрдЗрдирд╣рд░реВ рд╕реВрдЪреАрдмрджреНрдз рдЧрд░реНрджрдЫ, рддреНрдпреЛ рд╣реЛ, рддреА Krew рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░рд┐рдПрдХрд╛ рд░ рдЕрдиреНрдп рд╡рд┐рдзрд┐рд╣рд░реВрджреНрд╡рд╛рд░рд╛ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░рд┐рдПрдХрд╛ред
рдЕрдиреНрдпрддреНрд░ рдкреНрд▓рдЧрдЗрдирд╣рд░реВ рдЦреЛрдЬреНрджреИ
Krew рдПрдХ рдпреБрд╡рд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реЛ, рд╣рд╛рд▓ рдпрд╕рдХреЛ рдорд╛
рдо GitHub рд╕реЗрдХреНрд╕рди рд╣реЗрд░реНрди рд╕рд┐рдлрд╛рд░рд┐рд╕ рдЧрд░реНрджрдЫреБ
рддрдкрд╛рдИрдВрдХреЛ рдЖрдлреНрдиреИ рдкреНрд▓рдЧрдЗрдирд╣рд░реВ рд▓реЗрдЦреНрджреИ
рддрдкрд╛рдИрдВ рдЖрдлреИрд▓реЗ рд╕рдХреНрдиреБрд╣реБрдиреНрдЫkubectl-x
рд░ рдорд╛рдерд┐ рд╡рд░реНрдгрди рдЧрд░реЗ рдЕрдиреБрд╕рд╛рд░ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реНред
рдлрд╛рдЗрд▓ рдПрдХ bash рд╕реНрдХреНрд░рд┐рдкреНрдЯ, рдПрдХ python рд╕реНрдХреНрд░рд┐рдкреНрдЯ, рд╡рд╛ рдПрдХ рд╕рдВрдХрд▓рд┐рдд GO рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣реБрди рд╕рдХреНрдЫ - рдпреЛ рдлрд░рдХ рдкрд░реНрджреИрдиред рдПрдХ рдорд╛рддреНрд░ рд╕рд░реНрдд рдпреЛ рдЕрдкрд░реЗрдЯрд┐рдЩ рд╕рд┐рд╕реНрдЯрдо рдорд╛ рдкреНрд░рддреНрдпрдХреНрд╖ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред
рдЕрд╣рд┐рд▓реЗ рдПрдЙрдЯрд╛ рдЙрджрд╛рд╣рд░рдг рдкреНрд▓рдЧрдЗрди рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реМрдВред рдЕрдШрд┐рд▓реНрд▓реЛ рдЦрдгреНрдбрдорд╛, рддрдкрд╛рдИрдВрд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рдкреЛрдбрдХрд╛ рд▓рд╛рдЧрд┐ рдХрдиреНрдЯреЗрдирд░рд╣рд░реВ рд╕реВрдЪреАрдмрджреНрдз рдЧрд░реНрди kubectl рдЖрджреЗрд╢ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрднрдпреЛред рдпреЛ рдХрдорд╛рдгреНрдбрд▓рд╛рдИ рдкреНрд▓рдЧрдЗрдирдорд╛ рдкрд░рд┐рдгрдд рдЧрд░реНрди рд╕рдЬрд┐рд▓реЛ рдЫ рдЬрд╕рд▓рд╛рдИ рддрдкрд╛рдИрд▓реЗ рдХрд▓ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐ред kubectl img
.
рдПрдЙрдЯрд╛ рдлрд╛рдЗрд▓ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН kubectl-img
рдирд┐рдореНрди рд╕рд╛рдордЧреНрд░реА:
#!/bin/bash
kubectl get pods -o custom-columns='NAME:metadata.name,IMAGES:spec.containers[*].image'
рдЕрдм рдлрд╛рдЗрд▓рд▓рд╛рдИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдпреЛрдЧреНрдп рдмрдирд╛рдЙрдиреБрд╣реЛрд╕реН chmod +x kubectl-img
рд░ рдпрд╕рд▓рд╛рдИ рддрдкрд╛рдИрдВрдХреЛ PATH рдорд╛ рдХреБрдиреИ рдкрдирд┐ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдорд╛ рд╕рд╛рд░реНрдиреБрд╣реЛрд╕реНред рдпрд╕ рдкрдЫрд┐ рддреБрд░реБрдиреНрддреИ рддрдкрд╛рдЗрдБ рдкреНрд▓рдЧрдЗрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ kubectl img
.
рдЙрд▓реНрд▓реЗрдЦ рдЧрд░рд┐рдП рдЕрдиреБрд╕рд╛рд░, kubectl рдкреНрд▓рдЧрдЗрдирд╣рд░реВ рдХреБрдиреИ рдкрдирд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рд╡рд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдЩ рднрд╛рд╖рд╛рдорд╛ рд▓реЗрдЦреНрди рд╕рдХрд┐рдиреНрдЫред рдпрджрд┐ рддрдкрд╛рдЗрдБ рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ рд╣реБрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рдкреНрд▓рдЧрдЗрди рднрд┐рддреНрд░рдмрд╛рдЯ рд╕рдЬрд┐рд▓реИ kubectl рдХрд▓ рдЧрд░реНрди рд╕рдХреНрд╖рдо рд╣реБрдиреБрдХреЛ рдлрд╛рдЗрджрд╛ред рдпрджреНрдпрдкрд┐, рддрдкрд╛рдИрд▓реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛рд╣рд░реВрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдердк рдЬрдЯрд┐рд▓ рдкреНрд▓рдЧрдЗрдирд╣рд░реВ рд▓реЗрдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ
рддрдкрд╛рдИрдВрдХреЛ рдкреНрд▓рдЧрдЗрдирд╣рд░реВ рдХрд╕рд░реА рд╕рд╛рдЭреЗрджрд╛рд░реА рдЧрд░реНрдиреЗ
рдпрджрд┐ рддрдкрд╛рдИрдВ рдЖрдлреНрдиреЛ рдкреНрд▓рдЧрдЗрдирд╣рд░реВ рдЕрд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрдпреЛрдЧреА рд╣реБрди рд╕рдХреНрдЫ рднрдиреНрдиреЗ рд╕реЛрдЪреНрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рдпрд╕рд▓рд╛рдИ GitHub рдорд╛ рд╕рд╛рдЭреЗрджрд╛рд░реА рдЧрд░реНрди рд╕реНрд╡рддрдиреНрддреНрд░ рдорд╣рд╕реБрд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рд╢реАрд░реНрд╖рдХрдорд╛ рдердкреНрди рдирд┐рд╢реНрдЪрд┐рдд рд╣реБрдиреБрд╣реЛрд╕реН
рддрдкрд╛рдИрдВ рдЖрдлреНрдиреЛ рдкреНрд▓рдЧрдЗрди рдердкреНрди рдЕрдиреБрд░реЛрдз рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ
рдЖрджреЗрд╢ рдкреВрд░рд╛
рдкреНрд▓рдЧрдЗрдирд╣рд░реВрд▓реЗ рд╣рд╛рд▓ рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛рд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджреИрдиред рддреНрдпреЛ рд╣реЛ, рддрдкрд╛рдИрдВрд▓реЗ рдкреНрд▓рдЧрдЗрдирдХреЛ рдкреВрд░рд╛ рдирд╛рдо рд░ рддрд░реНрдХрд╣рд░реВрдХреЛ рдкреВрд░рд╛ рдирд╛рдо рдкреНрд░рд╡рд┐рд╖реНрдЯ рдЧрд░реНрдиреБрдкрд░реНрдЫред
рдпрд╕ рдкреНрд░рдХрд╛рд░реНрдпрдХреЛ рд▓рд╛рдЧрд┐ GitHub kubectl рднрдгреНрдбрд╛рд░ рдЫ
рднрд╛рдЧреНрдпрд▓реЗ рд╕рд╛рде рджрд┐рдУрд╕реН!!!
рдмрд┐рд╖рдпрдорд╛ рдЕрд░реБ рдХреЗ рдкрдвреНрдиреБ рд╣реЛрд▓рд╛:
Kubernetes рдорд╛ рд╕реНрд╡рдд: рд╕реНрдХреЗрд▓рд┐рдЩ рдХреЛ рддреАрди рд╕реНрддрд░ рд░ рдХрд╕рд░реА рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ .рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рд▓рд╛рдЧрд┐ рдЯреЗрдореНрдкреНрд▓реЗрдЯрдХреЛ рд╕рд╛рде рдкрд╛рдЗрд░реЗрд╕реАрдХреЛ рднрд╛рд╡рдирд╛рдорд╛ Kubernetes .Telegram рдорд╛ Kubernetes рдХреЛ рдЖрд╕рдкрд╛рд╕ рд╣рд╛рдореНрд░реЛ рдЪреНрдпрд╛рдирд▓ .
рд╕реНрд░реЛрдд: www.habr.com