Kustomize рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдкрд░рд┐рдЪрдп

рдЯрд┐рдкреНрдкрдгреАред рдЕрдиреБрд╡рд╛рджред: рдпрд╣ рд▓реЗрдЦ рдЖрдИрдЯреА рдореЗрдВ рд╡реНрдпрд╛рдкрдХ рдЕрдиреБрднрд╡ рд╡рд╛рд▓реЗ рдПрдХ рдЗрдВрдЬреАрдирд┐рдпрд░ рд╕реНрдХреЙрдЯ рд▓реЛрд╡ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рд╕рд╛рдд рдореБрджреНрд░рд┐рдд рдкреБрд╕реНрддрдХреЛрдВ (рдореБрдЦреНрдп рд░реВрдк рд╕реЗ VMware vSphere рдкрд░) рдХреЗ рд▓реЗрдЦрдХ/рд╕рд╣-рд▓реЗрдЦрдХ рд╣реИрдВред рд╡рд╣ рдЕрдм рдЗрд╕рдХреА VMware рд╕рд╣рд╛рдпрдХ рдХрдВрдкрдиреА рд╣реЗрдкреНрдЯрд┐рдпреЛ (2016 рдореЗрдВ рдЕрдзрд┐рдЧреНрд░рд╣реАрдд) рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХреНрд▓рд╛рдЙрдб рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдФрд░ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮрддрд╛ рд░рдЦрддреА рд╣реИред рдкрд╛рда рд╕реНрд╡рдпрдВ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдФрд░ рд╕рдордЭрдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рдкрд░рд┐рдЪрдп рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░реЗрдВ, рдЬреЛ рд╣рд╛рд▓ рд╣реА рдореЗрдВ K8s рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдмрди рдЧрдпрд╛ рд╣реИред

Kustomize рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдкрд░рд┐рдЪрдп

рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝ рдПрдХ рдЙрдкрдХрд░рдг рд╣реИ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ "рдореВрд▓ рд╡рд╛рдИрдПрдПрдордПрд▓ рдХреЛ рдмрд░рдХрд░рд╛рд░ рдФрд░ рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдЫреЛрдбрд╝рдХрд░, рд╡рд┐рднрд┐рдиреНрди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд░рд▓, рдЯреЗрдореНрдкрд▓реЗрдЯ-рдореБрдХреНрдд рд╡рд╛рдИрдПрдПрдордПрд▓ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ" (рд╡рд┐рд╡рд░рдг рд╕реАрдзреЗ рд╕реЗ рдЙрдзрд╛рд░ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ) GitHub рдкрд░ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░реЗрдВ). рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝ рдХреЛ рд╕реАрдзреЗ рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ 1.14 рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ kubectl -k рдЗрд╕рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП (рд╣рд╛рд▓рд╛рдБрдХрд┐ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ 1.15 рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЕрд▓рдЧ рдмрд╛рдЗрдирд░реА рдХреБрдмреЗрдХреНрдЯрд▓ рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рдХреНрд╖рдорддрд╛рдУрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдирдИ рд╣реИ)ред (рдЯрд┐рдкреНрдкрдгреАред рдЕрдиреБрд╡рд╛рджред: рдФрд░ рд╣рд╛рд▓рд┐рдпрд╛ рд░рд┐рд▓реАрдЬ рдХреЗ рд╕рд╛рде рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ 1.16 рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░реЗрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ kubeadm рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдореЗрдВ рднреАред) рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ, рдореИрдВ рдкрд╛рдардХреЛрдВ рдХреЛ рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝ рдХреА рдореВрд▓ рдмрд╛рддреЛрдВ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдХрд░рд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдБред

рдЕрдкрдиреЗ рд╕рд░рд▓рддрдо рд░реВрдк/рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ, рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝ рдХреЗрд╡рд▓ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рд╣реИ (YAML рдлрд╝рд╛рдЗрд▓реЗрдВ рдЬреЛ Kubernetes рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреА рд╣реИрдВ: рдкрд░рд┐рдирд┐рдпреЛрдЬрди, рд╕реЗрд╡рд╛рдПрдБ, рдЖрджрд┐) рдФрд░ рд╕рд╛рде рд╣реА рдЙрди рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдореЗрдВ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИред рдЬреИрд╕реЗ рдореЗрдХ рдореЗрдВ рдирд┐рд╣рд┐рдд рдЕрдиреБрджреЗрд╢ рд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ Makefile, рдФрд░ рдбреЙрдХрд░ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрдВрдЯреЗрдирд░ рдмрдирд╛рддрд╛ рд╣реИ Dockerfile,рдЙрдкрдпреЛрдЧ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░реЗрдВ kustomization.yaml рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд╕реЗрдЯ рдореЗрдВ рдХреНрдпрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд░реНрджреЗрд╢ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдирд╛ред

рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдлрд╝рд╛рдЗрд▓ рд╣реИ kustomization.yaml:

resources:
- deployment.yaml
- service.yaml
namePrefix: dev-
namespace: development
commonLabels:
  environment: development

рдореИрдВ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рдлрд╝реАрд▓реНрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ред kustomization.yaml (рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд▓рд┐рдЦрд╛ рд╣реИ рдпрд╣рд╛рдВ), рд▓реЗрдХрд┐рди рдореИрдВ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рд╡рд░рдг рджреВрдВрдЧрд╛:

  • рдХреНрд╖реЗрддреНрд░ resources рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ (рдХреМрди рд╕реЗ рд╕рдВрд╕рд╛рдзрди) рдЕрдиреБрдХреВрд▓рди рдмрджрд▓ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдпрд╣ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░реЗрдЧрд╛ deployment.yaml ╨╕ service.yaml рдЕрдкрдиреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ (рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдЖрдк рдкреВрд░реНрдг рдпрд╛ рд╕рд╛рдкреЗрдХреНрд╖ рдкрде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред
  • рдХреНрд╖реЗрддреНрд░ namePrefix рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЙрдкрд╕рд░реНрдЧ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрджреЗрд╢ рджреЗрддрд╛ рд╣реИ (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ - dev-) рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реЗрддреБ name рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕рднреА рд╕рдВрд╕рд╛рдзрди resources. рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдпрджрд┐ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд╣реИ name рдЕрд░реНрде рд╕рд╣рд┐рдд nginx-deployment, рдЕрдиреБрдХреВрд▓рд┐рдд рдпрд╣ рдмрдирд╛ рджреЗрдЧрд╛ dev-nginx-deployment.
  • рдХреНрд╖реЗрддреНрд░ namespace рд╕рднреА рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдореЗрдВ рджрд┐рдП рдЧрдП рдиреЗрдорд╕реНрдкреЗрд╕ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝ рдХреЛ рдирд┐рд░реНрджреЗрд╢ рджреЗрддрд╛ рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдФрд░ рд╕реЗрд╡рд╛ рдирд╛рдорд╕реНрдерд╛рди рдореЗрдВ рдЖ рдЬрд╛рдПрдВрдЧреЗ development.
  • рдЕрдВрдд рдореЗрдВ, рдореИрджрд╛рди commonLabels рдЗрд╕рдореЗрдВ рд▓реЗрдмрд▓ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИ рдЬрд┐рд╕реЗ рд╕рднреА рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ред рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рд▓реЗрдмрд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдЧрд╛ environment рдФрд░ рдЕрд░реНрде development.

рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд░рддрд╛ рд╣реИ kustomize build . рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ kustomization.yaml рдФрд░ рдЖрд╡рд╢реНрдпрдХ рд╕рдВрд╕рд╛рдзрди (рдЕрд░реНрдерд╛рддреН рдлрд╝рд╛рдЗрд▓реЗрдВ deployment.yaml ╨╕ service.yaml), рдлрд┐рд░ рдЖрдЙрдЯрдкреБрдЯ рдкрд░ рдЗрд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЯреЗрдХреНрд╕реНрдЯ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧрд╛ kustomization.yaml.

Kustomize рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдкрд░рд┐рдЪрдп
рдЯрд┐рдкреНрдкрдгреАред рдЕрдиреБрд╡рд╛рджред: рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝ рдХреЗ "рд╕рд░рд▓" рдЙрдкрдпреЛрдЧ рдкрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рд╕реЗ рдЪрд┐рддреНрд░рдг

рдпрджрд┐ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рддреЛ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

kustomize build . > custom-config.yaml

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

kustomize build . | kubectl apply -f -

рдЕрдиреБрдХреВрд▓рд┐рдд рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдЗрд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреА рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ kubectl -k (рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕рдВрд╕реНрдХрд░рдг 1.14 рдХреЗ рдмрд╛рдж рд╕реЗ)ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝ рдкреИрдХреЗрдЬ рдПрдХреАрдХреГрдд рдХреБрдмреЗрдХреНрдЯрд▓ рдкреИрдХреЗрдЬ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рддреЗрдЬрд╝реА рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдХрдо рд╕реЗ рдХрдо рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ 1.15 рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣реА рд╣реИ)ред

рдкрд╛рдардХ рдкреВрдЫ рд╕рдХрддреЗ рд╣реИрдВ: "рдпрджрд┐ рдЖрдк рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реАрдзреЗ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддреЛ рдЗрддрдиреА рдЬрдЯрд┐рд▓рддрд╛ рдХреНрдпреЛрдВ?" рдмрдврд╝рд┐рдпрд╛ рд╕рд╡рд╛рд▓. рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдлрд╝рд╛рдЗрд▓реЗрдВ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ deployment.yaml ╨╕ service.yaml рд╕реАрдзреЗ рддреМрд░ рдкрд░, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рд╡реЗ рдХрд┐рд╕реА рдФрд░ рдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрдВ? рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реАрдзреЗ рдмрджрд▓рдиреЗ рд╕реЗ рдореВрд▓/рд╕реНрд░реЛрдд рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рдлреЛрд░реНрдХ рдХреЛ рджреЛрдмрд╛рд░рд╛ рдЖрдзрд╛рд░ рдмрдирд╛рдирд╛ рдореБрд╢реНрдХрд┐рд▓ (рдпрджрд┐ рдЕрд╕рдВрднрд╡ рдирд╣реАрдВ) рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЖрдк рдЗрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЗрдВрджреНрд░реАрдХреГрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ kustomization.yaml, рдореВрд▓ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдмрд░рдХрд░рд╛рд░ рд░рдЦрддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдореВрд▓ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЖрдзрд╛рд░ рдмрдирд╛рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИред

рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝ рдХреЗ рд▓рд╛рдн рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ kustomization.yaml рдФрд░ рд╕рдВрд╕рд╛рдзрди рдПрдХ рд╣реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝ рдЙрди рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдЬрд╣рд╛рдБ рдПрдХ рдЖрдзрд╛рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдФрд░ рдЗрд╕рдХреЗ рдХрдИ рдкреНрд░рдХрд╛рд░ рд╣реЛрддреЗ рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рдЗрд╕рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдУрд╡рд░рд▓реЗ. рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ nginx рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдФрд░ рд╕реЗрд╡рд╛ рд▓реЗрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛, рдФрд░ рдЙрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕, рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдФрд░ рдЙрддреНрдкрд╛рджрди рд╕рдВрд╕реНрдХрд░рдг (рдпрд╛ рд╡реЗрд░рд┐рдПрдВрдЯ) рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрд╕реЗ рдЙрдкрд░реНрдпреБрдХреНрдд рдУрд╡рд░рд▓реЗ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдмреБрдирд┐рдпрд╛рджреА рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рдУрд╡рд░рд▓реЗ рдФрд░ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдЖрдзрд╛рд░ рд╕рдВрд╕рд╛рдзрди), рдЖрдЗрдП рдорд╛рди рд▓реЗрдВ рдХрд┐ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреА рд╕рдВрд░рдЪрдирд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИ:

- base
  - deployment.yaml
  - service.yaml
  - kustomization.yaml
- overlays
  - dev
    - kustomization.yaml
  - staging
    - kustomization.yaml
  - prod
    - kustomization.yaml

рдлрд╛рдЗрд▓ рдореИрдВ base/kustomization.yaml рдлрд╝реАрд▓реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ resources рдмрд╕ рдЙрди рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░реЗрдВ рдЬрд┐рдирдореЗрдВ рдЕрдиреБрдХреВрд▓рди рд╢рд╛рдорд┐рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ overlays/{dev,staging,prod}/kustomization.yaml рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдлрд╝реАрд▓реНрдб рдореЗрдВ рдЖрдзрд╛рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рд╕рдВрджрд░реНрдн рд▓реЗрддреЗ рд╣реИрдВ resources, рдФрд░ рдлрд┐рд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд░рд┐рд╡рд░реНрддрди рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╡рд╛рддрд╛рд╡рд░рдг. рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдлрд╝рд╛рдЗрд▓ overlays/dev/kustomization.yaml рдкрд╣рд▓реЗ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдЬреИрд╕рд╛ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:

resources:
- ../../base
namePrefix: dev-
namespace: development
commonLabels:
  environment: development

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдлрд╝рд╛рдЗрд▓ overlays/prod/kustomization.yaml рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:

resources:
- ../../base
namePrefix: prod-
namespace: production
commonLabels:
  environment: production
  sre-team: blue

рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЪрд▓рддрд╛ рд╣реИ kustomize build . рдХреИрдЯрд▓реЙрдЧ рдореЗрдВ overlays/dev, рдЕрдиреБрдХреВрд▓рди рд╡рд┐рдХрд╛рд╕ рд╡рд┐рдХрд▓реНрдк рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛ред рдпрджрд┐ рдЖрдк рджреМрдбрд╝рддреЗ рд╣реИрдВ kustomize build . рдХреИрдЯрд▓реЙрдЧ рдореЗрдВ overlays/prod - рдЖрдкрдХреЛ рдЙрддреНрдкрд╛рджрди рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдорд┐рд▓рддрд╛ рд╣реИред рдФрд░ рдпрд╣ рд╕рдм - рдореВрд▓ рдореЗрдВ рдХреЛрдИ рдмрджрд▓рд╛рд╡ рдХрд┐рдП рдмрд┐рдирд╛ (рдЖрдзрд╛рд░) рдлрд╝рд╛рдЗрд▓реЗрдВ, рд╕рднреА рдШреЛрд╖рдгрд╛рддреНрдордХ рдФрд░ рдирд┐рдпрддрд╛рддреНрдордХ рддрд░реАрдХреЗ рд╕реЗред рдЖрдк рдмреЗрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдФрд░ рдУрд╡рд░рд▓реЗ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рд╕реАрдзреЗ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдмрджреНрдз рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдЬрд╛рдирддреЗ рд╣реБрдП рдХрд┐ рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЖрдк рдХрд┐рд╕реА рднреА рд╕рдордп рд╡рд╛рдВрдЫрд┐рдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

Kustomize рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдкрд░рд┐рдЪрдп
рдЯрд┐рдкреНрдкрдгреАред рдЕрдиреБрд╡рд╛рджред: рдЕрдиреБрдХреВрд▓рди рдореЗрдВ рдУрд╡рд░рд▓реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рд╕реЗ рдЪрд┐рддреНрд░рдг

рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЕрдзрд┐рдХ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдЬреЛ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЙрд╕рд╕реЗ рдХрд╣реАрдВ рдЕрдзрд┐рдХред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫреЗ рдкрд░рд┐рдЪрдп рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред

рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрд╕рд╛рдзрди

рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрдИ рдЕрдЪреНрдЫреЗ рд▓реЗрдЦ рдФрд░ рдкреНрд░рдХрд╛рд╢рди рд╣реИрдВред рдпрд╣рд╛рдБ рдХреБрдЫ рд╣реИрдВ рдЬреЛ рдореБрдЭреЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧреА рд▓рдЧреЗ:

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

рдпрджрд┐ рдЗрд╕ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рдХреЛрдИ рдкреНрд░рд╢реНрди рдпрд╛ рд╕реБрдЭрд╛рд╡ рд╣реИрдВ, рддреЛ рдореИрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рд╣рдореЗрд╢рд╛ рддреИрдпрд╛рд░ рд╣реВрдВред рдЖрдк рдореБрдЭрд╕реЗ рдпрд╣рд╛рдВ рд╕рдВрдкрд░реНрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЯреНрд╡рд┐рдЯрд░ рдпрд╛ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕реНрд▓реИрдХ рдЪреИрдирд▓. рдЕрдиреБрдХреВрд▓рди рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдореИрдирд┐рдлрд╝реЗрд╕реНрдЯ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдЖрдирдВрдж рд▓реЗрдВ!

рдЕрдиреБрд╡рд╛рджрдХ рд╕реЗ рдкреА.рдПрд╕

рд╣рдорд╛рд░реЗ рдмреНрд▓реЙрдЧ рдкрд░ рднреА рдкрдврд╝реЗрдВ:

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

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