Kubernetes рд╕рдБрдЧ рд╕реНрд░реЛрддрд╣рд░реВ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░реНрди рдзреЗрд░реИ рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рдЫрдиреН: рд▓рд╛рдЧреВ рдЧрд░реНрдиреБрд╣реЛрд╕реН, рд╕рдореНрдкрд╛рджрди рдЧрд░реНрдиреБрд╣реЛрд╕реН, рдкреНрдпрд╛рдЪ рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рдмрджрд▓реНрдиреБрд╣реЛрд╕реНред рдкреНрд░рддреНрдпреЗрдХрд▓реЗ рдХреЗ рдЧрд░реНрдЫ рд░ рдХрд╣рд┐рд▓реЗ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рднрдиреНрдиреЗрдорд╛ рдЕрдиреНрдпреЛрд▓ рдЫред рдпрд╕рд▓рд╛рдИ рдмрд╛рд╣рд┐рд░ рдирд┐рдХрд╛рд▓реМрдВред
рдпрджрд┐ kubectl patch
, рдЬрд╕рдорд╛ рддреБрд▓рдирд╛ рд╕рдорд╛рд╡реЗрд╢ рдЫреИрди apply
╨╕ patch
ред рдпрд╕ рд▓реЗрдЦрд▓реЗ рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ, рд╕рд╛рдереИ рдкреНрд░рддреНрдпреЗрдХрдХреЛ рдЙрдЪрд┐рдд рдкреНрд░рдпреЛрдЧрд▓рд╛рдИ рд╣реЗрд░реНрдиреЗрдЫред
Kubernetes рд╕рдВрд╕рд╛рдзрди (рд╕реЗрд╡рд╛, рдбрд┐рдкреНрд▓реЛрдЗрдореЗрдиреНрдЯ, рдЗрдиреНрдЧреНрд░реЗрд╕, рдЖрджрд┐) рдХреЛ рдЬреАрд╡рдирдЪрдХреНрд░рдХреЛ рд╕рдордпрдорд╛, рдХрд╣рд┐рд▓реЗрдХрд╛рд╣реАрдБ рддрдкрд╛рдИрд▓реЗ рдпрд╕ рд╕реНрд░реЛрддрдХреЛ рдХреЗрд╣рд┐ рдЧреБрдгрд╣рд░реВ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди, рдердкреНрди рд╡рд╛ рд╣рдЯрд╛рдЙрди рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджрдЫред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдиреЛрдЯ рдердкреНрдиреБрд╣реЛрд╕реН, рдкреНрд░рддрд┐рдХреГрддрд┐рд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ рдмрдврд╛рдЙрдиреБрд╣реЛрд╕реН рд╡рд╛ рдШрдЯрд╛рдЙрдиреБрд╣реЛрд╕реНред
Kubernetes CLI
рдпрджрд┐ рддрдкрд╛рдЗрдБ рдкрд╣рд┐рд▓реЗ рдиреИ CLI рдорд╛рд░реНрдлрдд Kubernetes рдХреНрд▓рд╕реНрдЯрд░рд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджреИ рд╣реБрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рддрдкрд╛рдЗрдБ рдкрд╣рд┐рд▓реЗ рдиреИ рдкрд░рд┐рдЪрд┐рдд рд╣реБрдиреБрд╣реБрдиреНрдЫ apply
╨╕ edit
ред рдЯреЛрд▓реА apply
рдлрд╛рдЗрд▓рдмрд╛рдЯ рд╕реНрд░реЛрдд рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдкрдвреНрдЫ рд░ Kubernetes рдХреНрд▓рд╕реНрдЯрд░рдорд╛ "upsert" рдмрдирд╛рдЙрдБрдЫ, рдЕрд░реНрдерд╛рддреНред рдпрджрд┐ рдпреЛ рдЕрд╡рд╕реНрдерд┐рдд рдЫреИрди рднрдиреЗ рд╕рдВрд╕рд╛рдзрди рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрдЫ рд░ рдпрджрд┐ рдпреЛ рдЕрд╡рд╕реНрдерд┐рдд рдЫ рднрдиреЗ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░реНрджрдЫред рдЯреЛрд▓реА 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
Go рднрд╛рд╖рд╛рдХреЛ рд▓рд╛рдЧрд┐ рдХреНрд▓рд╛рдЗрдиреНрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдХреЛ рд╢реАрд░реНрд╖рдорд╛ рдПрдЙрдЯрд╛ рд░реНрдпрд╛рдкрд░ рд╣реЛ, рдЬрд╕рд▓реЗ рдорд╛рдирдХ API рдХреНрд╖рдорддрд╛рд╣рд░реВ рдмрд╛рд╣реЗрдХ рдердк рдХрдореНрдкреНрдпрд╛рдХреНрдЯ рд░ рдкрдвреНрди рдпреЛрдЧреНрдп рдлрд╛рд░рдордорд╛ рдЙрдкрдХрдорд╛рдиреНрдбрд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рддрдкрд╛рдИрдВрд▓реЗ рдкрд╣рд┐рд▓реЗ рдиреИ рдпрд╛рдж рдЧрд░реЗрдХреЛ рд╣реБрди рд╕рдХреНрдЫ, рд╡рд┐рдзрд┐ apply
рдЕрдШрд┐рд▓реНрд▓реЛ рдЕрдиреБрдЪреНрдЫреЗрджрдорд╛ рдорд╛рдерд┐ рдЙрд▓реНрд▓реЗрдЦ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдПрдиред рд╣рд╛рд▓ (рдореЗ реирежреиреж, рд▓рдЧрднрдЧред рдЕрдиреБрд╡рд╛рджрдХ) рд╕рдмреИ рддрд░реНрдХ kubectl apply
, рдЕрд░реНрдерд╛рддреН рдЕрд╡рд╕реНрдерд┐рдд рдирднрдПрдХрд╛ рд╕реНрд░реЛрддрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗ рд░ рдЕрд╡рд╕реНрдерд┐рддрд╣рд░реВрд▓рд╛рдИ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░реНрдиреЗ, рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдХреЛрдб рд╕рд╛рдЗрдбрдорд╛ рдХрд╛рдо рдЧрд░реНрджрдЫ kubectl
ред рдкреНрд░рдпрд╛рд╕ рднрдЗрд░рд╣реЗрдХрд╛ рдЫрдиреН apply
API рд╕рд╛рдЗрдбрдорд╛, рддрд░ рдпреЛ рдЕрдЭреИ рдмрд┐рдЯрд╛рдорд╛ рдЫред рдо рддрд▓ рдердк рд╡рд┐рд╡рд░рдгрдорд╛ рд▓реЗрдЦреНрдиреЗрдЫреБред
рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛ рдкреНрдпрд╛рдЪ
рд╕рдмреИ рднрдиреНрджрд╛ рд░рд╛рдореНрд░реЛ рдкреНрд░рдпреЛрдЧ patch
, рдпрджрд┐ рддрдкрд╛рдЗрдБ рд╕рдВрд╕рд╛рдзрди рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░реНрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫ рднрдиреЗред рдпрд╕рд░реА рджреБрдмреИ рдЧреНрд░рд╛рд╣рдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВрд▓реЗ Kubernetes API рдХреЛ рд╢реАрд░реНрд╖рдорд╛ рдХрд╛рдо рдЧрд░реНрджрдЫ рд░ kubectl
(рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рдЫреИрди, рдХрд┐рдирдХрд┐ рдпреЛ рдЧреНрд░рд╛рд╣рдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпрдХреЛ рд▓рд╛рдЧрд┐ рд░реНрдпрд╛рдкрд░ рд╣реЛ, рд▓рдЧрднрдЧред рдЕрдиреБрд╡рд╛рджрдХ).
рд░рдгрдиреАрддрд┐рдХ рд░реВрдкрдорд╛ рдХрд╛рдо рдЧрд░реНрдиреБрд╣реЛрд╕реН
рд╕рдмреИ рдЯреЛрд▓реАрд╣рд░реВ kubectl
apply
, edit
╨╕ patch
рд╡рд┐рдзрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН PATCH
рдЕрд╡рд╕реНрдерд┐рдд рд╕реНрд░реЛрдд рдЕрдкрдбреЗрдЯ рдЧрд░реНрди HTTP рдЕрдиреБрд░реЛрдзрд╣рд░реВрдорд╛ред рдпрджрд┐ рддрдкрд╛рдЗрдБ рдХрдорд╛рдгреНрдбрд╣рд░реВрдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдорд╛ рдердк рд╡рд┐рд╕реНрддрд╛рд░рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рддреА рд╕рдмреИрд▓реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫрдиреН patch
рдЕрдиреНрдп рджреГрд╖реНрдЯрд┐рдХреЛрдгрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдЫ (рддрд▓ рдпрд╕ рдмрд╛рд░реЗ рдердк)ред рд░рдгрдиреАрддрд┐рдХ-рдорд░реНрдЬ рдкреНрдпрд╛рдЪрд┐рдЩ рджреГрд╖реНрдЯрд┐рдХреЛрдгрд▓реЗ рдЕрд╡рд╕реНрдерд┐рдд рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХреЗрд╢рдирд╕рдБрдЧ рдЖрдкреВрд░реНрддрд┐ рдЧрд░рд┐рдПрдХреЛ рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХреЗрд╢рди рдорд░реНрдЬ рдЧрд░реЗрд░ "рдпрд╕рд▓рд╛рдИ рд╕рд╣реА рдЧрд░реНрди" рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрджрдЫред рдердк рд╡рд┐рд╢реЗрд╖ рд░реВрдкрдорд╛, рдпрд╕рд▓реЗ рд╡рд╕реНрддреБрд╣рд░реВ рд░ arrays рджреБрд╡реИ рд╕рдВрдпреЛрдЬрди рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрджрдЫ, рдЬрд╕рдХреЛ рдЕрд░реНрде рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ additive рд╣реБрди рдЬрд╛рдиреНрдЫред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдЖрджреЗрд╢ рдЪрд▓рд╛рдЙрдиреБрд╣реЛрд╕реН patch
рдкреЛрдб рдХрдиреНрдЯреЗрдирд░ рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХреЗрд╢рдирдорд╛ рдирдпрд╛рдБ рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░рдХреЛ рд╕рд╛рде, рддреА рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░рд▓рд╛рдИ рд╡рд┐рджреНрдпрдорд╛рди рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░рд╣рд░реВрдорд╛ рдЕрдзрд┐рд▓реЗрдЦрди рдЧрд░реНрдиреБрдХреЛ рд╕рдЯреНрдЯрд╛ рдердкрд┐рдиреЗ рдХрд╛рд░рдг рдмрдирд╛рдЙрдБрдЫред рдпреЛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╣рдЯрд╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐, рддрдкрд╛рдИрдВрд▓реЗ рдкреНрд░рджрд╛рди рдЧрд░рд┐рдПрдХреЛ рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХреЗрд╢рдирдорд╛ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░ рдорд╛рди рд╢реВрдиреНрдп рдЧрд░реНрди рдмрд╛рдзреНрдп рдкрд╛рд░реНрдиреБ рдкрд░реНрдЫред рдХреБрди рдХреБрди рдЯреЛрд▓реАрдорд╛ kubectl
рдпреЛ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░реНрди рдХреЛ рд▓рд╛рдЧреА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд░рд╛рдореНрд░реЛ рдЫ?
рдпрджрд┐ рддрдкрд╛рдЗрдБ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рддрдкрд╛рдЗрдБрдХреЛ рд╕реНрд░реЛрддрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рд░ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ kubectl apply
, рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░реНрджрд╛ рдпреЛ рд╕рдзреИрдВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд░рд╛рдореНрд░реЛ рдЫ kubectl apply
рддреЗрд╕реИрд▓реЗ kubectl
рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЧрд░реНрди рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧрдмрд╛рдЯ рдЕрдиреБрдкреНрд░рдпреЛрдЧрдорд╛ рдЕрдиреБрд░реЛрдз рдЧрд░рд┐рдПрдХрд╛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдареАрдХрд╕рдБрдЧ рдЯреНрд░реНрдпрд╛рдХ рдЧрд░реНрди рд╕рдХреНрдЫред рдлрд╛рдЗрджрд╛ рд╕рдзреИрдВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН apply
рдпреЛ рд╣реЛ рдХрд┐ рдпрд╕рд▓реЗ рдкрд╣рд┐рд▓реЗ рд▓рд╛рдЧреВ рдЧрд░рд┐рдПрдХреЛ рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХреЗрд╢рдирдХреЛ рдЯреНрд░рдпрд╛рдХ рд░рд╛рдЦреНрдЫ, рдпрд╕рд▓рд╛рдИ рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХреЗрд╢рди рдЧреБрдгрд╣рд░реВ рд░ рдПрд░реЗ рддрддреНрд╡рд╣рд░реВ рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рд╣рдЯрд╛рдЙрдБрджрд╛ рдерд╛рд╣рд╛ рдкрд╛рдЙрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рдпрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ apply
рдЧреБрдг рд░ рдПрд░реЗ рддрддреНрд╡рд╣рд░реВ рд╣рдЯрд╛рдЙрди, рдЬрдмрдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рд░рдгрдиреАрддрд┐рдХ рдорд░реНрдЬрд▓реЗ рдХрд╛рдо рдЧрд░реНрджреИрдиред рдЯреЛрд▓реАрд╣рд░реВ edit
╨╕ patch
рдиреЛрдЯрд╣рд░реВ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдирдЧрд░реНрдиреБрд╣реЛрд╕реН kubectl apply
рдпрд╕рдХреЛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдЯреНрд░реНрдпрд╛рдХ рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ, рддреНрдпрд╕реИрд▓реЗ Kubernetes 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
Kubernetes рдорд╛ рд╕рдВрд╕рд╛рдзрдирдХреЛ рд╣рд╛рд▓рдХреЛ рд╕рдВрд╕реНрдХрд░рдгрд╕рдБрдЧ рдореЗрд▓ рдЦрд╛рдБрджреИрди рдХрд┐рдирднрдиреЗ рд╕реНрд░реЛрддрдХреЛ рд╕рдВрд╕реНрдХрд░рдг 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
рд╢реВрдиреНрдп (реж) рд░ 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 рд▓рд╛рдЧреВ рдмрдирд╛рдо рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди" рдЦреЛрдЬреНрджрд╛ Google рд╡рд╛ StackOerflow рд▓рд╛рдИ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрди рднрдиреНрдиреЗ рдХреБрд░рд╛ рдмреБрдЭреНрдиреБ рднрдПрдХреЛ рдЖрд╢рд╛ рдЧрд░реНрджрдЫреБред рдХрдореНрддрд┐рдорд╛ рдпрд╕ рд▓реЗрдЦрд▓реЗ рд╣рд╛рд▓рдХреЛ рдЬрд╡рд╛рдлрд▓рд╛рдИ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдирдЧрд░реЗрд╕рдореНрдоред
рд╕реНрд░реЛрдд: www.habr.com