рдиреЛрдВрдж. рдЕрдиреБрд╡рд╛рдж: рд▓реЗрдЦ рд╕реНрдХреЙрдЯ рд▓реЛрд╡ рдпрд╛рдВрдиреА рд▓рд┐рд╣рд┐рд▓рд╛ рдЖрд╣реЗ, рдЬреЛ IT рдордзреНрдпреЗ рд╡реНрдпрд╛рдкрдХ рдЕрдиреБрднрд╡ рдЕрд╕рд▓реЗрд▓реЗ рдЕрднрд┐рдпрдВрддрд╛ рдЖрд╣реЗ, рдЬреЛ рд╕рд╛рдд рдЫрд╛рдкреАрд▓ рдкреБрд╕реНрддрдХрд╛рдВрдЪреЗ рд▓реЗрдЦрдХ/рд╕рд╣-рд▓реЗрдЦрдХ рдЖрд╣реЗ (рдореБрдЦреНрдпрддрдГ VMware vSphere рд╡рд░). рддреЛ рдЖрддрд╛ рддреНрдпрд╛рдЪреНрдпрд╛ VMware рдЙрдкрдХрдВрдкрдиреА Heptio (2016 рдордзреНрдпреЗ рд╡рд┐рдХрдд рдШреЗрддрд▓реЗ), рдХреНрд▓рд╛рдЙрдб рдХрдВрдкреНрдпреБрдЯрд┐рдВрдЧ рдЖрдгрд┐ Kubernetes рдордзреНрдпреЗ рд╡рд┐рд╢реЗрд╖ рдХрд╛рдо рдХрд░рддреЛ. рдордЬрдХреВрд░ рд╕реНрд╡рддрдГрдЪ рддрдВрддреНрд░рдЬреНрдЮрд╛рдирд╛рдЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВрди рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рд╕рд╛рдареА рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдирд╛рдЪрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЖрдгрд┐ рд╕рдордЬрдгреНрдпрд╛рд╕ рд╕реБрд▓рдн рдкрд░рд┐рдЪрдп рдореНрд╣рдгреВрди рдХрд╛рдо рдХрд░рддреЛ
Kustomize рд╣реЗ рдПрдХ рд╕рд╛рдзрди рдЖрд╣реЗ рдЬреЗ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдирд╛ "рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдЙрджреНрджреЗрд╢рд╛рдВрд╕рд╛рдареА рд╕рд╛рдзреНрдпрд╛, рдЯреЗрдореНрдкрд▓реЗрдЯ-рдореБрдХреНрдд YAML рдлрд╛рдпрд▓реА рд╕рд╛рдиреБрдХреВрд▓рд┐рдд рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ, рдореВрд│ YAML рдЕрдЦрдВрдб рдЖрдгрд┐ рд╡рд╛рдкрд░рдгреНрдпрд╛рдпреЛрдЧреНрдп рд╕реЛрдбреВрди" (рд╡рд░реНрдгрди рдереЗрдЯ рдХрдбреВрди рдШреЗрддрд▓реЗрд▓реЗ kubectl -k
рддреНрдпрд╛рдЪреНрдпрд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА (рдЬрд░реА Kubernetes 1.15 рдиреБрд╕рд╛рд░, рд╕реНрд╡рддрдВрддреНрд░ рдмрд╛рдпрдирд░реА рдХреБрдмреЗрдХреНрдЯрд▓рдордзреНрдпреЗ рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдХреНрд╖рдорддрд╛рдВрдкреЗрдХреНрд╖рд╛ рдирд╡реАрди рдЖрд╣реЗ). (рдиреЛрдВрдж. рдЕрдиреБрд╡рд╛рдж: рдЖрдгрд┐ рдЕрд▓реАрдХрдбреАрд▓ рд░рд┐рд▓реАрдЭ рд╕рд╣
рддреНрдпрд╛рдЪреНрдпрд╛ рд╕рд░реНрд╡рд╛рдд рд╕реЛрдкреНрдпрд╛ рдлреЙрд░реНрдо/рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рдирдордзреНрдпреЗ, kustomize рд╣рд╛ рдлрдХреНрдд рд╕рдВрд╕рд╛рдзрдирд╛рдВрдЪрд╛ рд╕рдВрдЧреНрд░рд╣ рдЖрд╣реЗ (YAML рдлрд╛рдЗрд▓реНрд╕ рдЬреНрдпрд╛ Kubernetes рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕: рдбрд┐рдкреНрд▓реЙрдпрдореЗрдВрдЯреНрд╕, рд╕рд░реНрд╡реНрд╣рд┐рд╕реЗрд╕ рдЗ. рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛рдд) рддрд╕реЗрдЪ рддреНрдпрд╛ рд╕рдВрд╕рд╛рдзрдирд╛рдВрдордзреНрдпреЗ рдХрд░рд╛рд╡рдпрд╛рдЪреНрдпрд╛ рдмрджрд▓рд╛рдВрд╕рд╛рдареА рд╕реВрдЪрдирд╛рдВрдЪреА рд╕реВрдЪреА рдЖрд╣реЗ. рдЬреНрдпрд╛рдкреНрд░рдорд╛рдгреЗ рдореЗрдХрдордзреНрдпреЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╕реВрдЪрдирд╛ рд╕рдВрдЪрд╛рдЪрд╛ рд╡рд╛рдкрд░ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ Makefile
, рдЖрдгрд┐ рдбреЙрдХрд░ рдХрдбреАрд▓ рд╕реВрдЪрдирд╛рдВрд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдХрдВрдЯреЗрдирд░ рддрдпрд╛рд░ рдХрд░рддреЛ Dockerfile
,рд╕рд╛рдиреБрдХреВрд▓рд┐рдд рд╡рд╛рдкрд░ kustomization.yaml
рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рд▓рд╛ рд╕рдВрд╕рд╛рдзрдирд╛рдВрдЪреНрдпрд╛ рд╕рдВрдЪрд╛рдордзреНрдпреЗ рдХреЛрдгрддреЗ рдмрджрд▓ рдХрд░рд╛рдпрдЪреЗ рдЖрд╣реЗрдд рдпрд╛рд╡рд┐рд╖рдпреА рд╕реВрдЪрдирд╛ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА.
рдпреЗрдереЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдлрд╛рдЗрд▓ рдЖрд╣реЗ kustomization.yaml
:
resources:
- deployment.yaml
- service.yaml
namePrefix: dev-
namespace: development
commonLabels:
environment: development
рдореА рдлрд╛рдЗрд▓рдордзреАрд▓ рд╕рд░реНрд╡ рд╕рдВрднрд╛рд╡реНрдп рдлреАрд▓реНрдбрдмрджреНрджрд▓ рдмреЛрд▓рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░рдгрд╛рд░ рдирд╛рд╣реА. kustomization.yaml
(рдпрд╛рдмрджреНрджрд▓ рдЪрд╛рдВрдЧрд▓реЗ рд▓рд┐рд╣рд┐рд▓реЗ рдЖрд╣реЗ
- рдлреАрд▓реНрдб
resources
рдХрд╛рдп (рдХреЛрдгрддреА рд╕рдВрд╕рд╛рдзрдиреЗ) kustomize рдмрджрд▓реЗрд▓ рд╣реЗ рд╕реВрдЪрд┐рдд рдХрд░рддреЗ. рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рддреЗ рдлрд╛рдпрд▓реАрдВрдордзреНрдпреЗ рд╕рдВрд╕рд╛рдзрдиреЗ рд╢реЛрдзреЗрд▓deployment.yaml
╨╕service.yaml
рддреБрдордЪреНрдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХреЗрдд (рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реНрдпрд╛рд╕ рддреБрдореНрд╣реА рдкреВрд░реНрдг рдХрд┐рдВрд╡рд╛ рд╕рдВрдмрдВрдзрд┐рдд рдорд╛рд░реНрдЧ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реВ рд╢рдХрддрд╛). - рдлреАрд▓реНрдб
namePrefix
рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрдкрд╕рд░реНрдЧ рдЬреЛрдбрдгреНрдпрд╛рд╕рд╛рдареА kustomize рд╕реВрдЪрдирд╛ рджреЗрддреЗ (рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд -dev-
) рд╡рд┐рд╢реЗрд╖рддрд╛name
рдХреНрд╖реЗрддреНрд░рд╛рдд рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕рд░реНрд╡ рд╕рдВрд╕рд╛рдзрдиреЗresources
. рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ, рдЙрдкрдпреЛрдЬрди рдЕрд╕рд▓реНрдпрд╛рд╕name
рдЕрд░реНрдерд╛рд╕рд╣nginx-deployment
, рд╕рд╛рдиреБрдХреВрд▓рд┐рдд рдХрд░реЗрд▓dev-nginx-deployment
. - рдлреАрд▓реНрдб
namespace
рд╕рд░реНрд╡ рд╕рдВрд╕рд╛рдзрдирд╛рдВрдордзреНрдпреЗ рджрд┐рд▓реЗрд▓реЗ рдиреЗрдорд╕реНрдкреЗрд╕ рдЬреЛрдбрдгреНрдпрд╛рд╕рд╛рдареА kustomize рд╕реВрдЪрдирд╛ рджреЗрддреЗ. рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рдЙрдкрдпреЛрдЬрди рдЖрдгрд┐ рд╕реЗрд╡рд╛ рдиреЗрдорд╕реНрдкреЗрд╕рдордзреНрдпреЗ рдпреЗрддреАрд▓development
. - рд╢реЗрд╡рдЯреА, рдлреАрд▓реНрдб
commonLabels
рд▓реЗрдмрд▓рд╛рдВрдЪрд╛ рд╕рдВрдЪ рдЖрд╣реЗ рдЬреЛ рд╕рд░реНрд╡ рд╕рдВрд╕рд╛рдзрдирд╛рдВрдордзреНрдпреЗ рдЬреЛрдбрд▓рд╛ рдЬрд╛рдИрд▓. рдЖрдордЪреНрдпрд╛ рдЙрджрд╛рд╣рд░рдгрд╛рдд, kustomize рдирд╛рд╡рд╛рд╕рд╣ рд╕рдВрд╕рд╛рдзрдирд╛рдВрдирд╛ рд▓реЗрдмрд▓ рдирд┐рдпреБрдХреНрдд рдХрд░реЗрд▓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
(Kubernetes рдЖрд╡реГрддреНрддреА 1.14 рдкрд╛рд╕реВрди). рддрдерд╛рдкрд┐, рд▓рдХреНрд╖рд╛рдд рдареЗрд╡рд╛ рдХреА рд╕реНрдЯрдБрдбрдЕрд▓реЛрди kustomize рдкреЕрдХреЗрдЬ рдПрдХрд╛рддреНрдорд┐рдХ kubectl рдкреЕрдХреЗрдЬрдкреЗрдХреНрд╖рд╛ рдЕрдзрд┐рдХ рдЬрд▓рдж рдЕрдкрдбреЗрдЯ рдХреЗрд▓реЗ рдЬрд╛рддреЗ (рдХрд┐рдорд╛рди рд╣реЗ Kubernetes 1.15 рдкреНрд░рдХрд╛рд╢рдирд╛рдЪреНрдпрд╛ рдмрд╛рдмрддреАрдд рдЖрд╣реЗ).
рд╡рд╛рдЪрдХ рд╡рд┐рдЪрд╛рд░реВ рд╢рдХрддрд╛рдд: "рдЬрд░ рддреБрдореНрд╣реА рдлрд╛рдЗрд▓реНрд╕ рдереЗрдЯ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реВ рд╢рдХрдд рдЕрд╕рд╛рд▓ рддрд░ рд╣реА рд╕рд░реНрд╡ рдЧреБрдВрддрд╛рдЧреБрдВрдд рдХрд╛?" рдЫрд╛рди рдкреНрд░рд╢реНрди. рдЖрдордЪреНрдпрд╛ рдЙрджрд╛рд╣рд░рдгрд╛рдд, рдЦрд░рдВрдЪ рдХрд░реВ рд╢рдХрддрд╛ рдлрд╛рдЗрд▓реНрд╕ рд╕реБрдзрд╛рд░рд┐рдд рдХрд░рд╛ deployment.yaml
╨╕ service.yaml
рдереЗрдЯ, рдкрдг рддреЗ рджреБрд╕рд▒реНрдпрд╛рдЪреНрдпрд╛ рдкреНрд░рдХрд▓реНрдкрд╛рдЪреЗ рдХрд╛рдЯреЗ рдЕрд╕рддреАрд▓ рддрд░? рдлрд╛рдпрд▓реА рдмрджрд▓рд▓реНрдпрд╛рдиреЗ рдореВрд│/рд╕реНрд░реЛрддрд╛рдордзреНрдпреЗ рдмрджрд▓ рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд рддреЗрд╡реНрд╣рд╛ рдлреЙрд░реНрдХ рд░рд┐рдмреЗрд╕ рдХрд░рдгреЗ рдХрдареАрдг рд╣реЛрддреЗ (рдЕрд╢рдХреНрдп рдирд╕рд▓реНрдпрд╛рд╕). kustomize рд╡рд╛рдкрд░рд▓реНрдпрд╛рдиреЗ рддреБрдореНрд╣рд╛рд▓рд╛ рд╣реЗ рдмрджрд▓ рдПрдХрд╛ рдлрд╛рдИрд▓рдордзреНрдпреЗ рдХреЗрдВрджреНрд░реАрдХреГрдд рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рдорд┐рд│рддреЗ kustomization.yaml
, рдореВрд│ рдлрд╛рдЗрд▓реНрд╕ рдЕрдЦрдВрдб рдареЗрд╡рддрд╛рдд рдЖрдгрд┐ рддреНрдпрд╛рдореБрд│реЗ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реНрдпрд╛рд╕ рдореВрд│ рдлрд╛рдЗрд▓реНрд╕ рд░рд┐рдмреЗрд╕ рдХрд░рдгреЗ рд╕реЛрдкреЗ рд╣реЛрддреЗ.
рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╡рд╛рдкрд░ рдкреНрд░рдХрд░рдгрд╛рдВрдордзреНрдпреЗ kustomize рдЪреЗ рдлрд╛рдпрджреЗ рд╕реНрдкрд╖реНрдЯ рд╣реЛрддрд╛рдд. рд╡рд░реАрд▓ рдЙрджрд╛рд╣рд░рдгрд╛рдд kustomization.yaml
рдЖрдгрд┐ рд╕рдВрд╕рд╛рдзрдиреЗ рд╕рдорд╛рди рдирд┐рд░реНрджреЗрд╢рд┐рдХреЗрдд рдЖрд╣реЗрдд. рддрдерд╛рдкрд┐, рдмреЗрд╕ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдЖрдгрд┐ рддреНрдпрд╛рдЪреЗ рдЕрдиреЗрдХ рдкреНрд░рдХрд╛рд░, рдпрд╛ рдирд╛рд╡рд╛рдиреЗ рдУрд│рдЦрд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд░реНтАНрдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдВрдордзреНрдпреЗ kustomize рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреЗ рд╕рдорд░реНрдерди рдХрд░рддреЗ. рдЖрдЪреНрдЫрд╛рджрди. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рд▓рд╛ 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 рд╡рд┐рдХрд╛рд╕ рдкрд░реНрдпрд╛рдп рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрд▓. рдЖрдкрдг рдзрд╛рд╡рдд рдЕрд╕рд▓реНрдпрд╛рд╕ kustomize build .
рдХреЕрдЯрд▓реЙрдЧрдордзреНрдпреЗ overlays/prod
- рддреБрдореНрд╣рд╛рд▓рд╛ рдЙрддреНрдкрд╛рджрди рдкрд░реНрдпрд╛рдп рдорд┐рд│реЗрд▓. рдЖрдгрд┐ рд╣реЗ рд╕рд░реНрд╡ - рдореВрд│рдордзреНрдпреЗ рдХреЛрдгрддреЗрд╣реА рдмрджрд▓ рди рдХрд░рддрд╛ (рдкрд╛рдпрд╛) рдлрд╛рдпрд▓реА, рд╕рд░реНрд╡ рдШреЛрд╖рдгрд╛рддреНрдордХ рдЖрдгрд┐ рдирд┐рд░реНрдзрд╛рд░рд╡рд╛рджреА рдорд╛рд░реНрдЧрд╛рдиреЗ. рддреБрдореНрд╣реА рдмреЗрд╕ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдЖрдгрд┐ рдЖрдЪреНрдЫрд╛рджрд┐рдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдереЗрдЯ рдЖрд╡реГрддреНрддреА рдирд┐рдпрдВрддреНрд░рдгрд╛рд╕рд╛рдареА рдХрдорд┐рдЯ рдХрд░реВ рд╢рдХрддрд╛, рдпрд╛ рдлрд╛рдпрд▓реАрдВрд╡рд░ рдЖрдзрд╛рд░рд┐рдд рддреБрдореНрд╣реА рдХрдзреАрд╣реА рдЗрдЪреНрдЫрд┐рдд рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирдЪреЗ рдкреБрдирд░реБрддреНрдкрд╛рджрди рдХрд░реВ рд╢рдХрддрд╛.
рдиреЛрдВрдж. рдЕрдиреБрд╡рд╛рдж: kustomize рдордзреНрдпреЗ рдЖрдЪреНрдЫрд╛рджрди рд╡рд╛рдкрд░рдгреНрдпрд╛рд╡рд░ рдкреНрд░рдХрд▓реНрдк рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдгрд╛рддреАрд▓ рдЙрджрд╛рд╣рд░рдг
рд╕рд╛рдиреБрдХреВрд▓ рдХрд░реВ рд╢рдХрддрд╛ рдЦреВрдк рдпрд╛ рд▓реЗрдЦрд╛рдд рдЬреЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ рддреНрдпрд╛рдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд. рддрдерд╛рдкрд┐, рдорд▓рд╛ рдЖрд╢рд╛ рдЖрд╣реЗ рдХреА рддреЛ рдПрдХ рдЪрд╛рдВрдЧрд▓рд╛ рдкрд░рд┐рдЪрдп рдореНрд╣рдгреВрди рдХрд╛рдо рдХрд░реЗрд▓.
рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрд╕рд╛рдзрдиреЗ
kustomize рдмрджреНрджрд▓ рдмрд░реЗрдЪ рдЪрд╛рдВрдЧрд▓реЗ рд▓реЗрдЦ рдЖрдгрд┐ рдкреНрд░рдХрд╛рд╢рдиреЗ рдЖрд╣реЗрдд. рдпреЗрдереЗ рдХрд╛рд╣реА рдЖрд╣реЗрдд рдЬреЗ рдорд▓рд╛ рд╡рд┐рд╢реЗрд╖рддрдГ рдЙрдкрдпреБрдХреНрдд рд╡рд╛рдЯрд▓реЗ:
-
Kustomize рд╡рд╛рдкрд░реВрди рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рд╡рд╛рддрд╛рд╡рд░рдгрд╛рддреАрд▓ рдЙрддреНрдкрд╛рджрди/рдЪрд╛рдЪрдгреАрд╕рд╛рдареА рдмреЗрд╕ YAML рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдмрджрд▓рд╛ ; -
Kustomize тАФ Kubernetes рдордзреНрдпреЗ рдЯреЗрдореНрдкреНрд▓реЗрдЯрд┐рдВрдЧ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдпреЛрдЧреНрдп рдорд╛рд░реНрдЧ ; -
рд╕рд╛рдиреБрдХреВрд▓рд┐рдд рд╡рд╛рдкрд░реВрди рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕рдЪреЗ рдШреЛрд╖рдгрд╛рддреНрдордХ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди ; -
рд╕рд╛рдиреБрдХреВрд▓рд┐рдд рд╕рд╣ рдЕрдкрд╕реНрдЯреНрд░реАрдо рд╣реЗрд▓реНрдо рдЪрд╛рд░реНрдЯ рд╕рд╛рдиреБрдХреВрд▓рд┐рдд рдХрд░рдгреЗ .
рдиреЛрдВрдж. рдЕрдиреБрд╡рд╛рдж: рддреБрдореНрд╣реА рдкреНрд░рдХрд╛рд╢рд┐рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ рд▓рд┐рдВрдХреНрд╕рдЪреНрдпрд╛ рдмреНрд▓реЙрдХрдЪреА рд╢рд┐рдлрд╛рд░рд╕ рджреЗрдЦреАрд▓ рдХрд░реВ рд╢рдХрддрд╛
рд╣реА рд╕рд╛рдордЧреНрд░реА рд╕реБрдзрд╛рд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдкрд▓реНрдпрд╛рдХрдбреЗ рдкреНрд░рд╢реНрди рдХрд┐рдВрд╡рд╛ рд╕реВрдЪрдирд╛ рдЕрд╕рд▓реНрдпрд╛рд╕, рдореА рдиреЗрд╣рдореА рдЕрднрд┐рдкреНрд░рд╛рдпрд╛рд╕рд╛рдареА рддрдпрд╛рд░ рдЖрд╣реЗ. рддреБрдореНрд╣реА рдорд╛рдЭреНрдпрд╛рд╢реА рдпреЗрдереЗ рд╕рдВрдкрд░реНрдХ рд╕рд╛рдзреВ рд╢рдХрддрд╛
рдЕрдиреБрд╡рд╛рджрдХрд╛рдХрдбреВрди рдкреБрдирд╢реНрдЪ
рдЖрдордЪреНрдпрд╛ рдмреНрд▓реЙрдЧрд╡рд░ рджреЗрдЦреАрд▓ рд╡рд╛рдЪрд╛:
- ┬л
Kubernetes рд╡рд░ рдЪрд╛рд▓рдгрд╛рд░реНтАНрдпрд╛ рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рдЪреНрдпрд╛ рд╡рд┐рдХрд╕рдХрд╛рдВрд╕рд╛рдареА рд╕рд╛рдзрдиреЗ "; - ┬л
рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ 1.14: рдореБрдЦреНрдп рдирд╡рдХрд▓реНрдкрдирд╛рдВрдЪреЗ рд╡рд┐рд╣рдВрдЧрд╛рд╡рд▓реЛрдХрди "; - ┬л
рдЕреЕрдорд╕реНрдЯрд░рдбреЕрдордордзреАрд▓ рд╣реЗрд▓реНрдо рд╕рдорд┐рдЯ 2019 рдЪреЗ рдкрд╛рдЪ рдореБрдЦреНрдп рдирд┐рдХрд╛рд▓ "; - ┬л
рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ - рд╣реЗрд▓реНрдорд╕рд╛рдареА рдкреЕрдХреЗрдЬ рдореЕрдиреЗрдЬрд░рдЪрд╛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдкрд░рд┐рдЪрдп ┬╗.
рд╕реНрддреНрд░реЛрдд: www.habr.com