Kubectl рдХрд╛ рдЕрдзрд┐рдХ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ: рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛

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

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

рд▓реЗрдЦрдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд▓реЗрдЦ рдХрд╛ рд▓рдХреНрд╖реНрдп рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдЖрдкрдХреЗ рджреИрдирд┐рдХ рдХрд╛рд░реНрдп рдХреЛ рди рдХреЗрд╡рд▓ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рдмрдирд╛рдирд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдЕрдзрд┐рдХ рдордиреЛрд░рдВрдЬрдХ рднреА рдмрдирд╛рдирд╛ рд╣реИ!

рдкрд░рд┐рдЪрдп: рдХреБрдмреЗрдХреНрдЯрд▓ рдХреНрдпрд╛ рд╣реИ?

рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдЖрдк рдХреБрдмреЗрдХреНрдЯрд▓ рдХрд╛ рдЕрдзрд┐рдХ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕реАрдЦреЗрдВ, рдЖрдкрдХреЛ рдпрд╣ рдХреНрдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдХреА рдмреБрдирд┐рдпрд╛рджреА рд╕рдордЭ рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

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

рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ рдХрд╣реЗрдВ рддреЛ, рдХреБрдмреЗрдХреНрдЯрд▓ рдПрдХ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдПрдкреАрдЖрдИ рдХреНрд▓рд╛рдЗрдВрдЯ рд╣реИред

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

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

Kubectl рдХрд╛ рдЕрдзрд┐рдХ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ: рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛
рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдВрд╕рд╛рдзрди-рдЙрдиреНрдореБрдЦ рдкреНрд░рдгрд╛рд▓реА рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдпрд╣ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдЖрдВрддрд░рд┐рдХ рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрдирд╛рдП рд░рдЦрддрд╛ рд╣реИ рдФрд░ рд╕рднреА рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдСрдкрд░реЗрд╢рди рд╕реАрдЖрд░рдпреВрдбреА рдСрдкрд░реЗрд╢рди рд╣реИрдВред

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

рдЖрдЗрдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ.

рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЖрдк рдПрдХ рд░реЗрдкреНрд▓рд┐рдХрд╛рд╕реЗрдЯ рд╕рдВрд╕рд╛рдзрди рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд░реЗрдкреНрд▓рд┐рдХрд╛рд╕реЗрдЯ рдХрд╛ рдирд╛рдо рд╕реЗ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ replicaset.yaml, рдлрд┐рд░ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдБ:

$ kubectl create -f replicaset.yaml

рдпрд╣ рдПрдХ рд░реЗрдкреНрд▓рд┐рдХрд╛рд╕реЗрдЯ рд╕рдВрд╕рд╛рдзрди рдмрдирд╛рдПрдЧрд╛ред рд▓реЗрдХрд┐рди рдкрд░реНрджреЗ рдХреЗ рдкреАрдЫреЗ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ?

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рдкрд╛рд╕ рд░реЗрдкреНрд▓рд┐рдХрд╛рд╕реЗрдЯ рдирд┐рд░реНрдорд╛рдг рдСрдкрд░реЗрд╢рди рд╣реИред рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдСрдкрд░реЗрд╢рди рдХреА рддрд░рд╣, рдЗрд╕реЗ рдПрдкреАрдЖрдИ рдПрдВрдбрдкреЙрдЗрдВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдПрдкреАрдЖрдИ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

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

рд╕рднреА рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдкрд░рд┐рдЪрд╛рд▓рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ рдПрдВрдбрдкреЙрдЗрдВрдЯ рдпрд╣рд╛рдВ рдкрд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдПрдкреАрдЖрдИ рд╕рдВрджрд░реНрдн (рд╕рд╣рд┐рдд рдЙрдкрд░реЛрдХреНрдд рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ). рдХрд┐рд╕реА рдПрдВрдбрдкреЙрдЗрдВрдЯ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рдПрдкреАрдЖрдИ рд╕рд░реНрд╡рд░ рдпреВрдЖрд░рдПрд▓ рдХреЛ рдПрдкреАрдЖрдИ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рдПрдВрдбрдкреЙрдЗрдВрдЯ рдкрдереЛрдВ рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред

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

Kubernetes рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдХрдорд╛рдВрдб рдХреЗ рд▓рд┐рдП Kubectl рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЗрди рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ, kubectl рдмрд╕ рдЙрдкрдпреБрдХреНрдд Kubernetes API рдПрдВрдбрдкреЙрдЗрдВрдЯ рдкрд░ HTTP рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИред

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЖрдк рдЗрд╕ рддрд░рд╣ рдХреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ curlрдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдПрдкреАрдЖрдИ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ HTTP рдЕрдиреБрд░реЛрдз рднреЗрдЬрдХрд░ред Kubectl рдмрд╕ Kubernetes API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИред

рдпрд╣ рдХреБрдмреЗрдЯрд▓ рдХреНрдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЗрд╕рдХреА рдореВрд▓ рдмрд╛рддреЗрдВ рд╣реИред рд▓реЗрдХрд┐рди Kubernetes API рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдФрд░ рднреА рд╣реИ рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ kubectl рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрдЗрдП рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреА рдЖрдВрддрд░рд┐рдХ рджреБрдирд┐рдпрд╛ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреА рдЖрдВрддрд░рд┐рдХ рджреБрдирд┐рдпрд╛

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

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

  1. рдХреЛрд╖ - рд╕рдВрд╕рд╛рдзрди рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ (рдЖрдорддреМрд░ рдкрд░ рдпрд╣ рдЗрддреНрдпрд╛рджрд┐ рд╣реИ).
  2. рдПрдкреАрдЖрдИ рд╕рд░реНрд╡рд░ - рдПрдХ рдПрдкреАрдЖрдИ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдФрд░ рднрдВрдбрд╛рд░рдг рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рддрд╛ рд╣реИред
  3. рдирд┐рдпрдВрддреНрд░рдХ рдкреНрд░рдмрдВрдзрдХ - рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕рдВрд╕рд╛рдзрди рд╕реНрдерд┐рддрд┐рдпрд╛рдБ рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛рдУрдВ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИрдВред
  4. рд╕рдордпрдмрджреНрдзрдХ - рд╡рд░реНрдХрд░ рдиреЛрдбреНрд╕ рдкрд░ рд╢реЗрдбреНрдпреВрд▓ рдкреЙрдбреНрд╕ред

рдФрд░ рдпрд╣рд╛рдВ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдиреЛрдбреНрд╕ рдкрд░ рдПрдХ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдШрдЯрдХ рд╣реИ:

  1. рдХреНрдпреВрдмрд▓реЗрдЯ - рдХрд╛рд░реНрдпрд╢реАрд▓ рдиреЛрдб рдкрд░ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд▓реЙрдиреНрдЪ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рддрд╛ рд╣реИред

рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдпреЗ рдШрдЯрдХ рдПрдХ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЖрдЗрдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВред

рдЪрд▓рд┐рдП рдорд╛рди рд▓реЗрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдиреЗ рдЕрднреА-рдЕрднреА рдкреВрд░рд╛ рдХрд┐рдпрд╛ рд╣реИ kubectl create -f replicaset.yaml, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж kubectl рдиреЗ рдПрдХ HTTP POST рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рд░реЗрдкреНрд▓рд┐рдХрд╛рд╕реЗрдЯ рдПрдкреАрдЖрдИ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ (рд░реЗрдкреНрд▓рд┐рдХрд╛рд╕реЗрдЯ рд╕рдВрд╕рд╛рдзрди рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЛ рдкрд╛рд░ рдХрд░рддреЗ рд╣реБрдП)ред

рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдХреНрдпрд╛ рдЪрд▓ рд░рд╣рд╛ рд╣реИ?

  1. рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж kubectl create -f replicaset.yaml рдПрдкреАрдЖрдИ рд╕рд░реНрд╡рд░ рдЖрдкрдХреЗ рд░реЗрдкреНрд▓рд┐рдХрд╛рд╕реЗрдЯ рд╕рдВрд╕рд╛рдзрди рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЛ рднрдВрдбрд╛рд░рдг рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ:

    Kubectl рдХрд╛ рдЕрдзрд┐рдХ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ: рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛

  2. рдЗрд╕рдХреЗ рдмрд╛рдж, рдХрдВрдЯреНрд░реЛрд▓рд░ рдореИрдиреЗрдЬрд░ рдореЗрдВ рд░реЗрдкреНрд▓рд┐рдХрд╛рд╕реЗрдЯ рдХрдВрдЯреНрд░реЛрд▓рд░ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рд░реЗрдкреНрд▓рд┐рдХрд╛рд╕реЗрдЯ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг, рд╕рдВрд╢реЛрдзрди рдФрд░ рд╡рд┐рд▓реЛрдкрди рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ:

    Kubectl рдХрд╛ рдЕрдзрд┐рдХ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ: рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛

  3. рд░реЗрдкреНрд▓рд┐рдХрд╛рд╕реЗрдЯ рдирд┐рдпрдВрддреНрд░рдХ рдкреНрд░рддреНрдпреЗрдХ рд░реЗрдкреНрд▓рд┐рдХрд╛рд╕реЗрдЯ рдкреНрд░рддрд┐рдХреГрддрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреЙрдб рдкрд░рд┐рднрд╛рд╖рд╛ рдмрдирд╛рддрд╛ рд╣реИ (рд░реЗрдкреНрд▓рд┐рдХрд╛рд╕реЗрдЯ рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ рдкреЙрдб рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдЕрдиреБрд╕рд╛рд░) рдФрд░ рдЙрдиреНрд╣реЗрдВ рднрдВрдбрд╛рд░рдг рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ:

    Kubectl рдХрд╛ рдЕрдзрд┐рдХ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ: рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛

  4. рд╢реЗрдбреНрдпреВрд▓рд░ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЙрди рдкреЙрдбреНрд╕ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдирд╛ рдЬрд┐рдиреНрд╣реЗрдВ рдЕрднреА рддрдХ рдХрд┐рд╕реА рднреА рд╡рд░реНрдХрд░ рдиреЛрдб рдХреЛ рдирд╣реАрдВ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИ:

    Kubectl рдХрд╛ рдЕрдзрд┐рдХ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ: рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛

  5. рд╢реЗрдбреНрдпреВрд▓рд░ рдкреНрд░рддреНрдпреЗрдХ рдкреЙрдб рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдпреБрдХреНрдд рд╡рд░реНрдХрд░ рдиреЛрдб рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рд╕реНрдЯреЛрд░ рдореЗрдВ рдкреЙрдб рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИ:

    Kubectl рдХрд╛ рдЕрдзрд┐рдХ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ: рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛

  6. рдЬрд┐рд╕ рд╡рд░реНрдХрд░ рдиреЛрдб рдХреЛ рдкреЙрдб рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИ, рдЙрд╕ рдкрд░ рдХреНрдпреВрдмрд▓реЗрдЯ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рдЗрд╕ рдиреЛрдб рдХреЛ рд╕реМрдВрдкреЗ рдЧрдП рдкреЙрдбреНрд╕ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рддрд╛ рд╣реИ:

    Kubectl рдХрд╛ рдЕрдзрд┐рдХ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ: рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛

  7. рдХреНрдпреВрдмрд▓реЗрдЯ рд╕реНрдЯреЛрд░реЗрдЬ рд╕реЗ рдкреЙрдб рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЛ рдкрдврд╝рддрд╛ рд╣реИ рдФрд░ рдиреЛрдб рдкрд░ рдХрдВрдЯреЗрдирд░ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЙрдХрд░ рдЬреИрд╕реЗ рдХрдВрдЯреЗрдирд░ рд░рдирдЯрд╛рдЗрдо рдХреЛ рдирд┐рд░реНрджреЗрд╢ рджреЗрддрд╛ рд╣реИ:

    Kubectl рдХрд╛ рдЕрдзрд┐рдХ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ: рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛

рдиреАрдЪреЗ рдЗрд╕ рд╡рд┐рд╡рд░рдг рдХрд╛ рдПрдХ рдкрд╛рда рд╕рдВрд╕реНрдХрд░рдг рд╣реИ.

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

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

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

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

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

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

рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рдЖрдкрдХрд╛ рд░реЗрдкреНрд▓рд┐рдХрд╛рд╕реЗрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЕрдВрддрддрдГ рдЪрд▓ рд░рд╣рд╛ рд╣реИ!

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдПрдкреАрдЖрдИ рдХреА рднреВрдорд┐рдХрд╛

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

рдмреЗрд╢рдХ, рдпреЗ рдШрдЯрдХ рд╕реАрдзреЗ рд╕реНрдЯреЛрд░реЗрдЬ рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рдХреЗрд╡рд▓ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдПрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдгреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

  1. рд░реЗрдкреНрд▓рд┐рдХрд╛рд╕реЗрдЯ рдирд┐рдпрдВрддреНрд░рдХ рдПрдкреАрдЖрдИ рдПрдВрдбрдкреЙрдЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рд╕реВрдЪреА рдкреНрд░рддрд┐рдХреГрддрд┐ рд╕реЗрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде watch рд░реЗрдкреНрд▓рд┐рдХрд╛рд╕реЗрдЯ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
  2. рд░реЗрдкреНрд▓рд┐рдХрд╛рд╕реЗрдЯ рдирд┐рдпрдВрддреНрд░рдХ рдПрдкреАрдЖрдИ рдПрдВрдбрдкреЙрдЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдкреЙрдб рдмрдирд╛рдПрдВ (create pod) рдкреЙрдб рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдПред
  3. рд╢реЗрдбреНрдпреВрд▓рд░ рдПрдкреАрдЖрдИ рдПрдВрдбрдкреЙрдЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдкреИрдЪ рдкреЙрдб (рдкреЙрдб рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ) рдЪрдпрдирд┐рдд рд╡рд░реНрдХрд░ рдиреЛрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдкреЙрдбреНрд╕ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рд╡рд╣реА рдПрдкреАрдЖрдИ рд╣реИ рдЬрд┐рд╕реЗ рдХреБрдмреЗрдХреНрдЯрд▓ рдПрдХреНрд╕реЗрд╕ рдХрд░рддрд╛ рд╣реИред рдЖрдВрддрд░рд┐рдХ рдШрдЯрдХреЛрдВ рдФрд░ рдмрд╛рд╣рд░реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдбрд┐рдЬрд╝рд╛рдЗрди рдореЗрдВ рдПрдХ рдореМрд▓рд┐рдХ рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реИред

рдЕрдм рд╣рдо рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:

  1. рднрдВрдбрд╛рд░рдг рд░рд╛рдЬреНрдп, рдпрд╛рдиреА рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред
  2. рдПрдкреАрдЖрдИ рд╕рд░реНрд╡рд░ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдПрдкреАрдЖрдИ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдЯреЛрд░реЗрдЬ рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
  3. рдЕрдиреНрдп рд╕рднреА рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдШрдЯрдХ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕реНрдерд┐рддрд┐ (рд╕рдВрд╕рд╛рдзрдиреЛрдВ) рдХреЛ рдкрдврд╝рддреЗ рд╣реИрдВ, рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рддреЗ рд╣реИрдВред

рдЗрди рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рдЬрд╛рдирдиреЗ рд╕реЗ рдЖрдкрдХреЛ рдХреБрдмреЗрдХреНрдЯрд▓ рдХреЛ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рд╕рдордЭрдиреЗ рдФрд░ рдЗрд╕рдХрд╛ рдЕрдзрд┐рдХрддрдо рд▓рд╛рдн рдЙрдард╛рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реЗрдЧреАред

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

1. рдХрдорд╛рдВрдб рдкреВрд░реНрдгрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрдирдкреБрдЯ рдХреЛ рдЧрддрд┐ рджреЗрдВ

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

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

рджреЗрдЦреЗрдВ рдХрд┐ рдХреБрдмреЗрдХреНрдЯрд▓ рдХрдорд╛рдВрдб рдкреВрд░реНрдгрддрд╛ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИ:

Kubectl рдХрд╛ рдЕрдзрд┐рдХ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ: рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛
рдмреИрд╢ рдФрд░ Zsh рд╢реЗрд▓ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рдкреВрд░реНрдгрддрд╛ рдХрд╛рд░реНрдпред

рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЧрд╛рдЗрдб рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╕реНрддреГрдд рдирд┐рд░реНрджреЗрд╢ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдиреАрдЪреЗ рд╣рдо рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЕрдВрд╢ рдкреНрд░рджрд╛рди рдХрд░реЗрдВрдЧреЗред

рдХрдорд╛рдВрдб рдкреВрд░реНрдгрддрд╛ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИ

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

Kubectl рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмреИрд╢ рдФрд░ Zsh рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЙрддреНрдкрдиреНрди рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рддрд╛ рд╣реИ:

$ kubectl completion bash

╨Ш╨╗╨╕:

$ kubectl completion zsh

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

рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдмреИрд╢ (рд▓рд┐рдирдХреНрд╕ рдФрд░ рдореИрдХрдУрдПрд╕ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рд╕рд╣рд┐рдд) рдФрд░ рдЬрд╝реЗрдбрдПрд╕рдПрдЪ рдХреЗ рд▓рд┐рдП рдХрдиреЗрдХреНрд╢рди рд╡рд┐рдзрд┐ рдЕрд▓рдЧ рд╣реИред рдиреАрдЪреЗ рд╣рдо рдЗрди рд╕рднреА рд╡рд┐рдХрд▓реНрдкреЛрдВ рдкрд░ рдЧреМрд░ рдХрд░реЗрдВрдЧреЗред

рд▓рд┐рдирдХреНрд╕ рдкрд░ рдмреИрд╢ рдХрд░реЗрдВ

рдмреИрд╢ рдкреВрд░реНрдгрддрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмреИрд╢-рд╕рдорд╛рдкрди рдкреИрдХреЗрдЬ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рдЗрд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:

$ sudo apt-get install bash-completion

╨Ш╨╗╨╕:

$ yum install bash-completion

рдЖрдк рдирд┐рдореНрди рдЖрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдкреИрдХреЗрдЬ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛ рдЧрдпрд╛ рд╣реИ:

$ type _init_completion

рдпрджрд┐ рдпрд╣ рд╢реЗрд▓ рдлрд╝рдВрдХреНрд╢рди рдХреЛрдб рдЖрдЙрдЯрдкреБрдЯ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдмреИрд╢-рд╕рдорд╛рдкрди рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рдЖрджреЗрд╢ "рдирд╣реАрдВ рдорд┐рд▓рд╛" рддреНрд░реБрдЯрд┐ рджреЗрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЕрдкрдиреА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рдореНрди рдкрдВрдХреНрддрд┐ рдЬреЛрдбрд╝рдиреА рд╣реЛрдЧреА ~ / .bashrc:

$ source /usr/share/bash-completion/bash_completion

рдХреНрдпрд╛ рдЗрд╕ рд▓рд╛рдЗрди рдХреЛ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ? ~ / .bashrc рдпрд╛ рдирд╣реАрдВ рдпрд╣ рдЙрд╕ рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдкрдиреЗ рдмреИрд╢-рд╕рдорд╛рдкрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдерд╛ред рдпрд╣ APT рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рд▓реЗрдХрд┐рди YUM рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред

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

рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рдореНрди рдкрдВрдХреНрддрд┐ рдЬреЛрдбрд╝рдирд╛ рд╣реИ ~ / .bashrc:

source <(kubectl completion bash)

рджреВрд╕рд░рд╛ рддрд░реАрдХрд╛ рдХреБрдмреЗрдХреНрдЯрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рд╣реИ /etc/bash_completion.d (рдпрджрд┐ рдпрд╣ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ рддреЛ рдЗрд╕реЗ рдмрдирд╛рдПрдВ):

$ kubectl completion bash >/etc/bash_completion.d/kubectl

рдХреИрдЯрд▓реЙрдЧ рдореЗрдВ рд╕рднреА рдРрдб-рдСрди рд╕реНрдХреНрд░рд┐рдкреНрдЯ /etc/bash_completion.d рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмреИрд╢-рд╕рдорд╛рдкрди рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред

рджреЛрдиреЛрдВ рд╡рд┐рдХрд▓реНрдк рд╕рдорд╛рди рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рд╣реИрдВ.

рд╢реЗрд▓ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, kubectl рдХрдорд╛рдВрдб рдкреВрд░реНрдгрддрд╛ рдХрд╛рд░реНрдп рдХрд░реЗрдЧреАред

MacOS рдкрд░ рдмреИрд╢ рдХрд░реЗрдВ

MacOS рдкрд░ рд╕реЗрдЯрдЕрдк рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, MacOS рдмреИрд╢ рд╕рдВрд╕реНрдХрд░рдг 3.2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдФрд░ kubectl рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо 4.1 рдХреЗ рдмреИрд╢ рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдФрд░ рдпрд╣ рдмреИрд╢ 3.2 рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

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

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

рдЬрд╛рд░реА рд░рдЦрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк рдмреИрд╢ рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ (рдЖрдЙрдЯрдкреБрдЯ рдЬрд╛рдВрдЪреЗрдВ)ред bash --version).

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

рдЖрдк рдмреИрд╢-рд╕рдорд╛рдкрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ homebrew:

$ brew install bash-completion@2

рдпрд╣рд╛рдВ @2 рдмреИрд╢-рд╕рдорд╛рдкрди рд╕рдВрд╕реНрдХрд░рдг 2 рдХреЗ рд▓рд┐рдП рдЦрдбрд╝рд╛ рд╣реИред kubectl рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛ рдХреЗ рд▓рд┐рдП рдмреИрд╢-рд╕рдорд╛рдкрди v2 рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдмреИрд╢-рд╕рдорд╛рдкрди v2 рдХреЗ рд▓рд┐рдП рдиреНрдпреВрдирддрдо рдмреИрд╢ рд╕рдВрд╕реНрдХрд░рдг 4.1 рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рдХрдорд╛рдВрдб рдЖрдЙрдЯрдкреБрдЯ brew-install рдЗрд╕рдореЗрдВ рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рдЕрдиреБрднрд╛рдЧ рд╣реИ, рдЬреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреНрдпрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ~/.bash_profile:

export BASH_COMPLETION_COMPAT_DIR=/usr/local/etc/bash_completion.d
[[ -r "/usr/local/etc/profile.d/bash_completion.sh" ]] && . 
"/usr/local/etc/profile.d/bash_completion.sh"

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореИрдВ рдЗрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЗрд╕рдореЗрдВ рдирд╣реАрдВ рдЬреЛрдбрд╝рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдБ ~/.bash_profileрдФрд░ рдореЗрдВ ~/.bashrc. рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛ рди рдХреЗрд╡рд▓ рдореБрдЦреНрдп рдореЗрдВ, рдмрд▓реНрдХрд┐ рдЪрд╛рдЗрд▓реНрдб рдХрдорд╛рдВрдб рд╢реЗрд▓ рдореЗрдВ рднреА рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧреАред

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

$ type _init_completion

рдпрджрд┐ рдЖрдк рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рд╢реЗрд▓ рдлрд╝рдВрдХреНрд╢рди рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рд╕рдм рдХреБрдЫ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЕрдм рд╣рдореЗрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рд╕рднреА рд╕рддреНрд░реЛрдВ рдореЗрдВ kubectl рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛ рд╕рдХреНрд╖рдо рд╣реИред

рдПрдХ рддрд░реАрдХрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрдВрдХреНрддрд┐ рдХреЛ рдЕрдкрдиреЗ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ ~/.bashrc:

source <(kubectl completion bash)

рджреВрд╕рд░рд╛ рддрд░реАрдХрд╛ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдПрдХ рд╕реНрд╡рдд: рдкреВрд░реНрдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреЛрдбрд╝рдирд╛ рд╣реИ /usr/local/etc/bash_completion.d:

$ kubectl completion bash
>/usr/local/etc/bash_completion.d/kubectl

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

рдпрджрд┐ рдЖрдкрдиреЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдпрд╛ рд╣реИ рд╣реЛрдордмреНрд░реВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреНрдпреВрдмреЗрдХреНрдЯрд▓, рддреЛ рдкрд┐рдЫрд▓реЗ рдЪрд░рдг рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд░рдЦреА рдЬрд╛рдПрдЧреА /usr/local/etc/bash_completion.d рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреЗ рджреМрд░рд╛рдиред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЬреИрд╕реЗ рд╣реА рдЖрдк рдмреИрд╢-рд╕рдорд╛рдкрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВрдЧреЗ, kubectl рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдЧреАред

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдпреЗ рд╕рднреА рд╡рд┐рдХрд▓реНрдк рд╕рдорддреБрд▓реНрдп рд╣реИрдВред

Zsh

Zsh рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдХрд┐рд╕реА рдирд┐рд░реНрднрд░рддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдЬрдм рдЖрдк рдХрдорд╛рдВрдб рд╢реЗрд▓ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ рдмрд╕ рдЙрдиреНрд╣реЗрдВ рд╕рдХреНрд╖рдо рдХрд░рдирд╛ рд╣реЛрддрд╛ рд╣реИред

рдЖрдк рдЕрдкрдиреЗ рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рдЬреЛрдбрд╝рдХрд░ рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ~/.zshrc рдлрд╝рд╛рдЗрд▓:

source <(kubectl completion zsh)

рдпрджрд┐ рдЖрдкрдХреЛ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреА рд╣реИ not found: compdef рдЕрдкрдиреЗ рд╢реЗрд▓ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдмрд┐рд▓реНрдЯрд┐рди рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдирд╛ рд╣реЛрдЧрд╛ compdef. рдЖрдк рдЗрд╕реЗ рдЕрдкрдиреА рдлрд╝рд╛рдЗрд▓ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЬреЛрдбрд╝рдХрд░ рд╕рдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ~/.zshrc рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд:

autoload -Uz compinit
compinit

2. рд╕рдВрд╕рд╛рдзрди рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛рдУрдВ рдХреЛ рд╢реАрдШреНрд░рддрд╛ рд╕реЗ рджреЗрдЦреЗрдВ

рдЬрдм рдЖрдк YAML рд╕рдВрд╕рд╛рдзрди рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЙрди рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдлрд╝реАрд▓реНрдб рдФрд░ рдЙрдирдХреЗ рдЕрд░реНрде рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рджреЗрдЦрдиреЗ рдХрд╛ рдПрдХ рд╕реНрдерд╛рди рдПрдкреАрдЖрдИ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕рднреА рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЬрдм рднреА рдЖрдкрдХреЛ рдХреБрдЫ рдЦреЛрдЬрдирд╛ рд╣реЛ рддреЛ рд╡реЗрдм рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП 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.

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕рдВрд╕рд╛рдзрди рдлрд╝реАрд▓реНрдб рдХреЗрд╕ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╣реИрдВред

рдЖрдк рдХрд┐рд╕реА рднреА рд╕рдВрд╕рд╛рдзрди рдлрд╝реАрд▓реНрдб рдХреЛ рдПрдХ рдХреЙрд▓рдо рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдмрд╕ рд╕рдВрд╕рд╛рдзрди рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рдЕрдкрдиреА рдкрд╕рдВрдж рдХреЗ рдХрд┐рд╕реА рднреА рдХреНрд╖реЗрддреНрд░ рдХреЗ рд╕рд╛рде рдЖрдЬрд╝рдорд╛рдПрдБред

рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ, рдЖрдЗрдП рдлрд╝реАрд▓реНрдб рдЪрдпрди рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдкрд░ рдХрд░реАрдм рд╕реЗ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред

JSONPath рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпрд╛рдБ

рд╕рдВрд╕рд╛рдзрди рдлрд╝реАрд▓реНрдб рдХреЗ рдЪрдпрди рдХреЗ рд▓рд┐рдП рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпрд╛рдБ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИрдВ JSONPath.

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

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

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

[] рдСрдкрд░реЗрдЯрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдХрдИ Kubernetes рд╕рдВрд╕рд╛рдзрди рдлрд╝реАрд▓реНрдб рд╕реВрдЪрд┐рдпрд╛рдБ рд╣реИрдВ, рдФрд░ рдпрд╣ рдСрдкрд░реЗрдЯрд░ рдЖрдкрдХреЛ рдЙрди рд╕реВрдЪрд┐рдпреЛрдВ рдХреЗ рд╕рджрд╕реНрдпреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдХрд┐рд╕реА рд╕реВрдЪреА рдХреЗ рд╕рднреА рддрддреНрд╡реЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдХреНрд╕рд░ [*] рдЬреИрд╕реЗ рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдб рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

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

рдХрд╕реНрдЯрдо рдХреЙрд▓рдо рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ рдЕрдирдВрдд рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рдХрд┐рд╕реА рднреА рдлрд╝реАрд▓реНрдб рдпрд╛ рд╕рдВрд╕рд╛рдзрди рдлрд╝реАрд▓реНрдб рдХреЗ рд╕рдВрдпреЛрдЬрди рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ рдХреБрдЫ рдирдореВрдирд╛ рдРрдкреНрд╕ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдмреЗрдЭрд┐рдЭрдХ рдЙрдиреНрд╣реЗрдВ рд╕реНрд╡рдпрдВ рдПрдХреНрд╕рдкреНрд▓реЛрд░ рдХрд░реЗрдВ рдФрд░ рдРрд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдвреВрдВрдвреЗрдВ рдЬреЛ рдЖрдкрдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддреЗ рд╣реЛрдВред

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

    рдпрд╣ рдХрдорд╛рдВрдб рдкреНрд░рддреНрдпреЗрдХ рдкреЙрдб рдХреЗ рд▓рд┐рдП рдХрдВрдЯреЗрдирд░ рдЫрд╡рд┐ рдирд╛рдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред

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

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

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

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

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

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

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

    рд╕рдВрд╕рд╛рдзрди рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛рдУрдВ рдХреЛ рд╕реАрдЦрдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдиреЗ рдХрд╛ рдпрд╣ рдПрдХ рд╢рд╛рдирджрд╛рд░ рддрд░реАрдХрд╛ рд╣реИред

4. рдХреНрд▓рд╕реНрдЯрд░ рдФрд░ рдиреЗрдорд╕реНрдкреЗрд╕ рдХреЗ рдмреАрдЪ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВ

рдЬрдм Kubectl Kubernetes API рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдХрдиреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ kubeconfig рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрдврд╝рддрд╛ рд╣реИред

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ kubeconfig рдлрд╝рд╛рдЗрд▓ рд╣реИ ~/.kube/config. рдЖрдорддреМрд░ рдкрд░ рдпрд╣ рдлрд╝рд╛рдЗрд▓ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдХрдорд╛рдВрдб рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдпрд╛ рдЕрдкрдбреЗрдЯ рдХреА рдЬрд╛рддреА рд╣реИред

рдЬрдм рдЖрдк рдПрдХрд╛рдзрд┐рдХ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреА kubeconfig рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЙрди рд╕рднреА рдХреНрд▓рд╕реНрдЯрд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╣реЛрддреА рд╣реИрдВред рдЖрдкрдХреЛ kubectl рдХрдорд╛рдВрдб рдХреЛ рдпрд╣ рдмрддрд╛рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЖрдк рдХрд┐рд╕ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдПрдХ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рднреАрддрд░, рдЖрдк рдПрдХрд╛рдзрд┐рдХ рдирд╛рдорд╕реНрдерд╛рди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВтАФрднреМрддрд┐рдХ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рднреАрддрд░ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╡рд░реНрдЪреБрдЕрд▓ рдХреНрд▓рд╕реНрдЯрд░ред Kubectl рдпрд╣ рднреА рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ kubeconfig рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрд┐рд╕ рдиреЗрдорд╕реНрдкреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдХреБрдмреЗрдХреНрдЯрд▓ рдХрдорд╛рдВрдб рдХреЛ рдпрд╣ рдмрддрд╛рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рднреА рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХрд┐рд╕ рдиреЗрдорд╕реНрдкреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╣реИред

рдЗрд╕ рдЕрдзреНрдпрд╛рдп рдореЗрдВ рд╣рдо рдмрддрд╛рдПрдВрдЧреЗ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╣реИред

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

kubeconfig рдлрд╝рд╛рдЗрд▓реЗрдВ

рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ kubeconfig рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреНрдпрд╛ рд╣реИ:

Kubectl рдХрд╛ рдЕрдзрд┐рдХ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ: рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, kubeconfig рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрджрд░реНрднреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИред рд╕рдВрджрд░реНрдн рдореЗрдВ рддреАрди рддрддреНрд╡ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

  • рдХреНрд▓рд╕реНрдЯрд░ - рдХреНрд▓рд╕реНрдЯрд░ рд╕рд░реНрд╡рд░ рдХрд╛ рдПрдкреАрдЖрдИ рдпреВрдЖрд░рдПрд▓ред
  • рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ - рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓ред
  • рдиреЗрдорд╕реНрдкреЗрд╕ - рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдиреЗрдорд╕реНрдкреЗрд╕ред

рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рд╡реЗ рдЕрдХреНрд╕рд░ рдЕрдкрдиреЗ kubeconfig рдореЗрдВ рдкреНрд░рддрд┐ рдХреНрд▓рд╕реНрдЯрд░ рдПрдХ рд╕рдВрджрд░реНрдн рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЖрдкрдХреЗ рдкрд╛рд╕ рдкреНрд░рддрд┐ рдХреНрд▓рд╕реНрдЯрд░ рдПрдХрд╛рдзрд┐рдХ рд╕рдВрджрд░реНрдн рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдпрд╛ рдирд╛рдорд╕реНрдерд╛рди рджреНрд╡рд╛рд░рд╛ рд╡рд┐рднреЗрджрд┐рдд рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рдмрд╣реБ-рд╕рдВрджрд░реНрдн рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЕрд╕рд╛рдорд╛рдиреНрдп рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдорддреМрд░ рдкрд░ рдХреНрд▓рд╕реНрдЯрд░ рдФрд░ рд╕рдВрджрд░реНрднреЛрдВ рдХреЗ рдмреАрдЪ рдПрдХ-рд╕реЗ-рдПрдХ рдореИрдкрд┐рдВрдЧ рд╣реЛрддреА рд╣реИред

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

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

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

Kubectl рдХрд╛ рдЕрдзрд┐рдХ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ: рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛
рдЕрдм рдХреБрдмреЗрдХреНрдЯрд▓ рдлреЙрдХреНрд╕ рдХреНрд▓рд╕реНрдЯрд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрдЧрд╛ред

рдПрдХ рд╣реА рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдХрд┐рд╕реА рднрд┐рдиреНрди рдиреЗрдорд╕реНрдкреЗрд╕ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╡рд░реНрддрдорд╛рди рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП рдиреЗрдорд╕реНрдкреЗрд╕ рддрддреНрд╡ рдХрд╛ рдорд╛рди рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛:

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

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

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

Kubectx рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВ

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

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

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

рдЗрди рдЖрджреЗрд╢реЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдпрд╣рд╛рдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

Kubectl рдХрд╛ рдЕрдзрд┐рдХ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ: рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛
рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ, рдпреЗ рдХрдорд╛рдВрдб рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдЕрдиреБрд╕рд╛рд░ рдмрд╕ kubeconfig рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВред

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

рджреЛрдиреЛрдВ рдХрдорд╛рдВрдб рд╕рдВрджрд░реНрдн рдФрд░ рдиреЗрдорд╕реНрдкреЗрд╕ рдирд╛рдореЛрдВ рдХреЗ рд╕реНрд╡рдд: рдкреВрд░реНрдг рд╣реЛрдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдЙрдиреНрд╣реЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддреА рд╣реИред рд╕реНрд╡рддрдГ рдкреВрд░реНрдгрддрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдирд┐рд░реНрджреЗрд╢ рдпрд╣рд╛рдВ.

рдПрдХ рдФрд░ рдЙрдкрдпреЛрдЧреА рд╕реБрд╡рд┐рдзрд╛ kubectx рд╣реИ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдореЛрдб. рдпрд╣ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рд╕рд╛рде рдорд┐рд▓рдХрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ fzf, рдЬрд┐рд╕реЗ рдЕрд▓рдЧ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред FZF рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдореЛрдб рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ kubectx. рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рд░реВрдк рд╕реЗ, рдЖрдк fzf рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдлреНрд░реА рд╕рд░реНрдЪ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрджрд░реНрдн рдФрд░ рдиреЗрдорд╕реНрдкреЗрд╕ рдХрд╛ рдЪрдпрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╢реЗрд▓ рдЙрдкрдирд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

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

рдпрд╣рд╛рдБ рдкрд░ рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рд╣реИрдВ:

  • kubectl config get-contexts: рд╕рднреА рд╕рдВрджрд░реНрдн рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ;
  • kubectl config current-context: рд╡рд░реНрддрдорд╛рди рд╕рдВрджрд░реНрдн рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ;
  • kubectl config use-context: рд╡рд░реНрддрдорд╛рди рд╕рдВрджрд░реНрдн рдмрджрд▓реЗрдВ;
  • kubectl config set-context: рд╕рдВрджрд░реНрдн рддрддреНрд╡ рдмрджрд▓реЗрдВ.

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

рдореИрдВрдиреЗ рдЗрди рдЖрджреЗрд╢реЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЙрдкрдирд╛рдореЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдмрдирд╛рдпрд╛ рдЬреЛ kubectx рдХреЗ рд╕рдорд╛рди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдпрд╣рд╛рдВ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реБрдП рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:

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

рдпрд╣рд╛рдБ рд╕реНрд╡рдпрдВ рдЙрдкрдирд╛рдореЛрдВ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ рджреА рдЧрдИ рд╣реИрдВ:

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

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

рдЗрди рдЙрдкрдирд╛рдореЛрдВ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЙрдкрд░реЛрдХреНрдд рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреЛ рдЕрдкрдиреА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ ~/.bashrc рдпрд╛ ~/.zshrc рдФрд░ рдЕрдкрдиреЗ рд╢реЗрд▓ рдХреЛ рд░реАрдмреВрдЯ рдХрд░реЗрдВред

рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

Kubectl рдЖрдкрдХреЛ рдкреНрд▓рдЧрдЗрдиреНрд╕ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдореВрд▓ рдХрдорд╛рдВрдб рдХреА рддрд░рд╣ рд╣реА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк kubectl-foo рдкреНрд▓рдЧрдЗрди рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдХреЗ рдЗрд╕реЗ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ kubectl foo.

рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕рдВрджрд░реНрдн рдФрд░ рдирд╛рдорд╕реНрдерд╛рди рдХреЛ рдмрджрд▓рдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рджреМрдбрд╝рдХрд░ kubectl ctx рд╕рдВрджрд░реНрдн рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ kubectl ns рдиреЗрдорд╕реНрдкреЗрд╕ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП.

рдореИрдВрдиреЗ рджреЛ рдкреНрд▓рдЧрдЗрдиреНрд╕ рд▓рд┐рдЦреЗ рд╣реИрдВ рдЬреЛ рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ:

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

рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ:

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

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

5. рдСрдЯреЛрдПрд▓рд┐рдпрд╛рд╕реЗрд╕ рдХреЗ рд╕рд╛рде рдЗрдирдкреБрдЯ рдХрдо рдХрд░реЗрдВ

рд╢реЗрд▓ рдЙрдкрдирд╛рдо рдЗрдирдкреБрдЯ рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИред рдкрд░рд┐рдпреЛрдЬрдирд╛ kubectl-рдЙрдкрдирд╛рдо рдЗрд╕рдореЗрдВ рдмреБрдирд┐рдпрд╛рджреА рдХреНрдпреВрдмреЗрдХреНрдЯрд▓ рдХрдорд╛рдВрдб рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ 800 рд╢реЙрд░реНрдЯрдХрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

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

Kubectl рдХрд╛ рдЕрдзрд┐рдХ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ: рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

  1. kgpooyaml - kubectl рдкреЙрдбреНрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ oyaml
  2. ksysgsvcw - kubectl -n kube-system рдХреЛ svc w рдорд┐рд▓рддрд╛ рд╣реИ
  3. ksysrmcm -kubectl -n рдХреНрдпреВрдм-рд╕рд┐рд╕реНрдЯрдо рдЖрд░рдПрдо рд╕реЗрдореА
  4. kgdepalsl - kubectl рдХреЛ рд╕рднреА sl рдкрд░ рддреИрдирд╛рддреА рдорд┐рд▓рддреА рд╣реИ

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

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

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрдкрдирд╛рдо kgpooyamlall рдХрдорд╛рдВрдб рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ kubectl get pods -o yaml --all-namespaces.

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

рдЖрдкрдХреЛ рд╕рднреА рдШрдЯрдХреЛрдВ рдХреЛ рдЙрдкрдирд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП k, kg, klo, ksys, kgpo рднреА рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ. рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдЙрдкрдирд╛рдо рдФрд░ рдирд┐рдпрдорд┐рдд рдХрдорд╛рдВрдб рдпрд╛ рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ:

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

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

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

рдХреНрдпреЛрдВрдХрд┐ рдХреБрдЫ рдЙрдкрдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рддрд░реНрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЙрдкрдирд╛рдо a, f, рдФрд░ l рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдВрддрд┐рдо рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдПрдХ рдмрд╛рд░ рдЬрдм рдЖрдк рдЗрд╕ рдпреЛрдЬрдирд╛ рдХреЛ рд╕рдордЭ рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЙрди рдЖрджреЗрд╢реЛрдВ рд╕реЗ рд╕рд╣рдЬ рд░реВрдк рд╕реЗ рдЙрдкрдирд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХрд╛ рдмрд╣реБрдд рд╕рд╛рд░рд╛ рд╕рдордп рдмрдЪрд╛ рд╕рдХрддреЗ рд╣реИрдВред

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

Kubectl-aliases рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдлрд╝рд╛рдЗрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреА рд╣реЛрдЧреА .kubectl_aliases GitHub рд╕реЗ рдФрд░ рдЗрд╕реЗ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ ~/.bashrc рдпрд╛ ~/.zshrc:

source ~/.kubectl_aliases

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

рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рдХрд╣рд╛, рдЖрдк рдЕрдХреНрд╕рд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдЙрдкрдирд╛рдо рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рд╢рдмреНрдж рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

$ kgpooyaml test-pod-d4b77b989

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

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

рдЙрддреНрддрд░ рдЗрд╕ рдмрд╛рдд рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдХрд┐рд╕ рд╢реЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ:

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

рдмреИрд╢ рдореЗрдВ рдЙрдкрдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛ рд╕рдХреНрд╖рдо рдХрд░рдирд╛

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

рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреВрд░реНрдг-рдЙрдкрдирд╛рдо рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕рдорд╛рдзрд╛рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЙрдкрдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдгрддрд╛ рддрдВрддреНрд░ рд╕реЗ рдЬреБрдбрд╝рддрд╛ рд╣реИ, рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдЙрдкрдирд╛рдо рдХреЛ рдПрдХ рдХрдорд╛рдВрдб рддрдХ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдкреВрд░реНрдг рдХрдорд╛рдВрдб рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдгрддрд╛ рд╡рд┐рдХрд▓реНрдк рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЙрдкрдирд╛рдо рдХреЗ рд▓рд┐рдП рдкреИрдбрд┐рдВрдЧ рдмрд┐рд▓реНрдХреБрд▓ рдкреВрд░реНрдг рдХрдорд╛рдВрдб рдХреЗ рд╕рдорд╛рди рд╣реА рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддреА рд╣реИред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЗрдВ, рдореИрдВ рдкрд╣рд▓реЗ рд╕рдордЭрд╛рдКрдВрдЧрд╛ рдХрд┐ рдкреВрд░реНрдг-рдЙрдкрдирд╛рдо рдХреИрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ рдФрд░ рдлрд┐рд░ рд╕рднреА рдХреБрдмреЗрдХреНрдЯрд▓ рдЙрдкрдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдгрддрд╛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдХреИрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВред

рдкреВрд░реНрдг-рдЙрдкрдирд╛рдо рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдкреВрд░реНрдг-рдЙрдкрдирд╛рдо рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдмреИрд╢-рд╕рдорд╛рдкрди. рдЗрд╕рд▓рд┐рдП, рдкреВрд░реНрдг-рдЙрдкрдирд╛рдо рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдмреИрд╢-рд╕рдорд╛рдкрди рд╕реНрдерд╛рдкрд┐рдд рд╣реИред Linux рдФрд░ MacOS рдХреЗ рд▓рд┐рдП рдЗрдВрд╕реНрдЯрд╛рд▓реЗрд╢рди рдирд┐рд░реНрджреЗрд╢ рдкрд╣рд▓реЗ рд╣реА рдЙрдкрд▓рдмреНрдз рдХрд░рд╛ рджрд┐рдП рдЧрдП рд╣реИрдВред

MacOS рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рдиреЛрдЯ: Kubectl рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рддрд░рд╣, рдкреВрд░реНрдг-рдЙрдкрдирд╛рдо рдмреИрд╢ 3.2 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ MacOS рдкрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдкреВрд░реНрдг-рдЙрдкрдирд╛рдо рдмреИрд╢-рд╕рдорд╛рдкрди v2 рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ (brew install bash-completion@2), рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо рдмреИрд╢ 4.1 рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ MacOS рдкрд░ рдкреВрд░реНрдг-рдЙрдкрдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдмреИрд╢ рдХрд╛ рдПрдХ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдЖрдкрдХреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреА рд╣реЛрдЧреА bash_completion.sh рд╕реЗ рдЧрд┐рдЯрд╣рдм рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдФрд░ рдЗрд╕реЗ рдЕрдкрдиреА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ ~/.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 рдХреНрдпреВрдмреЗрдХреНрдЯрд▓ рдЙрдкрдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛ рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЬрд╛рдПрдЧреАред

6. рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЗ рд╕рд╛рде kubectl рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░

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

рдпрджрд┐ рдЖрдк рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ рдЧрд┐рдЯ рдкреНрд▓рдЧрдЗрди рддрдВрддреНрд░, рддреЛ kubectl рдкреНрд▓рдЧрдЗрдиреНрд╕ рдЙрд╕реА рд╕рд┐рджреНрдзрд╛рдВрдд рдкрд░ рдмрдирд╛рдП рдЧрдП рд╣реИрдВред

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

рдкреНрд▓рдЧрдЗрдиреНрд╕ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдирд╛

Kubectl рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЛ рдирд╛рдо рдХреЗ рд╕рд╛рде рд╕рд░рд▓ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ kubectl-x. рдЙрдкрд╕рд░реНрдЧ kubectl- рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рдж рдПрдХ рдирдпрд╛ kubectl рдЙрдкрдХрдорд╛рдВрдб рдЖрддрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдкреНрд▓рдЧрдЗрди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

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

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

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

$ kubectl plugin list

рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рд╣реА рдирд╛рдо рдХреЗ рдХрдИ рдкреНрд▓рдЧрдЗрди рд╣реИрдВ, рдпрд╛ рдпрджрд┐ рдХреЛрдИ рдкреНрд▓рдЧрдЗрди рдлрд╝рд╛рдЗрд▓ рд╣реИ рдЬреЛ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИ рддреЛ рдпрд╣ рдХрдорд╛рдВрдб рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдВ рднреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛ред

рдХреНрд░реВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдвреВрдВрдврдирд╛ рдФрд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдирд╛

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

рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреНрд░реВ рдЗрд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп Kubectl рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ, рдЦреЛрдЬрдиреЗ, рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдХреАрдХреГрдд рд╕рдорд╛рдзрд╛рди рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╣реИред рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЦреБрдж рдХреЛ "рдХреБрдмреЗрдХреНрдЯрд▓ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЗ рд▓рд┐рдП рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░" рдХрд╣рддрд╛ рд╣реИ (рдХреНрд░реВ рдХреЗ рд╕рдорд╛рди рд╣реИ)ред рд╢рд░рд╛рдм рдмрдирд╛рдирд╛).

рдХреНрд░реВ kubectl рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╡рд╣реАрдВ, Krew kubectl рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд▓рдЧрдЗрди рднреА рд╣реИред

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

рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреНрд░реВ рдХрдорд╛рдВрдб рд╣реИрдВ:

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

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХреНрд░реВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдорд╛рдирдХ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдореЗрдВ рдХреЛрдИ рдмрд╛рдзрд╛ рдирд╣реАрдВ рдЖрддреА рд╣реИред

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

рдЕрдиреНрдпрддреНрд░ рдкреНрд▓рдЧрдЗрди рдвреВрдБрдврдирд╛

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

рдореИрдВ GitHub рдЕрдиреБрднрд╛рдЧ рдХреЛ рджреЗрдЦрдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВ kubectl-рдкреНрд▓рдЧрдЗрдиреНрд╕. рд╡рд╣рд╛рдВ рдЖрдкрдХреЛ рджрд░реНрдЬрдиреЛрдВ рдЙрдкрд▓рдмреНрдз рдкреНрд▓рдЧрдЗрдиреНрд╕ рдорд┐рд▓реЗрдВрдЧреЗ рдЬреЛ рдЬрд╛рдВрдЪрдиреЗ рд▓рд╛рдпрдХ рд╣реИрдВред

рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдкреНрд▓рдЧрдЗрдиреНрд╕ рд▓рд┐рдЦрдирд╛

рдЖрдк рд╕реНрд╡рдпрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдмрдирд╛рдПрдВ - рдпрд╣ рдХрдард┐рди рдирд╣реАрдВ рд╣реИ. рдЖрдкрдХреЛ рдПрдХ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдЖрдкрдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░ рдХрд╛рдо рдХрд░реЗ, рдЗрд╕реЗ рдирд╛рдо рджреЗрдВ kubectl-x рдФрд░ рдКрдкрд░ рдмрддрд╛рдП рдЕрдиреБрд╕рд╛рд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВред

рдлрд╝рд╛рдЗрд▓ рдПрдХ рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ, рдПрдХ рдкрд╛рдпрдерди рд╕реНрдХреНрд░рд┐рдкреНрдЯ, рдпрд╛ рдПрдХ рд╕рдВрдХрд▓рд┐рдд GO рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реЛ рд╕рдХрддреА рд╣реИ - рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ред рдПрдХрдорд╛рддреНрд░ рд╢рд░реНрдд рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕реЗ рд╕реАрдзреЗ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЖрдЗрдП рдЕрднреА рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкреНрд▓рдЧрдЗрди рдмрдирд╛рдПрдВред рдкрд┐рдЫрд▓реЗ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ, рдЖрдкрдиреЗ рдкреНрд░рддреНрдпреЗрдХ рдкреЙрдб рдХреЗ рд▓рд┐рдП рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдмреЗрдХреНрдЯрд▓ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛ред рдЗрд╕ рдХрдорд╛рдВрдб рдХреЛ рдПрдХ рдкреНрд▓рдЧрдЗрди рдореЗрдВ рдмрджрд▓рдирд╛ рдЖрд╕рд╛рди рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред 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 рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдХреЙрд▓ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХрд╛ рд▓рд╛рдн рд╣реЛрдЧрд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЖрдк рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдкреНрд▓рдЧрдЗрдиреНрд╕ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреНрд▓рд╛рдЗрдВрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА. рдЕрдЧрд░ рдЖрдк рдЧреЛ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдЖрдк рднреА рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рд╕реАрдПрд▓рдЖрдИ-рд░рдирдЯрд╛рдЗрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА, рдЬреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ kubectl рдкреНрд▓рдЧрдЗрдиреНрд╕ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдореМрдЬреВрдж рд╣реИред

рдЕрдкрдиреЗ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреИрд╕реЗ рд╕рд╛рдЭрд╛ рдХрд░реЗрдВ

рдпрджрд┐ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкреНрд▓рдЧрдЗрдиреНрд╕ рджреВрд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдмреЗрдЭрд┐рдЭрдХ рдЗрд╕реЗ GitHub рдкрд░ рд╕рд╛рдЭрд╛ рдХрд░реЗрдВред рдЙрдиреНрд╣реЗрдВ рд╡рд┐рд╖рдп рдореЗрдВ рдЕрд╡рд╢реНрдп рдЬреЛрдбрд╝реЗрдВ kubectl-рдкреНрд▓рдЧрдЗрдиреНрд╕.

рдЖрдк рдпрд╣ рднреА рдЕрдиреБрд░реЛрдз рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХрд╛ рдкреНрд▓рдЧрдЗрди рдЗрд╕рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдП рдХреНрд░реВ рд╕реВрдЪреА. рдЗрд╕реЗ рдХреИрд╕реЗ рдХрд░реЗрдВ рдЗрд╕ рдкрд░ рдирд┐рд░реНрджреЗрд╢ рджрд┐рдП рдЧрдП рд╣реИрдВ GitHub рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА.

рдЖрджреЗрд╢ рдкреВрд░рд╛ рд╣реЛрдирд╛

рдкреНрд▓рдЧрдЗрдиреНрд╕ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдпрд╛рдиреА рдЖрдкрдХреЛ рдкреНрд▓рдЧрдЗрди рдХрд╛ рдкреВрд░рд╛ рдирд╛рдо рдФрд░ рддрд░реНрдХреЛрдВ рдХрд╛ рдкреВрд░рд╛ рдирд╛рдо рджрд░реНрдЬ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП GitHub kubectl рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╣реИ рдЦреБрд▓рд╛ рдЕрдиреБрд░реЛрдз. рдЗрд╕рд▓рд┐рдП рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХрд┐рд╕реА рд╕рдордп рд▓рд╛рдЧреВ рдХреА рдЬрд╛рдПрдЧреА.

рд╢реБрднрдХрд╛рдордирд╛рдПрдБ !!!

рд╡рд┐рд╖рдп рдкрд░ рдФрд░ рдХреНрдпрд╛ рдкрдврд╝рдирд╛ рд╣реИ:

  1. рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рдСрдЯреЛрд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХреЗ рддреАрди рд╕реНрддрд░ рдФрд░ рдЙрдирдХрд╛ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ.
  2. рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд╕рд╛рде рдкрд╛рдпрд░реЗрд╕реА рдХреА рднрд╛рд╡рдирд╛ рдореЗрдВ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕.
  3. рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдореЗрдВ рд╣рдорд╛рд░рд╛ рдЪреИрдирд▓ рдЕрд░рд╛рдЙрдВрдб рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕.

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ