рдЯрд┐рдкреНрдкрдгреАред рдЕрдиреБрд╡рд╛рджред: рдпрд╣ рд▓реЗрдЦ рдЖрдИрдЯреА рдореЗрдВ рд╡реНрдпрд╛рдкрдХ рдЕрдиреБрднрд╡ рд╡рд╛рд▓реЗ рдПрдХ рдЗрдВрдЬреАрдирд┐рдпрд░ рд╕реНрдХреЙрдЯ рд▓реЛрд╡ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рд╕рд╛рдд рдореБрджреНрд░рд┐рдд рдкреБрд╕реНрддрдХреЛрдВ (рдореБрдЦреНрдп рд░реВрдк рд╕реЗ VMware vSphere рдкрд░) рдХреЗ рд▓реЗрдЦрдХ/рд╕рд╣-рд▓реЗрдЦрдХ рд╣реИрдВред рд╡рд╣ рдЕрдм рдЗрд╕рдХреА VMware рд╕рд╣рд╛рдпрдХ рдХрдВрдкрдиреА рд╣реЗрдкреНрдЯрд┐рдпреЛ (2016 рдореЗрдВ рдЕрдзрд┐рдЧреНрд░рд╣реАрдд) рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХреНрд▓рд╛рдЙрдб рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдФрд░ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮрддрд╛ рд░рдЦрддреА рд╣реИред рдкрд╛рда рд╕реНрд╡рдпрдВ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдФрд░ рд╕рдордЭрдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рдкрд░рд┐рдЪрдп рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ
рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝ рдПрдХ рдЙрдкрдХрд░рдг рд╣реИ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ "рдореВрд▓ рд╡рд╛рдИрдПрдПрдордПрд▓ рдХреЛ рдмрд░рдХрд░рд╛рд░ рдФрд░ рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдЫреЛрдбрд╝рдХрд░, рд╡рд┐рднрд┐рдиреНрди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд░рд▓, рдЯреЗрдореНрдкрд▓реЗрдЯ-рдореБрдХреНрдд рд╡рд╛рдИрдПрдПрдордПрд▓ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ" (рд╡рд┐рд╡рд░рдг рд╕реАрдзреЗ рд╕реЗ рдЙрдзрд╛рд░ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ) kubectl -k
рдЗрд╕рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП (рд╣рд╛рд▓рд╛рдБрдХрд┐ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ 1.15 рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЕрд▓рдЧ рдмрд╛рдЗрдирд░реА рдХреБрдмреЗрдХреНрдЯрд▓ рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рдХреНрд╖рдорддрд╛рдУрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдирдИ рд╣реИ)ред (рдЯрд┐рдкреНрдкрдгреАред рдЕрдиреБрд╡рд╛рджред: рдФрд░ рд╣рд╛рд▓рд┐рдпрд╛ рд░рд┐рд▓реАрдЬ рдХреЗ рд╕рд╛рде
рдЕрдкрдиреЗ рд╕рд░рд▓рддрдо рд░реВрдк/рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ, рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝ рдХреЗрд╡рд▓ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рд╣реИ (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 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 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдкрд░рд┐рд╡реЗрд╢реЛрдВ рдХреЗ рдЙрддреНрдкрд╛рдж/рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЖрдзрд╛рд░ YAML рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрджрд▓реЗрдВ ; -
рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝ рдХрд░реЗрдВ - рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рдЯреЗрдореНрдкреНрд▓реЗрдЯрд┐рдВрдЧ рдХрд░рдиреЗ рдХрд╛ рд╕рд╣реА рддрд░реАрдХрд╛ ; -
рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдШреЛрд╖рдгрд╛рддреНрдордХ рдкреНрд░рдмрдВрдзрди ; -
рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝ рдХреЗ рд╕рд╛рде рдЕрдкрд╕реНрдЯреНрд░реАрдо рд╣реЗрд▓реНрдо рдЪрд╛рд░реНрдЯ рдХреЛ рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝ рдХрд░рдирд╛ .
рдЯрд┐рдкреНрдкрдгреАред рдЕрдиреБрд╡рд╛рджред: рдЖрдк рдЗрд╕ рд░реВрдк рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рд▓рд┐рдВрдХ рдХреЗ рдмреНрд▓реЙрдХ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдпрджрд┐ рдЗрд╕ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рдХреЛрдИ рдкреНрд░рд╢реНрди рдпрд╛ рд╕реБрдЭрд╛рд╡ рд╣реИрдВ, рддреЛ рдореИрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рд╣рдореЗрд╢рд╛ рддреИрдпрд╛рд░ рд╣реВрдВред рдЖрдк рдореБрдЭрд╕реЗ рдпрд╣рд╛рдВ рд╕рдВрдкрд░реНрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдЕрдиреБрд╡рд╛рджрдХ рд╕реЗ рдкреА.рдПрд╕
рд╣рдорд╛рд░реЗ рдмреНрд▓реЙрдЧ рдкрд░ рднреА рдкрдврд╝реЗрдВ:
- ┬л
рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдкрд░ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдг "; - ┬л
рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ 1.14: рдореБрдЦреНрдп рдирд╡рд╛рдЪрд╛рд░реЛрдВ рдХрд╛ рдЕрд╡рд▓реЛрдХрди "; - ┬л
рдПрдореНрд╕реНрдЯрд░реНрдбрдо рдореЗрдВ рд╣реЗрд▓реНрдо рд╢рд┐рдЦрд░ рд╕рдореНрдореЗрд▓рди 2019 рдХреЗ рдкрд╛рдВрдЪ рдореБрдЦреНрдп рдкрд░рд┐рдгрд╛рдо "; - ┬л
рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░ рдХрд╛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдкрд░рд┐рдЪрдп - рд╣реЗрд▓реНрдо '.
рд╕реНрд░реЛрдд: www.habr.com