Kubernetes рдХрдбреЗ рд╕рдВрд╕рд╛рдзрдиреЗ рдЕрдкрдбреЗрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЕрдиреЗрдХ рдкрд░реНрдпрд╛рдп рдЖрд╣реЗрдд: рд▓рд╛рдЧреВ рдХрд░рд╛, рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рд╛, рдкреЕрдЪ рдХрд░рд╛ рдЖрдгрд┐ рдмрджрд▓рд╛. рдкреНрд░рддреНрдпреЗрдХрдЬрдг рдХрд╛рдп рдХрд░рддреЛ рдЖрдгрд┐ рдХрдзреА рд╡рд╛рдкрд░рд╛рдпрдЪрд╛ рдпрд╛рдмрд╛рдмрдд рд╕рдВрднреНрд░рдо рдЖрд╣реЗ. рдЪрд▓рд╛ рддреЗ рдмрд╛рд╣реЗрд░ рдХрд╛рдвреВрдпрд╛.
рддрд░ kubectl patch
, рдЬреНрдпрд╛рдд рддреБрд▓рдирд╛ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдирд╛рд╣реА apply
╨╕ patch
. рд╣рд╛ рд▓реЗрдЦ рд╡рд┐рд╡рд┐рдз рдкрд░реНрдпрд╛рдп, рддрд╕реЗрдЪ рдкреНрд░рддреНрдпреЗрдХрд╛рдЪрд╛ рдпреЛрдЧреНрдп рд╡рд╛рдкрд░ рдкрд╛рд╣рдгрд╛рд░ рдЖрд╣реЗ.
рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рд╕рдВрд╕рд╛рдзрдирд╛рдЪреНрдпрд╛ рдЬреАрд╡рдирдЪрдХреНрд░рд╛рджрд░рдореНрдпрд╛рди (рд╕реЗрд╡рд╛, рдЙрдкрдпреЛрдЬрди, рдкреНрд░рд╡реЗрд╢, рдЗ.) рдХрд╛рд╣реАрд╡реЗрд│рд╛ рддреБрдореНрд╣рд╛рд▓рд╛ рдпрд╛ рд╕рдВрд╕рд╛рдзрдирд╛рдЪреЗ рдХрд╛рд╣реА рдЧреБрдгрдзрд░реНрдо рдмрджрд▓рдгреЗ, рдЬреЛрдбрдгреЗ рдХрд┐рдВрд╡рд╛ рдХрд╛рдвреВрди рдЯрд╛рдХрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдПрдХ рдЯреАрдк рдЬреЛрдбрд╛, рдкреНрд░рддрд┐рдХреГрддреАрдВрдЪреА рд╕рдВрдЦреНрдпрд╛ рд╡рд╛рдврд╡рд╛ рдХрд┐рдВрд╡рд╛ рдХрдореА рдХрд░рд╛.
рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рд╕реАрдПрд▓рдЖрдп
рдЬрд░ рддреБрдореНрд╣реА рдЖрдзреАрдЪ CLI рджреНрд╡рд╛рд░реЗ Kubernetes рдХреНрд▓рд╕реНрдЯрд░реНрд╕рд╕рд╣ рдХрд╛рдо рдХрд░рдд рдЕрд╕рд╛рд▓, рддрд░ рддреБрдореНрд╣реА рдЖрдзреАрдЪ рдкрд░рд┐рдЪрд┐рдд рдЖрд╣рд╛рдд apply
╨╕ edit
. рд╕рдВрдШ apply
рдлрд╛рдИрд▓рдордзреАрд▓ рд╕рдВрд╕рд╛рдзрди рддрдкрд╢реАрд▓ рд╡рд╛рдЪрддреЗ рдЖрдгрд┐ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдХреНрд▓рд╕реНрдЯрд░рд▓рд╛ "рдЕрдкреНрд╕рд░реНрдЯ" рдмрдирд╡рддреЗ, рдЙрджрд╛. рдЬрд░ рддреЗ рдЕрд╕реНрддрд┐рддреНрд╡рд╛рдд рдирд╕реЗрд▓ рддрд░ рд╕рдВрд╕рд╛рдзрди рддрдпрд╛рд░ рдХрд░рддреЗ рдЖрдгрд┐ рддреЗ рдЕрд╕реНрддрд┐рддреНрд╡рд╛рдд рдЕрд╕рд▓реНрдпрд╛рд╕ рддреЗ рдЕрджреНрдпрддрдирд┐рдд рдХрд░рддреЗ. рд╕рдВрдШ edit
API рджреНрд╡рд╛рд░реЗ рд╕рдВрд╕рд╛рдзрди рд╡рд╛рдЪрддреЗ, рдирдВрддрд░ рд╕реНрдерд╛рдирд┐рдХ рдлрд╛рдЗрд▓рд╡рд░ рд╕рдВрд╕рд╛рдзрди рддрдкрд╢реАрд▓ рд▓рд┐рд╣рд┐рддреЗ, рдЬреА рдирдВрддрд░ рдордЬрдХреВрд░ рд╕рдВрдкрд╛рджрдХрд╛рдд рдЙрдШрдбрд▓реА рдЬрд╛рддреЗ. рддреБрдореНрд╣реА рдлрд╛рдЗрд▓ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реВрди рд╕реЗрд╡реНрд╣ рдХреЗрд▓реНрдпрд╛рдирдВрддрд░, kubectl
API рджреНрд╡рд╛рд░реЗ рдХреЗрд▓реЗрд▓реЗ рдмрджрд▓ рдкрд░рдд рдкрд╛рдард╡реЗрд▓, рдЬреЗ рд╣реЗ рдмрджрд▓ рд╕рдВрд╕рд╛рдзрдирд╛рд╡рд░ рдХрд╛рд│рдЬреАрдкреВрд░реНрд╡рдХ рд▓рд╛рдЧреВ рдХрд░реЗрд▓.
рдкреНрд░рддреНрдпреЗрдХрд╛рд▓рд╛ рдЖрдЬреНрдЮрд╛ рдорд╛рд╣рд┐рдд рдирд╛рд╣реАрдд patch
╨╕ replace
. рд╕рдВрдШ patch
рдХрдорд╛рдВрдб рд▓рд╛рдЗрдирд╡рд░ рдлрдХреНрдд рдмрджрд▓рд▓реЗрд▓рд╛ рднрд╛рдЧ рдкреНрд░рджрд╛рди рдХрд░реВрди рддреБрдореНрд╣рд╛рд▓рд╛ рд╕рдВрд╕рд╛рдзрди рддрдкрд╢реАрд▓рд╛рдЪрд╛ рднрд╛рдЧ рдмрджрд▓рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ. рд╕рдВрдШ replace
рд╕рд╛рд░рдЦреЗрдЪ рдХрд╛рд░реНрдп рдХрд░рддреЗ edit
, рдкрд░рдВрддреБ рд╕рд░реНрд╡рдХрд╛рд╣реА рд╡реНрдпрдХреНрддрд┐рдЪрд▓рд┐рддрдкрдгреЗ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ: рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рд╕рдВрд╕рд╛рдзрди рддрдкрд╢реАрд▓рд╛рдЪреА рд╡рд░реНрддрдорд╛рди рдЖрд╡реГрддреНрддреА рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рд╡рд╛рдкрд░реВрди kubectl get -o yaml
, рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рд╛, рдирдВрддрд░ рд╡рд╛рдкрд░рд╛ replace
рдмрджрд▓рд▓реЗрд▓реНрдпрд╛ рддрдкрд╢реАрд▓рд╛рдиреБрд╕рд╛рд░ рд╕рдВрд╕рд╛рдзрди рдЕрджреНрдпрддрдирд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА. рд╕рдВрдШ replace
рд░рд┐рд╕реЛрд░реНрд╕ рд╡рд╛рдЪрдгреЗ рдЖрдгрд┐ рдмрджрд▓рдгреЗ рдпрд╛рдордзреНрдпреЗ рдХреЛрдгрддреЗрд╣реА рдмрджрд▓ рдЭрд╛рд▓реНрдпрд╛рд╕ рдХрд╛рд░реНрдп рдХрд░рдгрд╛рд░ рдирд╛рд╣реА.
Kubernetes API
рдЖрдкрдг рдХрджрд╛рдЪрд┐рдд рдкрджреНрдзрддреАрдВрд╢реА рдкрд░рд┐рдЪрд┐рдд рдЖрд╣рд╛рдд CoreV1().Pods().Update()
, replaceNamespacedService
рдХрд┐рдВрд╡рд╛ patch_namespaced_deployment
, рдЬрд░ рддреБрдореНрд╣реА рдХреНрд▓рд╕реНрдЯрд░реНрд╕ рджреНрд╡рд╛рд░реЗ рдХрд╛рдо рдХрд░рдд рдЕрд╕рд╛рд▓ PUT
╨╕ PATCH
... рдЬреНрдпрд╛рдд update
╨╕ replace
рд╡рд╛рдкрд░рд╛ PUT
рдЖрдгрд┐ patch
, рддреЗ рдХрд┐рддреАрд╣реА рдХреНрд╖реБрд▓реНрд▓рдХ рдЕрд╕рд▓реЗ рддрд░реА рд╡рд╛рдкрд░рддреЗ PATCH
.
рд╣реЗ рд▓рдХреНрд╖рд╛рдд рдШреЗрдгреНрдпрд╛рд╕рд╛рд░рдЦреЗ рдЖрд╣реЗ kubectl
API рджреНрд╡рд╛рд░реЗ рдХреНрд▓рд╕реНрдЯрд░рд╕рд╣ рджреЗрдЦреАрд▓ рдХрд╛рд░реНрдп рдХрд░рддреЗ. рджреБрд╕рд░рд╝реНрдпрд╛ рд╢рдмреНрджрд╛рдд, kubectl
рдЧреЛ рд▓рдБрдЧреНрд╡реЗрдЬрд╕рд╛рдареА рдХреНрд▓рд╛рдпрдВрдЯ рд▓рд╛рдпрдмреНрд░рд░реАрдЪреНрдпрд╛ рд╡рд░ рдПрдХ рд░реЕрдкрд░ рдЖрд╣реЗ, рдЬреЗ рдорд╛рдирдХ API рдХреНрд╖рдорддрд╛рдВрд╡реНрдпрддрд┐рд░рд┐рдХреНрдд рдЕрдзрд┐рдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЖрдгрд┐ рд╡рд╛рдЪрдиреАрдп рд╕реНрд╡рд░реВрдкрд╛рдд рд╕рдмрдХрдорд╛рдВрдб рдкреНрд░рджрд╛рди рдХрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЬрд╕реЗ рдЖрдкрдг рдЖрдзреАрдЪ рд▓рдХреНрд╖рд╛рдд рдШреЗрддрд▓реЗ рдЕрд╕реЗрд▓, рдкрджреНрдзрдд apply
рдорд╛рдЧреАрд▓ рдкрд░рд┐рдЪреНрдЫреЗрджрд╛рдд рд╡рд░ рдЙрд▓реНрд▓реЗрдЦ рдХреЗрд▓рд╛ рдирд╡реНрд╣рддрд╛. рд╕рдзреНрдпрд╛ (рдореЗ 2020, рдЕрдВрджрд╛рдЬреЗ рдЕрдиреБрд╡рд╛рджрдХ) рд╕рд░реНрд╡ рддрд░реНрдХ kubectl apply
, рдореНрд╣рдгрдЬреЗ рдЕрд╕реНрддрд┐рддреНрд╡рд╛рдд рдирд╕рд▓реЗрд▓реА рд╕рдВрд╕рд╛рдзрдиреЗ рддрдпрд╛рд░ рдХрд░рдгреЗ рдЖрдгрд┐ рд╡рд┐рджреНрдпрдорд╛рди рд╕рдВрд╕рд╛рдзрдиреЗ рдЕрджреНрдпрддрдирд┐рдд рдХрд░рдгреЗ, рдкреВрд░реНрдгрдкрдгреЗ рдХреЛрдбрдЪреНрдпрд╛ рдмрд╛рдЬреВрдиреЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ kubectl
. рдкреНрд░рдпрддреНрди рдХреЗрд▓реЗ рдЬрд╛рдд рдЖрд╣реЗрдд apply
API рдмрд╛рдЬреВрд▓рд╛, рдкрд░рдВрддреБ рддреЗ рдЕрджреНрдпрд╛рдк рдмреАрдЯрд╛рдордзреНрдпреЗ рдЖрд╣реЗ. рдореА рдЦрд╛рд▓реА рдЕрдзрд┐рдХ рддрдкрд╢реАрд▓рд╡рд╛рд░ рд▓рд┐рд╣реАрди.
рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░ рдкреЕрдЪ
рд╕рд░реНрд╡реЛрддреНрддрдо рд╡рд╛рдкрд░рд▓реЗ patch
, рдЖрдкрдг рд╕рдВрд╕рд╛рдзрди рдЕрджреНрдпрддрдирд┐рдд рдХрд░реВ рдЗрдЪреНрдЫрд┐рдд рдЕрд╕рд▓реНрдпрд╛рд╕. рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ рджреЛрдиреНрд╣реА рдХреНрд▓рд╛рдпрдВрдЯ рд▓рд╛рдпрдмреНрд░рд░реА Kubernetes API рд╡рд░ рдХрд╛рд░реНрдп рдХрд░рддрд╛рдд рдЖрдгрд┐ kubectl
(рдЖрд╢реНрдЪрд░реНрдпрдХрд╛рд░рдХ рдирд╛рд╣реА, рдХрд╛рд░рдг рддреЗ рдХреНрд▓рд╛рдпрдВрдЯ рд▓рд╛рдпрдмреНрд░рд░реАрд╕рд╛рдареА рдПрдХ рдЖрд╡рд░рдг рдЖрд╣реЗ, рдЕрдВрджрд╛рдЬреЗ рдЕрдиреБрд╡рд╛рджрдХ).
рдзреЛрд░рдгрд╛рддреНрдордХ рдХрд╛рдо рдХрд░рд╛
рд╕рд░реНрд╡ рд╕рдВрдШ kubectl
apply
, edit
╨╕ patch
рдкрджреНрдзрдд рд╡рд╛рдкрд░рд╛ PATCH
рд╡рд┐рджреНрдпрдорд╛рди рд╕рдВрд╕рд╛рдзрди рдЕрджреНрдпрддрдирд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА HTTP рд╡рд┐рдирдВрддреНрдпрд╛рдВрдордзреНрдпреЗ. рдЬрд░ рддреБрдореНрд╣реА рдХрдорд╛рдВрдбреНрд╕рдЪреНрдпрд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдордзреНрдпреЗ рдЕрдзрд┐рдХ рддрдкрд╢реАрд▓рд╡рд╛рд░ рд╡рд┐рдЪрд╛рд░ рдХреЗрд▓рд╛ рддрд░ рддреЗ рд╕рд░реНрд╡ рджреГрд╖реНрдЯреАрдХреЛрди рд╡рд╛рдкрд░рддрд╛рдд patch
рдЗрддрд░ рдкрдзреНрджрддреА рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛рдд (рдЦрд╛рд▓реАрд▓ рдпрд╛рд╡рд░ рдЕрдзрд┐рдХ). рд╕реНрдЯреНрд░реЕрдЯреЗрдЬрд┐рдХ-рдорд░реНрдЬ рдкреЕрдЪрд┐рдВрдЧ рдкрдзреНрджрдд рд╕рдзреНрдпрд╛рдЪреНрдпрд╛ рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХреЗрд╢рдирд╕рд╣ рдкреБрд░рд╡рд▓реЗрд▓реЗ рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХреЗрд╢рди рд╡рд┐рд▓реАрди рдХрд░реВрди "рддреЗ рдмрд░реЛрдмрд░ рдорд┐рд│рд╡рдгреНрдпрд╛рдЪрд╛" рдкреНрд░рдпрддреНрди рдХрд░рддреЗ. рдЕрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯрдкрдгреЗ, рддреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдЖрдгрд┐ рдЕреЕрд░реЗ рджреЛрдиреНрд╣реА рдПрдХрддреНрд░ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░рддреЗ, рдпрд╛рдЪрд╛ рдЕрд░реНрде рдмрджрд▓ рд╣реЗ рдЬреЛрдбрдгреНрдпрд╛рд╕рд╛рд░рдЦреЗ рдЕрд╕рддрд╛рдд. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдХрдорд╛рдВрдб рдЪрд╛рд▓рд╡рдгреЗ patch
рдкреЙрдб рдХрдВрдЯреЗрдирд░ рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХреЗрд╢рдирдордзреНрдпреЗ рдирд╡реАрди рдПрдиреНрд╡реНрд╣рд╛рдпрд░реНрдирдореЗрдВрдЯ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓рд╕рд╣, рддреЗ рдПрдиреНрд╡реНрд╣рд╛рдпрд░реНрдирдореЗрдВрдЯ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ рддреНрдпрд╛рдВрдирд╛ рдУрд╡реНрд╣рд░рд░рд╛рдЗрдЯ рдХрд░рдгреНрдпрд╛рдРрд╡рдЬреА рд╡рд┐рджреНрдпрдорд╛рди рдкрд░реНрдпрд╛рд╡рд░рдг рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓рдордзреНрдпреЗ рдЬреЛрдбрд▓реЗ рдЬрд╛рддреЗ. рд╣рд╛ рджреГрд╖реНрдЯрд┐рдХреЛрди рд╡рд╛рдкрд░реВрди рдХрд╛рдвреВрди рдЯрд╛рдХрдгреНрдпрд╛рд╕рд╛рдареА, рддреБрдореНрд╣реА рдкреНрд░рджрд╛рди рдХреЗрд▓реЗрд▓реНрдпрд╛ рддрдкрд╢реАрд▓рд╛рдордзреНрдпреЗ рдкреЕрд░рд╛рдореАрдЯрд░ рдореВрд▓реНрдп рд╢реВрдиреНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕рдХреНрддреА рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рд╕рдВрдШ рдХреЛрдгрддреНрдпрд╛ kubectl
рдЕрджреНрдпрдпрд╛рд╡рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рдгреЗ рдЪрд╛рдВрдЧрд▓реЗ рдЖрд╣реЗ рдХрд╛?
рдЖрдкрдг рд╡рд╛рдкрд░реВрди рдЖрдкрд▓реА рд╕рдВрд╕рд╛рдзрдиреЗ рддрдпрд╛рд░ рдЖрдгрд┐ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реНрдпрд╛рд╕ kubectl apply
, рдЕрджреНрдпрддрдирд┐рдд рдХрд░рддрд╛рдирд╛ рдиреЗрд╣рдореА рд╡рд╛рдкрд░рдгреЗ рдЪрд╛рдВрдЧрд▓реЗ kubectl apply
рддреЗ kubectl
рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░реВ рд╢рдХрддреЗ рдЖрдгрд┐ рд╡рд┐рдирдВрддреА рдХреЗрд▓реЗрд▓реНрдпрд╛ рдмрджрд▓рд╛рдВрдЪрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рддреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдпреЛрдЧреНрдпрд░рд┐рддреНрдпрд╛ рдорд╛рдЧреЛрд╡рд╛ рдШреЗрдК рд╢рдХрддреЗ. рдлрд╛рдпрджрд╛ рдиреЗрд╣рдореА рд╡рд╛рдкрд░рд╛ apply
рдореНрд╣рдгрдЬреЗ рддреЗ рдкреВрд░реНрд╡реА рд▓рд╛рдЧреВ рдХреЗрд▓реЗрд▓реНрдпрд╛ рддрдкрд╢реАрд▓рд╛рдЪрд╛ рдорд╛рдЧреЛрд╡рд╛ рдареЗрд╡рддреЗ, рдЬреЗ рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХреЗрд╢рди рдЧреБрдгрдзрд░реНрдо рдЖрдгрд┐ рдЕреЕрд░реЗ рдШрдЯрдХ рд╕реНрдкрд╖реНрдЯрдкрдгреЗ рдХрд╛рдвреВрди рдЯрд╛рдХрд▓реЗ рдЬрд╛рддрд╛рдд рддреЗрд╡реНрд╣рд╛ рд╣реЗ рдЬрд╛рдгреВрди рдШреЗрдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ. рд╣реЗ рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ apply
рдЧреБрдгрдзрд░реНрдо рдЖрдгрд┐ рдЕреЕрд░реЗ рдШрдЯрдХ рдХрд╛рдвреВрди рдЯрд╛рдХрдгреНрдпрд╛рд╕рд╛рдареА, рддрд░ рд╕рд╛рдорд╛рдиреНрдп рдзреЛрд░рдгрд╛рддреНрдордХ рд╡рд┐рд▓реАрдиреАрдХрд░рдг рдХрд╛рд░реНрдп рдХрд░рдгрд╛рд░ рдирд╛рд╣реА. рд╕рдВрдШ edit
╨╕ patch
рддреНрдпрд╛ рдиреЛрдЯреНрд╕ рдЕрдкрдбреЗрдЯ рдХрд░реВ рдирдХрд╛ kubectl apply
рддреНтАНрдпрд╛рдЪреНтАНрдпрд╛ рдмрджрд▓рд╛рдВрдЪрд╛ рдорд╛рдЧреЛрд╡рд╛ рдШреЗрдгреНтАНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рддреЗ, рддреНрдпрд╛рдореБрд│реЗ рдХреБрдмреЗрд░реНрдиреЗрдЯреНрд╕ API рджреНрд╡рд╛рд░реЗ рдЯреНрд░реЕрдХ рдХреЗрд▓реЗрд▓реЗ рдЖрдгрд┐ рдХреЗрд▓реЗрд▓реЗ рдХреЛрдгрддреЗрд╣реА рдмрджрд▓, рдкрд░рдВрддреБ рдЖрджреЗрд╢рд╛рдВрджреНрд╡рд╛рд░реЗ рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд edit
╨╕ patch
, рддреНрдпрд╛рдирдВрддрд░рдЪреНрдпрд╛ рдЖрджреЗрд╢рд╛рдВрдирд╛ рдЕрджреГрд╢реНрдп apply
рддреЗ рдЖрд╣реЗ apply
рд╕рд╛рдареА рдЗрдирдкреБрдЯ рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХреЗрд╢рдирдордзреНрдпреЗ рджрд┐рд╕рдд рдирд╕рд▓реЗ рддрд░реАрд╣реА рддреНрдпрд╛рдВрдирд╛ рдХрд╛рдвреВрди рдЯрд╛рдХрдд рдирд╛рд╣реА apply
(рдХрд╛рдЧрджрдкрддреНрд░рд╛рдд рдЕрд╕реЗ рдореНрд╣рдЯрд▓реЗ рдЖрд╣реЗ edit
╨╕ patch
рд╡рд╛рдкрд░рд▓реЗрд▓реНрдпрд╛ рдиреЛрдЯреНрд╕рдордзреНрдпреЗ рд╕реБрдзрд╛рд░рдгрд╛ рдХрд░рд╛ apply
, рдкрд░рдВрддреБ рд╕рд░рд╛рд╡ рдордзреНрдпреЗ - рдирд╛рд╣реА).
рддреБрдореНрд╣реА рдХрдорд╛рдВрдб рд╡рд╛рдкрд░рдд рдирд╕рд▓реНрдпрд╛рд╕ apply
, рдореНрд╣рдгреВрди рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ edit
, рдЖрдгрд┐ patch
, рдХреЗрд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд▒реНрдпрд╛ рдмрджрд▓рд╛рд╕рд╛рдареА рд╕рд░реНрд╡реЛрддреНрддрдо рдЕрдиреБрдХреВрд▓ рдЕрд╕рд▓реЗрд▓реА рдХрдорд╛рдВрдб рдирд┐рд╡рдбрдгреЗ. BOM рдЧреБрдгрдзрд░реНрдо рдЬреЛрдбрддрд╛рдирд╛ рдЖрдгрд┐ рдмрджрд▓рддрд╛рдирд╛, рджреЛрдиреНрд╣реА рджреГрд╖реНрдЯрд┐рдХреЛрди рдЕрдВрджрд╛рдЬреЗ рд╕рдорд╛рди рдЕрд╕рддрд╛рдд. рддрдкрд╢реАрд▓ рдЧреБрдгрдзрд░реНрдо рдХрд┐рдВрд╡рд╛ рдЕреЕрд░реЗ рдШрдЯрдХ рд╣рдЯрд╡рддрд╛рдирд╛ edit
рдПрдХ-рд╡реЗрд│ рд▓рд╛рдБрдЪ рд╕рд╛рд░рдЦреЗ рд╡рд╛рдЧрддреЗ apply
, рд╕рдВрдкрд╛рджрдирд╛рдкреВрд░реНрд╡реА рдЖрдгрд┐ рдирдВрддрд░ рддрдкрд╢реАрд▓ рдХрд╕рд╛ рд╣реЛрддрд╛ рдпрд╛рдЪрд╛ рдорд╛рдЧреЛрд╡рд╛ рдареЗрд╡рдгреНрдпрд╛рд╕рд╣, рдЬреЗрдгреЗрдХрд░реВрди рддреБрдореНрд╣реА рд╕реНрддреНрд░реЛрддрд╛рдордзреВрди рдЧреБрдгрдзрд░реНрдо рдЖрдгрд┐ рдЕреЕрд░реЗ рдШрдЯрдХ рд╕реНрдкрд╖реНрдЯрдкрдгреЗ рдХрд╛рдвреВрди рдЯрд╛рдХреВ рд╢рдХрддрд╛. рддреБрдореНрд╣рд╛рд▓рд╛ рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХреЗрд╢рдирдордзреНрдпреЗ рд╕реНрдкрд╖реНрдЯрдкрдгреЗ рдкреНрд░реЙрдкрд░реНрдЯреА рд╡реНрд╣реЕрд▓реНрдпреВ рд╢реВрдиреНрдп рд╡рд░ рд╕реЗрдЯ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ patch
рд╕рдВрд╕рд╛рдзрдирд╛рддреВрди рдХрд╛рдвреВрди рдЯрд╛рдХрдгреНрдпрд╛рд╕рд╛рдареА. рд╕реНрдЯреНрд░реЕрдЯреЗрдЬрд┐рдХ-рдорд░реНрдЬ рдкреЕрдЪрд┐рдВрдЧ рд╡рд╛рдкрд░реВрди рдЕреЕрд░реЗ рдШрдЯрдХ рдХрд╛рдвреВрди рдЯрд╛рдХрдгреЗ рдЕрдзрд┐рдХ рдХреНрд▓рд┐рд╖реНрдЯ рдЖрд╣реЗ рдХрд╛рд░рдг рддреНрдпрд╛рд╕рд╛рдареА рдорд░реНрдЬ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдЪрд╛ рд╡рд╛рдкрд░ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдЕрдзрд┐рдХ рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рдкрд░реНрдпрд╛рдпрд╛рдВрд╕рд╛рдареА рдЦрд╛рд▓реА рдЗрддрд░ рдЕрдкрдЧреНрд░реЗрдб рдкрдзреНрджрддреА рдкрд╣рд╛.
рдХреНрд▓рд╛рдпрдВрдЯ рд▓рд╛рдпрдмреНрд░рд░реАрдордзреНрдпреЗ рдЕрджреНрдпрдпрд╛рд╡рдд рдкрджреНрдзрддреА рд▓рд╛рдЧреВ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЬреЗ рд╡рд░реАрд▓ рдЖрджреЗрд╢рд╛рдВрдкреНрд░рдорд╛рдгреЗрдЪ рд╡рд╛рдЧрддрд╛рдд kubectl
, рд╡рд┐рдирдВрддреНрдпрд╛рдВрдордзреНрдпреЗ рд╕реЗрдЯ рдХреЗрд▓реЗ рдкрд╛рд╣рд┐рдЬреЗ content-type
╨▓ application/strategic-merge-patch+json
. рддреБрдореНрд╣рд╛рд▓рд╛ рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХреЗрд╢рдирдордзреАрд▓ рдЧреБрдгрдзрд░реНрдо рдХрд╛рдвреВрди рдЯрд╛рдХрд╛рдпрдЪреЗ рдЕрд╕рд▓реНрдпрд╛рд╕, рддреБрдореНрд╣рд╛рд▓рд╛ рддреНрдпрд╛рдВрдЪреА рд╡реНрд╣реЕрд▓реНрдпреВ рд╕реНрдкрд╖реНрдЯрдкрдгреЗ рдЕрд╢рд╛рдЪ рдкреНрд░рдХрд╛рд░реЗ рд╢реВрдиреНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕реЗрдЯ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. kubectl patch
. рддреБрдореНрд╣рд╛рд▓рд╛ рдЕреЕрд░реЗ рдШрдЯрдХ рдХрд╛рдвреВрди рдЯрд╛рдХрд╛рдпрдЪреЗ рдЕрд╕рд▓реНрдпрд╛рд╕, рддреБрдореНрд╣реА рдЕрдкрдбреЗрдЯ рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХреЗрд╢рдирдордзреНрдпреЗ рдорд░реНрдЬ рдирд┐рд░реНрджреЗрд╢ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХреЗрд▓реЗ рдкрд╛рд╣рд┐рдЬреЗрдд рдХрд┐рдВрд╡рд╛ рдЕрдкрдбреЗрдЯреНрд╕рд╕рд╛рдареА рд╡реЗрдЧрд│рд╛ рджреГрд╖реНрдЯрд┐рдХреЛрди рд╡рд╛рдкрд░рд╛рд╡рд╛.
рдЕрджреНрдпрддрдирд╛рдВрд╕рд╛рдареА рдЗрддрд░ рджреГрд╖реНрдЯрд┐рдХреЛрди
Kubernetes рджреЛрди рдЗрддрд░ рдЕрджреНрдпрддрди рдкрджреНрдзрддреАрдВрдирд╛ рд╕рдорд░реНрдерди рджреЗрддреЗ: kubectl patch --type=merge
. Kubernetes API рд╕рд╣ рдХрд╛рдо рдХрд░рддрд╛рдирд╛, рддреБрдореНрд╣реА рд╡рд┐рдирдВрддреА рдкрджреНрдзрдд рд╡рд╛рдкрд░рд╛рд╡реА PATCH
рдЖрдгрд┐ рд╕реНрдерд╛рдкрдирд╛ content-type
╨▓ application/merge-patch+json
.
JSON рдкреЕрдЪ рджреГрд╖реНрдЯреАрдХреЛрди, рд╕рдВрд╕рд╛рдзрдирд╛рдЪреЗ рдЖрдВрд╢рд┐рдХ рддрдкрд╢реАрд▓ рдкреНрд░рджрд╛рди рдХрд░рдгреНрдпрд╛рдРрд╡рдЬреА, рдЖрдкрдг рдЕтАНреЕрд░реЗ рдореНрд╣рдгреВрди рд╕рдВрд╕рд╛рдзрдирд╛рдордзреНрдпреЗ рдХрд░реВ рдЗрдЪреНрдЫрд┐рдд рдмрджрд▓ рдкреНрд░рджрд╛рди рдХрд░рдгреЗ рд╡рд╛рдкрд░рддреЛ, рдЬреНрдпрд╛рдордзреНрдпреЗ рдЕтАНреЕрд░реЗрдЪрд╛ рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рд╕рдВрд╕рд╛рдзрдирд╛рдордзреНрдпреЗ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдмрджрд▓рд╛рдЪреЗ рд╡рд░реНрдгрди рджрд░реНрд╢рд╡рддреЛ. рдХреЗрд▓реЗ рдЬрд╛рдгрд╛рд░реЗ рдмрджрд▓ рд╡реНрдпрдХреНрдд рдХрд░рдгреНрдпрд╛рдЪрд╛ рд╣рд╛ рджреГрд╖реНрдЯреАрдХреЛрди рдЕрдзрд┐рдХ рд▓рд╡рдЪрд┐рдХ рдЖрдгрд┐ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдорд╛рд░реНрдЧ рдЖрд╣реЗ, рдкрд░рдВрддреБ рдЖрдВрд╢рд┐рдХ рд╕рдВрд╕рд╛рдзрди рддрдкрд╢реАрд▓ рдкрд╛рдард╡рдгреНрдпрд╛рдРрд╡рдЬреА рд╡реЗрдЧрд│реНрдпрд╛, рдХреБрдмрд░рдиреЗрдЯ рдирд╕рд▓реЗрд▓реНрдпрд╛ рд╕реНрд╡рд░реВрдкрд╛рдд рдмрджрд▓ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдХрд┐рдВрдорддреАрд╡рд░. IN kubectl
рддреБрдореНрд╣реА JSON рдкреЕрдЪ рд╡рд╛рдкрд░реВрди рдирд┐рд╡рдбреВ рд╢рдХрддрд╛ kubectl patch --type=json
. Kubernetes API рд╡рд╛рдкрд░рддрд╛рдирд╛, рд╣рд╛ рджреГрд╖реНрдЯрд┐рдХреЛрди рд╡рд┐рдирдВрддреА рдкрджреНрдзрддреА рд╡рд╛рдкрд░реВрди рдХрд╛рд░реНрдп рдХрд░рддреЛ PATCH
рдЖрдгрд┐ рд╕реНрдерд╛рдкрдирд╛ content-type
╨▓ application/json-patch+json
.
рдЖрдореНрд╣рд╛рд▓рд╛ рдЖрддреНрдорд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣рд╡рд╛ рдЖрд╣реЗ - рдмрджрд▓реА рд╡рд╛рдкрд░рд╛
рдХрд╛рд╣реА рдкреНрд░рдХрд░рдгрд╛рдВрдордзреНрдпреЗ, рд╕рдВрд╕рд╛рдзрди рд╡рд╛рдЪрд▓реЗ рдЬрд╛рдгреЗ рдЖрдгрд┐ рддреЗ рдЕрджреНрдпрддрдирд┐рдд рдХреЗрд▓реЗ рдЬрд╛рдгреЗ рдпрд╛ рджрд░рдореНрдпрд╛рди рд╕рдВрд╕рд╛рдзрдирд╛рдордзреНрдпреЗ рдХреЛрдгрддреЗрд╣реА рдмрджрд▓ рдХреЗрд▓реЗ рдЬрд╛рдгрд╛рд░ рдирд╛рд╣реАрдд рдпрд╛рдЪреА рдЦрд╛рддреНрд░реА рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рджреБрд╕рд▒реНрдпрд╛ рд╢рдмреНрджрд╛рдВрдд, рдЖрдкрдг рд╕рд░реНрд╡ рдмрджрд▓ рд╣реЛрддреАрд▓ рдпрд╛рдЪреА рдЦрд╛рддреНрд░реА рдХрд░рд╛рд╡реА рдЕрдгреВ. рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рд╕рдВрд╕рд╛рдзрдиреЗ рдЕрджреНрдпрддрдирд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдкрдг рд╡рд╛рдкрд░рд╛рд╡реЗ replace
. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЬрд░ рддреБрдордЪреНрдпрд╛рдХрдбреЗ рдХрд╛рдЙрдВрдЯрд░рд╕рд╣ рдХреЙрдиреНрдлрд┐рдЧрдореЕрдк рдЕрд╕реЗрд▓ рдЬреЛ рдПрдХрд╛рдзрд┐рдХ рд╕реНрддреНрд░реЛрддрд╛рдВрджреНрд╡рд╛рд░реЗ рдЕрджреНрдпрддрдирд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ, рддрд░ рддреБрдореНрд╣реА рдЦрд╛рддреНрд░реА рдмрд╛рд│рдЧрд▓реА рдкрд╛рд╣рд┐рдЬреЗ рдХреА рджреЛрди рд╕реНрддреНрд░реЛрдд рдПрдХрд╛рдЪ рд╡реЗрд│реА рдХрд╛рдЙрдВрдЯрд░ рдЕрджреНрдпрддрдирд┐рдд рдХрд░рдд рдирд╛рд╣реАрдд, рдЬреНрдпрд╛рдореБрд│реЗ рдЕрджреНрдпрддрди рдЧрдорд╛рд╡рд▓реЗ рдЬрд╛рдИрд▓. рджрд░реНрд╢рд╡рд┐рдгреНрдпрд╛рд╕рд╛рдареА, рджреГрд╖реНрдЯрд┐рдХреЛрди рд╡рд╛рдкрд░реВрди рдШрдЯрдирд╛рдВрдЪреНрдпрд╛ рдХреНрд░рдорд╛рдЪреА рдХрд▓реНрдкрдирд╛ рдХрд░рд╛ patch
:
- A рдЖрдгрд┐ B рд▓рд╛ API рдордзреВрди рд╕рдВрд╕рд╛рдзрдирд╛рдЪреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддреА рдорд┐рд│рддреЗ
- рдкреНрд░рддреНрдпреЗрдХ рдПрдХрд╛рдиреЗ рдХрд╛рдЙрдВрдЯрд░ рд╡рд╛рдврд╡реВрди рдЖрдгрд┐ "рдЕрдкрдбреЗрдЯ-рдмрд╛рдп" рдиреЛрдЯрдордзреНрдпреЗ рдЕрдиреБрдХреНрд░рдореЗ "A" рдХрд┐рдВрд╡рд╛ "B" рдЬреЛрдбреВрди рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХреЗрд╢рди рдЕрджреНрдпрддрдирд┐рдд рдХрд░рддреЗ.
- рдЖрдгрд┐ рддреЗ рд╕рдВрд╕рд╛рдзрди рдереЛрдбреЗ рдЬрд▓рдж рдЕрджреНрдпрддрдирд┐рдд рдХрд░рддреЗ
- B рд╕рдВрд╕рд╛рдзрди рдЕрджреНрдпрддрдирд┐рдд рдХрд░рддреЗ
рдкрд░рд┐рдгрд╛рдореА, рдЕрджреНрдпрддрди A рдЧрдорд╛рд╡рд▓рд╛ рдЖрд╣реЗ. рд╢реЗрд╡рдЯрдЪреЗ рдСрдкрд░реЗрд╢рди patch
рдЬрд┐рдВрдХрд▓рд╛, рдХрд╛рдЙрдВрдЯрд░ рджреЛрди рдРрд╡рдЬреА рдПрдХрд╛рдиреЗ рд╡рд╛рдврд╡рд▓рд╛ рдЬрд╛рддреЛ рдЖрдгрд┐ "рдЕрдкрдбреЗрдЯ-рдмрд╛рдп" рдиреЛрдЯрдЪреЗ рдореВрд▓реНрдп "B" рдиреЗ рд╕рдорд╛рдкреНрдд рд╣реЛрддреЗ рдЖрдгрд┐ рддреНрдпрд╛рдд "A" рдирд╕рддреЗ. рджреГрд╖реНрдЯреАрдХреЛрди рд╡рд╛рдкрд░реВрди рдЕрджреНрдпрддрдиреЗ рдХреЗрд▓реА рдЬрд╛рддрд╛рдд рддреЗрд╡реНрд╣рд╛ рдХрд╛рдп рд╣реЛрддреЗ рдпрд╛рдЪреНрдпрд╛рд╢реА рд╡рд░реАрд▓ рддреБрд▓рдирд╛ рдХрд░реВрдпрд╛ replace
:
- A рдЖрдгрд┐ B рд▓рд╛ API рдордзреВрди рд╕рдВрд╕рд╛рдзрдирд╛рдЪреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддреА рдорд┐рд│рддреЗ
- рдкреНрд░рддреНрдпреЗрдХ рдПрдХрд╛рдиреЗ рдХрд╛рдЙрдВрдЯрд░ рд╡рд╛рдврд╡реВрди рдЖрдгрд┐ "рдЕрдкрдбреЗрдЯ-рдмрд╛рдп" рдиреЛрдЯрдордзреНрдпреЗ рдЕрдиреБрдХреНрд░рдореЗ "A" рдХрд┐рдВрд╡рд╛ "B" рдЬреЛрдбреВрди рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХреЗрд╢рди рдЕрджреНрдпрддрдирд┐рдд рдХрд░рддреЗ.
- рдЖрдгрд┐ рддреЗ рд╕рдВрд╕рд╛рдзрди рдереЛрдбреЗ рдЬрд▓рдж рдЕрджреНрдпрддрдирд┐рдд рдХрд░рддреЗ
- B рд╕рдВрд╕рд╛рдзрди рдЕрджреНрдпрддрдирд┐рдд рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░рддреЛ, рдкрд░рдВрддреБ рд╕рдВрд╕рд╛рдзрди рдЖрд╡реГрддреНрддреА рддрдкрд╢реАрд▓рд╛рдордзреНрдпреЗ рдЕрд╕рд▓реНрдпрд╛рдореБрд│реЗ API рдиреЗ рдЕрджреНрдпрддрди рдирд╛рдХрд╛рд░рд▓реЗ рдЖрд╣реЗ
replace
рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдордзреАрд▓ рд╕рдВрд╕рд╛рдзрдирд╛рдЪреНрдпрд╛ рд╡рд░реНрддрдорд╛рди рдЖрд╡реГрддреНрддреАрд╢реА рдЬреБрд│рдд рдирд╛рд╣реА рдХрд╛рд░рдг рд╕рдВрд╕рд╛рдзрдирд╛рдЪреА рдЖрд╡реГрддреНрддреА A рдЪреНрдпрд╛ рдмрджрд▓реА рдСрдкрд░реЗрд╢рдирдиреЗ рд╡рд╛рдврд╡рд▓реА рд╣реЛрддреА.
рд╡рд░реАрд▓ рдмрд╛рдмрддреАрдд, B рд▓рд╛ рд╕рдВрд╕рд╛рдзрди рдкреБрдиреНрд╣рд╛ рдЖрдгрд╛рд╡реЗ рд▓рд╛рдЧреЗрд▓, рдирд╡реАрди рд╕реНрдерд┐рддреАрдд рдмрджрд▓ рдХрд░рд╛рд╡реЗ рд▓рд╛рдЧрддреАрд▓ рдЖрдгрд┐ рдкреБрдиреНрд╣рд╛ рдкреНрд░рдпрддреНрди рдХрд░рд╛рд╡рд╛ рд▓рд╛рдЧреЗрд▓ replace
. рдпрд╛рдореБрд│реЗ рдХрд╛рдЙрдВрдЯрд░ рджреЛрдирдиреЗ рд╡рд╛рдврд╡рд▓реЗ тАЛтАЛрдЬрд╛рдИрд▓ рдЖрдгрд┐ "рдЕрдкрдбреЗрдЯ-рдмрд╛рдп" рдиреЛрдЯрдордзреНрдпреЗ рд╢реЗрд╡рдЯреА "AB" рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рд╣реЛрдИрд▓.
рд╡рд░реАрд▓ рдЙрджрд╛рд╣рд░рдгрд╛рдЪрд╛ рдЕрд░реНрде рдЕрд╕рд╛ рд╣реЛрддреЛ рдХреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рддрд╛рдирд╛ replace
рд╕рдВрдкреВрд░реНрдг рд╕рдВрд╕рд╛рдзрди рдкреВрд░реНрдгрдкрдгреЗ рдмрджрд▓рд▓реЗ рдЖрд╣реЗ. рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗрд▓реЗ рддрдкрд╢реАрд▓ replace
, рдЖрдВрд╢рд┐рдХ рдХрд┐рдВрд╡рд╛ рдордзреНрдпреЗ рдкреНрд░рдорд╛рдгреЗ рднрд╛рдЧ рдЕрд╕реВ рдирдпреЗ apply
, рдкрд░рдВрддреБ рдЬреЛрдбрдгреНрдпрд╛рд╕рд╣ рдкреВрд░реНрдг resourceVersion
рддрдкрд╢реАрд▓ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдордзреНрдпреЗ. рдЖрдкрдг рд╕рдХреНрд╖рдо рдХреЗрд▓реЗ рдирд╕рд▓реНрдпрд╛рд╕ resourceVersion
рдХрд┐рдВрд╡рд╛ рддреБрдореНрд╣реА рдкреНрд░рджрд╛рди рдХреЗрд▓реЗрд▓реА рдЖрд╡реГрддреНрддреА рд╕рдзреНрдпрд╛рдЪреА рдирд╛рд╣реА, рдмрджрд▓реА рдирд╛рдХрд╛рд░рд▓реА рдЬрд╛рдИрд▓. рдореНрд╣рдгреВрди рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕рд░реНрд╡реЛрддреНрддрдо рджреГрд╖реНрдЯреАрдХреЛрди рдЖрд╣реЗ replace
- рд╕рдВрд╕рд╛рдзрди рд╡рд╛рдЪрд╛, рддреЗ рдЕрджреНрдпрддрдирд┐рдд рдХрд░рд╛ рдЖрдгрд┐ рддреНрд╡рд░рд┐рдд рдмрджрд▓рд╛. рд╡рд╛рдкрд░рдд рдЖрд╣реЗ kubectl
, рд╣реЗ рдЕрд╕реЗ рджрд┐рд╕реВ рд╢рдХрддреЗ:
$ kubectl get deployment my-deployment -o json
| jq '.spec.template.spec.containers[0].env[1].value = "new value"'
| kubectl replace -f -
рд╣реЗ рд▓рдХреНрд╖рд╛рдд рдШреЗрдгреНрдпрд╛рд╕рд╛рд░рдЦреЗ рдЖрд╣реЗ рдХреА рдЦрд╛рд▓реАрд▓ рджреЛрди рдЖрдЬреНрдЮрд╛, рдХреНрд░рдорд╢рдГ рдЕрдВрдорд▓рд╛рдд рдЖрдгрд▓реНрдпрд╛ рдЧреЗрд▓реНрдпрд╛, рдпрд╢рд╕реНрд╡реАрд░рд┐рддреНрдпрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рд╣реЛрддреАрд▓, рдХрд╛рд░рдг deployment.yaml
рдорд╛рд▓рдорддреНрддрд╛ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдирд╛рд╣реА .metadata.resourceVersion
$ kubectl create -f deployment.yaml
$ kubectl replace -f deployment.yaml
рд╣реЗ рд╡рд░ рд╕рд╛рдВрдЧрд┐рддрд▓реЗрд▓реНрдпрд╛ рдЧреЛрд╖реНрдЯреАрдЪреНрдпрд╛ рд╡рд┐рд░реЛрдзрд╛рднрд╛рд╕ рд╡рд╛рдЯреЗрд▓, рдореНрд╣рдгрдЬреЗ. "рдЬреЛрдбреВрди resourceVersion
рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХреЗрд╢рди рдореЗрдЯрд╛рдбреЗрдЯрд╛рдордзреНрдпреЗ." рдЕрд╕реЗ рдореНрд╣рдгрдгреЗ рдЪреБрдХреАрдЪреЗ рдЖрд╣реЗ рдХрд╛? рдирд╛рд╣реА, рддрд╕реЗ рдирд╛рд╣реА, рдХрд╛рд░рдг рдЬрд░ kubectl
рддреБрдореНрд╣реА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рди рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╕реВрдЪрдирд╛ resourceVersion
, рддреЗ рддреЗ рд░рд┐рд╕реЛрд░реНрд╕рдордзреВрди рд╡рд╛рдЪреЗрд▓ рдЖрдгрд┐ рддреБрдореНрд╣реА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХреЗрд╢рдирдордзреНрдпреЗ рдЬреЛрдбреЗрд▓ рдЖрдгрд┐ рддреНрдпрд╛рдирдВрддрд░рдЪ рддреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░реЗрд▓ replace
. рдХрд╛рд░рдг рдЖрдкрдг рдЕрдгреБрд╢рдХреНрддреАрд╡рд░ рдЕрд╡рд▓рдВрдмреВрди рд░рд╛рд╣рд┐рд▓реНрдпрд╛рд╕ рд╣реЗ рд╕рдВрднрд╛рд╡реНрдп рдзреЛрдХрд╛рджрд╛рдпрдХ рдЖрд╣реЗ, рдЬрд╛рджреВ рдкреВрд░реНрдгрдкрдгреЗ рдмрд╛рдЬреВрд▓рд╛ рдХрд╛рд░реНрдп рдХрд░рддреЗ kubectl
, API рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгрд╛рд▒реНрдпрд╛ рдХреНрд▓рд╛рдпрдВрдЯ рд▓рд╛рдпрдмреНрд░рд░реА рд╡рд╛рдкрд░рддрд╛рдирд╛ рддреБрдореНрд╣реА рддреНрдпрд╛рд╡рд░ рдЕрд╡рд▓рдВрдмреВрди рд░рд╛рд╣реВ рдирдпреЗ. рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд рддреБрдореНрд╣рд╛рд▓рд╛ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕рд╛рдзрди рддрдкрд╢реАрд▓ рд╡рд╛рдЪрд╛рд╡реЗ рд▓рд╛рдЧреЗрд▓, рддреЗ рдЕрджреНрдпрддрдирд┐рдд рдХрд░рд╛рд╡реЗ рд▓рд╛рдЧреЗрд▓ рдЖрдгрд┐ рдирдВрддрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рд╛рд╡реЗ рд▓рд╛рдЧреЗрд▓ PUT
рд╡рд┐рдирдВрддреА
рддреБрдореНрд╣реА рдкреЕрдЪ рдХрд░реВ рд╢рдХрдд рдирд╛рд╣реА - рдЖрдореНрд╣реА рдмрджрд▓рддреЛ
рдХрдзреАрдХрдзреА рддреБрдореНрд╣рд╛рд▓рд╛ рдХрд╛рд╣реА рдмрджрд▓ рдХрд░рд╛рд╡реЗ рд▓рд╛рдЧрддрд╛рдд рдЬреЗ API рджреНрд╡рд╛рд░реЗ рд╣рд╛рддрд╛рд│рд▓реЗ рдЬрд╛рдК рд╢рдХрдд рдирд╛рд╣реАрдд. рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдВрдордзреНрдпреЗ, рдЖрдкрдг рд╕рдВрд╕рд╛рдзрди рд╣рдЯрд╡реВрди рдЖрдгрд┐ рдкреБрдиреНрд╣рд╛ рддрдпрд╛рд░ рдХрд░реВрди рдмрджрд▓рдгреНрдпрд╛рдЪреА рд╕рдХреНрддреА рдХрд░реВ рд╢рдХрддрд╛. рд╣реЗ рд╡рд╛рдкрд░реВрди рдХреЗрд▓реЗ рдЬрд╛рддреЗ kubectl replace --force
. рдХрдорд╛рдВрдб рд░рди рдХреЗрд▓реНрдпрд╛рдиреЗ рд╕рдВрд╕рд╛рдзрдиреЗ рддрд╛рдмрдбрддреЛрдм рдХрд╛рдвреВрди рдЯрд╛рдХрд▓реА рдЬрд╛рддрд╛рдд рдЖрдгрд┐ рдирдВрддрд░ рддреНрдпрд╛рдВрдирд╛ рдкреБрд░рд╡рд▓реЗрд▓реНрдпрд╛ рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХреЗрд╢рдирдордзреВрди рдкреБрдиреНрд╣рд╛ рддрдпрд╛рд░ рдХреЗрд▓реЗ рдЬрд╛рддреЗ. API рдордзреНрдпреЗ рдХреЛрдгрддреЗрд╣реА "рдлреЛрд░реНрд╕ рд░рд┐рдкреНрд▓реЗрд╕" рд╣рдБрдбрд▓рд░ рдирд╛рд╣реА рдЖрдгрд┐ API рджреНрд╡рд╛рд░реЗ рдЕрд╕реЗ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рддреБрдореНрд╣рд╛рд▓рд╛ рджреЛрди рдСрдкрд░реЗрд╢рдиреНрд╕ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдкреНрд░рдердо рддреБрдореНрд╣рд╛рд▓рд╛ рддреНрдпрд╛рд╕рд╛рдареА рд╕реЗрдЯ рдХрд░реВрди рд╕рдВрд╕рд╛рдзрди рд╣рдЯрд╡рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ gracePeriodSeconds
рд╢реВрдиреНрдп (0) рдкрд░реНрдпрдВрдд рдЖрдгрд┐ propagationPolicy
"рдкрд╛рд░реНрд╢реНрд╡рднреВрдореА" рдордзреНрдпреЗ рдЖрдгрд┐ рдирдВрддрд░ рдЗрдЪреНрдЫрд┐рдд рддрдкрд╢реАрд▓рд╛рд╕рд╣ рд╣реЗ рд╕рдВрд╕рд╛рдзрди рдкреБрдиреНрд╣рд╛ рддрдпрд╛рд░ рдХрд░рд╛.
рдЪреЗрддрд╛рд╡рдгреА: рд╣рд╛ рджреГрд╖реНрдЯреАрдХреЛрди рд╕рдВрднрд╛рд╡реНрдп рдзреЛрдХрд╛рджрд╛рдпрдХ рдЖрд╣реЗ рдЖрдгрд┐ рдПрдХ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕реНрдерд┐рддреА рд╣реЛрдК рд╢рдХрддреЗ.
рд╕рд░реНрд╡реНрд╣рд░рдЪреНрдпрд╛ рдмрд╛рдЬреВрд▓рд╛ рдЕрд░реНрдЬ рдХрд░рд╛
рд╡рд░ рдирдореВрдж рдХреЗрд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ, Kubernetes рд╡рд┐рдХрд╛рд╕рдХ рддрд░реНрдХ рд▓рд╛рдЧреВ рдХрд░рдгреНрдпрд╛рд╡рд░ рдХрд╛рдо рдХрд░рдд рдЖрд╣реЗрдд apply
рдкрд╛рд╕реВрди kubectl
Kubernetes API рдордзреНрдпреЗ. рддрд░реНрдХрд╢рд╛рд╕реНрддреНрд░ apply
Kubernetes 1.18 рджреНрд╡рд╛рд░реЗ рдЙрдкрд▓рдмреНрдз kubectl apply --server-side
рдХрд┐рдВрд╡рд╛ рдкрджреНрдзрдд рд╡рд╛рдкрд░реВрди API рджреНрд╡рд╛рд░реЗ PATCH
╤Б content-type
application/apply-patch+YAML
.
рдЯреАрдк: JSON рджреЗрдЦреАрд▓ рд╡реИрдз YAML рдЖрд╣реЗ, рддреНрдпрд╛рдореБрд│реЗ рддреБрдореНрд╣реА JSON рдореНрд╣рдгреВрди рддрдкрд╢реАрд▓ рдкрд╛рдард╡реВ рд╢рдХрддрд╛ рдЬрд░реА
content-type
рдЕрд╕реЗрд▓application/apply-patch+yaml
.
рддреНрдпрд╛рд╢рд┐рд╡рд╛рдп рддрд░реНрдХ kubectl
API рджреНрд╡рд╛рд░реЗ рдкреНрд░рддреНрдпреЗрдХрд╛рд╕рд╛рдареА рдЙрдкрд▓рдмреНрдз рд╣реЛрддреЗ, apply
рд╕рд░реНрд╡реНрд╣рд░рдЪреНрдпрд╛ рдмрд╛рдЬреВрдиреЗ, рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХреЗрд╢рдирдордзреАрд▓ рдлреАрд▓реНрдбрд╕рд╛рдареА рдХреЛрдг рдЬрдмрд╛рдмрджрд╛рд░ рдЖрд╣реЗ рдпрд╛рдЪрд╛ рдорд╛рдЧреЛрд╡рд╛ рдареЗрд╡рддреЗ, рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ рд╡рд┐рд╡рд╛рдж-рдореБрдХреНрдд рд╕рдВрдкрд╛рджрдирд╛рд╕рд╛рдареА рд╕реБрд░рдХреНрд╖рд┐рдд рдПрдХрд╛рдзрд┐рдХ рдкреНрд░рд╡реЗрд╢рд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ. рджреБрд╕рд▒реНрдпрд╛ рд╢рдмреНрджрд╛рдВрдд, рдЬрд░ apply
рд╕рд░реНрд╡реНрд╣рд░рдЪреНрдпрд╛ рдмрд╛рдЬреВрдиреЗ рдЕрдзрд┐рдХ рд╡реНрдпрд╛рдкрдХ рд╣реЛрдИрд▓, рд╡рд┐рд╡рд┐рдз рдХреНрд▓рд╛рдпрдВрдЯрд╕рд╛рдареА рдПрдХ рд╕рд╛рд░реНрд╡рддреНрд░рд┐рдХ рд╕реБрд░рдХреНрд╖рд┐рдд рд╕рдВрд╕рд╛рдзрди рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЗрдВрдЯрд░рдлреЗрд╕ рджрд┐рд╕реЗрд▓, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, kubectl, Pulumi рдХрд┐рдВрд╡рд╛ Terraform, GitOps, рддрд╕реЗрдЪ рдХреНрд▓рд╛рдпрдВрдЯ рд▓рд╛рдпрдмреНрд░рд░реА рд╡рд╛рдкрд░реВрди рд╕реНрд╡-рд▓рд┐рдЦрд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ.
рдкрд░рд┐рдгрд╛рдо
рдорд▓рд╛ рдЖрд╢рд╛ рдЖрд╣реЗ рдХреА рдХреНрд▓рд╕реНрдЯрд░реНрд╕рдордзреНрдпреЗ рд╕рдВрд╕рд╛рдзрдиреЗ рдЕрджреНрдпрддрдирд┐рдд рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рд╡рд┐рд╡рд┐рдз рдорд╛рд░реНрдЧрд╛рдВрдЪреЗ рд╣реЗ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рд╣рдВрдЧрд╛рд╡рд▓реЛрдХрди рддреБрдордЪреНрдпрд╛рд╕рд╛рдареА рдЙрдкрдпреБрдХреНрдд рдард░рд▓реЗ. рд╣реЗ рдЬрд╛рдгреВрди рдШреЗрдгреЗ рдЪрд╛рдВрдЧрд▓реЗ рдЖрд╣реЗ рдХреА рддреЗ рдлрдХреНрдд рд▓рд╛рдЧреВ рд╡рд┐рд░реБрджреНрдз рдмрджрд▓рдгреЗ рдирд╛рд╣реА; рд▓рд╛рдЧреВ рдХрд░рд╛, рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рд╛, рдкреЕрдЪ рдХрд░рд╛ рдХрд┐рдВрд╡рд╛ рдмрджрд▓рд╛ рд╡рд╛рдкрд░реВрди рд╕рдВрд╕рд╛рдзрди рдЕрджреНрдпрддрдирд┐рдд рдХрд░рдгреЗ рд╢рдХреНрдп рдЖрд╣реЗ. рддрдерд╛рдкрд┐, рддрддреНрд╡рддрдГ, рдкреНрд░рддреНрдпреЗрдХ рджреГрд╖реНрдЯрд┐рдХреЛрдирд╛рдЪреЗ рд╕реНрд╡рддрдГрдЪреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреНрд╖реЗрддреНрд░ рдЕрд╕рддреЗ. рдЕрдгреБ рдмрджрд▓рд╛рдВрд╕рд╛рдареА, рдкреБрдирд░реНрд╕реНрдерд┐рдд рдХрд░рдгреЗ рд╢реНрд░реЗрдпрд╕реНрдХрд░ рдЖрд╣реЗ; рдЕрдиреНрдпрдерд╛, рддреБрдореНрд╣реА рд▓рд╛рдЧреВ рдХрд░реВрди рд╕реНрдЯреНрд░реЕрдЯреЗрдЬрд┐рдХ-рдорд░реНрдЬ рдкреЕрдЪ рд╡рд╛рдкрд░рд╛рд╡рд╛. рдХрдореАрддрдХрдореА, рдореА рддреБрдореНрд╣рд╛рд▓рд╛ рд╣реЗ рд╕рдордЬрдгреНрдпрд╛рдЪреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддреЛ рдХреА "kubernetes apply vs replace" рд╢реЛрдзрддрд╛рдирд╛ рддреБрдореНрд╣реА Google рдХрд┐рдВрд╡рд╛ StackOerflow рд╡рд░ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдареЗрд╡реВ рд╢рдХрдд рдирд╛рд╣реА. рдХрд┐рдорд╛рди рд╣рд╛ рд▓реЗрдЦ рд╕рдзреНрдпрд╛рдЪреНрдпрд╛ рдЙрддреНрддрд░рд╛рдЪреА рдЬрд╛рдЧрд╛ рдШреЗрдИрдкрд░реНрдпрдВрдд.
рд╕реНрддреНрд░реЛрдд: www.habr.com