Hashicorp āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻāĻ° Kubernetes āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻ¨ā§‡āĻ° āĻ­ā§‚āĻŽāĻŋāĻ•āĻž

Hashicorp āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻāĻ° Kubernetes āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻ¨ā§‡āĻ° āĻ­ā§‚āĻŽāĻŋāĻ•āĻž

āĻāĻŸāĻž āĻ āĻŋāĻ•, āĻŽā§āĻ•ā§āĻ¤āĻŋāĻ° āĻĒāĻ°ā§‡ Hashicorp āĻ•āĻ¨āĻ¸āĻžāĻ˛ 1.5.0 āĻŽā§‡ 2019 āĻāĻ° āĻļā§āĻ°ā§āĻ¤ā§‡, āĻ•āĻ¨āĻ¸āĻžāĻ˛ā§‡ āĻ†āĻĒāĻ¨āĻŋ āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸā§‡ āĻ¸ā§āĻĨāĻžāĻ¨ā§€āĻ¯āĻŧāĻ­āĻžāĻŦā§‡ āĻšāĻ˛āĻŽāĻžāĻ¨ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻāĻŦāĻ‚ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ—ā§āĻ˛āĻŋ āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤

āĻāĻ‡ āĻŸāĻŋāĻ‰āĻŸā§‹āĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛ā§‡ āĻ†āĻŽāĻ°āĻž āĻ§āĻžāĻĒā§‡ āĻ§āĻžāĻĒā§‡ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻŦ POC (āĻ§āĻžāĻ°āĻŖāĻžāĻ° āĻĒā§āĻ°āĻŽāĻžāĻŖ, PoC) āĻāĻ‡ āĻ¨āĻ¤ā§āĻ¨ āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯āĻŸāĻŋ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻ•āĻ°āĻ›ā§‡āĨ¤ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ•āĻžāĻ›ā§‡ Kubernetes āĻāĻŦāĻ‚ Hashicorp-āĻāĻ° āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ• āĻœā§āĻžāĻžāĻ¨ āĻĨāĻžāĻ•āĻŦā§‡ āĻŦāĻ˛ā§‡ āĻ†āĻļāĻž āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡āĨ¤ āĻ†āĻĒāĻ¨āĻŋ āĻ¯ā§‡āĻ•ā§‹āĻ¨ā§‹ āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻĒā§āĻ˛ā§āĻ¯āĻžāĻŸāĻĢāĻ°ā§āĻŽ āĻŦāĻž āĻ…āĻ¨-āĻĒā§āĻ°āĻŋāĻŽāĻŋāĻ¸ā§‡āĻ¸ āĻĒāĻ°āĻŋāĻŦā§‡āĻļ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨, āĻāĻ‡ āĻŸāĻŋāĻ‰āĻŸā§‹āĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛ā§‡ āĻ†āĻŽāĻ°āĻž Google-āĻāĻ° āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻĒā§āĻ˛ā§āĻ¯āĻžāĻŸāĻĢāĻ°ā§āĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻŦāĨ¤

āĻ“āĻ­āĻžāĻ°āĻ­āĻŋāĻ‰

āĻ†āĻŽāĻ°āĻž āĻ¯āĻĻāĻŋ āĻ¯āĻžāĻ‡ āĻ¤āĻžāĻ° āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻĄāĻ•ā§āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāĻ¨, āĻ†āĻŽāĻ°āĻž āĻāĻ° āĻ‰āĻĻā§āĻĻā§‡āĻļā§āĻ¯ āĻāĻŦāĻ‚ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§‡āĻ° āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡ āĻāĻ•āĻŸāĻŋ āĻĻā§āĻ°ā§āĻ¤ āĻ“āĻ­āĻžāĻ°āĻ­āĻŋāĻ‰, āĻ¸ā§‡āĻ‡āĻ¸āĻžāĻĨā§‡ āĻ•āĻŋāĻ›ā§ āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋāĻ—āĻ¤ āĻŦāĻŋāĻŦāĻ°āĻŖ āĻāĻŦāĻ‚ āĻ¯ā§āĻ•ā§āĻ¤āĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ“āĻ­āĻžāĻ°āĻ­āĻŋāĻ‰ āĻĒāĻžāĻŦāĨ¤ āĻ†āĻŽāĻŋ āĻ…āĻ—ā§āĻ°āĻ¸āĻ° āĻšāĻ“āĻ¯āĻŧāĻžāĻ° āĻ†āĻ—ā§‡ āĻ…āĻ¨ā§āĻ¤āĻ¤ āĻāĻ•āĻŦāĻžāĻ° āĻāĻŸāĻŋ āĻĒāĻĄāĻŧāĻžāĻ° āĻ¸ā§āĻĒāĻžāĻ°āĻŋāĻļ āĻ•āĻ°āĻ›āĻŋ, āĻ•āĻžāĻ°āĻŖ āĻ†āĻŽāĻŋ āĻāĻ–āĻ¨ āĻāĻŸāĻŋ āĻ¸āĻŦ āĻŦā§āĻ¯āĻžāĻ–ā§āĻ¯āĻž āĻ•āĻ°āĻŦ āĻāĻŦāĻ‚ āĻšāĻŋāĻŦāĻŋāĻ¯āĻŧā§‡ āĻĻā§‡āĻŦāĨ¤

Hashicorp āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻāĻ° Kubernetes āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻ¨ā§‡āĻ° āĻ­ā§‚āĻŽāĻŋāĻ•āĻž

āĻšāĻŋāĻ¤ā§āĻ° 1: āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻ…āĻĢāĻŋāĻ¸āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻ“āĻ­āĻžāĻ°āĻ­āĻŋāĻ‰

āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ¤āĻžāĻ•āĻžāĻ¨ āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ Kubernetes āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻĄāĻ•ā§āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāĻ¨.

āĻ…āĻŦāĻļā§āĻ¯āĻ‡, āĻ¸ā§‡āĻ–āĻžāĻ¨ā§‡ āĻĻāĻ°āĻ•āĻžāĻ°ā§€ āĻ¤āĻĨā§āĻ¯ āĻ†āĻ›ā§‡, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ†āĻ¸āĻ˛ā§‡ āĻāĻŸāĻŋ āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻŦā§‡āĻ¨ āĻ¤āĻžāĻ° āĻ•ā§‹āĻ¨āĻ“ āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻŋāĻ•āĻž āĻ¨ā§‡āĻ‡ā§ˇ āĻ¸ā§āĻ¤āĻ°āĻžāĻ‚, āĻ¯ā§‡ āĻ•ā§‹āĻ¨āĻ“ āĻŦāĻŋāĻŦā§‡āĻ•āĻŦāĻžāĻ¨ āĻŦā§āĻ¯āĻ•ā§āĻ¤āĻŋāĻ° āĻŽāĻ¤ā§‹, āĻ†āĻĒāĻ¨āĻŋ āĻ—āĻžāĻ‡āĻĄā§‡āĻ¨ā§āĻ¸ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻ¨ā§‡āĻŸ āĻ˜ā§‡āĻāĻŸā§‡āĻ›ā§‡āĻ¨āĨ¤ āĻāĻŦāĻ‚ āĻ¤āĻžāĻ°āĻĒāĻ°... āĻ†āĻĒāĻ¨āĻŋ āĻŦā§āĻ¯āĻ°ā§āĻĨ. āĻāĻŸāĻž āĻ˜āĻŸā§‡āĨ¤ āĻāĻ° āĻāĻŸāĻž āĻ āĻŋāĻ• āĻ•āĻ°āĻž āĻ¯āĻžāĻ•.

āĻ†āĻŽāĻžāĻĻā§‡āĻ° POC āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻžāĻ° āĻ†āĻ—ā§‡, āĻ†āĻ¸ā§āĻ¨ āĻ•āĻ¨āĻ¸āĻžāĻ˛ā§‡āĻ° āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻ“āĻ­āĻžāĻ°āĻ­āĻŋāĻ‰āĻ¤ā§‡ āĻĢāĻŋāĻ°ā§‡ āĻ¯āĻžāĻ‡ (āĻĄāĻžāĻ¯āĻŧāĻžāĻ—ā§āĻ°āĻžāĻŽ 1) āĻāĻŦāĻ‚ āĻāĻŸāĻŋāĻ•ā§‡ āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻ¸ā§‡āĻ° āĻĒā§āĻ°āĻ¸āĻ™ā§āĻ—ā§‡ āĻĒāĻ°āĻŋāĻŽāĻžāĻ°ā§āĻœāĻ¨ āĻ•āĻ°āĻŋāĨ¤

āĻ¸ā§āĻĨāĻžāĻĒāĻ¤ā§āĻ¯

āĻāĻ‡ āĻŸāĻŋāĻ‰āĻŸā§‹āĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛ā§‡, āĻ†āĻŽāĻ°āĻž āĻāĻ•āĻŸāĻŋ āĻĒā§ƒāĻĨāĻ• āĻŽā§‡āĻļāĻŋāĻ¨ā§‡ āĻāĻ•āĻŸāĻŋ āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻŦ āĻ¯āĻž āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻ•āĻ°āĻž āĻāĻ•āĻŸāĻŋ āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻ¸ āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ°ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¯ā§‹āĻ—āĻžāĻ¯ā§‹āĻ— āĻ•āĻ°āĻŦā§‡āĨ¤ āĻ¤āĻžāĻ°āĻĒāĻ°ā§‡ āĻ†āĻŽāĻ°āĻž āĻĒāĻĄā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻĄāĻžāĻŽāĻŋ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻŦ āĻāĻŦāĻ‚ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻ•ā§€/āĻŽāĻžāĻ¨ āĻ¸ā§āĻŸā§‹āĻ° āĻĨā§‡āĻ•ā§‡ āĻĒāĻĄāĻŧāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ° āĻ•āĻ°āĻž āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻŦāĨ¤

āĻ¨ā§€āĻšā§‡āĻ° āĻšāĻŋāĻ¤ā§āĻ°āĻŸāĻŋ āĻāĻ‡ āĻŸāĻŋāĻ‰āĻŸā§‹āĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛ā§‡ āĻ†āĻŽāĻ°āĻž āĻ¯ā§‡ āĻ†āĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āĻšāĻžāĻ° āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ›āĻŋ āĻ¤āĻžāĻ° āĻŦāĻŋāĻŦāĻ°āĻŖ āĻĻā§‡āĻ¯āĻŧ, āĻ¸ā§‡āĻ‡āĻ¸āĻžāĻĨā§‡ āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻĒāĻŋāĻ›āĻ¨ā§‡ āĻ¯ā§āĻ•ā§āĻ¤āĻŋ, āĻ¯āĻž āĻĒāĻ°ā§‡ āĻŦā§āĻ¯āĻžāĻ–ā§āĻ¯āĻž āĻ•āĻ°āĻž āĻšāĻŦā§‡āĨ¤

Hashicorp āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻāĻ° Kubernetes āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻ¨ā§‡āĻ° āĻ­ā§‚āĻŽāĻŋāĻ•āĻž

āĻšāĻŋāĻ¤ā§āĻ° 2: Kubernetes āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ“āĻ­āĻžāĻ°āĻ­āĻŋāĻ‰

āĻāĻ•āĻŸāĻŋ āĻĻā§āĻ°ā§āĻ¤ āĻ¨ā§‹āĻŸ: āĻāĻŸāĻŋ āĻ•āĻžāĻœ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡āĻ° āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻ¸ āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ°ā§‡āĻ° āĻŦāĻžāĻ‡āĻ°ā§‡ āĻĨāĻžāĻ•āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻ¨ā§‡āĻ‡āĨ¤ āĻ¤āĻŦā§‡ āĻšā§āĻ¯āĻžāĻ, āĻ¤āĻŋāĻ¨āĻŋ āĻāĻ‡āĻ­āĻžāĻŦā§‡ āĻāĻŦāĻ‚ āĻāĻŸāĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤

āĻ¸ā§āĻ¤āĻ°āĻžāĻ‚, āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻ“āĻ­āĻžāĻ°āĻ­āĻŋāĻ‰ āĻĄāĻžāĻ¯āĻŧāĻžāĻ—ā§āĻ°āĻžāĻŽ (āĻĄāĻžāĻ¯āĻŧāĻžāĻ—ā§āĻ°āĻžāĻŽ 1) āĻ—ā§āĻ°āĻšāĻŖ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻāĻŸāĻŋāĻ¤ā§‡ āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻ¸ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°ā§‡, āĻ†āĻŽāĻ°āĻž āĻ‰āĻĒāĻ°ā§‡āĻ° āĻšāĻŋāĻ¤ā§āĻ°āĻŸāĻŋ āĻĒā§‡āĻ¯āĻŧā§‡āĻ›āĻŋ (āĻĄāĻžāĻ¯āĻŧāĻžāĻ—ā§āĻ°āĻžāĻŽ 2), āĻāĻŦāĻ‚ āĻāĻ–āĻžāĻ¨ā§‡ āĻ¯ā§āĻ•ā§āĻ¤āĻŋāĻŸāĻŋ āĻ¨āĻŋāĻŽā§āĻ¨āĻ°ā§‚āĻĒ:

  1. āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻĒāĻĄā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻāĻ•āĻŸāĻŋ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻ…ā§āĻ¯āĻžāĻ•āĻžāĻ‰āĻ¨ā§āĻŸ āĻ¸āĻ‚āĻ¯ā§āĻ•ā§āĻ¤ āĻĨāĻžāĻ•āĻŦā§‡ āĻ¯āĻžāĻ¤ā§‡ āĻāĻ•āĻŸāĻŋ JWT āĻŸā§‹āĻ•ā§‡āĻ¨ āĻœā§‡āĻ¨āĻžāĻ°ā§‡āĻŸ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ‚ Kubernetes āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒāĻ°āĻŋāĻšāĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻāĻ‡ āĻŸā§‹āĻ•ā§‡āĻ¨āĻŸāĻŋāĻ“ āĻĄāĻŋāĻĢāĻ˛ā§āĻŸāĻ°ā§‚āĻĒā§‡ āĻĒāĻĄā§‡ āĻĸā§‹āĻ•āĻžāĻ¨ā§‹ āĻšāĻ¯āĻŧāĨ¤
  2. āĻĒāĻĄā§‡āĻ° āĻ­āĻŋāĻ¤āĻ°ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ†āĻŦā§‡āĻĻāĻ¨ āĻŦāĻž āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸā§‡āĻ° āĻ•āĻžāĻ›ā§‡ āĻāĻ•āĻŸāĻŋ āĻ˛āĻ—āĻ‡āĻ¨ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻļā§āĻ°ā§ āĻ•āĻ°ā§‡āĨ¤ āĻ˛āĻ—āĻ‡āĻ¨ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻŸā§‹āĻ•ā§‡āĻ¨ āĻāĻŦāĻ‚ āĻ¨āĻžāĻŽāĻ“ āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ­ā§āĻ•ā§āĻ¤ āĻĨāĻžāĻ•āĻŦā§‡ āĻŦāĻŋāĻļā§‡āĻˇāĻ­āĻžāĻŦā§‡ āĻ¤ā§ˆāĻ°āĻŋ āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ (Kubernetes āĻĒā§āĻ°āĻ•āĻžāĻ°)āĨ¤ āĻāĻ‡ āĻ§āĻžāĻĒ #2 āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻĄāĻžāĻ¯āĻŧāĻžāĻ—ā§āĻ°āĻžāĻŽā§‡āĻ° (āĻ¸ā§āĻ•āĻŋāĻŽ 1) āĻ§āĻžāĻĒ 1 āĻāĻ° āĻ¸āĻžāĻĨā§‡ āĻŽāĻŋāĻ˛ā§‡ āĻ¯āĻžāĻ¯āĻŧāĨ¤
  3. āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻ‡ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§āĻŸāĻŋ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡ āĻĢāĻ°ā§‹āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻ•āĻ°āĻŦā§‡āĨ¤
  4. āĻŽā§āĻ¯āĻžāĻœāĻŋāĻ• ! āĻāĻ–āĻžāĻ¨ā§‡āĻ‡ āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ā§‡āĻ° āĻ¸āĻ¤ā§āĻ¯āĻ¤āĻž āĻ¯āĻžāĻšāĻžāĻ‡ āĻ•āĻ°ā§‡, āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ā§‡āĻ° āĻĒāĻ°āĻŋāĻšāĻ¯āĻŧ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ¤āĻĨā§āĻ¯ āĻ¸āĻ‚āĻ—ā§āĻ°āĻš āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻāĻŸāĻŋāĻ•ā§‡ āĻĒā§‚āĻ°ā§āĻŦāĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŋāĻ¤ āĻ¯ā§‡āĻ•ā§‹āĻ¨ā§‹ āĻ¨āĻŋāĻ¯āĻŧāĻŽā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¤ā§āĻ˛āĻ¨āĻž āĻ•āĻ°ā§‡āĨ¤ āĻāĻŸāĻŋ āĻŦā§‹āĻāĻžāĻ¨ā§‹āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¨ā§€āĻšā§‡ āĻ†āĻ°ā§‡āĻ•āĻŸāĻŋ āĻšāĻŋāĻ¤ā§āĻ° āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻ˛āĨ¤ āĻāĻ‡ āĻ§āĻžāĻĒāĻŸāĻŋ āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻ“āĻ­āĻžāĻ°āĻ­āĻŋāĻ‰ āĻĄāĻžāĻ¯āĻŧāĻžāĻ—ā§āĻ°āĻžāĻŽā§‡āĻ° (āĻĄāĻžāĻ¯āĻŧāĻžāĻ—ā§āĻ°āĻžāĻŽ 3) āĻ§āĻžāĻĒ 4, 5 āĻāĻŦāĻ‚ 1 āĻāĻ° āĻ¸āĻžāĻĨā§‡ āĻŽāĻŋāĻ˛ā§‡ āĻ¯āĻžāĻ¯āĻŧāĨ¤
  5. āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻ…āĻ¨ā§āĻ°ā§‹āĻ§āĻ•āĻžāĻ°ā§€āĻ° āĻĒāĻ°āĻŋāĻšāĻ¯āĻŧ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻ¨āĻŋāĻ¯āĻŧāĻŽ (āĻ¯āĻž āĻ†āĻŽāĻ°āĻž āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ•āĻ°ā§‡āĻ›āĻŋ) āĻ…āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§€ āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻ¸āĻš āĻāĻ•āĻŸāĻŋ āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻŸā§‹āĻ•ā§‡āĻ¨ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡āĨ¤ āĻāĻŸāĻŋ āĻ¤āĻžāĻ°āĻĒāĻ° āĻ¸ā§‡āĻ‡ āĻŸā§‹āĻ•ā§‡āĻ¨āĻŸāĻŋ āĻĢā§‡āĻ°āĻ¤ āĻĒāĻžāĻ āĻžāĻŦā§‡āĨ¤ āĻāĻŸāĻŋ āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻĄāĻžāĻ¯āĻŧāĻžāĻ—ā§āĻ°āĻžāĻŽā§‡āĻ° (āĻĄāĻžāĻ¯āĻŧāĻžāĻ—ā§āĻ°āĻžāĻŽ 6) āĻ§āĻžāĻĒ 1 āĻāĻ° āĻ¸āĻžāĻĨā§‡ āĻŽāĻŋāĻ˛ā§‡ āĻ¯āĻžāĻ¯āĻŧāĨ¤
  6. āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻ•āĻ°āĻž āĻ†āĻŦā§‡āĻĻāĻ¨ āĻŦāĻž āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ¤ā§‡ āĻŸā§‹āĻ•ā§‡āĻ¨ āĻĢāĻ°ā§‹āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻ•āĻ°ā§‡āĨ¤

āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ†āĻŦā§‡āĻĻāĻ¨ āĻŦāĻž āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻāĻ–āĻ¨ āĻāĻ‡ āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻŸā§‹āĻ•ā§‡āĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻĄā§‡āĻŸāĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻ¯ā§‹āĻ—āĻžāĻ¯ā§‹āĻ— āĻ•āĻ°āĻ¤ā§‡, āĻ¯ā§‡āĻŽāĻ¨ āĻŸā§‹āĻ•ā§‡āĻ¨ā§‡āĻ° āĻŦāĻŋāĻļā§‡āĻˇāĻžāĻ§āĻŋāĻ•āĻžāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤

āĻœāĻžāĻĻā§ āĻĒā§āĻ°āĻ•āĻžāĻļ!

āĻ†āĻĒāĻ¨āĻžāĻĻā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ¯āĻžāĻ°āĻž āĻŸā§āĻĒāĻŋ āĻĨā§‡āĻ•ā§‡ āĻļā§āĻ§ā§ āĻāĻ•āĻŸāĻŋ āĻ–āĻ°āĻ—ā§‹āĻļ āĻ¨āĻŋāĻ¯āĻŧā§‡ āĻ–ā§āĻļāĻŋ āĻ¨āĻ¨ āĻāĻŦāĻ‚ āĻāĻŸāĻŋ āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡ āĻ¤āĻž āĻœāĻžāĻ¨āĻ¤ā§‡ āĻšāĻžāĻ¨... āĻ†āĻŽāĻžāĻ•ā§‡ "āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻĻā§‡āĻ–āĻžāĻ¨ āĻ•āĻ¤ āĻ—āĻ­ā§€āĻ° āĻ–āĻ°āĻ—ā§‹āĻļā§‡āĻ° āĻ—āĻ°ā§āĻ¤Âģ.

āĻ†āĻ—ā§‡āĻ‡ āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ– āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻ†āĻŽāĻžāĻĻā§‡āĻ° "āĻœāĻžāĻĻā§" āĻĒāĻĻāĻ•ā§āĻˇā§‡āĻĒ (āĻšāĻŋāĻ¤ā§āĻ° 2: āĻ§āĻžāĻĒ 4) āĻšāĻ˛ āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻ…āĻ¨ā§āĻ°ā§‹āĻ§āĻŸāĻŋāĻ•ā§‡ āĻĒā§āĻ°āĻŽāĻžāĻŖā§€āĻ•āĻ°āĻŖ āĻ•āĻ°ā§‡, āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ¤āĻĨā§āĻ¯ āĻ¸āĻ‚āĻ—ā§āĻ°āĻš āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻāĻŸāĻŋāĻ•ā§‡ āĻĒā§‚āĻ°ā§āĻŦāĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŋāĻ¤ āĻ¯ā§‡āĻ•ā§‹āĻ¨ā§‹ āĻ¨āĻŋāĻ¯āĻŧāĻŽā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¤ā§āĻ˛āĻ¨āĻž āĻ•āĻ°ā§‡āĨ¤ āĻāĻ‡ āĻ§āĻžāĻĒāĻŸāĻŋ āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻ“āĻ­āĻžāĻ°āĻ­āĻŋāĻ‰ āĻĄāĻžāĻ¯āĻŧāĻžāĻ—ā§āĻ°āĻžāĻŽā§‡āĻ° (āĻĄāĻžāĻ¯āĻŧāĻžāĻ—ā§āĻ°āĻžāĻŽ 3) āĻ§āĻžāĻĒ 4, 5 āĻāĻŦāĻ‚ 1 āĻāĻ° āĻ¸āĻžāĻĨā§‡ āĻŽāĻŋāĻ˛ā§‡ āĻ¯āĻžāĻ¯āĻŧāĨ¤ āĻ¨ā§€āĻšā§‡ āĻāĻ•āĻŸāĻŋ āĻšāĻŋāĻ¤ā§āĻ° (āĻĄāĻžāĻ¯āĻŧāĻžāĻ—ā§āĻ°āĻžāĻŽ 3), āĻ¯āĻžāĻ° āĻ‰āĻĻā§āĻĻā§‡āĻļā§āĻ¯ āĻšāĻ˛ āĻ¸ā§āĻĒāĻˇā§āĻŸāĻ­āĻžāĻŦā§‡ āĻĻā§‡āĻ–āĻžāĻ¨ā§‹ āĻ¯ā§‡ āĻ†āĻ¸āĻ˛ā§‡ āĻ•āĻŋ āĻ˜āĻŸāĻ›ā§‡ āĻĢāĻŖāĻž āĻ…āĻ§ā§€āĻ¨ā§‡ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ Kubernetes āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĨ¤

Hashicorp āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻāĻ° Kubernetes āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻ¨ā§‡āĻ° āĻ­ā§‚āĻŽāĻŋāĻ•āĻž

āĻšāĻŋāĻ¤ā§āĻ° 3: āĻœāĻžāĻĻā§ āĻĒā§āĻ°āĻ•āĻžāĻļ!

  1. āĻāĻ•āĻŸāĻŋ āĻ¸ā§‚āĻšāĻ¨āĻž āĻŦāĻŋāĻ¨ā§āĻĻā§ āĻšāĻŋāĻ¸āĻžāĻŦā§‡, āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡ āĻ˛āĻ—āĻ‡āĻ¨ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§āĻŸāĻŋ āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻ¸ āĻ…ā§āĻ¯āĻžāĻ•āĻžāĻ‰āĻ¨ā§āĻŸ āĻŸā§‹āĻ•ā§‡āĻ¨ āĻāĻŦāĻ‚ āĻ†āĻ—ā§‡ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻĢāĻ°ā§‹āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻ•āĻ°ā§‡āĨ¤ āĻāĻ‡ āĻ§āĻžāĻĒāĻŸāĻŋ āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§€ āĻ¸āĻžāĻ°ā§āĻ•āĻŋāĻŸ āĻŦā§āĻ¯āĻžāĻ–ā§āĻ¯āĻžāĻ¯āĻŧ āĻ§āĻžāĻĒ 3 āĻāĻ° āĻ¸āĻžāĻĨā§‡ āĻŽāĻŋāĻ˛ā§‡ āĻ¯āĻžāĻ¯āĻŧāĨ¤
  2. āĻāĻ–āĻ¨ āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°āĻ•ā§‡ (āĻŦāĻž āĻ¨ā§‡āĻ¤āĻž) āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻŸā§‹āĻ•ā§‡āĻ¨ā§‡āĻ° āĻ¸āĻ¤ā§āĻ¯āĻ¤āĻž āĻ¯āĻžāĻšāĻžāĻ‡ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ āĻ…āĻ¤āĻāĻŦ, āĻāĻŸāĻŋ āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻ¸ āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ°ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļ āĻ•āĻ°āĻŦā§‡ (āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡) āĻāĻŦāĻ‚ āĻ‰āĻĒāĻ¯ā§āĻ•ā§āĻ¤ āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻ¸āĻš, āĻ†āĻŽāĻ°āĻž āĻ–ā§āĻāĻœā§‡ āĻŦā§‡āĻ° āĻ•āĻ°āĻŦ āĻ¯ā§‡ āĻŸā§‹āĻ•ā§‡āĻ¨āĻŸāĻŋ āĻ†āĻ¸āĻ˛ āĻ•āĻŋāĻ¨āĻž āĻāĻŦāĻ‚ āĻāĻŸāĻŋ āĻ•āĻžāĻ°āĨ¤
  3. āĻ¯āĻžāĻšāĻžāĻ‡āĻ•ā§ƒāĻ¤ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§āĻŸāĻŋ āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻ˛āĻŋāĻĄāĻžāĻ°ā§‡āĻ° āĻ•āĻžāĻ›ā§‡ āĻĢā§‡āĻ°āĻ¤ āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻ˛āĻ—āĻ‡āĻ¨ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ (āĻāĻŦāĻ‚ āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻ¸ āĻĒā§āĻ°āĻ•āĻžāĻ°) āĻĨā§‡āĻ•ā§‡ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ¨āĻžāĻŽ āĻ¸āĻš āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻŸāĻŋ āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻ•āĻ°ā§‡āĨ¤
  4. āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻ˛āĻŋāĻĄāĻžāĻ° āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ (āĻ¯āĻĻāĻŋ āĻĒāĻžāĻ“āĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧ) āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻāĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻ‚āĻ¯ā§āĻ•ā§āĻ¤ āĻŦāĻžāĻāĻ§āĻžāĻ‡ āĻ¨āĻŋāĻ¯āĻŧāĻŽā§‡āĻ° āĻ¸ā§‡āĻŸ āĻĒāĻĄāĻŧā§‡āĨ¤ āĻāĻŸāĻŋ āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻ‡ āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻ—ā§āĻ˛āĻŋ āĻĒāĻĄāĻŧā§‡ āĻāĻŦāĻ‚ āĻ¯āĻžāĻšāĻžāĻ‡āĻ•ā§ƒāĻ¤ āĻĒāĻ°āĻŋāĻšāĻ¯āĻŧ āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯āĻ—ā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻ¤āĻžāĻĻā§‡āĻ° āĻ¤ā§āĻ˛āĻ¨āĻž āĻ•āĻ°ā§‡āĨ¤
  5. āĻŸāĻŋāĻ-āĻĻāĻžāĻš! āĻ†āĻ—ā§‡āĻ° āĻ¸āĻžāĻ°ā§āĻ•āĻŋāĻŸ āĻŦā§āĻ¯āĻžāĻ–ā§āĻ¯āĻžāĻ° āĻ§āĻžāĻĒ 5 āĻ āĻšāĻ˛ā§āĻ¨āĨ¤

āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤ āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§‡āĻļāĻŋāĻ¨ā§‡ āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻšāĻžāĻ˛āĻžāĻ¨

āĻāĻ–āĻ¨ āĻĨā§‡āĻ•ā§‡, āĻ†āĻŽāĻŋ āĻŦā§‡āĻļāĻŋāĻ°āĻ­āĻžāĻ—āĻ‡ āĻāĻ‡ POC āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻžāĻ° āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻ¨āĻž āĻĻā§‡āĻŦ, āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ‡ āĻŦā§āĻ˛ā§‡āĻŸ āĻĒāĻ¯āĻŧā§‡āĻ¨ā§āĻŸā§‡, āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻŦāĻžāĻ•ā§āĻ¯ā§‡āĻ° āĻŦā§āĻ¯āĻžāĻ–ā§āĻ¯āĻž āĻ›āĻžāĻĄāĻŧāĻžāĻ‡āĨ¤ āĻāĻ›āĻžāĻĄāĻŧāĻžāĻ“, āĻ†āĻ—ā§‡ āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ– āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻ†āĻŽāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ…āĻŦāĻ•āĻžāĻ āĻžāĻŽā§‹ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ GCP āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻŦ, āĻ¤āĻŦā§‡ āĻ†āĻĒāĻ¨āĻŋ āĻ…āĻ¨ā§āĻ¯ āĻ•ā§‹āĻĨāĻžāĻ“ āĻāĻ•āĻ‡ āĻ…āĻŦāĻ•āĻžāĻ āĻžāĻŽā§‹ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤

  • āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§‡āĻļāĻŋāĻ¨ āĻļā§āĻ°ā§ āĻ•āĻ°ā§āĻ¨ (āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ/āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°)āĨ¤

Hashicorp āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻāĻ° Kubernetes āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻ¨ā§‡āĻ° āĻ­ā§‚āĻŽāĻŋāĻ•āĻž

  • āĻĢāĻžāĻ¯āĻŧāĻžāĻ°āĻ“āĻ¯āĻŧāĻžāĻ˛ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§āĻ¨ (AWS-āĻ āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻ—ā§‹āĻˇā§āĻ ā§€):
  • āĻ†āĻŽāĻŋ āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻāĻŦāĻ‚ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ• āĻŸā§āĻ¯āĻžāĻ— āĻ‰āĻ­āĻ¯āĻŧā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻ‡ āĻŽā§‡āĻļāĻŋāĻ¨ā§‡āĻ° āĻ¨āĻžāĻŽ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻžāĻ‡, āĻāĻ‡ āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡ "skywiz-consul-server-poc"āĨ¤
  • āĻ†āĻĒāĻ¨āĻžāĻ° āĻ¸ā§āĻĨāĻžāĻ¨ā§€āĻ¯āĻŧ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ°ā§‡āĻ° āĻ†āĻ‡āĻĒāĻŋ āĻ āĻŋāĻ•āĻžāĻ¨āĻž āĻ–ā§āĻāĻœā§āĻ¨ āĻāĻŦāĻ‚ āĻāĻŸāĻŋāĻ•ā§‡ āĻ‰ā§ŽāĻ¸ āĻ†āĻ‡āĻĒāĻŋ āĻ āĻŋāĻ•āĻžāĻ¨āĻžāĻ° āĻ¤āĻžāĻ˛āĻŋāĻ•āĻžāĻ¯āĻŧ āĻ¯ā§‹āĻ— āĻ•āĻ°ā§āĻ¨ āĻ¯āĻžāĻ¤ā§‡ āĻ†āĻŽāĻ°āĻž āĻ‡āĻ‰āĻœāĻžāĻ° āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻĢā§‡āĻ¸ (UI) āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋāĨ¤
  • UI āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§‹āĻ°ā§āĻŸ 8500 āĻ–ā§āĻ˛ā§āĻ¨āĨ¤ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§āĻ¨ āĻ•ā§āĻ˛āĻŋāĻ• āĻ•āĻ°ā§āĻ¨āĨ¤ āĻ†āĻŽāĻ°āĻž āĻļā§€āĻ˜ā§āĻ°āĻ‡ āĻ†āĻŦāĻžāĻ° āĻāĻ‡ āĻĢāĻžāĻ¯āĻŧāĻžāĻ°āĻ“āĻ¯āĻŧāĻžāĻ˛ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°āĻŦ [āĻ˛āĻŋāĻ‚āĻ•].
  • āĻ‰āĻĻāĻžāĻšāĻ°āĻŖā§‡ āĻāĻ•āĻŸāĻŋ āĻĢāĻžāĻ¯āĻŧāĻžāĻ°āĻ“āĻ¯āĻŧāĻžāĻ˛ āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻ¯ā§‹āĻ— āĻ•āĻ°ā§āĻ¨āĨ¤ āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡ āĻ­āĻŋāĻāĻŽ āĻĄā§āĻ¯āĻžāĻļāĻŦā§‹āĻ°ā§āĻĄā§‡ āĻĢāĻŋāĻ°ā§‡ āĻ¯āĻžāĻ¨ āĻāĻŦāĻ‚ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ• āĻŸā§āĻ¯āĻžāĻ— āĻĢāĻŋāĻ˛ā§āĻĄā§‡ "skywiz-consul-server-poc" āĻ¯ā§‹āĻ— āĻ•āĻ°ā§āĻ¨āĨ¤ Save āĻ āĻ•ā§āĻ˛āĻŋāĻ• āĻ•āĻ°ā§āĻ¨āĨ¤

Hashicorp āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻāĻ° Kubernetes āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻ¨ā§‡āĻ° āĻ­ā§‚āĻŽāĻŋāĻ•āĻž

  • āĻāĻ•āĻŸāĻŋ āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§‡āĻļāĻŋāĻ¨ā§‡ āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻ•āĻ°ā§āĻ¨, āĻāĻ–āĻžāĻ¨ā§‡ āĻšā§‡āĻ• āĻ•āĻ°ā§āĻ¨āĨ¤ āĻŽāĻ¨ā§‡ āĻ°āĻžāĻ–āĻŦā§‡āĻ¨ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ â‰Ĩ 1.5 [āĻ˛āĻŋāĻ‚āĻ•]
  • āĻ†āĻ¸ā§āĻ¨ āĻāĻ•āĻŸāĻŋ āĻāĻ•āĻ• āĻ¨ā§‹āĻĄ āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻŋ - āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨āĻŸāĻŋ āĻ¨āĻŋāĻŽā§āĻ¨āĻ°ā§‚āĻĒāĨ¤

groupadd --system consul
useradd -s /sbin/nologin --system -g consul consul
mkdir -p /var/lib/consul
chown -R consul:consul /var/lib/consul
chmod -R 775 /var/lib/consul
mkdir /etc/consul.d
chown -R consul:consul /etc/consul.d

  • āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻ•āĻ°āĻžāĻ° āĻāĻŦāĻ‚ 3 āĻ¨ā§‹āĻĄā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ° āĻ¸ā§‡āĻŸ āĻ†āĻĒ āĻ•āĻ°āĻžāĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧā§‡ āĻ†āĻ°āĻ“ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻ—āĻžāĻ‡āĻĄā§‡āĻ° āĻœāĻ¨ā§āĻ¯, āĻĻā§‡āĻ–ā§āĻ¨ āĻāĻ–āĻžāĻ¨ā§‡.
  • āĻ¨āĻŋāĻŽā§āĻ¨āĻ°ā§‚āĻĒ āĻāĻ•āĻŸāĻŋ āĻĢāĻžāĻ‡āĻ˛ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§āĻ¨ /etc/consul.d/agent.json [āĻ˛āĻŋāĻ‚āĻ•]:

### /etc/consul.d/agent.json
{
 "acl" : {
 "enabled": true,
 "default_policy": "deny",
 "enable_token_persistence": true
 }
}

  • āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻļā§āĻ°ā§ āĻ•āĻ°ā§āĻ¨:

consul agent 
-server 
-ui 
-client 0.0.0.0 
-data-dir=/var/lib/consul 
-bootstrap-expect=1 
-config-dir=/etc/consul.d

  • āĻ†āĻĒāĻ¨āĻžāĻ° āĻāĻ•āĻ—ā§āĻšā§āĻ› āĻ†āĻ‰āĻŸāĻĒā§āĻŸ āĻĻā§‡āĻ–āĻ¤ā§‡ āĻšāĻŦā§‡ āĻāĻŦāĻ‚ āĻļā§‡āĻˇ āĻšāĻŦā§‡ "... ACLs āĻĻā§āĻŦāĻžāĻ°āĻž āĻ…āĻŦāĻ°ā§āĻĻā§āĻ§ āĻ†āĻĒāĻĄā§‡āĻŸāĨ¤"
  • āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡āĻ° āĻŦāĻžāĻšā§āĻ¯āĻŋāĻ• āĻ†āĻ‡āĻĒāĻŋ āĻ āĻŋāĻ•āĻžāĻ¨āĻž āĻ–ā§āĻāĻœā§āĻ¨ āĻāĻŦāĻ‚ āĻĒā§‹āĻ°ā§āĻŸ 8500-āĻ āĻāĻ‡ āĻ†āĻ‡āĻĒāĻŋ āĻ āĻŋāĻ•āĻžāĻ¨āĻž āĻ¸āĻš āĻāĻ•āĻŸāĻŋ āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ° āĻ–ā§āĻ˛ā§āĻ¨āĨ¤ āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤ āĻ•āĻ°ā§āĻ¨ āĻ¯ā§‡ UI āĻ–ā§‹āĻ˛ā§‡āĨ¤
  • āĻāĻ•āĻŸāĻŋ āĻ•ā§€/āĻŽāĻžāĻ¨ āĻœā§‹āĻĄāĻŧāĻž āĻ¯ā§‹āĻ— āĻ•āĻ°āĻžāĻ° āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°ā§āĻ¨āĨ¤ āĻāĻ•āĻŸāĻŋ āĻ­ā§āĻ˛ āĻšāĻ¤ā§‡ āĻšāĻŦā§‡. āĻ•āĻžāĻ°āĻŖ āĻ†āĻŽāĻ°āĻž āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻāĻ•āĻŸāĻŋ ACL āĻĻāĻŋāĻ¯āĻŧā§‡ āĻ˛ā§‹āĻĄ āĻ•āĻ°ā§‡āĻ›āĻŋ āĻāĻŦāĻ‚ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻ…āĻ•ā§āĻˇāĻŽ āĻ•āĻ°ā§‡āĻ›āĻŋā§ˇ
  • āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡ āĻ†āĻĒāĻ¨āĻžāĻ° āĻļā§‡āĻ˛ā§‡ āĻĢāĻŋāĻ°ā§‡ āĻ¯āĻžāĻ¨ āĻāĻŦāĻ‚ āĻāĻŸāĻŋ āĻšāĻžāĻ˛ā§ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻĒāĻŸāĻ­ā§‚āĻŽāĻŋāĻ¤ā§‡ āĻŦāĻž āĻ…āĻ¨ā§āĻ¯ āĻ•ā§‹āĻ¨āĻ“ āĻ‰āĻĒāĻžāĻ¯āĻŧā§‡ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻŸāĻŋ āĻļā§āĻ°ā§ āĻ•āĻ°ā§āĻ¨ āĻāĻŦāĻ‚ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻ–āĻŋāĻ¤āĻŸāĻŋ āĻ˛āĻŋāĻ–ā§āĻ¨:

consul acl bootstrap

  • "āĻ¸āĻŋāĻ•ā§āĻ°ā§‡āĻŸāĻ†āĻ‡āĻĄāĻŋ" āĻŽāĻžāĻ¨ āĻ–ā§āĻāĻœā§āĻ¨ āĻāĻŦāĻ‚ UI āĻ āĻĢāĻŋāĻ°ā§‡ āĻ¯āĻžāĻ¨āĨ¤ ACL āĻŸā§āĻ¯āĻžāĻŦā§‡, āĻ†āĻĒāĻ¨āĻŋ āĻ¯ā§‡ āĻŸā§‹āĻ•ā§‡āĻ¨āĻŸāĻŋ āĻ•āĻĒāĻŋ āĻ•āĻ°ā§‡āĻ›ā§‡āĻ¨ āĻ¤āĻžāĻ° āĻ—ā§‹āĻĒāĻ¨ ID āĻ˛āĻŋāĻ–ā§āĻ¨āĨ¤ āĻ…āĻ¨ā§āĻ¯ āĻ•ā§‹āĻĨāĻžāĻ“ SecretID āĻ•āĻĒāĻŋ āĻ•āĻ°ā§āĻ¨, āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻāĻŸāĻŋ āĻĒāĻ°ā§‡ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻšāĻŦā§‡āĨ¤
  • āĻāĻ–āĻ¨ āĻāĻ•āĻŸāĻŋ āĻ•ā§€/āĻŽāĻžāĻ¨ āĻœā§‹āĻĄāĻŧāĻž āĻ¯ā§‹āĻ— āĻ•āĻ°ā§āĻ¨āĨ¤ āĻāĻ‡ POC-āĻāĻ° āĻœāĻ¨ā§āĻ¯, āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻ–āĻŋāĻ¤ āĻ¯ā§‹āĻ— āĻ•āĻ°ā§āĻ¨: āĻ•ā§€: “custom-ns/test_key”, āĻŽāĻžāĻ¨: “āĻ†āĻŽāĻŋ āĻ•āĻžāĻ¸ā§āĻŸāĻŽ-āĻāĻ¨āĻāĻ¸ āĻĢā§‹āĻ˛ā§āĻĄāĻžāĻ°ā§‡ āĻ†āĻ›āĻŋ!”

āĻĄā§‡āĻŽāĻ¨āĻ¸ā§‡āĻŸ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ†āĻŦā§‡āĻĻāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ Kubernetes āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ° āĻšāĻžāĻ˛ā§ āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡

  • āĻāĻ•āĻŸāĻŋ K8s (Kubernetes) āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ° āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§āĻ¨āĨ¤ āĻĻā§āĻ°ā§āĻ¤ āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻŽāĻ°āĻž āĻāĻŸāĻŋāĻ•ā§‡ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡āĻ° āĻŽāĻ¤ā§‹ āĻāĻ•āĻ‡ āĻœā§‹āĻ¨ā§‡ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻŦ, āĻāĻŦāĻ‚ āĻ¤āĻžāĻ‡ āĻ†āĻŽāĻ°āĻž āĻ…āĻ­ā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§€āĻŖ āĻ†āĻ‡āĻĒāĻŋ āĻ āĻŋāĻ•āĻžāĻ¨āĻžāĻ—ā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻšāĻœā§‡āĻ‡ āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻ•āĻ°āĻ¤ā§‡ āĻāĻ•āĻ‡ āĻ¸āĻžāĻŦāĻ¨ā§‡āĻŸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋāĨ¤ āĻ†āĻŽāĻ°āĻž āĻāĻ•ā§‡ āĻŦāĻ˛āĻŦ "skywiz-app-with-consul-client-poc"āĨ¤

Hashicorp āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻāĻ° Kubernetes āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻ¨ā§‡āĻ° āĻ­ā§‚āĻŽāĻŋāĻ•āĻž

  • āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ‡āĻĄ āĻ¨ā§‹āĻŸ āĻšāĻŋāĻ¸āĻžāĻŦā§‡, āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻ•āĻžāĻ¨ā§‡āĻ•ā§āĻŸā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻāĻ•āĻŸāĻŋ POC āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ° āĻ¸ā§‡āĻŸ āĻ†āĻĒ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ†āĻŽāĻŋ āĻāĻ–āĻžāĻ¨ā§‡ āĻāĻ•āĻŸāĻŋ āĻ­āĻžāĻ˛ āĻŸāĻŋāĻ‰āĻŸā§‹āĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻĒā§‡āĻ¯āĻŧā§‡āĻ›āĻŋāĨ¤
  • āĻ†āĻŽāĻ°āĻž āĻāĻ•āĻŸāĻŋ āĻŦāĻ°ā§āĻ§āĻŋāĻ¤ āĻŽāĻžāĻ¨ āĻĢāĻžāĻ‡āĻ˛ āĻ¸āĻš Hashicorp āĻšā§‡āĻ˛āĻŽ āĻšāĻžāĻ°ā§āĻŸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻŦāĨ¤
  • āĻšā§‡āĻ˛āĻŽ āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻāĻŦāĻ‚ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ° āĻ•āĻ°ā§āĻ¨āĨ¤ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻ§āĻžāĻĒ:

kubectl create serviceaccount tiller --namespace kube-system
kubectl create clusterrolebinding tiller-admin-binding 
   --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
./helm init --service-account=tiller
./helm update

  • āĻšā§‡āĻ˛āĻŽ āĻšāĻžāĻ°ā§āĻŸ: https://www.consul.io/docs/platform/k8s/helm.html
  • āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻ–āĻŋāĻ¤ āĻŽāĻžāĻ¨ āĻĢāĻžāĻ‡āĻ˛āĻŸāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§āĻ¨ (āĻŽāĻ¨ā§‡ āĻ°āĻžāĻ–āĻŦā§‡āĻ¨ āĻ†āĻŽāĻŋ āĻŦā§‡āĻļāĻŋāĻ°āĻ­āĻžāĻ— āĻ…āĻ•ā§āĻˇāĻŽ āĻ•āĻ°ā§‡āĻ›āĻŋ):

### poc-helm-consul-values.yaml
global:
 enabled: false
 image: "consul:latest"
# Expose the Consul UI through this LoadBalancer
ui:
 enabled: false
# Allow Consul to inject the Connect proxy into Kubernetes containers
connectInject:
 enabled: false
# Configure a Consul client on Kubernetes nodes. GRPC listener is required for Connect.
client:
 enabled: true
 join: ["<PRIVATE_IP_CONSUL_SERVER>"]
 extraConfig: |
{
  "acl" : {
 "enabled": true,   
 "default_policy": "deny",   
 "enable_token_persistence": true 
  }
}
# Minimal Consul configuration. Not suitable for production.
server:
 enabled: false
# Sync Kubernetes and Consul services
syncCatalog:
 enabled: false

  • āĻšā§‡āĻ˛āĻŽ āĻšāĻžāĻ°ā§āĻŸ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°ā§āĻ¨:

./helm install -f poc-helm-consul-values.yaml ./consul-helm - name skywiz-app-with-consul-client-poc

  • āĻ¯āĻ–āĻ¨ āĻāĻŸāĻŋ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°ā§‡, āĻ¤āĻ–āĻ¨ āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻšāĻŦā§‡, āĻ¤āĻžāĻ‡ āĻ†āĻ¸ā§āĻ¨ āĻ¸ā§‡āĻ—ā§āĻ˛āĻŋ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻŋāĨ¤
  • āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ° āĻĄā§āĻ¯āĻžāĻļāĻŦā§‹āĻ°ā§āĻĄā§‡ āĻ…āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤ "āĻĒāĻĄ āĻ…ā§āĻ¯āĻžāĻĄā§āĻ°ā§‡āĻ¸ āĻ°ā§‡āĻžā§āĻœ" āĻ¨ā§‹āĻŸ āĻ•āĻ°ā§āĻ¨ āĻāĻŦāĻ‚ āĻ†āĻŽāĻžāĻĻā§‡āĻ° "āĻ¸ā§āĻ•āĻžāĻ‡āĻ‰āĻ‡āĻœ-āĻ•āĻ¨āĻ¸āĻžāĻ˛-āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°-āĻĒāĻŋāĻ“āĻ¸āĻŋ" āĻĢāĻžāĻ¯āĻŧāĻžāĻ°āĻ“āĻ¯āĻŧāĻžāĻ˛ āĻ¨āĻŋāĻ¯āĻŧāĻŽā§‡ āĻĢāĻŋāĻ°ā§‡ āĻ¯āĻžāĻ¨āĨ¤
  • āĻ†āĻ‡āĻĒāĻŋ āĻ āĻŋāĻ•āĻžāĻ¨āĻž āĻāĻŦāĻ‚ āĻĒā§‹āĻ°ā§āĻŸ 8301 āĻāĻŦāĻ‚ 8300 āĻ–ā§‹āĻ˛āĻžāĻ° āĻ¤āĻžāĻ˛āĻŋāĻ•āĻžāĻ¯āĻŧ āĻĒāĻĄā§‡āĻ° āĻ āĻŋāĻ•āĻžāĻ¨āĻž āĻĒāĻ°āĻŋāĻ¸āĻ° āĻ¯ā§‹āĻ— āĻ•āĻ°ā§āĻ¨āĨ¤

Hashicorp āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻāĻ° Kubernetes āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻ¨ā§‡āĻ° āĻ­ā§‚āĻŽāĻŋāĻ•āĻž

  • Consul UI-āĻ āĻ¯āĻžāĻ¨ āĻāĻŦāĻ‚ āĻ•āĻ¯āĻŧā§‡āĻ• āĻŽāĻŋāĻ¨āĻŋāĻŸ āĻĒāĻ° āĻ†āĻĒāĻ¨āĻŋ āĻ¨ā§‹āĻĄ āĻŸā§āĻ¯āĻžāĻŦā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ° āĻĻā§‡āĻ–āĻ¤ā§‡ āĻĒāĻžāĻŦā§‡āĻ¨āĨ¤

Hashicorp āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻāĻ° Kubernetes āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻ¨ā§‡āĻ° āĻ­ā§‚āĻŽāĻŋāĻ•āĻž

āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻ¸ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻ¨āĻ¸āĻžāĻ˛āĻ•ā§‡ āĻāĻ•ā§€āĻ­ā§‚āĻ¤ āĻ•āĻ°ā§‡ āĻāĻ•āĻŸāĻŋ āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ° āĻ•āĻ°āĻž

  • āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻļā§‡āĻ˛ā§‡ āĻĢāĻŋāĻ°ā§‡ āĻ¯āĻžāĻ¨ āĻāĻŦāĻ‚ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ†āĻ—ā§‡ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŋāĻ¤ āĻŸā§‹āĻ•ā§‡āĻ¨āĻŸāĻŋ āĻ°āĻĒā§āĻ¤āĻžāĻ¨āĻŋ āĻ•āĻ°ā§āĻ¨:

export CONSUL_HTTP_TOKEN=<SecretID>

  • āĻĒā§āĻ°āĻŽāĻžāĻŖā§€āĻ•āĻ°āĻŖ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° Kubernetes āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ° āĻĨā§‡āĻ•ā§‡ āĻ¤āĻĨā§āĻ¯ā§‡āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻšāĻŦā§‡:
  • kubernetes-āĻšā§‹āĻ¸ā§āĻŸ

kubectl get endpoints | grep kubernetes

  • kubernetes-service-account-jwt

kubectl get sa <helm_deployment_name>-consul-client -o yaml | grep "- name:"
kubectl get secret <secret_name_from_prev_command> -o yaml | grep token:

  • āĻŸā§‹āĻ•ā§‡āĻ¨āĻŸāĻŋ base64 āĻāĻ¨āĻ•ā§‹āĻĄā§‡āĻĄ, āĻ¤āĻžāĻ‡ āĻ†āĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻŋāĻ¯āĻŧ āĻŸā§āĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻāĻŸāĻŋ āĻĄāĻŋāĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻ•āĻ°ā§āĻ¨ [āĻ˛āĻŋāĻ‚āĻ•]
  • kubernetes-ca-cert

kubectl get secret <secret_name_from_prev_command> -o yaml | grep ca.crt:

  • "ca.crt" āĻ¸āĻžāĻ°ā§āĻŸāĻŋāĻĢāĻŋāĻ•ā§‡āĻŸ āĻ¨āĻŋāĻ¨ (āĻŦā§‡āĻ¸64 āĻĄāĻŋāĻ•ā§‹āĻĄāĻŋāĻ‚ āĻāĻ° āĻĒāĻ°ā§‡) āĻāĻŦāĻ‚ āĻāĻŸāĻŋ "ca.crt" āĻĢāĻžāĻ‡āĻ˛ā§‡ āĻ˛āĻŋāĻ–ā§āĻ¨āĨ¤
  • āĻāĻ–āĻ¨ āĻ†āĻĒāĻ¨āĻŋ āĻāĻ‡āĻŽāĻžāĻ¤ā§āĻ° āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻŽāĻžāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸ā§āĻĨāĻžāĻ¨āĻ§āĻžāĻ°āĻ•āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°ā§‡ āĻĒā§āĻ°āĻŽāĻžāĻŖā§€āĻ•āĻ°āĻŖ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻŸāĻŋ āĻšāĻžāĻ˛ā§ āĻ•āĻ°ā§āĻ¨ā§ˇ

consul acl auth-method create 
-type "kubernetes" 
-name "auth-method-skywiz-consul-poc" 
-description "This is an auth method using kubernetes for the cluster skywiz-app-with-consul-client-poc" 
-kubernetes-host "<k8s_endpoint_retrieved earlier>" 
[email protected] 
-kubernetes-service-account-
jwt="<decoded_token_retrieved_earlier>"

  • āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€āĻ¤ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻāĻŦāĻ‚ āĻāĻŸāĻŋāĻ•ā§‡ āĻ¨āĻ¤ā§āĻ¨ āĻ­ā§‚āĻŽāĻŋāĻ•āĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻ‚āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ āĻāĻ‡ āĻ…āĻ‚āĻļā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻĒāĻ¨āĻŋ Consul UI āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨, āĻ¤āĻŦā§‡ āĻ†āĻŽāĻ°āĻž āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻ˛āĻžāĻ‡āĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻŦāĨ¤
  • āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻ˛āĻŋāĻ–ā§āĻ¨

### kv-custom-ns-policy.hcl
key_prefix "custom-ns/" {
 policy = "write"
}

  • āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°ā§āĻ¨

consul acl policy create 
-name kv-custom-ns-policy 
-description "This is an example policy for kv at custom-ns/" 
-rules @kv-custom-ns-policy.hcl

  • āĻ†āĻ‰āĻŸāĻĒā§āĻŸ āĻĨā§‡āĻ•ā§‡ āĻ†āĻĒāĻ¨āĻŋ āĻ¯ā§‡ āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŸāĻŋ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡āĻ›ā§‡āĻ¨ āĻ¤āĻžāĻ° āĻ†āĻ‡āĻĄāĻŋ āĻ–ā§āĻāĻœā§āĻ¨āĨ¤
  • āĻāĻ•āĻŸāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻāĻ•āĻŸāĻŋ āĻ­ā§‚āĻŽāĻŋāĻ•āĻž āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§āĻ¨āĨ¤

consul acl role create 
-name "custom-ns-role" 
-description "This is an example role for custom-ns namespace" 
-policy-id <policy_id>

  • āĻāĻ–āĻ¨ āĻ†āĻŽāĻ°āĻž āĻĒā§āĻ°āĻŽāĻžāĻŖ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¨āĻ¤ā§āĻ¨ āĻ­ā§‚āĻŽāĻŋāĻ•āĻž āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻŦāĨ¤ āĻŽāĻ¨ā§‡ āĻ°āĻžāĻ–āĻŦā§‡āĻ¨ āĻ¯ā§‡ "āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻšāĻ¨āĻ•āĻžāĻ°ā§€" āĻĒāĻ¤āĻžāĻ•āĻž āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻ•āĻ°ā§‡ āĻ¯ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ˛āĻ—āĻ‡āĻ¨ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻāĻ‡ āĻ­ā§‚āĻŽāĻŋāĻ•āĻžāĻŸāĻŋ āĻĒāĻžāĻŦā§‡ āĻ•āĻŋāĻ¨āĻžāĨ¤ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻšāĻ• āĻŦāĻŋāĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ–āĻžāĻ¨ā§‡ āĻšā§‡āĻ• āĻ•āĻ°ā§āĻ¨: https://www.consul.io/docs/acl/auth-methods/kubernetes.html#trusted-identity-attributes

consul acl binding-rule create 
-method=auth-method-skywiz-consul-poc 
-bind-type=role 
-bind-name='custom-ns-role' 
-selector='serviceaccount.namespace=="custom-ns"'

āĻ¸āĻŦāĻļā§‡āĻˇā§‡ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨

āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ āĻ…āĻ§āĻŋāĻ•āĻžāĻ°

  • āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ āĻ…āĻ§āĻŋāĻ•āĻžāĻ° āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§āĻ¨āĨ¤ K8s āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻ…ā§āĻ¯āĻžāĻ•āĻžāĻ‰āĻ¨ā§āĻŸ āĻŸā§‹āĻ•ā§‡āĻ¨ā§‡āĻ° āĻĒāĻ°āĻŋāĻšāĻ¯āĻŧ āĻ¯āĻžāĻšāĻžāĻ‡ āĻ“ āĻļāĻ¨āĻžāĻ•ā§āĻ¤ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•āĻ¨āĻ¸āĻžāĻ˛āĻ•ā§‡ āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻāĻŋāĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤
  • āĻĢāĻžāĻ‡āĻ˛āĻŸāĻŋāĻ¤ā§‡ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻ–āĻŋāĻ¤āĻŸāĻŋ āĻ˛āĻŋāĻ–ā§āĻ¨ [āĻ˛āĻŋāĻ‚āĻ•]:

###skywiz-poc-consul-server_rbac.yaml
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
 name: review-tokens
 namespace: default
subjects:
- kind: ServiceAccount
 name: skywiz-app-with-consul-client-poc-consul-client
 namespace: default
roleRef:
 kind: ClusterRole
 name: system:auth-delegator
 apiGroup: rbac.authorization.k8s.io
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
 name: service-account-getter
 namespace: default
rules:
- apiGroups: [""]
 resources: ["serviceaccounts"]
 verbs: ["get"]
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
 name: get-service-accounts
 namespace: default
subjects:
- kind: ServiceAccount
 name: skywiz-app-with-consul-client-poc-consul-client
 namespace: default
roleRef:
 kind: ClusterRole
 name: service-account-getter
 apiGroup: rbac.authorization.k8s.io

  • āĻ†āĻ¸ā§āĻ¨ āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ā§‡āĻ° āĻ…āĻ§āĻŋāĻ•āĻžāĻ° āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻŋ

kubectl create -f skywiz-poc-consul-server_rbac.yaml

āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡

  • āĻ‰āĻ˛ā§āĻ˛āĻŋāĻ–āĻŋāĻ¤ āĻāĻ–āĻžāĻ¨ā§‡āĻĄā§‡āĻŽāĻ¨āĻ¸ā§‡āĻŸā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻŦā§‡āĻļ āĻ•āĻ¯āĻŧā§‡āĻ•āĻŸāĻŋ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡, āĻ¤āĻŦā§‡ āĻ†āĻŽāĻ°āĻž āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻ–āĻŋāĻ¤ āĻ¸āĻšāĻœ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ā§‡ āĻšāĻ˛ā§‡ āĻ¯āĻžāĻŦ:
  • āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻ–āĻŋāĻ¤ āĻĢāĻžāĻ‡āĻ˛āĻŸāĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°ā§āĻ¨ [āĻ˛āĻŋāĻ‚āĻ•].

### poc-consul-client-ds-svc.yaml
apiVersion: v1
kind: Service
metadata:
 name: consul-ds-client
spec:
 selector:
   app: consul
   chart: consul-helm
   component: client
   hasDNS: "true"
   release: skywiz-app-with-consul-client-poc
 ports:
 - protocol: TCP
   port: 80
   targetPort: 8500

  • āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻ•āĻŸāĻŋ configmap āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻ–āĻŋāĻ¤ āĻŦāĻŋāĻ˛ā§āĻŸāĻ‡āĻ¨ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§āĻ¨ [āĻ˛āĻŋāĻ‚āĻ•]āĨ¤ āĻĻāĻ¯āĻŧāĻž āĻ•āĻ°ā§‡ āĻŽāĻ¨ā§‡ āĻ°āĻžāĻ–āĻŦā§‡āĻ¨ āĻ¯ā§‡ āĻ†āĻŽāĻ°āĻž āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ° āĻ¨āĻžāĻŽ āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ– āĻ•āĻ°āĻ›āĻŋ, āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§‡ āĻāĻŸāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°ā§āĻ¨āĨ¤

cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: ConfigMap
metadata:
 labels:
   addonmanager.kubernetes.io/mode: EnsureExists
 name: kube-dns
 namespace: kube-system
data:
 stubDomains: |
   {"consul": ["$(kubectl get svc consul-ds-client -o jsonpath='{.spec.clusterIP}')"]}
EOF

āĻĒā§āĻ°āĻŽāĻžāĻŖā§€āĻ•āĻ°āĻŖ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡

āĻāĻ–āĻ¨ āĻĻā§‡āĻ–āĻž āĻ¯āĻžāĻ• āĻ…ā§āĻ¯āĻžāĻ•āĻļāĻ¨ā§‡ āĻŽā§āĻ¯āĻžāĻœāĻŋāĻ•!

  • āĻāĻ•āĻ‡ āĻŸāĻĒ-āĻ˛ā§‡āĻ­ā§‡āĻ˛ āĻ•ā§€ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻ†āĻ°āĻ“ āĻ•āĻ¯āĻŧā§‡āĻ•āĻŸāĻŋ āĻ•ā§€ āĻĢā§‹āĻ˛ā§āĻĄāĻžāĻ° āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§āĻ¨ (āĻ¯ā§‡āĻŽāĻ¨ /sample_key) āĻāĻŦāĻ‚ āĻ†āĻĒāĻ¨āĻžāĻ° āĻĒāĻ›āĻ¨ā§āĻĻā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻŽāĻžāĻ¨āĨ¤ āĻ¨āĻ¤ā§āĻ¨ āĻŽā§‚āĻ˛ āĻĒāĻĨā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ‰āĻĒāĻ¯ā§āĻ•ā§āĻ¤ āĻ¨ā§€āĻ¤āĻŋ āĻāĻŦāĻ‚ āĻ­ā§‚āĻŽāĻŋāĻ•āĻž āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§āĻ¨āĨ¤ āĻ†āĻŽāĻ°āĻž āĻĒāĻ°ā§‡ āĻŦāĻžāĻāĻ§āĻžāĻ‡ āĻ•āĻ°āĻŦāĨ¤

Hashicorp āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻāĻ° Kubernetes āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻ¨ā§‡āĻ° āĻ­ā§‚āĻŽāĻŋāĻ•āĻž

āĻ•āĻžāĻ¸ā§āĻŸāĻŽ āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž:

  • āĻ†āĻ¸ā§āĻ¨ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¨āĻŋāĻœāĻ¸ā§āĻŦ āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻŋ:

kubectl create namespace custom-ns

  • āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¨āĻ¤ā§āĻ¨ āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨ā§‡ āĻāĻ•āĻŸāĻŋ āĻĒāĻĄ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻ¯āĻžāĻ•āĨ¤ āĻĒāĻĄā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻ˛āĻŋāĻ–ā§āĻ¨āĨ¤

###poc-ubuntu-custom-ns.yaml
apiVersion: v1
kind: Pod
metadata:
 name: poc-ubuntu-custom-ns
 namespace: custom-ns
spec:
 containers:
 - name: poc-ubuntu-custom-ns
   image: ubuntu
   command: ["/bin/bash", "-ec", "sleep infinity"]
 restartPolicy: Never

  • āĻ…āĻ§ā§€āĻ¨ā§‡ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§āĻ¨:

kubectl create -f poc-ubuntu-custom-ns.yaml

  • āĻāĻ•āĻŦāĻžāĻ° āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ° āĻšāĻ˛āĻŽāĻžāĻ¨ āĻšāĻ˛ā§‡, āĻ¸ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ¯āĻžāĻ¨ āĻāĻŦāĻ‚ āĻ•āĻžāĻ°ā§āĻ˛ āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻ•āĻ°ā§āĻ¨āĨ¤

kubectl exec poc-ubuntu-custom-ns -n custom-ns -it /bin/bash
apt-get update && apt-get install curl -y

  • āĻāĻ–āĻ¨ āĻ†āĻŽāĻ°āĻž āĻ†āĻ—ā§‡ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ•āĻ¨āĻ¸āĻžāĻ˛ā§‡āĻ° āĻ•āĻžāĻ›ā§‡ āĻāĻ•āĻŸāĻŋ āĻ˛āĻ—āĻ‡āĻ¨ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻĒāĻžāĻ āĻžāĻŦ [āĻ˛āĻŋāĻ‚āĻ•].
  • āĻ†āĻĒāĻ¨āĻžāĻ° āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻ…ā§āĻ¯āĻžāĻ•āĻžāĻ‰āĻ¨ā§āĻŸ āĻĨā§‡āĻ•ā§‡ āĻĒā§āĻ°āĻŦā§‡āĻļ āĻ•āĻ°āĻž āĻŸā§‹āĻ•ā§‡āĻ¨ āĻĻā§‡āĻ–āĻ¤ā§‡:

cat /run/secrets/kubernetes.io/serviceaccount/token

  • āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ°ā§‡āĻ° āĻ­āĻŋāĻ¤āĻ°ā§‡ āĻāĻ•āĻŸāĻŋ āĻĢāĻžāĻ‡āĻ˛ā§‡ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻ–āĻŋāĻ¤āĻŸāĻŋ āĻ˛āĻŋāĻ–ā§āĻ¨:

### payload.json
{
 "AuthMethod": "auth-method-test",
 "BearerToken": "<jwt_token>"
}

  • āĻĒā§āĻ°āĻŦā§‡āĻļ āĻ•āĻ°ā§āĻ¨!

curl 
--request POST 
--data @payload.json 
consul-ds-client.default.svc.cluster.local/v1/acl/login

  • āĻ‰āĻĒāĻ°ā§‡āĻ° āĻ§āĻžāĻĒāĻ—ā§āĻ˛āĻŋ āĻāĻ• āĻ˛āĻžāĻ‡āĻ¨ā§‡ āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻ•āĻ°āĻ¤ā§‡ (āĻ¯ā§‡āĻšā§‡āĻ¤ā§ āĻ†āĻŽāĻ°āĻž āĻāĻ•āĻžāĻ§āĻŋāĻ• āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻšāĻžāĻ˛āĻžāĻŦ), āĻ†āĻĒāĻ¨āĻŋ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻ–āĻŋāĻ¤āĻ—ā§āĻ˛āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨:

echo "{ 
"AuthMethod": "auth-method-skywiz-consul-poc", 
"BearerToken": "$(cat /run/secrets/kubernetes.io/serviceaccount/token)" 
}" 
| curl 
--request POST 
--data @- 
consul-ds-client.default.svc.cluster.local/v1/acl/login

  • āĻ•āĻžāĻœ āĻ•āĻ°ā§‡! āĻ…āĻ¨ā§āĻ¤āĻ¤ āĻāĻŸāĻž āĻ‰āĻšāĻŋāĻ¤. āĻāĻ–āĻ¨ āĻ¸āĻŋāĻ•ā§āĻ°ā§‡āĻŸāĻ†āĻ‡āĻĄāĻŋ āĻ¨āĻŋāĻ¨ āĻāĻŦāĻ‚ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ āĻĨāĻžāĻ•āĻž āĻ‰āĻšāĻŋāĻ¤ āĻ•ā§€/āĻŽāĻžāĻ¨ āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ āĻ•āĻ°āĻžāĻ° āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°ā§āĻ¨āĨ¤

curl 
consul-ds-client.default.svc.cluster.local/v1/kv/custom-ns/test_key --header “X-Consul-Token: <SecretID_from_prev_response>”

  • āĻ†āĻĒāĻ¨āĻŋ āĻŦā§‡āĻ¸64 "āĻŽāĻžāĻ¨" āĻĄāĻŋāĻ•ā§‹āĻĄ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ āĻāĻŦāĻ‚ āĻĻā§‡āĻ–āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ āĻ¯ā§‡ āĻāĻŸāĻŋ UI-āĻ¤ā§‡ custom-ns/test_key-āĻāĻ° āĻŽāĻžāĻ¨ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻŽā§‡āĻ˛ā§‡āĨ¤ āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻ‡ āĻŸāĻŋāĻ‰āĻŸā§‹āĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛ā§‡ āĻ‰āĻĒāĻ°ā§‡āĻ° āĻāĻ•āĻ‡ āĻŽāĻžāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡āĻ¨ āĻ¤āĻŦā§‡ āĻ†āĻĒāĻ¨āĻžāĻ° āĻāĻ¨āĻ•ā§‹āĻĄ āĻ•āĻ°āĻž āĻŽāĻžāĻ¨ āĻšāĻŦā§‡ IkknbSBpbiB0aGUgY3VzdG9tLW5zIGZvbGRlciEiāĨ¤

āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻ…ā§āĻ¯āĻžāĻ•āĻžāĻ‰āĻ¨ā§āĻŸ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž:

  • āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻ–āĻŋāĻ¤ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻāĻ•āĻŸāĻŋ āĻ•āĻžāĻ¸ā§āĻŸāĻŽ āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸ āĻ…ā§āĻ¯āĻžāĻ•āĻžāĻ‰āĻ¨ā§āĻŸ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§āĻ¨ [āĻ˛āĻŋāĻ‚āĻ•].

kubectl apply -f - <<EOF
apiVersion: v1
kind: ServiceAccount
metadata:
 name: custom-sa
EOF

  • āĻĒāĻĄā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĢāĻžāĻ‡āĻ˛ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§āĻ¨āĨ¤ āĻĻāĻ¯āĻŧāĻž āĻ•āĻ°ā§‡ āĻŽāĻ¨ā§‡ āĻ°āĻžāĻ–āĻŦā§‡āĻ¨ āĻ¯ā§‡ āĻ†āĻŽāĻŋ āĻļā§āĻ°āĻŽ āĻŦāĻžāĻāĻšāĻžāĻ¤ā§‡ āĻ•āĻžāĻ°ā§āĻ˛ āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ā§‡āĻļāĻ¨ āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ­ā§āĻ•ā§āĻ¤ āĻ•āĻ°ā§‡āĻ›āĻŋ :)

###poc-ubuntu-custom-sa.yaml
apiVersion: v1
kind: Pod
metadata:
 name: poc-ubuntu-custom-sa
 namespace: default
spec:
 serviceAccountName: custom-sa
 containers:
 - name: poc-ubuntu-custom-sa
   image: ubuntu
   command: ["/bin/bash","-ec"]
   args: ["apt-get update && apt-get install curl -y; sleep infinity"]
 restartPolicy: Never

  • āĻāĻ° āĻĒāĻ°ā§‡, āĻĒāĻžāĻ¤ā§āĻ°ā§‡āĻ° āĻ­āĻŋāĻ¤āĻ°ā§‡ āĻāĻ•āĻŸāĻŋ āĻļā§‡āĻ˛ āĻšāĻžāĻ˛āĻžāĻ¨āĨ¤

kubectl exec -it poc-ubuntu-custom-sa /bin/bash

  • āĻĒā§āĻ°āĻŦā§‡āĻļ āĻ•āĻ°ā§āĻ¨!

echo "{ 
"AuthMethod": "auth-method-skywiz-consul-poc", 
"BearerToken": "$(cat /run/secrets/kubernetes.io/serviceaccount/token)" 
}" 
| curl 
--request POST 
--data @- 
consul-ds-client.default.svc.cluster.local/v1/acl/login

  • āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻ…āĻ¸ā§āĻŦā§€āĻ•āĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻ“āĻš, āĻ†āĻŽāĻ°āĻž āĻ‰āĻĒāĻ¯ā§āĻ•ā§āĻ¤ āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻŦāĻžāĻ§ā§āĻ¯āĻ¤āĻžāĻŽā§‚āĻ˛āĻ• āĻāĻ•āĻŸāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻ¤ā§‡ āĻ­ā§āĻ˛ā§‡ āĻ—ā§‡āĻ›āĻŋ, āĻāĻ–āĻ¨ āĻāĻŸāĻŋ āĻ•āĻ°āĻž āĻ¯āĻžāĻ•āĨ¤

āĻ‰āĻĒāĻ°ā§‡āĻ° āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§€ āĻĒāĻĻāĻ•ā§āĻˇā§‡āĻĒāĻ—ā§āĻ˛āĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§ƒāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§āĻ¨:
āĻ•) "āĻ•āĻžāĻ¸ā§āĻŸāĻŽ-āĻ¸āĻž/" āĻ‰āĻĒāĻ¸āĻ°ā§āĻ—ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ…āĻ­āĻŋāĻ¨ā§āĻ¨ āĻ¨ā§€āĻ¤āĻŋ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§āĻ¨āĨ¤
āĻ–) āĻāĻ•āĻŸāĻŋ āĻ­ā§‚āĻŽāĻŋāĻ•āĻž āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§āĻ¨, āĻāĻŸāĻŋāĻ•ā§‡ "āĻ•āĻžāĻ¸ā§āĻŸāĻŽ-āĻ¸āĻž-āĻ­ā§‚āĻŽāĻŋāĻ•āĻž" āĻŦāĻ˛ā§āĻ¨
āĻ—) āĻ­ā§‚āĻŽāĻŋāĻ•āĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻ¨ā§€āĻ¤āĻŋ āĻ¸āĻ‚āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°ā§āĻ¨āĨ¤

  • āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ¯āĻŧāĻŽ-āĻŦāĻžāĻ‡āĻ¨ā§āĻĄāĻŋāĻ‚ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§āĻ¨ (āĻ•ā§‡āĻŦāĻ˛ cli/api āĻĨā§‡āĻ•ā§‡ āĻ¸āĻŽā§āĻ­āĻŦ)āĨ¤ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻšāĻ• āĻĒāĻ¤āĻžāĻ•āĻžāĻ° āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻ…āĻ°ā§āĻĨ āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻ•āĻ°ā§āĻ¨āĨ¤

consul acl binding-rule create 
-method=auth-method-skywiz-consul-poc 
-bind-type=role 
-bind-name='custom-sa-role' 
-selector='serviceaccount.name=="custom-sa"'

  • "poc-ubuntu-custom-sa" āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ° āĻĨā§‡āĻ•ā§‡ āĻ†āĻŦāĻžāĻ° āĻ˛āĻ—āĻ‡āĻ¨ āĻ•āĻ°ā§āĻ¨āĨ¤ āĻ¸āĻĢāĻ˛āĻ¤āĻžāĻ° !
  • āĻ•āĻžāĻ¸ā§āĻŸāĻŽ-āĻ¸āĻž/ āĻ•ā§€ āĻĒāĻžāĻĨā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ āĻĻā§‡āĻ–ā§āĻ¨āĨ¤

curl 
consul-ds-client.default.svc.cluster.local/v1/kv/custom-sa/test_key --header “X-Consul-Token: <SecretID>”

  • āĻāĻ›āĻžāĻĄāĻŧāĻžāĻ“ āĻ†āĻĒāĻ¨āĻŋ āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ āĻ¯ā§‡ āĻāĻ‡ āĻŸā§‹āĻ•ā§‡āĻ¨āĻŸāĻŋ "custom-ns/"-āĻ kv-āĻ āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ āĻĻā§‡āĻ¯āĻŧ āĻ¨āĻžāĨ¤ "āĻ•āĻžāĻ¸ā§āĻŸāĻŽ-āĻ¸āĻž" āĻ‰āĻĒāĻ¸āĻ°ā§āĻ— "āĻ•āĻžāĻ¸ā§āĻŸāĻŽ-āĻāĻ¨āĻāĻ¸" āĻĻāĻŋāĻ¯āĻŧā§‡ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻžāĻ° āĻĒāĻ°ā§‡ āĻ‰āĻĒāĻ°ā§‡āĻ° āĻ•āĻŽāĻžāĻ¨ā§āĻĄāĻŸāĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§ƒāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§āĻ¨āĨ¤
    āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻ…āĻ¸ā§āĻŦā§€āĻ•āĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤

āĻ“āĻ­āĻžāĻ°āĻ˛ā§‡ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ:

  • āĻāĻŸāĻŋ āĻ˛āĻ•ā§āĻˇāĻŖā§€āĻ¯āĻŧ āĻ¯ā§‡ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¨āĻŋāĻ¯āĻŧāĻŽ-āĻŦāĻžāĻ¨ā§āĻ§āĻŦ āĻŽā§āĻ¯āĻžāĻĒāĻŋāĻ‚ āĻāĻ‡ āĻ…āĻ§āĻŋāĻ•āĻžāĻ°āĻ—ā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻŸā§‹āĻ•ā§‡āĻ¨ā§‡ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻŦā§‡āĨ¤
  • āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ° "poc-ubuntu-custom-sa" āĻĄāĻŋāĻĢāĻ˛ā§āĻŸ āĻ¨ā§‡āĻŽāĻ¸ā§āĻĒā§‡āĻ¸ā§‡ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ - āĻ¤āĻžāĻ‡ āĻ†āĻ¸ā§āĻ¨ āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻ­āĻŋāĻ¨ā§āĻ¨ āĻ¨āĻŋāĻ¯āĻŧāĻŽ-āĻŦāĻžāĻ¨ā§āĻ§āĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻŋāĨ¤
  • āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§€ āĻĒāĻĻāĻ•ā§āĻˇā§‡āĻĒāĻ—ā§āĻ˛āĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§ƒāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§āĻ¨:
    āĻ•) “āĻĄāĻŋāĻĢāĻ˛ā§āĻŸ/” āĻ•ā§€ āĻ‰āĻĒāĻ¸āĻ°ā§āĻ—ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ…āĻ­āĻŋāĻ¨ā§āĻ¨ āĻ¨ā§€āĻ¤āĻŋ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§āĻ¨āĨ¤
    āĻ–) āĻāĻ•āĻŸāĻŋ āĻ­ā§‚āĻŽāĻŋāĻ•āĻž āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§āĻ¨, āĻāĻŸāĻŋāĻ•ā§‡ "āĻĄāĻŋāĻĢāĻ˛ā§āĻŸ-āĻāĻ¨āĻāĻ¸-āĻ°ā§‹āĻ˛" āĻ¨āĻžāĻŽ āĻĻāĻŋāĻ¨
    āĻ—) āĻ­ā§‚āĻŽāĻŋāĻ•āĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻ¨ā§€āĻ¤āĻŋ āĻ¸āĻ‚āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°ā§āĻ¨āĨ¤
  • āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ¯āĻŧāĻŽ-āĻŦāĻžāĻ‡āĻ¨ā§āĻĄāĻŋāĻ‚ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§āĻ¨ (āĻ•ā§‡āĻŦāĻ˛ cli/api āĻĨā§‡āĻ•ā§‡ āĻ¸āĻŽā§āĻ­āĻŦ)

consul acl binding-rule create 
-method=auth-method-skywiz-consul-poc 
-bind-type=role 
-bind-name='default-ns-role' 
-selector='serviceaccount.namespace=="default"'

  • āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ° "poc-ubuntu-custom-sa" āĻ āĻĢāĻŋāĻ°ā§‡ āĻ¯āĻžāĻ¨ āĻāĻŦāĻ‚ "default/" kv āĻĒāĻžāĻĨ āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ āĻ•āĻ°āĻžāĻ° āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°ā§āĻ¨āĨ¤
  • āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻ…āĻ¸ā§āĻŦā§€āĻ•āĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤
    āĻ†āĻĒāĻ¨āĻŋ ACL > āĻŸā§‹āĻ•ā§‡āĻ¨ā§‡āĻ° āĻ…āĻ§ā§€āĻ¨ā§‡ UI-āĻ¤ā§‡ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻŸā§‹āĻ•ā§‡āĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻļāĻ‚āĻ¸āĻžāĻĒāĻ¤ā§āĻ° āĻĻā§‡āĻ–āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤ āĻ†āĻĒāĻ¨āĻŋ āĻĻā§‡āĻ–āĻ¤ā§‡ āĻĒāĻžāĻšā§āĻ›ā§‡āĻ¨, āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻŸā§‹āĻ•ā§‡āĻ¨ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ•āĻŸāĻŋ "āĻ•āĻžāĻ¸ā§āĻŸāĻŽ-āĻ¸āĻž-āĻ°ā§‹āĻ˛" āĻ¸āĻ‚āĻ¯ā§āĻ•ā§āĻ¤ āĻ†āĻ›ā§‡āĨ¤ āĻ†āĻŽāĻ°āĻž āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ā§‡ āĻ¯ā§‡ āĻŸā§‹āĻ•ā§‡āĻ¨āĻŸāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ›āĻŋ āĻ¤āĻž āĻ¤ā§ˆāĻ°āĻŋ āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛ āĻ¯āĻ–āĻ¨ āĻ†āĻŽāĻ°āĻž āĻ˛āĻ— āĻ‡āĻ¨ āĻ•āĻ°ā§‡āĻ›āĻŋ āĻāĻŦāĻ‚ āĻ¤āĻ–āĻ¨ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ¯āĻŧāĻŽ-āĻŦāĻžāĻ¨ā§āĻ§āĻŦ āĻ›āĻŋāĻ˛ āĻ¯āĻž āĻŽā§‡āĻ˛ā§‡āĨ¤ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ†āĻŦāĻžāĻ° āĻ˛āĻ—āĻ‡āĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻāĻŦāĻ‚ āĻ¨āĻ¤ā§āĻ¨ āĻŸā§‹āĻ•ā§‡āĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤
  • āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤ āĻ•āĻ°ā§āĻ¨ āĻ¯ā§‡ āĻ†āĻĒāĻ¨āĻŋ "custom-sa/" āĻāĻŦāĻ‚ "default/" kv āĻĒāĻžāĻĨ āĻ‰āĻ­āĻ¯āĻŧ āĻĨā§‡āĻ•ā§‡ āĻĒāĻĄāĻŧāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤
    āĻ¸āĻĢāĻ˛!
    āĻāĻ° āĻ•āĻžāĻ°āĻŖ āĻšāĻ˛ āĻ†āĻŽāĻžāĻĻā§‡āĻ° "poc-ubuntu-custom-sa" "custom-sa" āĻāĻŦāĻ‚ "default-ns" āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻŦāĻžāĻ‡āĻ¨ā§āĻĄāĻŋāĻ‚āĻ¯āĻŧā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻŽā§‡āĻ˛ā§‡āĨ¤

āĻ‰āĻĒāĻ¸āĻ‚āĻšāĻžāĻ°

TTL āĻŸā§‹āĻ•ā§‡āĻ¨ mgmt?

āĻāĻ‡ āĻ˛ā§‡āĻ–āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻāĻ‡ āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ‰āĻ¤ā§āĻĒāĻ¨ā§āĻ¨ āĻŸā§‹āĻ•ā§‡āĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ TTL āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻ•āĻ°āĻžāĻ° āĻ•ā§‹āĻ¨ āĻ¸āĻŽāĻ¨ā§āĻŦāĻŋāĻ¤ āĻ‰āĻĒāĻžāĻ¯āĻŧ āĻ¨ā§‡āĻ‡āĨ¤ āĻ•āĻ¨āĻ¸āĻžāĻ˛ āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻ¨ā§‡āĻ° āĻ¸ā§āĻ°āĻ•ā§āĻˇāĻŋāĻ¤ āĻ…āĻŸā§‹āĻŽā§‡āĻļāĻ¨ āĻĒā§āĻ°āĻĻāĻžāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻĻā§āĻ°ā§āĻĻāĻžāĻ¨ā§āĻ¤ āĻ¸ā§āĻ¯ā§‹āĻ— āĻšāĻŦā§‡āĨ¤

TTL āĻĻāĻŋāĻ¯āĻŧā§‡ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻŋ āĻāĻ•āĻŸāĻŋ āĻŸā§‹āĻ•ā§‡āĻ¨ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻžāĻ° āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡:

  • https://www.consul.io/docs/acl/acl-system.html#acl-tokens
    āĻŽā§‡āĻ¯āĻŧāĻžāĻĻ āĻļā§‡āĻˇ āĻšāĻ“āĻ¯āĻŧāĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ - āĻ¯ā§‡ āĻ¸āĻŽāĻ¯āĻŧā§‡ āĻāĻ‡ āĻŸā§‹āĻ•ā§‡āĻ¨āĻŸāĻŋ āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻŦā§‡āĨ¤ (āĻāĻšā§āĻ›āĻŋāĻ•; āĻ•āĻ¨āĻ¸āĻžāĻ˛ 1.5.0 āĻ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡)
  • āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛ āĻ¤ā§ˆāĻ°āĻŋ/āĻ†āĻĒāĻĄā§‡āĻŸā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ https://www.consul.io/api/acl/tokens.html#expirationtime

āĻ†āĻļāĻž āĻ•āĻ°āĻŋ āĻ…āĻĻā§‚āĻ° āĻ­āĻŦāĻŋāĻˇā§āĻ¯āĻ¤ā§‡ āĻ†āĻŽāĻ°āĻž āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻŸā§‹āĻ•ā§‡āĻ¨ āĻ¤ā§ˆāĻ°āĻŋ āĻšāĻ¯āĻŧ āĻ¤āĻž āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻ•āĻ°āĻ¤ā§‡ āĻ¸āĻ•ā§āĻˇāĻŽ āĻšāĻŦ (āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻŦāĻž āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ…āĻ¨ā§āĻ¸āĻžāĻ°ā§‡) āĻāĻŦāĻ‚ TTL āĻ¯ā§‹āĻ— āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŦāĨ¤

āĻ¤āĻ¤āĻ•ā§āĻˇāĻŖ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤, āĻ†āĻĒāĻ¨āĻžāĻ° āĻ¯ā§āĻ•ā§āĻ¤āĻŋāĻ¤ā§‡ āĻāĻ•āĻŸāĻŋ āĻ˛āĻ—āĻ†āĻ‰āĻŸ āĻāĻ¨ā§āĻĄāĻĒāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļ āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻšā§āĻ›ā§‡āĨ¤

āĻāĻ›āĻžāĻĄāĻŧāĻžāĻ“ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻŦā§āĻ˛āĻ—ā§‡ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ āĻĒāĻĄāĻŧā§āĻ¨:

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

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