Kustomize āĻāĻ•āĻŸāĻŋ āĻ¸āĻ‚āĻ•ā§āĻˇāĻŋāĻĒā§āĻ¤ āĻ­ā§‚āĻŽāĻŋāĻ•āĻž

āĻŦāĻŋāĻƒāĻĻā§āĻ°āĻƒ. āĻ…āĻ¨ā§āĻŦāĻžāĻĻ: āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻŸāĻŋ āĻ˛āĻŋāĻ–ā§‡āĻ›ā§‡āĻ¨ āĻ¸ā§āĻ•āĻŸ āĻ˛ā§‹, āĻāĻ•āĻœāĻ¨ āĻĒā§āĻ°āĻ•ā§ŒāĻļāĻ˛ā§€ āĻ¯āĻžāĻ° IT-āĻ¤ā§‡ āĻŦā§āĻ¯āĻžāĻĒāĻ• āĻ…āĻ­āĻŋāĻœā§āĻžāĻ¤āĻž āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡, āĻ¯āĻŋāĻ¨āĻŋ āĻ¸āĻžāĻ¤āĻŸāĻŋ āĻŽā§āĻĻā§āĻ°āĻŋāĻ¤ āĻŦāĻ‡āĻ¯āĻŧā§‡āĻ° āĻ˛ā§‡āĻ–āĻ•/āĻ¸āĻš-āĻ˛ā§‡āĻ–āĻ• (āĻĒā§āĻ°āĻ§āĻžāĻ¨āĻ¤ VMware vSphere-āĻ)āĨ¤ āĻ¤āĻŋāĻ¨āĻŋ āĻāĻ–āĻ¨ āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻŋāĻ‚ āĻāĻŦāĻ‚ āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻ¸ā§‡ āĻŦāĻŋāĻļā§‡āĻˇā§€āĻ•āĻ°āĻŖ āĻ•āĻ°ā§‡ āĻāĻ° āĻ­āĻŋāĻāĻŽāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻ¸āĻžāĻŦāĻ¸āĻŋāĻĄāĻŋāĻ¯āĻŧāĻžāĻ°āĻŋ Heptio (2016 āĻ¸āĻžāĻ˛ā§‡ āĻ…āĻ°ā§āĻœāĻŋāĻ¤) āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡āĻ¨āĨ¤ āĻĒāĻžāĻ ā§āĻ¯āĻŸāĻŋ āĻ¨āĻŋāĻœā§‡āĻ‡ āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻ¸ā§‡āĻ° āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻžāĻ° āĻāĻ•āĻŸāĻŋ āĻ¸āĻ‚āĻ•ā§āĻˇāĻŋāĻĒā§āĻ¤ āĻāĻŦāĻ‚ āĻ¸āĻšāĻœā§‡ āĻŦā§‹āĻāĻžāĻ° āĻ­ā§‚āĻŽāĻŋāĻ•āĻž āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡ āĻ•āĻžāĻ¸ā§āĻŸāĻŽāĻžāĻ‡āĻœ āĻ•āĻ°ā§āĻ¨, āĻ¯āĻž āĻ¸āĻŽā§āĻĒā§āĻ°āĻ¤āĻŋ K8s āĻāĻ° āĻ…āĻ‚āĻļ āĻšāĻ¯āĻŧā§‡ āĻ‰āĻ ā§‡āĻ›ā§‡āĨ¤

Kustomize āĻāĻ•āĻŸāĻŋ āĻ¸āĻ‚āĻ•ā§āĻˇāĻŋāĻĒā§āĻ¤ āĻ­ā§‚āĻŽāĻŋāĻ•āĻž

Kustomize āĻšāĻ˛ āĻāĻ•āĻŸāĻŋ āĻŸā§āĻ˛ āĻ¯āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻĻā§‡āĻ° "āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻ‰āĻĻā§āĻĻā§‡āĻļā§āĻ¯ā§‡ āĻ¸āĻ°āĻ˛, āĻŸā§‡āĻŽāĻĒā§āĻ˛ā§‡āĻŸ-āĻŽā§āĻ•ā§āĻ¤ YAML āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋ āĻ•āĻžāĻ¸ā§āĻŸāĻŽāĻžāĻ‡āĻœ āĻ•āĻ°āĻ¤ā§‡ āĻĻā§‡āĻ¯āĻŧ, āĻ†āĻ¸āĻ˛ YAML āĻ…āĻ•ā§āĻˇāĻ¤ āĻāĻŦāĻ‚ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ¯ā§‹āĻ—ā§āĻ¯ āĻ°ā§‡āĻ–ā§‡" (āĻŦāĻŋāĻŦāĻ°āĻŖ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻĨā§‡āĻ•ā§‡ āĻ§āĻžāĻ° āĻ•āĻ°āĻž GitHub-āĻ āĻ¸āĻ‚āĻ—ā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ āĻ•āĻžāĻ¸ā§āĻŸāĻŽāĻžāĻ‡āĻœ āĻ•āĻ°ā§āĻ¨) Kustomize āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹ āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻŦāĻž, Kubernetes 1.14 āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ kubectl -k āĻāĻ° āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻžāĻ°āĻŋāĻ¤āĻž āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ āĻ•āĻ°āĻ¤ā§‡ (āĻ¯āĻĻāĻŋāĻ“ Kubernetes 1.15 āĻ…āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§€, āĻĒā§ƒāĻĨāĻ• āĻŦāĻžāĻ‡āĻ¨āĻžāĻ°āĻŋāĻŸāĻŋ kubectl-āĻ āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ āĻ•ā§āĻˇāĻŽāĻ¤āĻžāĻ° āĻšā§‡āĻ¯āĻŧā§‡ āĻ¨āĻ¤ā§āĻ¨)āĨ¤ (āĻŦāĻŋāĻƒāĻĻā§āĻ°āĻƒ. āĻ…āĻ¨ā§āĻŦāĻžāĻĻ: āĻ†āĻ° āĻ¸āĻžāĻŽā§āĻĒā§āĻ°āĻ¤āĻŋāĻ• āĻ°āĻŋāĻ˛āĻŋāĻœ āĻ¨āĻŋāĻ¯āĻŧā§‡ āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻ¸ 1.16 āĻ•āĻžāĻ¸ā§āĻŸāĻŽāĻžāĻ‡āĻœ āĻ•āĻ°āĻž āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻŽāĻ°ā§āĻĨāĻŋāĻ¤ āĻāĻ›āĻžāĻĄāĻŧāĻžāĻ“ kubeadm āĻ‡āĻ‰āĻŸāĻŋāĻ˛āĻŋāĻŸāĻŋāĻ¤ā§‡āĨ¤) āĻāĻ‡ āĻĒā§‹āĻ¸ā§āĻŸā§‡, āĻ†āĻŽāĻŋ āĻĒāĻžāĻ āĻ•āĻĻā§‡āĻ° āĻ•āĻžāĻ¸ā§āĻŸāĻŽāĻžāĻ‡āĻœā§‡āĻ° āĻŽā§‚āĻ˛ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻ—ā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻĒāĻ°āĻŋāĻšāĻ¯āĻŧ āĻ•āĻ°āĻŋāĻ¯āĻŧā§‡ āĻĻāĻŋāĻ¤ā§‡ āĻšāĻžāĻ‡āĨ¤

āĻāĻ° āĻ¸āĻšāĻœāĻ¤āĻŽ āĻĢāĻ°ā§āĻŽ/āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡, 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 āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļ āĻ•āĻ°ā§‡āĨ¤ āĻāĻ‡ āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡, Deployment āĻāĻŦāĻ‚ Service āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨ā§‡ āĻĒāĻĄāĻŧāĻŦā§‡ development.
  • āĻ…āĻŦāĻļā§‡āĻˇā§‡, āĻŽāĻžāĻ  commonLabels āĻ˛ā§‡āĻŦā§‡āĻ˛āĻ—ā§āĻ˛āĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻ¸ā§‡āĻŸ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¯āĻž āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ¨ā§‡ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻŦā§‡ā§ˇ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ‰āĻĻāĻžāĻšāĻ°āĻŖā§‡, kustomize āĻ¨āĻžāĻŽ āĻ¸āĻš āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ¨āĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻāĻ•āĻŸāĻŋ āĻ˛ā§‡āĻŦā§‡āĻ˛ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻ•āĻ°āĻŦā§‡ environment āĻāĻŦāĻ‚ āĻ…āĻ°ā§āĻĨ development.

āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€ āĻ¯āĻĻāĻŋ āĻ•āĻ°ā§‡ kustomize build . āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋāĻ¤ā§‡ kustomization.yaml āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻ¸āĻŽā§āĻĒāĻĻ (āĻ¯ā§‡āĻŽāĻ¨ āĻĢāĻžāĻ‡āĻ˛ deployment.yaml и service.yaml), āĻ¤āĻžāĻ°āĻĒāĻ° āĻ†āĻ‰āĻŸāĻĒā§āĻŸā§‡ āĻāĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ¸āĻš āĻāĻ•āĻŸāĻŋ āĻĒāĻžāĻ ā§āĻ¯ āĻĒāĻžāĻŦā§‡ kustomization.yaml.

Kustomize āĻāĻ•āĻŸāĻŋ āĻ¸āĻ‚āĻ•ā§āĻˇāĻŋāĻĒā§āĻ¤ āĻ­ā§‚āĻŽāĻŋāĻ•āĻž
āĻŦāĻŋāĻƒāĻĻā§āĻ°āĻƒ. āĻ…āĻ¨ā§āĻŦāĻžāĻĻ: 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, āĻŽā§‚āĻ˛ āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ…āĻ•ā§āĻˇāĻ¤ āĻ°ā§‡āĻ–ā§‡ āĻāĻŦāĻ‚ āĻāĻ‡āĻ­āĻžāĻŦā§‡ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§‡ āĻŽā§‚āĻ˛ āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ°āĻŋāĻŦā§‡āĻ¸ āĻ•āĻ°āĻž āĻ¸āĻšāĻœ āĻ•āĻ°ā§‡ āĻ¤ā§‹āĻ˛ā§‡āĨ¤

āĻ†āĻ°āĻ“ āĻœāĻŸāĻŋāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§‡āĻ° āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡ āĻ•āĻžāĻ¸ā§āĻŸāĻŽāĻžāĻ‡āĻœā§‡āĻ° āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻ—ā§āĻ˛āĻŋ āĻ¸ā§āĻĒāĻˇā§āĻŸ āĻšāĻ¯āĻŧā§‡ āĻ“āĻ ā§‡āĨ¤ āĻ‰āĻĒāĻ°ā§‡āĻ° āĻ‰āĻĻāĻžāĻšāĻ°āĻŖā§‡ 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 build . āĻ•ā§āĻ¯āĻžāĻŸāĻžāĻ˛āĻ—ā§‡ overlays/prod - āĻ†āĻĒāĻ¨āĻŋ āĻ‰āĻ¤ā§āĻĒāĻžāĻĻāĻ¨ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻĒāĻžāĻŦā§‡āĻ¨āĨ¤ āĻāĻŦāĻ‚ āĻāĻ‡ āĻ¸āĻŦ - āĻŽā§‚āĻ˛ āĻ•ā§‹āĻ¨ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ¨āĻž āĻ•āĻ°ā§‡ (āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ) āĻĢāĻžāĻ‡āĻ˛, āĻ¸āĻŦ āĻāĻ•āĻŸāĻŋ āĻ˜ā§‹āĻˇāĻŖāĻžāĻŽā§‚āĻ˛āĻ• āĻāĻŦāĻ‚ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻ• āĻ‰āĻĒāĻžāĻ¯āĻŧā§‡āĨ¤ āĻ†āĻĒāĻ¨āĻŋ āĻŦā§‡āĻ¸ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻāĻŦāĻ‚ āĻ“āĻ­āĻžāĻ°āĻ˛ā§‡ āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋāĻ—ā§āĻ˛āĻŋ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖā§‡ āĻĒā§āĻ°āĻ¤āĻŋāĻļā§āĻ°ā§āĻ¤āĻŋāĻŦāĻĻā§āĻ§ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨, āĻœā§‡āĻ¨ā§‡ āĻ°āĻžāĻ–ā§āĻ¨ āĻ¯ā§‡ āĻāĻ‡ āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋāĻ° āĻ‰āĻĒāĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§‡ āĻ†āĻĒāĻ¨āĻŋ āĻ¯ā§‡ āĻ•ā§‹āĻ¨āĻ“ āĻ¸āĻŽāĻ¯āĻŧ āĻĒāĻ›āĻ¨ā§āĻĻāĻ¸āĻ‡ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĒā§āĻ¨āĻ°ā§āĻ¤ā§āĻĒāĻžāĻĻāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤

Kustomize āĻāĻ•āĻŸāĻŋ āĻ¸āĻ‚āĻ•ā§āĻˇāĻŋāĻĒā§āĻ¤ āĻ­ā§‚āĻŽāĻŋāĻ•āĻž
āĻŦāĻŋāĻƒāĻĻā§āĻ°āĻƒ. āĻ…āĻ¨ā§āĻŦāĻžāĻĻ: āĻ•āĻžāĻ¸ā§āĻŸāĻŽāĻžāĻ‡āĻœā§‡ āĻ“āĻ­āĻžāĻ°āĻ˛ā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒ āĻĄāĻ•ā§āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāĻ¨ āĻĨā§‡āĻ•ā§‡ āĻšāĻŋāĻ¤ā§āĻ°āĻŖ

āĻ•āĻžāĻ¸ā§āĻŸāĻŽāĻžāĻ‡āĻœ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ āĻ…āĻ§āĻŋāĻ• āĻāĻ‡ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§‡ āĻ†āĻšā§āĻ›āĻžāĻĻāĻŋāĻ¤ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻ¤āĻžāĻ° āĻšā§‡āĻ¯āĻŧā§‡ āĻŦā§‡āĻļāĻŋ. āĻ¯āĻžāĻ‡āĻšā§‹āĻ•, āĻ†āĻŽāĻŋ āĻ†āĻļāĻž āĻ•āĻ°āĻŋ āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻ­āĻžāĻ˛ āĻ­ā§‚āĻŽāĻŋāĻ•āĻž āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡āĨ¤

āĻ…āĻ¤āĻŋāĻ°āĻŋāĻ•ā§āĻ¤ āĻ¸āĻŽā§āĻĒāĻĻ

āĻ•āĻžāĻ¸ā§āĻŸāĻŽāĻžāĻ‡āĻœ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ…āĻ¨ā§‡āĻ• āĻ­āĻžāĻ˛ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻ•āĻžāĻļāĻ¨āĻž āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻāĻ–āĻžāĻ¨ā§‡ āĻ•āĻ¯āĻŧā§‡āĻ•āĻŸāĻŋ āĻ¯āĻž āĻ†āĻŽāĻŋ āĻŦāĻŋāĻļā§‡āĻˇāĻ­āĻžāĻŦā§‡ āĻĻāĻ°āĻ•āĻžāĻ°ā§€ āĻŦāĻ˛ā§‡ āĻŽāĻ¨ā§‡ āĻ•āĻ°ā§‡āĻ›āĻŋ:

āĻŦāĻŋāĻƒāĻĻā§āĻ°āĻƒ. āĻ…āĻ¨ā§āĻŦāĻžāĻĻ: āĻ†āĻĒāĻ¨āĻŋ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻĒā§āĻ°āĻ•āĻžāĻļāĻŋāĻ¤ āĻ˛āĻŋāĻ™ā§āĻ• āĻāĻ•āĻŸāĻŋ āĻŦā§āĻ˛āĻ• āĻ¸ā§āĻĒāĻžāĻ°āĻŋāĻļ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ Resources āĻ‡āĻ‰āĻŸāĻŋāĻ˛āĻŋāĻŸāĻŋāĻ° āĻ“āĻ¯āĻŧā§‡āĻŦāĻ¸āĻžāĻ‡āĻŸā§‡, āĻ¤āĻžāĻ°āĻĒāĻ°ā§‡ āĻ•āĻžāĻ¸ā§āĻŸāĻŽāĻžāĻ‡āĻœ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ¸āĻ°ā§āĻŦāĻļā§‡āĻˇ āĻĒā§āĻ°āĻ¤āĻŋāĻŦā§‡āĻĻāĻ¨ āĻ¸āĻš āĻ­āĻŋāĻĄāĻŋāĻ“āĻ—ā§āĻ˛āĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻ¸āĻ‚āĻ—ā§āĻ°āĻšāĨ¤

āĻāĻ‡ āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨ āĻ‰āĻ¨ā§āĻ¨āĻ¤ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ¯āĻĻāĻŋ āĻĒā§āĻ°āĻļā§āĻ¨ āĻŦāĻž āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļ āĻĨāĻžāĻ•ā§‡, āĻ†āĻŽāĻŋ āĻ¸āĻŦāĻ¸āĻŽāĻ¯āĻŧ āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ‰āĻ¨ā§āĻŽā§āĻ•ā§āĻ¤āĨ¤ āĻ†āĻĒāĻ¨āĻŋ āĻ†āĻŽāĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻ¯ā§‹āĻ—āĻžāĻ¯ā§‹āĻ— āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ Twitter āĻ…āĻĨāĻŦāĻž āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻ¸ āĻ¸ā§āĻ˛ā§āĻ¯āĻžāĻ• āĻšā§āĻ¯āĻžāĻ¨ā§‡āĻ˛. āĻ•āĻžāĻ¸ā§āĻŸāĻŽāĻžāĻ‡āĻœā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ†āĻĒāĻ¨āĻžāĻ° āĻŽā§āĻ¯āĻžāĻ¨āĻŋāĻĢā§‡āĻ¸ā§āĻŸāĻ—ā§āĻ˛āĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°ā§‡ āĻŽāĻœāĻž āĻ¨āĻŋāĻ¨!

āĻ…āĻ¨ā§āĻŦāĻžāĻĻāĻ• āĻĨā§‡āĻ•ā§‡ PS

āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻŦā§āĻ˛āĻ—ā§‡āĻ“ āĻĒāĻĄāĻŧā§āĻ¨:

āĻ‰āĻ¤ā§āĻ¸: www.habr.com

āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻœā§āĻĄāĻŧā§āĻ¨