рдЬрд░ рддреБрдореНрд╣реА Kubernetes рд╕рд╣ рдХрд╛рдо рдХрд░рдд рдЕрд╕рд╛рд▓, рддрд░ kubectl рд╣реА рдХрджрд╛рдЪрд┐рдд рддреБрдореНрд╣реА рд╕рд░реНрд╡рд╛рдд рдЬрд╛рд╕реНрдд рд╡рд╛рдкрд░рдд рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдпреБрдЯрд┐рд▓рд┐рдЯреАрдВрдкреИрдХреА рдПрдХ рдЖрд╣реЗ. рдЖрдгрд┐ рдЬреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣реА рдПрдЦрд╛рджреНрдпрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рд╛рдзрдирд╛рд╕рд╣ рдХрд╛рдо рдХрд░рддрд╛рдирд╛ рдмрд░рд╛рдЪ рд╡реЗрд│ рдШрд╛рд▓рд╡рддрд╛, рддреЗрд╡реНрд╣рд╛ рддреНрдпрд╛рдЪрд╛ рдЪрд╛рдВрдЧрд▓рд╛ рдЕрднреНрдпрд╛рд╕ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рддреЗ рдкреНрд░рднрд╛рд╡реАрдкрдгреЗ рдХрд╕реЗ рд╡рд╛рдкрд░рд╛рд╡реЗ рд╣реЗ рд╢рд┐рдХрдгреНрдпрд╛рд╕рд╛рдареА рддреЗ рдкреИрд╕реЗ рджреЗрддреЗ.
рд╕рдВрдШ
рд▓реЗрдЦрдХрд╛рдЪреНрдпрд╛ рдорддреЗ, рд▓реЗрдЦрд╛рдЪреЗ рдЙрджреНрджрд┐рд╖реНрдЯ рд╣реЗ рдЖрд╣реЗ рдХреА рдХреБрдмрд░рдиреЗрдЯрд╕рд╣ рддреБрдордЪреЗ рджреИрдирдВрджрд┐рди рдХрд╛рд░реНрдп рдХреЗрд╡рд│ рдЕрдзрд┐рдХ рдХрд╛рд░реНрдпрдХреНрд╖рдордЪ рдирд╛рд╣реА рддрд░ рдЕрдзрд┐рдХ рдЖрдирдВрджрджрд╛рдпрдХ рджреЗрдЦреАрд▓ рдЖрд╣реЗ!
рдкрд░рд┐рдЪрдп: kubectl рдореНрд╣рдгрдЬреЗ рдХрд╛рдп
рддреБрдореНрд╣реА kubectl рдЕрдзрд┐рдХ рдкреНрд░рднрд╛рд╡реАрдкрдгреЗ рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕ рд╢рд┐рдХрдгреНрдпрд╛рдкреВрд░реНрд╡реА, рддреБрдореНрд╣рд╛рд▓рд╛ рддреЗ рдХрд╛рдп рдЖрд╣реЗ рдЖрдгрд┐ рддреЗ рдХрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ рдпрд╛рдЪреА рдореВрд▓рднреВрдд рдорд╛рд╣рд┐рддреА рдорд┐рд│рд╡рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.
рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдЪреНрдпрд╛ рджреГрд╖реНрдЯреАрдХреЛрдирд╛рддреВрди, kubectl рд╣реЗ рдПрдХ рдирд┐рдпрдВрддреНрд░рдг рдкреЕрдиреЗрд▓ рдЖрд╣реЗ рдЬреЗ рддреБрдореНрд╣рд╛рд▓рд╛ Kubernetes рдСрдкрд░реЗрд╢рдиреНрд╕ рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ.
рддрд╛рдВрддреНрд░рд┐рдХрджреГрд╖реНрдЯреНрдпрд╛, kubectl рдПрдХ Kubernetes API рдХреНрд▓рд╛рдпрдВрдЯ рдЖрд╣реЗ.
Kubernetes API рдПрдХ HTTP REST API рдЖрд╣реЗ. рд╣рд╛ API рдЦрд░рд╛ Kubernetes рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлреЗрд╕ рдЖрд╣реЗ, рдЬреНрдпрд╛рджреНрд╡рд╛рд░реЗ рддреЛ рдкреВрд░реНрдгрдкрдгреЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ. рдпрд╛рдЪрд╛ рдЕрд░реНрде рдЕрд╕рд╛ рдХреА рдкреНрд░рддреНрдпреЗрдХ Kubernetes рдСрдкрд░реЗрд╢рди API рдПрдВрдбрдкреЙрдЗрдВрдЯ рдореНрд╣рдгреВрди рдЙрдШрдб рдХреЗрд▓реЗ рдЬрд╛рддреЗ рдЖрдгрд┐ рддреНрдпрд╛ рдПрдВрдбрдкреЙрдЗрдВрдЯрд▓рд╛ HTTP рд╡рд┐рдирдВрддреАрд╕рд╣ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ.
рдореНрд╣рдгреВрди, kubectl рдЪреЗ рдореБрдЦреНрдп рдХрд╛рдо Kubernetes API рд▓рд╛ HTTP рд╡рд┐рдирдВрддреНрдпрд╛ рдХрд░рдгреЗ рдЖрд╣реЗ:
Kubernetes рдПрдХ рдкреВрд░реНрдгрдкрдгреЗ рд╕рдВрд╕рд╛рдзрди-рджреЗрдгрд╛рд░рдВ рдкреНрд░рдгрд╛рд▓реА рдЖрд╣реЗ. рдпрд╛рдЪрд╛ рдЕрд░реНрде рддреЗ рд╕рдВрд╕рд╛рдзрдирд╛рдВрдЪреА рдЕрдВрддрд░реНрдЧрдд рд╕реНрдерд┐рддреА рд░рд╛рдЦрддреЗ рдЖрдгрд┐ рд╕рд░реНрд╡ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдСрдкрд░реЗрд╢рдиреНрд╕ CRUD рдСрдкрд░реЗрд╢рдиреНрд╕ рдЖрд╣реЗрдд.
рд╣реА рд╕рдВрд╕рд╛рдзрдиреЗ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░реВрди рддреБрдореНрд╣реА рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдЪреНрдпрд╛ рдкреВрд░реНрдг рдирд┐рдпрдВрддреНрд░рдгрд╛рдд рдЖрд╣рд╛рдд рдЖрдгрд┐ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рд╕рдВрд╕рд╛рдзрдирд╛рдВрдЪреНрдпрд╛ рд╕рдзреНрдпрд╛рдЪреНрдпрд╛ рд╕реНрдерд┐рддреАрдЪреНрдпрд╛ рдЖрдзрд╛рд░рд╛рд╡рд░ рдХрд╛рдп рдХрд░рд╛рд╡реЗ рд╣реЗ рд╢реЛрдзреВрди рдХрд╛рдврддрд╛рдд. рдпрд╛ рдХрд╛рд░рдгрд╛рд╕реНрддрд╡, Kubernetes API рд╕рдВрджрд░реНрдн рддреНрдпрд╛рдВрдЪреНрдпрд╛ рд╕рдВрдмрдВрдзрд┐рдд рдСрдкрд░реЗрд╢рдиреНрд╕рд╕рд╣ рд╕рдВрд╕рд╛рдзрди рдкреНрд░рдХрд╛рд░рд╛рдВрдЪреА рд╕реВрдЪреА рдореНрд╣рдгреВрди рдЖрдпреЛрдЬрд┐рдд рдХреЗрд▓рд╛ рдЖрд╣реЗ.
рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд╛рд╣реВ.
рд╕рдордЬрд╛ рддреБрдореНрд╣рд╛рд▓рд╛ ReplicaSet рд╕рдВрд╕рд╛рдзрди рддрдпрд╛рд░ рдХрд░рд╛рдпрдЪреЗ рдЖрд╣реЗ. рд╣реЗ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рддреБрдореНрд╣реА рдирд╛рд╡рд╛рдиреЗ рдлрд╛рдЗрд▓рдордзреНрдпреЗ ReplicaSet рдЪреЗ рд╡рд░реНрдгрди рдХрд░рд╛ replicaset.yaml
, рдирдВрддрд░ рдХрдорд╛рдВрдб рдЪрд╛рд▓рд╡рд╛:
$ kubectl create -f replicaset.yaml
рд╣реЗ рдПрдХ ReplicaSet рд╕рдВрд╕рд╛рдзрди рддрдпрд╛рд░ рдХрд░реЗрд▓. рдкрдг рдкрдбрджреНрдпрд╛рдорд╛рдЧреЗ рдХрд╛рдп рд╣реЛрддреЗ?
Kubernetes рдХрдбреЗ ReplicaSet рдирд┐рд░реНрдорд┐рддреА рдСрдкрд░реЗрд╢рди рдЖрд╣реЗ. рдЗрддрд░ рдХреЛрдгрддреНрдпрд╛рд╣реА рдСрдкрд░реЗрд╢рдирдкреНрд░рдорд╛рдгреЗ, рд╣реЗ API рдПрдВрдбрдкреЙрдЗрдВрдЯ рдореНрд╣рдгреВрди рдЙрдШрдб рдЖрд╣реЗ. рдпрд╛ рдСрдкрд░реЗрд╢рдирд╕рд╛рдареА рд╡рд┐рд╢рд┐рд╖реНрдЯ API рдПрдВрдбрдкреЙрдЗрдВрдЯ рдЕрд╕реЗ рджрд┐рд╕рддреЗ:
POST /apis/apps/v1/namespaces/{namespace}/replicasets
рд╕рд░реНрд╡ Kubernetes рдСрдкрд░реЗрд╢рдиреНрд╕рд╕рд╛рдареА API рдПрдВрдбрдкреЙрдЗрдВрдЯ рдпреЗрдереЗ рдЖрдврд│реВ рд╢рдХрддрд╛рдд
рдореНрд╣рдгреВрди, рдЬреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣реА рд╡рд░реАрд▓ рдХрдорд╛рдВрдб рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рддрд╛, рддреЗрд╡реНрд╣рд╛ kubectl рд╡рд░реАрд▓ API рдПрдВрдбрдкреЙрдЗрдВрдЯрд▓рд╛ HTTP POST рд╡рд┐рдирдВрддреА рдкрд╛рдард╡рддреЗ. рддреБрдореНрд╣реА рдлрд╛рдЗрд▓рдордзреНрдпреЗ рджрд┐рд▓реЗрд▓реА ReplicaSet рд╡реНрдпрд╛рдЦреНрдпрд╛ replicaset.yaml
, рд╡рд┐рдирдВрддреАрдЪреНрдпрд╛ рдореБрдЦреНрдп рднрд╛рдЧрд╛рдордзреНрдпреЗ рдкрд╛рдард╡рд▓реЗ рдЬрд╛рддреЗ.
рдХреБрдмреЗрд░рдиреЗрдЯ рдХреНрд▓рд╕реНрдЯрд░рд╢реА рд╕рдВрд╡рд╛рдж рд╕рд╛рдзрдгрд╛рд▒реНрдпрд╛ рд╕рд░реНрд╡ рдХрдорд╛рдВрдбрд╕рд╛рдареА рдХреБрдмреЗрдХреНрдЯрд▓ рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ. рдпрд╛ рд╕рд░реНрд╡ рдкреНрд░рдХрд░рдгрд╛рдВрдордзреНрдпреЗ, kubectl рдлрдХреНрдд рдпреЛрдЧреНрдп Kubernetes API рдПрдВрдбрдкреЙрдЗрдВрдЯреНрд╕рдирд╛ HTTP рд╡рд┐рдирдВрддреНрдпрд╛ рдХрд░рддреЗ.
рдХреГрдкрдпрд╛ рд▓рдХреНрд╖рд╛рдд рдШреНрдпрд╛ рдХреА рддреБрдореНрд╣реА рдпреБрдЯрд┐рд▓рд┐рдЯреА рд╡рд╛рдкрд░реВрди рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдкреВрд░реНрдгрдкрдгреЗ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░реВ рд╢рдХрддрд╛ рдЬрд╕реЗ рдХреА curl
Kubernetes API рд▓рд╛ рд╕реНрд╡рддрдГ HTTP рд╡рд┐рдирдВрддреНрдпрд╛ рдкрд╛рдард╡реВрди. Kubectl рдлрдХреНрдд рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ API рд╡рд╛рдкрд░рдгреЗ рд╕реЛрдкреЗ рдХрд░рддреЗ.
рдХреБрдмреЗрдХреНрдЯрд▓ рдореНрд╣рдгрдЬреЗ рдХрд╛рдп рдЖрдгрд┐ рддреЗ рдХрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ рдпрд╛рдЪреА рд╣реА рдореВрд▓рднреВрдд рдорд╛рд╣рд┐рддреА рдЖрд╣реЗ. рдкрд░рдВрддреБ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ API рдмрджреНрджрд▓ рдЖрдгрдЦреА рдПрдХ рдЧреЛрд╖реНрдЯ рдЖрд╣реЗ рдЬреА рдкреНрд░рддреНрдпреЗрдХ kubectl рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рд▓рд╛ рдорд╛рд╣рд┐рдд рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдЪреНрдпрд╛ рдЖрддреАрд▓ рдЬрдЧрд╛рдХрдбреЗ рдПрдХ рдЭрдЯрдХрди рдирдЬрд░ рдЯрд╛рдХреВрдпрд╛.
рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдЪреЗ рдЖрдВрддрд░рд┐рдХ рдЬрдЧ
рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдордзреНрдпреЗ рд╕реНрд╡рддрдВрддреНрд░ рдШрдЯрдХрд╛рдВрдЪрд╛ рд╕рдВрдЪ рдЕрд╕рддреЛ рдЬреЛ рдХреНрд▓рд╕реНрдЯрд░ рдиреЛрдбреНрд╕рд╡рд░ рд╕реНрд╡рддрдВрддреНрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореНрд╣рдгреВрди рдЪрд╛рд▓рддреЛ. рдХрд╛рд╣реА рдШрдЯрдХ рдорд╛рд╕реНрдЯрд░ рдиреЛрдбреНрд╕рд╡рд░ рдЪрд╛рд▓рддрд╛рдд, рдЗрддрд░ рд╡рд░реНрдХрд░ рдиреЛрдбреНрд╕рд╡рд░, рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рд╕реНрд╡рддрдГрдЪреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдп рдХрд░рдд рдЕрд╕рддреЛ.
рдореБрдЦреНрдп рдиреЛрдбреНрд╕рд╡рд░реАрд▓ рд╕рд░реНрд╡рд╛рдд рдорд╣рддреНрд╡рд╛рдЪреЗ рдШрдЯрдХ рдпреЗрдереЗ рдЖрд╣реЗрдд:
- рднрд╛рдВрдбрд╛рд░ - рд╕рдВрд╕рд╛рдзрди рд╡реНрдпрд╛рдЦреНрдпрд╛ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рддреЗ (
рд╕рд╣рд╕рд╛ рддреЗ рдЗ ). - 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 рд╡реНрдпрд╛рдЦреНрдпреЗрддреАрд▓ рдкреЙрдб рдЯреЗрдореНрдкрд▓реЗрдЯрдиреБрд╕рд╛рд░) рдЖрдгрд┐ рддреНрдпрд╛рдВрдирд╛ рд╕реНрдЯреЛрд░реЗрдЬрдордзреНрдпреЗ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рддреЛ.
рдирд╡реАрди рдкреЙрдбреНрд╕рдЪреА рдирд┐рд░реНрдорд┐рддреА рд╢реЗрдбреНрдпреБрд▓рд░рджреНрд╡рд╛рд░реЗ рдХреЗрд▓реА рдЬрд╛рддреЗ рдЬреА рдкреЙрдб рд╡реНрдпрд╛рдЦреНрдпрд╛рдВрдЪрд╛ рдорд╛рдЧреЛрд╡рд╛ рдареЗрд╡рддреЗ рдЬреА рдЕрджреНрдпрд╛рдк рдХрд╛рдордЧрд╛рд░ рдиреЛрдбреНрд╕рд╕рд╛рдареА рд╢реЗрдбреНрдпреВрд▓ рдХреЗрд▓реЗрд▓реА рдирд╛рд╣реА. рд╢реЗрдбреНрдпреБрд▓рд░ рдкреНрд░рддреНрдпреЗрдХ рдкреЙрдбрд╕рд╛рдареА рдпреЛрдЧреНрдп рд╡рд░реНрдХрд░ рдиреЛрдб рдирд┐рд╡рдбрддреЛ рдЖрдгрд┐ рдкреЙрдбрдЪреНрдпрд╛ рд╡реНрдпрд╛рдЦреНрдпрд╛ рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрдордзреНрдпреЗ рдЕрдкрдбреЗрдЯ рдХрд░рддреЛ.
рд▓рдХреНрд╖рд╛рдд рдШреНрдпрд╛ рдХреА рдпрд╛ рдмрд┐рдВрджреВрдкрд░реНрдпрдВрдд, рдХреНрд▓рд╕реНрдЯрд░рдордзреНрдпреЗ рдХреБрдареЗрд╣реА рд╡рд░реНрдХрд▓реЛрдб рдХреЛрдб рдЪрд╛рд▓реВ рдирд╡реНрд╣рддрд╛. рдЖрддрд╛рдкрд░реНрдпрдВрдд рдЬреЗ рдХрд╛рд╣реА рдХреЗрд▓реЗ рдЖрд╣реЗ - рд╣реЗ рдорд╛рд╕реНрдЯрд░ рдиреЛрдбрд╡рд░реАрд▓ рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрдордзреНрдпреЗ рд╕рдВрд╕рд╛рдзрдиреЗ рддрдпрд╛рд░ рдХрд░рдгреЗ рдЖрдгрд┐ рдЕрджреНрдпрддрдирд┐рдд рдХрд░рдгреЗ рдЖрд╣реЗ.
рд╢реЗрд╡рдЯрдЪрд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреБрдмреЗрд▓реЗрдЯреНрд╕ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддреЛ, рдЬреЗ рддреНрдпрд╛рдВрдЪреНрдпрд╛ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдиреЛрдбреНрд╕рд╕рд╛рдареА рд╢реЗрдбреНрдпреВрд▓ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдкреЙрдбреНрд╕рдЪреЗ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рддрд╛рдд. рд╡рд░реНрдХрд░ рдиреЛрдбрдЪреЗ рдХреБрдмреЗрд▓реЗрдЯ рдЬреНрдпрд╛рд╡рд░ рддреБрдордЪреА ReplicaSet рдкреЙрдбреНрд╕ рдЗрдиреНрд╕реНрдЯреЙрд▓ рдХреЗрд▓реА рдЖрд╣реЗрдд рддреНрдпрд╛рдВрдиреА рдХрдВрдЯреЗрдирд░ рд░рдирдЯрд╛рдЗрдорд▓рд╛, рдЬрд╕реЗ рдХреА Docker рд▓рд╛ рдЖрд╡рд╢реНрдпрдХ рдХрдВрдЯреЗрдирд░ рдЗрдореЗрдЬ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рддреНрдпрд╛ рдЪрд╛рд▓рд╡рд╛рдпрд▓рд╛ рд╕рд╛рдВрдЧрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.
рдпрд╛ рдЯрдкреНрдкреНрдпрд╛рд╡рд░, рддреБрдордЪрд╛ ReplicaSet рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╢реЗрд╡рдЯреА рдЪрд╛рд▓реВ рдЖрд╣реЗ!
Kubernetes API рдЪреА рднреВрдорд┐рдХрд╛
рддреБрдореНрд╣реА рдорд╛рдЧреАрд▓ рдЙрджрд╛рд╣рд░рдгрд╛рдд рдкрд╛рд╣рд┐рд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ, Kubernetes рдШрдЯрдХ (API рд╕рд░реНрд╡реНрд╣рд░ рдЖрдгрд┐ рд╕реНрдЯреЛрд░реЗрдЬ рд╡рдЧрд│рддрд╛) рд╕реНрдЯреЛрд░реЗрдЬрдордзреАрд▓ рд░рд┐рд╕реЛрд░реНрд╕реЗрд╕рдордзреАрд▓ рдмрджрд▓рд╛рдВрд╡рд░ рд▓рдХреНрд╖ рдареЗрд╡рддрд╛рдд рдЖрдгрд┐ рд╕реНрдЯреЛрд░реЗрдЬрдордзреАрд▓ рд░рд┐рд╕реЛрд░реНрд╕реЗрд╕рдЪреА рдорд╛рд╣рд┐рддреА рдмрджрд▓рддрд╛рдд.
рдЕрд░реНрдерд╛рдд, рд╣реЗ рдШрдЯрдХ рд╕реНрдЯреЛрд░реЗрдЬрд╢реА рдереЗрдЯ рд╕рдВрд╡рд╛рдж рд╕рд╛рдзрдд рдирд╛рд╣реАрдд, рдкрд░рдВрддреБ рдХреЗрд╡рд│ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ API рджреНрд╡рд╛рд░реЗ.
рдЦрд╛рд▓реАрд▓ рдЙрджрд╛рд╣рд░рдгреЗ рд╡рд┐рдЪрд╛рд░рд╛рдд рдШреНрдпрд╛:
- ReplicaSet рдХрдВрдЯреНрд░реЛрд▓рд░ API рдПрдВрдбрдкреЙрдЗрдВрдЯ рд╡рд╛рдкрд░рддреЛ
рд╕реВрдЪреА рдкреНрд░рддрд┐рдХреГрддреА рдкреЕрд░рд╛рдореАрдЯрд░рд╕рд╣watch
ReplicaSet рд╕рдВрд╕рд╛рдзрдирд╛рдВрдордзреАрд▓ рдмрджрд▓рд╛рдВрдЪреЗ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА. - ReplicaSet рдХрдВрдЯреНрд░реЛрд▓рд░ API рдПрдВрдбрдкреЙрдЗрдВрдЯ рд╡рд╛рдкрд░рддреЛ
рдкреЙрдб рддрдпрд╛рд░ рдХрд░рд╛ (рдкреЙрдб рддрдпрд╛рд░ рдХрд░рд╛) рд╢реЗрдВрдЧрд╛ рддрдпрд╛рд░ рдХрд░рдгреЗ. - рд╢реЗрдбреНрдпреБрд▓рд░ API рдПрдВрдбрдкреЙрдЗрдВрдЯ рд╡рд╛рдкрд░рддреЛ
рдкреЕрдЪ рдкреЙрдб (рдкреЙрдб рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рд╛) рдирд┐рд╡рдбрд▓реЗрд▓реНрдпрд╛ рд╡рд░реНрдХрд░ рдиреЛрдбрдмрджреНрджрд▓ рдорд╛рд╣рд┐рддреАрд╕рд╣ рдкреЙрдбреНрд╕ рдЕрдкрдбреЗрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА.
рддреБрдореНрд╣реА рдмрдШреВ рд╢рдХрддрд╛, рд╣реЗ рд╕рдорд╛рди API рдЖрд╣реЗ рдЬреЗ kubectl рдНрдХреНрд╕реЗрд╕ рдХрд░рддреЗ. рдЕрдВрддрд░реНрдЧрдд рдШрдЯрдХ рдЖрдгрд┐ рдмрд╛рд╣реНрдп рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрд╕рд╛рдареА рд╕рдорд╛рди API рд╡рд╛рдкрд░рдгреЗ рд╣реА 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 рдХрдорд╛рдВрдбрд╕ рдкреВрд░рдХ рдард░реВ рд╢рдХреЗрд▓.
рд╡реНрдпрд╡рд╣рд╛рд░рд╛рдд, рдмреЕрд╢ (рд▓рд┐рдирдХреНрд╕ рдЖрдгрд┐ рдореЕрдХрдУрдПрд╕рдордзреАрд▓ рдлрд░рдХрд╛рдВрд╕рд╣) рдЖрдгрд┐ Zsh рд╕рд╛рдареА рдХрдиреЗрдХреНрд╢рди рдкрджреНрдзрдд рд╡реЗрдЧрд│реА рдЖрд╣реЗ. рдЖрдореНрд╣реА рдЦрд╛рд▓реА рд╣реЗ рд╕рд░реНрд╡ рдкрд░реНрдпрд╛рдп рдкрд╛рд╣реВ.
рд▓рд┐рдирдХреНрд╕ рд╡рд░ рдмреЕрд╢
рдмреЕрд╢ рдкреВрд░реНрдгрддрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмреЕрд╢-рдХрдореНрдкреНрд▓рд┐рд╢рди рдкреЕрдХреЗрдЬрд╡рд░ рдЕрд╡рд▓рдВрдмреВрди рдЕрд╕рддреЗ, рдореНрд╣рдгреВрди рддреБрдореНрд╣рд╛рд▓рд╛ рддреЗ рдкреНрд░рдердо рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ:
$ sudo apt-get install bash-completion
рдХрд┐рдВрд╡рд╛:
$ yum install bash-completion
рдЦрд╛рд▓реАрд▓ рдЖрджреЗрд╢ рд╡рд╛рдкрд░реВрди рдкреЕрдХреЗрдЬ рдпрд╢рд╕реНрд╡реАрд░рд┐рддреНрдпрд╛ рд╕реНрдерд╛рдкрд┐рдд рдЭрд╛рд▓реЗ рдЖрд╣реЗ рдпрд╛рдЪреА рдЪрд╛рдЪрдгреА рдШреЗрдК рд╢рдХрддрд╛:
$ type _init_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 --version
).
рдмреЕрд╢ рдкреВрд░реНрдгрддреНрд╡рд╛рдЪреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рдХрд▓реНрдкрд╛рдиреБрд╕рд╛рд░ рдмрджрд▓рддреЗ
рд╡рд╛рдкрд░реВрди рддреБрдореНрд╣реА bash-completion рдЗрдиреНрд╕реНрдЯреЙрд▓ рдХрд░реВ рд╢рдХрддрд╛
$ brew install bash-completion@2
рддреЛ рдЖрд╣реЗ @2
bash-completion version 2 рдЪрд╛ рдЕрд░реНрде рдЖрд╣реЗ. kubectl autocompletion рд╕рд╛рдареА bash-completion v2 рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдЖрдгрд┐ bash-completion v2 рд▓рд╛ рдХрд┐рдорд╛рди Bash рдЖрд╡реГрддреНрддреА 4.1 рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.
рдХрдорд╛рдВрдб рдЖрдЙрдЯрдкреБрдЯ brew-install
рдПрдХ Caveats рд╡рд┐рднрд╛рдЧ рдЖрд╣реЗ, рдЬреЛ рдлрд╛рдЗрд▓рдордзреНрдпреЗ рдХрд╛рдп рдЬреЛрдбрдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ рд╣реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЛ ~/.bash_profile
:
export BASH_COMPLETION_COMPAT_DIR=/usr/local/etc/bash_completion.d
[[ -r "/usr/local/etc/profile.d/bash_completion.sh" ]] && .
"/usr/local/etc/profile.d/bash_completion.sh"
рддрдерд╛рдкрд┐, рдореА рдпрд╛ рдУрд│реА рди рдЬреЛрдбрдгреНрдпрд╛рдЪреА рд╢рд┐рдлрд╛рд░рд╕ рдХрд░рддреЛ ~/.bash_profile
, рдЖрдгрд┐ рдордзреНрдпреЗ ~/.bashrc
. рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рд╕реНрд╡рдпрдВрдкреВрд░реНрдгрддрд╛ рдХреЗрд╡рд│ рдореБрдЦреНрдпрдЪ рдирд╡реНрд╣реЗ рддрд░ рдЪрд╛рдЗрд▓реНрдб рдХрдорд╛рдВрдб рд╢реЗрд▓реНрд╕рдордзреНрдпреЗ рджреЗрдЦреАрд▓ рдЙрдкрд▓рдмреНрдз рдЕрд╕реЗрд▓.
рдХрдорд╛рдВрдб рд╢реЗрд▓ рд░реАрд╕реНрдЯрд╛рд░реНрдЯ рдХреЗрд▓реНрдпрд╛рдирдВрддрд░, рддреБрдореНрд╣реА рдЦрд╛рд▓реАрд▓ рдХрдорд╛рдВрдб рд╡рд╛рдкрд░реВрди рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдпреЛрдЧреНрдп рдЕрд╕рд▓реНрдпрд╛рдЪреЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реВ рд╢рдХрддрд╛:
$ type _init_completion
рдЬрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рдЖрдЙрдЯрдкреБрдЯрдордзреНрдпреЗ рд╢реЗрд▓ рдлрдВрдХреНрд╢рди рджрд┐рд╕рд▓реЗ рддрд░ рд╕рд░реНрд╡рдХрд╛рд╣реА рдпреЛрдЧреНрдпрд░рд┐рддреНрдпрд╛ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЗрд▓реЗ рдЖрд╣реЗ.
рдЖрддрд╛ рд╕рд░реНрд╡ рд╕рддреНрд░рд╛рдВрдордзреНрдпреЗ kubectl рд╕реНрд╡рдпрдВрдкреВрд░реНрдгрддрд╛ рд╕рдХреНрд╖рдо рдЖрд╣реЗ рдпрд╛рдЪреА рдЦрд╛рддреНрд░реА рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.
рдПрдХ рдорд╛рд░реНрдЧ рдореНрд╣рдгрдЬреЗ рдЦрд╛рд▓реАрд▓ рдУрд│ рддреБрдордЪреНрдпрд╛ рдордзреНрдпреЗ рдЬреЛрдбрдгреЗ ~/.bashrc
:
source <(kubectl completion bash)
рджреБрд╕рд░рд╛ рдорд╛рд░реНрдЧ рдореНрд╣рдгрдЬреЗ рдлреЛрд▓реНрдбрд░рдордзреНрдпреЗ рд╕реНрд╡рдпрдВрдкреВрд░реНрдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреЛрдбрдгреЗ /usr/local/etc/bash_completion.d
:
$ kubectl completion bash
>/usr/local/etc/bash_completion.d/kubectl
рд╣реЛрдордмреНрд░реВ рд╡рд╛рдкрд░реВрди рддреБрдореНрд╣реА рдмреЕрд╢-рдХрдореНрдкреНрд▓рд┐рд╢рди рдЗрдиреНрд╕реНрдЯреЙрд▓ рдХреЗрд▓реЗ рддрд░рдЪ рд╣реА рдкрджреНрдзрдд рдХрд╛рдо рдХрд░реЗрд▓. рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, bash-completion рдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХреЗрддреАрд▓ рд╕рд░реНрд╡ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓реЛрдб рдХрд░рддреЗ.
рдЖрдкрдг рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗ рдЕрд╕рд▓реНрдпрд╛рд╕ /usr/local/etc/bash_completion.d
рд╕реНрдерд╛рдкрдирд╛ рджрд░рдореНрдпрд╛рди. рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рддреБрдореНрд╣реА bash-completion рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рддрд╛рдЪ kubectl autocompletion рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕ рд╕реБрд░рд╡рд╛рдд рдХрд░реЗрд▓.
рдкрд░рд┐рдгрд╛рдореА, рд╣реЗ рд╕рд░реНрд╡ рдкрд░реНрдпрд╛рдп рд╕рдорддреБрд▓реНрдп рдЖрд╣реЗрдд.
zsh
Zsh рд╕рд╛рдареА рд╕реНрд╡рдпрдВрдкреВрд░реНрдгрддрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕рдирд╛ рдХреЛрдгрддреНрдпрд╛рд╣реА рдЕрд╡рд▓рдВрдмрдирд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╕рддреЗ. рдЬреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣реА рдХрдорд╛рдВрдб рд╢реЗрд▓ рд▓реЛрдб рдХрд░рддрд╛ рддреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣рд╛рд▓рд╛ рдлрдХреНрдд рддреЗ рд╕рдХреНрд╖рдо рдХрд░рд╛рдпрдЪреЗ рдЖрд╣реЗ.
рддреБрдореНрд╣реА рддреБрдордЪреНрдпрд╛ рдордзреНрдпреЗ рдПрдХ рдУрд│ рдЬреЛрдбреВрди рд╣реЗ рдХрд░реВ рд╢рдХрддрд╛ ~/.zshrc
рдлрд╛рдЗрд▓:
source <(kubectl completion zsh)
рдЖрдкрдг рддреНрд░реБрдЯреА рдкреНрд░рд╛рдкреНрдд рдХреЗрд▓реНрдпрд╛рд╕ not found: compdef
рддреБрдордЪреЗ рд╢реЗрд▓ рд░реАрд╕реНрдЯрд╛рд░реНрдЯ рдХреЗрд▓реНрдпрд╛рдирдВрддрд░, рддреБрдореНрд╣рд╛рд▓рд╛ рдмрд┐рд▓реНрдЯрдЗрди рдлрдВрдХреНрд╢рди рд╕рдХреНрд╖рдо рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ compdef
. рддреБрдореНрд╣реА рддреБрдордЪреНрдпрд╛ рдлрд╛рдИрд▓рдЪреНрдпрд╛ рд╕реБрд░реБрд╡рд╛рддреАрд▓рд╛ рдЬреЛрдбреВрди рддреЗ рд╕рдХреНрд╖рдо рдХрд░реВ рд╢рдХрддрд╛ ~/.zshrc
рдкреБрдвреАрд▓:
autoload -Uz compinit
compinit
2. рд╕рдВрд╕рд╛рдзрди рддрдкрд╢реАрд▓ рджреНрд░реБрддрдкрдгреЗ рдкрд╣рд╛
рдЬреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣реА YAML рд╕рдВрд╕рд╛рдзрди рд╡реНрдпрд╛рдЦреНрдпрд╛ рддрдпрд╛рд░ рдХрд░рддрд╛, рддреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣рд╛рд▓рд╛ рддреНрдпрд╛ рд╕рдВрд╕рд╛рдзрдирд╛рдВрд╕рд╛рдареА рдлреАрд▓реНрдб рдЖрдгрд┐ рддреНрдпрд╛рдВрдЪрд╛ рдЕрд░реНрде рдорд╛рд╣рд┐рдд рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рд╣реА рдорд╛рд╣рд┐рддреА рдкрд╛рд╣рдгреНрдпрд╛рд╕рд╛рдареА рдПрдХ рдЬрд╛рдЧрд╛ API рд╕рдВрджрд░реНрднрд╛рдордзреНрдпреЗ рдЖрд╣реЗ, рдЬреНрдпрд╛рдордзреНрдпреЗ рд╕рд░реНрд╡ рд╕рдВрд╕рд╛рдзрдирд╛рдВрд╕рд╛рдареА рд╕рдВрдкреВрд░реНрдг рддрдкрд╢реАрд▓ рдЖрд╣реЗрдд.
рддрдерд╛рдкрд┐, рдкреНрд░рддреНрдпреЗрдХ рд╡реЗрд│реА рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдХрд╛рд╣реАрддрд░реА рд╢реЛрдзрдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрд╕рддрд╛рдирд╛ рд╡реЗрдм рдмреНрд░рд╛рдЙрдЭрд░рд╡рд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдгреЗ рдЧреИрд░рд╕реЛрдпреАрдЪреЗ рдЖрд╣реЗ. рдореНрд╣рдгреВрди kubectl рдХрдорд╛рдВрдб рдкреНрд░рджрд╛рди рдХрд░рддреЗ kubectl explain
, рдЬреЗ рддреБрдордЪреНрдпрд╛ рдЯрд░реНрдорд┐рдирд▓рдордзреНрдпреЗ рд╕рд░реНрд╡ рд╕рдВрд╕рд╛рдзрдирд╛рдВрдЪреА рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рджрд░реНрд╢рд╡рддреЗ.
рдХрдорд╛рдВрдбрдЪреЗ рд╕реНрд╡рд░реВрдк рдЦрд╛рд▓реАрд▓рдкреНрд░рдорд╛рдгреЗ рдЖрд╣реЗ:
$ kubectl explain resource[.field]...
рдХрдорд╛рдВрдб рд╡рд┐рдирдВрддреА рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╕рдВрд╕рд╛рдзрди рдХрд┐рдВрд╡рд╛ рдлреАрд▓реНрдбрдЪреЗ рддрдкрд╢реАрд▓ рдЖрдЙрдЯрдкреБрдЯ рдХрд░реЗрд▓. рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреЗрд▓реЗрд▓реА рдорд╛рд╣рд┐рддреА API рдореЕрдиреНрдпреБрдЕрд▓рдордзреНрдпреЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдорд╛рд╣рд┐рддреАрд╕рд╛рд░рдЦреАрдЪ рдЖрд╣реЗ.
рдореБрд▓рднреВрддрд░рд┐рддреНрдпрд╛ kubectl explain
рдлреАрд▓реНрдбрдЪреНрдпрд╛ рдиреЗрд╕реНрдЯрд┐рдВрдЧрдЪреА рдлрдХреНрдд рдкрд╣рд┐рд▓реА рдкрд╛рддрд│реА рджрд╛рдЦрд╡рддреЗ.
рддреЗ рдХрд╕реЗ рджрд┐рд╕рддреЗ рддреЗ рдкрд╣рд╛
рддреБрдореНрд╣реА рдкрд░реНрдпрд╛рдп рдЬреЛрдбрд▓реНрдпрд╛рд╕ рддреБрдореНрд╣реА рд╕рдВрдкреВрд░реНрдг рдЭрд╛рдб рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реВ рд╢рдХрддрд╛ --recursive
:
$ kubectl explain deployment.spec --recursive
рддреБрдореНрд╣рд╛рд▓рд╛ рдирдХреНрдХреА рдХреЛрдгрддреНрдпрд╛ рд╕рдВрд╕рд╛рдзрдирд╛рдВрдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ рд╣реЗ рдорд╛рд╣рд┐рдд рдирд╕рд▓реНрдпрд╛рд╕, рддреБрдореНрд╣реА рддреЗ рд╕рд░реНрд╡ рдЦрд╛рд▓реАрд▓ рдЖрджреЗрд╢рд╛рд╕рд╣ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реВ рд╢рдХрддрд╛:
$ kubectl api-resources
рд╣реА рдХрдорд╛рдВрдб рд╕рдВрд╕рд╛рдзрдирд╛рдВрдЪреА рдирд╛рд╡реЗ рдЕрдиреЗрдХрд╡рдЪрди рд╕реНрд╡рд░реВрдкрд╛рдд рджрд╛рдЦрд╡рддреЗ, рдЙрджрд╛. deployments
рддреНрдпрд╛рдРрд╡рдЬреА deployment
. рд╣реЗ рд▓рд╣рд╛рди рдирд╛рд╡ рджреЗрдЦреАрд▓ рджрд╛рдЦрд╡рддреЗ, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде deploy
, рдЬреНрдпрд╛рдВрдЪреНрдпрд╛рдХрдбреЗ рддреЗ рдЖрд╣реЗ рддреНрдпрд╛рдВрдЪреНрдпрд╛рд╕рд╛рдареА. рдпрд╛ рдлрд░рдХрд╛рдВрдмрджреНрджрд▓ рдХрд╛рд│рдЬреА рдХрд░реВ рдирдХрд╛. рд╣реЗ рд╕рд░реНрд╡ рдирд╛рдордХрд░рдг рдкрд░реНрдпрд╛рдп kubectl рд╕рд╛рдареА рд╕рдорддреБрд▓реНрдп рдЖрд╣реЗрдд. рдореНрд╣рдгрдЬреЗрдЪ, рдЖрдкрдг рддреНрдпрд╛рдкреИрдХреА рдХреЛрдгрддреЗрд╣реА рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛ kubectl explain
.
рдЦрд╛рд▓реАрд▓ рд╕рд░реНрд╡ рдЖрдЬреНрдЮрд╛ рд╕рдорддреБрд▓реНрдп рдЖрд╣реЗрдд:
$ kubectl explain deployments.spec
# ╨╕╨╗╨╕
$ kubectl explain deployment.spec
# ╨╕╨╗╨╕
$ kubectl explain deploy.spec
3. рд╕рд╛рдиреБрдХреВрд▓ рд╕реНрддрдВрдн рдЖрдЙрдЯрдкреБрдЯ рд╕реНрд╡рд░реВрдк рд╡рд╛рдкрд░рд╛
рдбреАрдлреЙрд▓реНрдЯ рдХрдорд╛рдВрдб рдЖрдЙрдЯрдкреБрдЯ рд╕реНрд╡рд░реВрдк kubectl get
:
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
engine-544b6b6467-22qr6 1/1 Running 0 78d
engine-544b6b6467-lw5t8 1/1 Running 0 78d
engine-544b6b6467-tvgmg 1/1 Running 0 78d
web-ui-6db964458-8pdw4 1/1 Running 0 78d
рд╣реЗ рд╕реНрд╡рд░реВрдк рд╕реЛрдпреАрд╕реНрдХрд░ рдЖрд╣реЗ, рдкрд░рдВрддреБ рддреНрдпрд╛рдд рдорд░реНрдпрд╛рджрд┐рдд рдкреНрд░рдорд╛рдгрд╛рдд рдорд╛рд╣рд┐рддреА рдЖрд╣реЗ. рд╕рдВрдкреВрд░реНрдг рд╕рдВрд╕рд╛рдзрди рдкрд░рд┐рднрд╛рд╖рд╛ рд╕реНрд╡рд░реВрдкрд╛рдЪреНрдпрд╛ рддреБрд▓рдиреЗрдд, рдпреЗрдереЗ рдлрдХреНрдд рдХрд╛рд╣реА рдлреАрд▓реНрдб рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреЗрд▓реА рдЖрд╣реЗрдд.
рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рдЖрдкрдг рд╕рд╛рдиреБрдХреВрд▓ рд╕реНрддрдВрдн рдЖрдЙрдЯрдкреБрдЯ рд╕реНрд╡рд░реВрдк рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛. рд╣реЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдХреЛрдгрддрд╛ рдбреЗрдЯрд╛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рд╛рдпрдЪрд╛ рд╣реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ. рддреБрдореНрд╣реА рдХреЛрдгрддреЗрд╣реА рд╕рдВрд╕рд╛рдзрди рдлреАрд▓реНрдб рд╕реНрд╡рддрдВрддреНрд░ рд╕реНрддрдВрдн рдореНрд╣рдгреВрди рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реВ рд╢рдХрддрд╛.
рд╕рд╛рдиреБрдХреВрд▓ рд╕реНрд╡рд░реВрдкрд╛рдЪрд╛ рд╡рд╛рдкрд░ рдкрд░реНрдпрд╛рдпрд╛рдВрдЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВрди рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ:
-o custom-columns=<header>:<jsonpath>[,<header>:<jsonpath>]...
рддреБрдореНрд╣реА рдкреНрд░рддреНрдпреЗрдХ рдЖрдЙрдЯрдкреБрдЯ рд╕реНрддрдВрднрд╛рд▓рд╛ рдЬреЛрдбреА рдореНрд╣рдгреВрди рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реВ рд╢рдХрддрд╛ <header>:<jsonpath>
рдХреБрдареЗ <header>
рд╕реНрддрдВрднрд╛рдЪреЗ рдирд╛рд╡ рдЖрд╣реЗ, рдЖрдгрд┐ <jsonpath>
- рд╕рдВрд╕рд╛рдзрди рдХреНрд╖реЗрддреНрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдгрд╛рд░реА рдЕрднрд┐рд╡реНрдпрдХреНрддреА.
рдЪрд▓рд╛ рдПрдХ рд╕рд╛рдзреЗ рдЙрджрд╛рд╣рд░рдг рдкрд╛рд╣реВ:
$ kubectl get pods -o custom-columns='NAME:metadata.name'
NAME
engine-544b6b6467-22qr6
engine-544b6b6467-lw5t8
engine-544b6b6467-tvgmg
web-ui-6db964458-8pdw4
рдЖрдЙрдЯрдкреБрдЯрдордзреНрдпреЗ рдкреЙрдбреНрд╕рдЪреНрдпрд╛ рдирд╛рд╡рд╛рдВрд╕рд╣ рдПрдХ рд╕реНрддрдВрдн рдЕрд╕рддреЛ.
рдкрд░реНрдпрд╛рдп рдЕрднрд┐рд╡реНрдпрдХреНрддреА рдлреАрд▓реНрдбрдордзреВрди рдкреЙрдб рдирд╛рд╡реЗ рдирд┐рд╡рдбрддреЗ metadata.name
. рдХрд╛рд░рдг рдореБрд▓рд╛рдЪреНрдпрд╛ рдирд╛рд╡рд╛рдЪреНрдпрд╛ рдлреАрд▓реНрдбрдордзреНрдпреЗ рдкреЙрдбрдЪреЗ рдирд╛рд╡ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ 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
рд▓реЗрдмрд▓реЗ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рд░рд┐рд╕реЛрд░реНрд╕ рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХреЗрд╢рдирдЪрд╛ рднрд╛рдЧ рдирд╛рд╣реАрдд, рддреНрдпрд╛рдореБрд│реЗ рддреБрдореНрд╣рд╛рд▓рд╛ рддреНрдпрд╛рдВрдЪреНрдпрд╛рдмрджреНрджрд▓ рдорд╛рд╣рд┐рддреА рдорд┐рд│рдгрд╛рд░ рдирд╛рд╣реА
API рдорд╛рд░реНрдЧрджрд░реНрд╢рдХ . рддрдерд╛рдкрд┐, рддреБрдореНрд╣реА YAML рдХрд┐рдВрд╡рд╛ JSON рдлреЙрд░рдореЕрдЯрдордзреНрдпреЗ рдиреЛрдбреНрд╕рдмрджреНрджрд▓ рдорд╛рд╣рд┐рддреАрдЪреА рд╡рд┐рдирдВрддреА рдХреЗрд▓реНрдпрд╛рд╕ рддреЗ (рдЗрддрд░ рдХреЛрдгрддреНрдпрд╛рд╣реА рд▓реЗрдмрд▓рд╛рдВрдкреНрд░рдорд╛рдгреЗ) рдкрд╛рд╣рд┐рд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд:$ kubectl get nodes -o yaml # ╨╕╨╗╨╕ $ kubectl get nodes -o json
рд╕рдВрд╕рд╛рдзрди рддрдкрд╢реАрд▓ рд╢рд┐рдХрдгреНрдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рд╕рдВрд╕рд╛рдзрдирд╛рдВрдмрджреНрджрд▓ рдЕрдзрд┐рдХ рдЬрд╛рдгреВрди рдШреЗрдгреНрдпрд╛рдЪрд╛ рд╣рд╛ рдПрдХ рдЪрд╛рдВрдЧрд▓рд╛ рдорд╛рд░реНрдЧ рдЖрд╣реЗ.
4. рдХреНрд▓рд╕реНрдЯрд░ рдЖрдгрд┐ рдиреЗрдорд╕реНрдкреЗрд╕рдордзреНрдпреЗ рд╕рд╣рдЬрдкрдгреЗ рд╕реНрд╡рд┐рдЪ рдХрд░рд╛
рдЬреЗрд╡реНрд╣рд╛ kubectl Kubernetes API рд▓рд╛ рд╡рд┐рдирдВрддреА рдХрд░рддреЗ, рддреЗрд╡реНрд╣рд╛ рддреЗ рдХрдиреЗрдХреНрд╢рдирд╕рд╛рдареА рд╕рд░реНрд╡ рдЖрд╡рд╢реНрдпрдХ рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕ рдорд┐рд│рд╡рд┐рдгреНрдпрд╛рд╕рд╛рдареА рдкреНрд░рдердо kubeconfig рдлрд╛рдЗрд▓ рд╡рд╛рдЪрддреЗ.
рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░ kubeconfig рдлрд╛рдЗрд▓ рдЖрд╣реЗ ~/.kube/config
. рд╕рд╛рдорд╛рдиреНрдпрдд: рд╣реА рдлрд╛рдИрд▓ рд╡рд┐рд╢реЗрд╖ рдХрдорд╛рдВрдбрджреНрд╡рд╛рд░реЗ рддрдпрд╛рд░ рдХрд┐рдВрд╡рд╛ рдЕрдкрдбреЗрдЯ рдХреЗрд▓реА рдЬрд╛рддреЗ.
рдЬреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣реА рдПрдХрд╛рдзрд┐рдХ рдХреНрд▓рд╕реНрдЯрд░реНрд╕рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рддрд╛, рддреЗрд╡реНрд╣рд╛ рддреБрдордЪреНрдпрд╛ kubeconfig рдлрд╛рдЗрд▓рдордзреНрдпреЗ рддреНрдпрд╛ рд╕рд░реНрд╡ рдХреНрд▓рд╕реНрдЯрд░рд╢реА рдХрдиреЗрдХреНрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕реЗрдЯрд┐рдВрдЧреНрдЬ рдЕрд╕рддрд╛рдд. рддреБрдореНрд╣реА рдХреЛрдгрддреНрдпрд╛ рдХреНрд▓рд╕реНрдЯрд░рд╕реЛрдмрдд рдХрд╛рдо рдХрд░рдд рдЖрд╣рд╛рдд рд╣реЗ kubectl рдХрдорд╛рдВрдбрд▓рд╛ рд╕рд╛рдВрдЧрдгреНрдпрд╛рд╕рд╛рдареА рддреБрдореНрд╣рд╛рд▓рд╛ рдПрдХ рдорд╛рд░реНрдЧ рд╣рд╡рд╛ рдЖрд╣реЗ.
рдХреНрд▓рд╕реНрдЯрд░рдордзреНрдпреЗ, рддреБрдореНрд╣реА рдЕрдиреЗрдХ рдиреЗрдорд╕реНрдкреЗрд╕ рддрдпрд╛рд░ рдХрд░реВ рд╢рдХрддрд╛тАФрднреМрддрд┐рдХ рдХреНрд▓рд╕реНрдЯрд░рдордзреНрдпреЗ рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдХреНрд▓рд╕реНрдЯрд░рдЪрд╛ рдПрдХ рдкреНрд░рдХрд╛рд░. kubeconfig рдлрд╛рдЗрд▓рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдХреЛрдгрддреЗ рдиреЗрдорд╕реНрдкреЗрд╕ рд╡рд╛рдкрд░рд╛рдпрдЪреЗ рд╣реЗ рджреЗрдЦреАрд▓ Kubectl рдард░рд╡рддреЗ. рдпрд╛рдЪрд╛ рдЕрд░реНрде рддреБрдореНрд╣рд╛рд▓рд╛ 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 рдлрд╛рдЗрд▓реНрд╕ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА subcommands рдкреБрд░рд╡рддреЗ.
рддреНрдпрд╛рдкреИрдХреА рдХрд╛рд╣реА рдЖрд╣реЗрдд:
kubectl config get-contexts
: рд╕рд░реНрд╡ рд╕рдВрджрд░реНрдн рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рд╛;kubectl config current-context
: рд╡рд░реНрддрдорд╛рди рд╕рдВрджрд░реНрдн рдорд┐рд│рд╡рд╛;kubectl config use-context
: рд╡рд░реНрддрдорд╛рди рд╕рдВрджрд░реНрдн рдмрджрд▓рд╛;kubectl config set-context
: рд╕рдВрджрд░реНрдн рдШрдЯрдХ рдмрджрд▓рд╛.
рддрдерд╛рдкрд┐, рдпрд╛ рдЖрдЬреНрдЮрд╛ рдереЗрдЯ рд╡рд╛рдкрд░рдгреЗ рдлрд╛рд░ рд╕реЛрдпреАрдЪреЗ рдирд╛рд╣реА рдХрд╛рд░рдг рддреЗ рд▓рд╛рдВрдм рдЖрд╣реЗрдд. рддреБрдореНрд╣реА рддреНрдпрд╛рдВрдЪреНрдпрд╛рд╕рд╛рдареА рд╢реЗрд▓ рдЙрдкрдирд╛рдо рдмрдирд╡реВ рд╢рдХрддрд╛ рдЬреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдгреЗ рд╕реЛрдкреЗ рдЖрд╣реЗ.
рдореА рдпрд╛ рдЖрджреЗрд╢рд╛рдВрд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдЙрдкрдирд╛рдорд╛рдВрдЪрд╛ рдПрдХ рд╕рдВрдЪ рддрдпрд╛рд░ рдХреЗрд▓рд╛ рдЖрд╣реЗ рдЬреЛ kubectx рд╕рд╛рд░рдЦреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЛ. рдпреЗрдереЗ рдЖрдкрдг рддреНрдпрд╛рдВрдирд╛ рдХреНрд░рд┐рдпрд╛ рдХрд░рддрд╛рдирд╛ рдкрд╛рд╣реВ рд╢рдХрддрд╛:
рд▓рдХреНрд╖рд╛рдд рдареЗрд╡рд╛ рдХреА рдЙрдкрдирд╛рд╡ рдПрдХ рдкрд░рд╕реНрдкрд░ рдореБрдХреНрдд рд▓реБрдХрдЕрдк рдЗрдВрдЯрд░рдлреЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА fzf рд╡рд╛рдкрд░рддрд╛рдд (рдЬрд╕реЗ kubectx рдЪреНрдпрд╛ рдкрд░рд╕реНрдкрд░рд╕рдВрд╡рд╛рджреА рдореЛрдб). рдпрд╛рдЪрд╛ рдЕрд░реНрде рддреБрдореНрд╣рд╛рд▓рд╛ рдЧрд░рдЬ рдЖрд╣реЗ
рдпреЗрдереЗ рд╕реНрд╡рддрдГ рдЙрдкрдирд╛рдорд╛рдВрдЪреНрдпрд╛ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдЖрд╣реЗрдд:
# ╨Я╨╛╨╗╤Г╤З╨╕╤В╤М ╤В╨╡╨║╤Г╤Й╨╕╨╣ ╨║╨╛╨╜╤В╨╡╨║╤Б╤В
alias krc='kubectl config current-context'
# ╨б╨┐╨╕╤Б╨╛╨║ ╨▓╤Б╨╡╤Е ╨║╨╛╨╜╤В╨╡╨║╤Б╤В╨╛╨▓
alias klc='kubectl config get-contexts -o name | sed "s/^/ /;|^ $(krc)$|s/ /*/"'
# ╨Ш╨╖╨╝╨╡╨╜╨╕╤В╤М ╤В╨╡╨║╤Г╤Й╨╕╨╣ ╨║╨╛╨╜╤В╨╡╨║╤Б╤В
alias kcc='kubectl config use-context "$(klc | fzf -e | sed "s/^..//")"'
# ╨Я╨╛╨╗╤Г╤З╨╕╤В╤М ╤В╨╡╨║╤Г╤Й╨╡╨╡ ╨┐╤А╨╛╤Б╤В╤А╨░╨╜╤Б╤В╨▓╨╛ ╨╕╨╝╨╡╨╜
alias krn='kubectl config get-contexts --no-headers "$(krc)" | awk "{print $5}" | sed "s/^$/default/"'
# ╨б╨┐╨╕╤Б╨╛╨║ ╨▓╤Б╨╡╤Е ╨┐╤А╨╛╤Б╤В╤А╨░╨╜╤Б╤В╨▓ ╨╕╨╝╨╡╨╜
alias kln='kubectl get -o name ns | sed "s|^.*/| |;|^ $(krn)$|s/ /*/"'
# ╨Ш╨╖╨╝╨╡╨╜╨╕╤В╤М ╤В╨╡╨║╤Г╤Й╨╡╨╡ ╨┐╤А╨╛╤Б╤В╤А╨░╨╜╤Б╤В╨▓╨╛ ╨╕╨╝╨╡╨╜
alias kcn='kubectl config set-context --current --namespace "$(kln | fzf -e | sed "s/^..//")"'
рд╣реА рдЙрдкрдирд╛рд╡реЗ рд╕реЗрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рддреБрдореНрд╣рд╛рд▓рд╛ рддреБрдордЪреНрдпрд╛ рдлрд╛рдИрд▓рдордзреНрдпреЗ рд╡рд░реАрд▓ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдЬреЛрдбрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ ~/.bashrc
рдХрд┐рдВрд╡рд╛ ~/.zshrc
рдЖрдгрд┐ рдЖрдкрд▓реЗ рд╢реЗрд▓ рд░реАрдмреВрдЯ рдХрд░рд╛.
рдкреНрд▓рдЧрдЗрди рд╡рд╛рдкрд░рдгреЗ
Kubectl рддреБрдореНрд╣рд╛рд▓рд╛ рдкреНрд▓рдЧрдЗрди рд▓реЛрдб рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ рдЬреЗ рдореВрд▓рднреВрдд рдЖрджреЗрд╢рд╛рдВрдкреНрд░рдорд╛рдгреЗрдЪ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд. рддреБрдореНрд╣реА, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, kubectl-foo рдкреНрд▓рдЧрдЗрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░реВ рд╢рдХрддрд╛ рдЖрдгрд┐ рдХрдорд╛рдВрдб рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░реВрди рдЪрд╛рд▓рд╡реВ рд╢рдХрддрд╛. kubectl foo
.
рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ рд╕рдВрджрд░реНрдн рдЖрдгрд┐ рдиреЗрдорд╕реНрдкреЗрд╕ рдмрджрд▓рдгреЗ рд╕реЛрдпреАрдЪреЗ рд╣реЛрдИрд▓, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде рдЪрд╛рд▓рд╡реВрди kubectl ctx
рд╕рдВрджрд░реНрдн рдмрджрд▓рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ kubectl ns
рдиреЗрдорд╕реНрдкреЗрд╕ рдмрджрд▓рдгреНрдпрд╛рд╕рд╛рдареА.
рдореА рдЕрд╕реЗ рджреЛрди рдкреНрд▓рдЧрдЗрди рд▓рд┐рд╣рд┐рд▓реЗ рдЖрд╣реЗрдд:
рдкреНрд▓рдЧрдЗрдирдЪреЗ рдХрд╛рд░реНрдп рдорд╛рдЧреАрд▓ рд╡рд┐рднрд╛рдЧрд╛рддреАрд▓ рдЙрдкрдирд╛рдорд╛рдВрд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдЖрд╣реЗ.
рддреЗ рдХрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддрд╛рдд рддреЗ рдпреЗрдереЗ рдЖрд╣реЗ:
рд▓рдХреНрд╖рд╛рдд рдареЗрд╡рд╛ рдХреА рдкреНрд▓рдЧрдЗрди рдкрд░рд╕реНрдкрд░рд╕рдВрд╡рд╛рджреА рд╡рд┐рдирд╛рдореВрд▓реНрдп рд╢реЛрдз рдЗрдВрдЯрд░рдлреЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА fzf рд╡рд╛рдкрд░рддрд╛рдд (рдЬрд╕реЗ рдХреА kubectx рдЪреНрдпрд╛ рдкрд░рд╕реНрдкрд░рд╕рдВрд╡рд╛рджреА рдореЛрдб). рдпрд╛рдЪрд╛ рдЕрд░реНрде рддреБрдореНрд╣рд╛рд▓рд╛ рдЧрд░рдЬ рдЖрд╣реЗ
рдкреНрд▓рдЧрдЗрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рддреБрдореНрд╣рд╛рд▓рд╛ рдирд╛рд╡рд╛рдЪреНрдпрд╛ рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ chmod +x
. рдпрд╛рдирдВрддрд░ рд▓рдЧреЗрдЪрдЪ рддреБрдореНрд╣реА рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕ рд╕рдХреНрд╖рдо рдЕрд╕рд╛рд▓ kubectl ctx
╨╕ kubectl ns
.
5. рдСрдЯреЛрдЕрд▓рд┐рдпрд╛рд╕реЗрд╕рд╕рд╣ рдЗрдирдкреБрдЯ рдХрдореА рдХрд░рд╛
рдЗрдирдкреБрдЯ рд╡реЗрдЧрд╡рд╛рди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╢реЗрд▓ рдЙрдкрдирд╛рдо рд╣рд╛ рдПрдХ рдЪрд╛рдВрдЧрд▓рд╛ рдорд╛рд░реНрдЧ рдЖрд╣реЗ. рдкреНрд░рдХрд▓реНрдк
рддреБрдореНрд╣реА рдХрджрд╛рдЪрд┐рдд рд╡рд┐рдЪрд╛рд░ рдХрд░рдд рдЕрд╕рд╛рд▓ - рддреБрдореНрд╣рд╛рд▓рд╛ 800 рдЙрдкрдирд╛рдо рдХрд╕реЗ рдЖрдард╡рддрд╛рдд? рдкрд░рдВрддреБ рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рддреЗ рд╕рд░реНрд╡ рд▓рдХреНрд╖рд╛рдд рдареЗрд╡рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╛рд╣реА, рдХрд╛рд░рдг рддреЗ рдПрдХрд╛ рд╕рд╛рдзреНрдпрд╛ рдпреЛрдЬрдиреЗрдиреБрд╕рд╛рд░ рддрдпрд╛рд░ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗрдд, рдЬреЗ рдЦрд╛рд▓реА рджрд┐рд▓реЗ рдЖрд╣реЗ:
рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде:
- kgpooyaml - kubectl get pods oyaml
- ksysgsvcw тАФ kubectl -n kube-system рдЧреЗрдЯ svc w
- ksysrmcm -kubectl -n kube-рд╕рд┐рд╕реНрдЯрдо rm cm
- kgdepalsl - 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 рд╕рд╛рдареА, рджреБрд░реНрджреИрд╡рд╛рдиреЗ, рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕реНрд╡рдпрдВрдкреВрд░реНрдгрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХрд╛рд╣реА рдХрд╛рд░реНрдп рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.
рдмреЕрд╢рдордзреАрд▓ рдЙрдкрдирд╛рдорд╛рдВрд╕рд╛рдареА рд╕реНрд╡рдпрдВрдкреВрд░реНрдгрддрд╛ рд╕рдХреНрд╖рдо рдХрд░рдд рдЖрд╣реЗ
рдмреЕрд╢рдЪреА рд╕рдорд╕реНрдпрд╛ рдЕрд╢реА рдЖрд╣реЗ рдХреА рддреЗ рдЙрдкрдирд╛рд╡ рдкреВрд░реНрдг рдХрд░рдгреНрдпрд╛рдЪрд╛ (рдкреНрд░рддреНрдпреЗрдХ рд╡реЗрд│реА рддреБрдореНрд╣реА рдЯреЕрдм рджрд╛рдмрддрд╛) рдкреНрд░рдпрддреНрди рдХрд░рддреЗ, рдЙрдкрдирд╛рд╡рд╛рдиреЗ рд╕рдВрджрд░реНрднрд┐рдд рдХреЗрд▓реЗрд▓реА рдЖрдЬреНрдЮрд╛ рдирд╛рд╣реА (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, Zsh рдХрд░рддреЗ). рддреБрдордЪреНрдпрд╛рдХрдбреЗ рд╕рд░реНрд╡ 800 рдЙрдкрдирд╛рдорд╛рдВрд╕рд╛рдареА рдкреВрд░реНрдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд╕рд▓реНрдпрд╛рдореБрд│реЗ, рд╕реНрд╡рдпрдВрдкреВрд░реНрдгрддрд╛ рдХрд╛рд░реНрдп рдХрд░рдд рдирд╛рд╣реА.
рдкреНрд░рдХрд▓реНрдк
рдЦрд╛рд▓реАрд▓ рдордзреНрдпреЗ, рдореА рдкреНрд░рдердо рдкреВрд░реНрдг-рдЕрд▓рд┐рдпрд╛рд╕ рдХрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рд╛рдпрдЪреЗ рдЖрдгрд┐ рдирдВрддрд░ рд╕рд░реНрд╡ kubectl рдЙрдкрдирд╛рдорд╛рдВрд╕рд╛рдареА рдкреВрд░реНрдгрддреНрд╡ рд╕рдХреНрд╖рдо рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рддреЗ рдХрд╕реЗ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рд╛рдпрдЪреЗ рддреЗ рд╕реНрдкрд╖реНрдЯ рдХрд░реЗрди.
рдкреВрд░реНрдг рдЙрдкрдирд╛рдо рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдд рдЖрд╣реЗ
рд╕рд░реНрд╡ рдкреНрд░рдердо, рдкреВрд░реНрдг-рдЙрд░реНрдл рдЕрд╡рд▓рдВрдмреВрди рдЕрд╕рддреЗ
MacOS рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрд╕рд╛рдареА рдорд╣рддреНрддреНрд╡рд╛рдЪреА рд╕реВрдЪрдирд╛: kubectl autocompletion рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рдорд╛рдгреЗ, рдкреВрд░реНрдг-рдЕрд▓рд┐рдпрд╛рд╕ Bash 3.2 рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдд рдирд╛рд╣реА, рдЬреЗ MacOS рд╡рд░ рдбреАрдлреЙрд▓реНрдЯ рдЖрд╣реЗ. рд╡рд┐рд╢реЗрд╖рддрдГ, рдкреВрд░реНрдг рдЙрдкрдирд╛рдо bash-completion v2 рд╡рд░ рдЕрд╡рд▓рдВрдмреВрди рдЖрд╣реЗ (brew install bash-completion@2
), рдЬреНрдпрд╛рд╕рд╛рдареА рдХрд┐рдорд╛рди рдмреЕрд╢ 4.1 рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдпрд╛рдЪрд╛ рдЕрд░реНрде 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
рдорд╛рдЧреАрд▓ рдЙрджрд╛рд╣рд░рдгрд╛рдкреНрд░рдорд╛рдгреЗ, рдЬреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣реА рдХрд┐рд▓реЛрдЧреНрд░реЕрдо рд╕реНрд╡рдпрдВрдкреВрд░реНрдг рдХрд░рддрд╛, рддреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣рд╛рд▓рд╛ рддреЗрдЪ рдкреВрд░реНрдгрддреЗрдЪреЗ рд╕рдВрдХреЗрдд рдорд┐рд│рддрд╛рдд рдЬреЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдорд┐рд│рддреАрд▓ 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 рд╕рдмрдХрдорд╛рдВрдб рдЬреЛ рддреБрдореНрд╣рд╛рд▓рд╛ рдкреНрд▓рдЧрдЗрди рдХреЙрд▓ рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЛ.
рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рд╣реЕрд▓реЛ рдкреНрд▓рдЧрдЗрди рдирд╛рд╡рд╛рдЪреА рдлрд╛рдИрд▓ рдореНрд╣рдгреВрди рд╡рд┐рддрд░рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рдИрд▓ 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 рд╣рд╛ рдПрдХ рддрд░реБрдг рдкреНрд░рдХрд▓реНрдк рдЖрд╣реЗ, рдЬреЛ рд╕рдзреНрдпрд╛ рд╕реБрд░реВ рдЖрд╣реЗ
рдореА рдЧрд┐рдЯрд╣рдм рд╡рд┐рднрд╛рдЧ рдкрд╛рд╣рдгреНрдпрд╛рдЪреА рд╢рд┐рдлрд╛рд░рд╕ рдХрд░рддреЛ
рдЖрдкрд▓реЗ рд╕реНрд╡рддрдГрдЪреЗ рдкреНрд▓рдЧрдЗрди рд▓рд┐рд╣рд┐рдд рдЖрд╣реЗ
рдЖрдкрдг рд╕реНрд╡рдд: рдХрд░реВ рд╢рдХрддрд╛kubectl-x
рдЖрдгрд┐ рд╡рд░ рд╡рд░реНрдгрди рдХреЗрд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рд╛.
рдлрд╛рдЗрд▓ рдмреЕрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ, рдкрд╛рдпрдерди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд┐рдВрд╡рд╛ рд╕рдВрдХрд▓рд┐рдд 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 рднрд╛рдВрдбрд╛рд░ рдЖрд╣реЗ
рд╢реБрднреЗрдЪреНрдЫрд╛!!!
рд╡рд┐рд╖рдпрд╛рд╡рд░ рдЕрдЬреВрди рдХрд╛рдп рд╡рд╛рдЪрд╛рдпрдЪреЗ:
рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдордзреАрд▓ рдСрдЯреЛрд╕реНрдХреЗрд▓рд┐рдВрдЧрдЪреЗ рддреАрди рд╕реНрддрд░ рдЖрдгрд┐ рддреЗ рдкреНрд░рднрд╛рд╡реАрдкрдгреЗ рдХрд╕реЗ рд╡рд╛рдкрд░рд╛рдпрдЪреЗ .рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрд╕рд╛рдареА рдЯреЗрдореНрдкрд▓реЗрдЯрд╕рд╣ рдЪрд╛рдЪреЗрдЧрд┐рд░реАрдЪреНрдпрд╛ рднрд╛рд╡рдиреЗрдд рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ .рдЖрдордЪреЗ рдЪреЕрдиреЗрд▓ рдЕрд░рд╛рдЙрдВрдб рдХреБрдмрд░рдиреЗрдЯреЗрд╕ рдЯреЗрд▓реАрдЧреНрд░рд╛рдордордзреНрдпреЗ .
рд╕реНрддреНрд░реЛрдд: www.habr.com