āĻĻā§āĻĄāĻŧ āĻŦāĻāĻ° āĻāĻā§, 5 āĻŽāĻžāĻ°ā§āĻ, 2018-āĻ, Google CI/CD āĻ¨āĻžāĻŽāĻ āĻ¤āĻžāĻ° āĻāĻĒā§āĻ¨ āĻ¸ā§āĻ°ā§āĻ¸ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§āĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻāĻ˛āĻĢāĻž āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ āĻĒā§āĻ°āĻāĻžāĻļ āĻāĻ°ā§
NB: āĻ¯āĻžāĻāĻšā§āĻ, āĻāĻŽāĻ°āĻž āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻ¨āĻžāĻ°ā§āĻ˛ā§ āĻ¸ā§āĻā§āĻ¯āĻžāĻĢā§āĻ˛ā§āĻĄ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤āĻāĻžāĻŦā§ āĻāĻĨāĻž āĻŦāĻ˛ā§āĻāĻŋ
āĻ¤āĻ¤ā§āĻ¤ā§āĻŦāĨ¤ āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ āĻāĻŦāĻ āĻā§āĻˇāĻŽāĻ¤āĻž
āĻ¸ā§āĻ¤āĻ°āĻžāĻ, āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻāĻžāĻŦā§ āĻŦāĻ˛āĻ¤ā§ āĻā§āĻ˛ā§, āĻ¸ā§āĻā§āĻ¯āĻžāĻĢā§āĻ˛ā§āĻĄ CI/CD āĻāĻā§āĻ°āĻā§ āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻ°ā§ (āĻŦāĻŋāĻ˛ā§āĻĄ, āĻĒā§āĻļ, āĻĄāĻŋāĻĒā§āĻ˛ā§āĻ¯āĻŧ āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧā§), āĻĄā§āĻā§āĻ˛āĻĒāĻžāĻ°āĻā§ āĻĒā§āĻ°āĻŽā§āĻĒāĻ āĻĢāĻŋāĻĄāĻŦā§āĻ¯āĻžāĻ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§, āĻ¯ā§āĻŽāĻ¨ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻā§āĻĄ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§āĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻĻā§āĻ°ā§āĻ¤ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻāĻ°āĻžāĻ° āĻā§āĻˇāĻŽāĻ¤āĻž - āĻā§āĻŦāĻžāĻ°āĻ¨ā§āĻāĻ¸ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§ āĻāĻ˛āĻŽāĻžāĻ¨ āĻāĻāĻāĻŋ āĻāĻĒāĻĄā§āĻ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻāĻāĻžāĻ°ā§āĨ¤ āĻāĻŦāĻ āĻāĻāĻŋ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ¸āĻžāĻ°ā§āĻāĻŋāĻā§ āĻāĻžāĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ (āĻĻā§āĻŦ, āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧ, āĻāĻ¤ā§āĻĒāĻžāĻĻāĻ¨...), āĻ¯āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸ā§āĻā§āĻ¯āĻžāĻĢā§āĻ˛ā§āĻĄ āĻ°ā§āĻ˛āĻāĻāĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻāĻļā§āĻ˛āĻŋāĻˇā§āĻ āĻĒāĻžāĻāĻĒāĻ˛āĻžāĻāĻ¨āĻā§āĻ˛āĻŋ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°āĻ¤ā§ āĻ¸āĻšāĻžāĻ¯āĻŧāĻ¤āĻž āĻāĻ°ā§āĨ¤
Skaffold āĻāĻ° āĻ¸ā§āĻ°ā§āĻ¸ āĻā§āĻĄ Go āĻ āĻ˛ā§āĻāĻž āĻāĻā§,
āĻāĻ¸ā§āĻ¨ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻŦāĻ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻĻā§āĻā§āĻ¨. āĻĒā§āĻ°āĻĨāĻŽāĻāĻŋāĻ¤ā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤āĻā§āĻ˛āĻŋ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻ°āĻ¯āĻŧā§āĻā§:
- āĻ¸ā§āĻā§āĻ¯āĻžāĻĢā§āĻ˛ā§āĻĄ āĻ¸āĻŋāĻāĻ/āĻ¸āĻŋāĻĄāĻŋ āĻĒāĻžāĻāĻĒāĻ˛āĻžāĻāĻ¨ āĻ¤ā§āĻ°āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻ°āĻā§āĻāĻžāĻŽ āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻāĻ°ā§āĨ¤
- āĻāĻĒāĻ¨āĻžāĻā§ āĻĒāĻāĻā§āĻŽāĻŋāĻ¤ā§ āĻ¸ā§āĻ°ā§āĻ¸ āĻā§āĻĄā§āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻā§āĻ˛āĻŋ āĻ¨āĻŋāĻ°ā§āĻā§āĻˇāĻŖ āĻāĻ°āĻ¤ā§ āĻāĻŦāĻ āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻāĻŦāĻŋāĻ¤ā§ āĻā§āĻĄ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻāĻāĻāĻŋ āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧ, āĻāĻ āĻāĻŦāĻŋāĻā§āĻ˛āĻŋāĻā§ āĻĄāĻāĻžāĻ° āĻ°ā§āĻāĻŋāĻ¸ā§āĻā§āĻ°āĻŋāĻ¤ā§ āĻĒā§āĻ°āĻāĻžāĻļ āĻāĻ°ā§ āĻāĻŦāĻ āĻā§āĻŦāĻžāĻ°āĻ¨ā§āĻāĻ¸ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°ā§ā§ˇ
- āĻāĻ¨āĻā§āĻāĻ¨āĻžāĻ°ā§ āĻāĻ¯āĻŧāĻžāĻ°ā§āĻāĻŋāĻ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻ°āĻŋāĻĒā§āĻāĻŋāĻāĻ°āĻŋāĻ¤ā§ āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋāĻā§ āĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻāĻ āĻāĻ°ā§āĨ¤
- āĻāĻ¨āĻā§āĻāĻ¨āĻžāĻ°-āĻ¸ā§āĻā§āĻ°āĻžāĻāĻāĻžāĻ°-āĻā§āĻ¸ā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§āĨ¤
- āĻĢāĻ°ā§āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻĒā§āĻ°ā§āĻ.
- āĻāĻāĻāĻŋ āĻĒāĻžāĻ¤ā§āĻ°ā§ āĻāĻ˛āĻŽāĻžāĻ¨ āĻāĻāĻāĻŋ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§āĻ° āĻ˛āĻāĻā§āĻ˛āĻŋ āĻĒāĻĄāĻŧā§ā§ˇ
- Java, Node.js, Python, Go-āĻ¤ā§ āĻ˛ā§āĻāĻž āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻĄāĻŋāĻŦāĻžāĻ āĻāĻ°āĻ¤ā§ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻāĻ°ā§āĨ¤
āĻāĻāĻ¨ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§:
- āĻ¸ā§āĻā§āĻ¯āĻžāĻĢā§āĻ˛ā§āĻĄā§āĻ° āĻ¨āĻŋāĻā§āĻ āĻā§āĻ¨āĻ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°-āĻ¸āĻžāĻāĻĄ āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻ¨ā§āĻ. āĻ āĻ°ā§āĻĨāĻžā§, āĻāĻ āĻāĻāĻāĻŋāĻ˛āĻŋāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻŦāĻžāĻ°āĻ¨ā§āĻāĻ¸āĻā§ āĻāĻ° āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻžāĻ° āĻĻāĻ°āĻāĻžāĻ° āĻ¨ā§āĻāĨ¤
- āĻāĻĒāĻ¨āĻžāĻ° āĻāĻŦā§āĻĻāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻĒāĻžāĻāĻĒāĻ˛āĻžāĻāĻ¨. āĻāĻĒāĻ¨āĻŋ āĻ¯āĻāĻ¨ āĻŦāĻŋāĻāĻžāĻļ āĻāĻ°āĻā§āĻ¨ āĻ¤āĻāĻ¨ āĻāĻŋ āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧ āĻŽāĻŋāĻ¨āĻŋāĻā§āĻŦā§ āĻā§āĻĄāĻāĻŋ āĻ°ā§āĻ˛ āĻāĻāĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§, āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻ¸ā§āĻā§āĻ āĻŦāĻž āĻāĻ¤ā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§? āĻāĻ āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ā§ āĻāĻā§
āĻĒā§āĻ°ā§āĻĢāĻžāĻāĻ˛ āĻāĻŦāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨, āĻĒāĻ°āĻŋāĻŦā§āĻļ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻāĻŦāĻ āĻĒāĻ¤āĻžāĻāĻž, āĻ¯āĻž āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻāĻāĻŋ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻĒāĻžāĻāĻĒāĻ˛āĻžāĻāĻ¨ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧāĨ¤ - CLI. YAML-āĻ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ¨āĻ¸ā§āĻ˛ āĻāĻāĻāĻŋāĻ˛āĻŋāĻāĻŋ āĻāĻŦāĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨āĨ¤ āĻāĻ¨ā§āĻāĻžāĻ°āĻ¨ā§āĻā§ āĻāĻĒāĻ¨āĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻĒā§āĻ°āĻā§āĻˇā§āĻāĻžāĻ° āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸ āĻā§āĻāĻā§ āĻĒā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻŽā§āĻ˛āĻ GUI , āĻ¯āĻžāĻāĻšā§āĻ, āĻāĻ āĻŽā§āĻšā§āĻ°ā§āĻ¤ā§ āĻ¸āĻŽā§āĻāĻŦāĻ¤ āĻāĻ° āĻ āĻ°ā§āĻĨ āĻšāĻ˛ āĻ¯ā§ āĻā§āĻ āĻ¤āĻžāĻā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¸āĻ¤ā§āĻ¯āĻŋāĻ āĻ¨āĻ¯āĻŧāĨ¤ - āĻĒāĻ°āĻŋāĻŽāĻŋāĻ¤āĻŋ. āĻ¸ā§āĻā§āĻ¯āĻžāĻĢā§āĻ˛ā§āĻĄ āĻāĻāĻāĻŋ āĻ¸ā§āĻŦāĻ¤āĻ¨ā§āĻ¤ā§āĻ° āĻšāĻžāĻ°āĻā§āĻ¸ā§āĻāĻžāĻ° āĻ¨āĻ¯āĻŧ, āĻ¤āĻŦā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻžāĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻĨāĻ āĻŽāĻĄāĻŋāĻāĻ˛ āĻŦāĻž āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨āĻā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°ā§āĨ¤
āĻĒāĻ°ā§āĻ°āĻāĻŋāĻ° āĻĻā§āĻˇā§āĻāĻžāĻ¨ā§āĻ¤:
- āĻ¸āĻŽāĻžāĻŦā§āĻļ āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧā§ āĻāĻĒāĻ¨āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨:
- āĻĄāĻāĻžāĻ° āĻŦāĻŋāĻ˛ā§āĻĄ āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧāĻāĻžāĻŦā§, āĻāĻžāĻ¨āĻŋāĻā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻŦāĻž āĻā§āĻāĻ˛ āĻā§āĻ˛āĻžāĻāĻĄ āĻŦāĻŋāĻ˛ā§āĻĄā§ āĻāĻāĻāĻŋ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§;
- āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧāĻāĻžāĻŦā§ Bazel;
- āĻāĻŋāĻŦ āĻŽāĻžāĻā§āĻ¨ āĻāĻŦāĻ āĻāĻŋāĻŦ āĻā§āĻ°ā§āĻĄāĻ˛ āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧāĻāĻžāĻŦā§ āĻŦāĻž āĻā§āĻāĻ˛ āĻā§āĻ˛āĻžāĻāĻĄ āĻŦāĻŋāĻ˛ā§āĻĄā§;
- āĻāĻžāĻ¸ā§āĻāĻŽ āĻŦāĻŋāĻ˛ā§āĻĄ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧāĻāĻžāĻŦā§ āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻšāĻ¯āĻŧāĨ¤ āĻāĻĒāĻ¨āĻžāĻ° āĻ¯āĻĻāĻŋ āĻ
āĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ (āĻāĻ°ā§ āĻ¨āĻŽāĻ¨ā§āĻ¯āĻŧ/āĻĒāĻ°āĻŋāĻāĻŋāĻ¤/...) āĻŦāĻŋāĻ˛ā§āĻĄ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻā§ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻ¯āĻžāĻ¤ā§ āĻ¸ā§āĻā§āĻ¯āĻžāĻĢā§āĻ˛ā§āĻĄ āĻāĻāĻŋ āĻāĻžāĻ˛ā§ āĻāĻ°ā§ (
āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ āĻĨā§āĻā§ āĻāĻĻāĻžāĻšāĻ°āĻŖ ) āĻāĻāĻŋ āĻāĻĒāĻ¨āĻžāĻā§ āĻ¯ā§ āĻā§āĻ¨ā§ āĻ¸āĻāĻā§āĻ°āĻžāĻšāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧ āĻ¯āĻž āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻŦāĻ˛āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§;
- āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧā§, āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ āĻāĻ˛ā§āĻ˛āĻŋāĻāĻŋāĻ¤
āĻ§āĻžāĻ°āĻ-āĻāĻžāĻ āĻžāĻŽā§-āĻĒāĻ°ā§āĻā§āĻˇāĻž ; - āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧ:
- āĻā§āĻŦā§āĻā§āĻāĻ˛;
- āĻšā§āĻ˛āĻŽ;
- āĻāĻžāĻ¸ā§āĻāĻŽāĻžāĻāĻ
āĻāĻ āĻāĻ¨ā§āĻ¯ āĻ§āĻ¨ā§āĻ¯āĻŦāĻžāĻĻ, Skaffold āĻāĻāĻāĻŋ āĻ āĻ¨āĻ¨ā§āĻ¯ āĻŦāĻ˛āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¸āĻŋāĻāĻ/āĻ¸āĻŋāĻĄāĻŋ āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖā§āĻ° āĻāĻžāĻ āĻžāĻŽā§. āĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻāĻžāĻ¨ā§ āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻ¯āĻŧāĻžāĻ°ā§āĻāĻĢā§āĻ˛ā§ āĻ°āĻ¯āĻŧā§āĻā§ (āĻĒā§āĻ°āĻāĻ˛ā§āĻĒ āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ āĻĨā§āĻā§):
āĻ¸ā§āĻā§āĻ¯āĻžāĻĢā§āĻ˛ā§āĻĄā§āĻ° āĻāĻžāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻāĻžāĻŦā§ āĻĻā§āĻāĻ¤ā§ āĻā§āĻŽāĻ¨?
- āĻāĻāĻāĻŋāĻ˛āĻŋāĻāĻŋ āĻ¸ā§āĻ°ā§āĻ¸ āĻā§āĻĄ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻā§āĻ˛āĻŋ āĻ¨āĻŋāĻ°ā§āĻā§āĻˇāĻŖ āĻāĻ°ā§āĨ¤ āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋāĻ¤ā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻž āĻšāĻ˛ā§, āĻ¸ā§āĻā§āĻ˛āĻŋ Kubernetes āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻĒāĻĄā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻāĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻ¯āĻĻāĻŋ āĻ¸āĻŽā§āĻāĻŦ āĻšāĻ¯āĻŧ, āĻāĻŽā§āĻ reassembling āĻāĻžāĻĄāĻŧāĻž. āĻ āĻ¨ā§āĻ¯āĻĨāĻžāĻ¯āĻŧ, āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻāĻŋāĻ¤ā§āĻ° āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤
- āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻŦāĻŋ āĻāĻ¨āĻā§āĻāĻ¨āĻžāĻ°-āĻ¸ā§āĻā§āĻ°āĻžāĻāĻāĻžāĻ°-āĻā§āĻ¸ā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻā§āĻ¯āĻžāĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻĄāĻāĻžāĻ° āĻ°ā§āĻāĻŋāĻ¸ā§āĻā§āĻ°āĻŋāĻ¤ā§ āĻĒāĻžāĻ āĻžāĻ¨ā§ āĻšāĻ¯āĻŧāĨ¤
- āĻāĻ° āĻĒāĻ°ā§, āĻāĻŋāĻ¤ā§āĻ°āĻāĻŋ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧ - āĻā§āĻŦāĻžāĻ°āĻ¨ā§āĻāĻ¸ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
- āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ˛āĻā§āĻ āĻļā§āĻ°ā§ āĻšāĻ˛ā§
skaffold dev
, āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻāĻŽāĻ°āĻž āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻĨā§āĻā§ āĻ˛āĻāĻā§āĻ˛āĻŋ āĻĒā§āĻ¤ā§ āĻļā§āĻ°ā§ āĻāĻ°āĻŋ, āĻāĻŦāĻ Skaffold āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻā§āĻ˛āĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻĒā§āĻā§āĻˇāĻž āĻāĻ°ā§āĨ¤
āĻ¸ā§āĻā§āĻ¯āĻžāĻĢā§āĻ˛ā§āĻĄ āĻ
āĻĒāĻžāĻ°ā§āĻļāĻ¨ā§āĻ° āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧā§āĻ° āĻāĻŋāĻ¤ā§āĻ°
āĻ āĻ¨ā§āĻļā§āĻ˛āĻ¨ āĻāĻ°āĻž. āĻ¸ā§āĻā§āĻ¯āĻžāĻĢā§āĻ˛ā§āĻĄ āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻā§
Skaffold āĻāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°āĻ¤ā§, āĻāĻŽāĻŋ āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¨ā§āĻŦ
Skaffold āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°ā§āĻ¨:
curl -Lo skaffold https://storage.googleapis.com/skaffold/releases/latest/skaffold-linux-amd64
chmod +x skaffold
sudo mv skaffold /usr/local/bin
skaffold version
v0.37.1
āĻāĻ¸ā§āĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¸āĻš āĻ¸ā§āĻā§āĻ¯āĻžāĻĢā§āĻ˛ā§āĻĄā§āĻ° āĻ¸āĻāĻā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ āĻā§āĻ˛ā§āĻ¨ āĻāĻ°āĻŋ:
git clone https://github.com/GoogleContainerTools/skaffold
cd skaffold/examples/microservices
āĻāĻŽāĻŋ āĻĻā§āĻāĻŋ āĻĒāĻĄ āĻ¸āĻš āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻŦā§āĻā§ āĻ¨āĻŋāĻ¯āĻŧā§āĻāĻŋ, āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋāĻ¤ā§ āĻāĻāĻāĻŋ āĻā§āĻ āĻā§ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻāĻāĻŋ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻšāĻ˛ āĻĢā§āĻ°āĻ¨ā§āĻāĻāĻ¨ā§āĻĄ (leeroy-web), āĻ¯āĻž āĻ āĻ¨ā§āĻ°ā§āĻ§āĻāĻŋāĻā§ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§ āĻĒā§āĻ¨āĻāĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°ā§ - āĻŦā§āĻ¯āĻžāĻāĻāĻ¨ā§āĻĄ (leeroy-app)āĨ¤ āĻĻā§āĻāĻž āĻ¯āĻžāĻ āĻāĻāĻž āĻā§āĻŽāĻ¨ āĻ˛āĻžāĻā§:
~/skaffold/examples/microservices # tree
.
âââ leeroy-app
â âââ app.go
â âââ Dockerfile
â âââ kubernetes
â âââ deployment.yaml
âââ leeroy-web
â âââ Dockerfile
â âââ kubernetes
â â âââ deployment.yaml
â âââ web.go
âââ README.adoc
âââ skaffold.yaml
4 directories, 8 files
leeroy-app āĻāĻŦāĻ leeroy-web āĻāĻ āĻā§āĻĄāĻāĻŋ āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧāĻāĻžāĻŦā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ Go āĻā§āĻĄ āĻāĻŦāĻ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ Dockerfiles āĻ§āĻžāĻ°āĻŖ āĻāĻ°ā§:
~/skaffold/examples/microservices # cat leeroy-app/Dockerfile
FROM golang:1.12.9-alpine3.10 as builder
COPY app.go .
RUN go build -o /app .
FROM alpine:3.10
CMD ["./app"]
COPY --from=builder /app .
āĻāĻŽāĻŋ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻā§āĻĄ āĻĻā§āĻŦ āĻ¨āĻž - āĻāĻāĻŋ āĻāĻžāĻ¨āĻž āĻ¯āĻĨā§āĻˇā§āĻ leeroy-web
āĻ
āĻ¨ā§āĻ°ā§āĻ§ āĻā§āĻ°āĻšāĻŖ āĻāĻ°ā§ āĻāĻŦāĻ āĻ¤āĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻā§āĻ¸āĻŋ āĻĻā§āĻ¯āĻŧ leeroy-app
. āĻ¤āĻžāĻ āĻĢāĻžāĻāĻ˛ā§ Deployment.yaml
āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻāĻā§ app
(āĻ
āĻā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§āĻŖ āĻ°āĻžāĻāĻāĻŋāĻ āĻāĻ¨ā§āĻ¯)āĨ¤ āĻĒāĻĄ āĻĒā§āĻ°ā§āĻ web
āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§ āĻĻā§āĻ°ā§āĻ¤ āĻ
ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻ°āĻž āĻāĻāĻŋ āĻ¨āĻŋāĻā§āĻĻā§āĻ° āĻāĻžāĻā§ āĻĢāĻ°ā§āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻāĻ°āĻŦāĨ¤
āĻŽāĻ¨ā§ āĻšāĻā§āĻā§ skaffold.yaml
:
~/skaffold/examples/microservices # cat skaffold.yaml
apiVersion: skaffold/v1beta13
kind: Config
build:
artifacts:
- image: leeroy-web
context: ./leeroy-web/
- image: leeroy-app
context: ./leeroy-app/
deploy:
kubectl:
manifests:
- ./leeroy-web/kubernetes/*
- ./leeroy-app/kubernetes/*
portForward:
- resourceType: deployment
resourceName: leeroy-web
port: 8080
localPort: 9000
āĻāĻĒāĻ°ā§ āĻāĻ˛ā§āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ§āĻžāĻĒ āĻāĻāĻžāĻ¨ā§ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻāĻžāĻĄāĻŧāĻžāĻ, āĻā§āĻ˛ā§āĻŦāĻžāĻ˛ āĻ¸ā§āĻāĻŋāĻāĻ¸ āĻ¸āĻš āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻ˛āĻ āĻ°āĻ¯āĻŧā§āĻā§ - ~/.skaffold/config
. āĻāĻāĻŋ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻŋ āĻŦāĻž CLI āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻž āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ - āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻāĻ°āĻāĻŽ:
skaffold config set --global local-cluster true
āĻāĻ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻā§āĻ˛ā§āĻŦāĻžāĻ˛ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻ¸ā§āĻ āĻāĻ°āĻŦā§ local-cluster
āĻ
āĻ°ā§āĻĨā§ true
, āĻ¯āĻžāĻ° āĻĒāĻ°ā§ Skaffold āĻĻā§āĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻ°ā§āĻāĻŋāĻ¸ā§āĻā§āĻ°āĻŋ āĻāĻŽā§āĻ āĻ§āĻžāĻā§āĻāĻž āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻŦā§ āĻ¨āĻž. āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧāĻāĻžāĻŦā§ āĻŦāĻŋāĻāĻžāĻļ āĻāĻ°āĻā§āĻ¨, āĻāĻĒāĻ¨āĻŋ āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧāĻāĻžāĻŦā§ āĻāĻŦāĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻāĻ āĻāĻŽāĻžāĻ¨ā§āĻĄāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤
āĻāĻŦāĻžāĻ° skaffold.yaml
:
- āĻŽāĻā§āĻā§
build
āĻāĻŽāĻ°āĻž āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻāĻŋ āĻ¯ā§ āĻāĻĒāĻ¨āĻžāĻā§ āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧāĻāĻžāĻŦā§ āĻāĻŦāĻŋāĻāĻŋ āĻ¸āĻāĻā§āĻ°āĻš āĻ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻŦāĻŋāĻ˛ā§āĻĄāĻāĻŋ āĻĒā§āĻ°āĻĨāĻŽāĻŦāĻžāĻ° āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻĒāĻ°ā§, āĻāĻŽāĻ°āĻž āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤āĻā§āĻ˛āĻŋ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻŦ:// Ņ.Đē. Minikube ŅОСдаĐĩŅ ĐēĐģĐ°ŅŅĐĩŅ в ĐžŅĐ´ĐĩĐģŅĐŊОК виŅŅŅĐ°ĐģŅĐŊОК ĐŧĐ°ŅиĐŊĐĩ, // ĐŋŅидĐĩŅŅŅ ĐŋŅĐžĐŊиĐēĐŊŅŅŅ вĐŊŅŅŅŅ, ŅŅОйŅ ĐŊĐ°ĐšŅи ОйŅаСŅ # minikube ssh $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE leeroy-app 7d55a50803590b2ff62e47e6f240723451f3ef6f8c89aeb83b34e661aa287d2e 7d55a5080359 4 hours ago 13MB leeroy-app v0.37.1-171-g0270a0c-dirty 7d55a5080359 4 hours ago 13MB leeroy-web 5063bfb29d984db1ff70661f17d6efcc5537f2bbe6aa6907004ad1ab38879681 5063bfb29d98 5 hours ago 13.1MB leeroy-web v0.37.1-171-g0270a0c-dirty 5063bfb29d98 5 hours ago 13.1MB
āĻāĻĒāĻ¨āĻŋ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻā§āĻā§āĻ¨, āĻ¸ā§āĻā§āĻ¯āĻžāĻĢā§āĻ˛ā§āĻĄ āĻ¨āĻŋāĻā§āĻ āĻāĻŦāĻŋāĻā§āĻ˛āĻŋ āĻā§āĻ¯āĻžāĻ āĻāĻ°ā§āĻā§āĻ¨āĨ¤ āĻ¯āĻžāĻāĻšā§āĻ, āĻŦā§āĻļ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻā§āĻ¯āĻžāĻāĻŋāĻ āĻ¨ā§āĻ¤āĻŋ āĻ¸āĻŽāĻ°ā§āĻĨāĻŋāĻ¤āĨ¤
- āĻāĻ°āĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§ āĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧ
context: ./leeroy-app/
, āĻ āĻ°ā§āĻĨāĻžā§ āĻāĻŋāĻ¤ā§āĻ°āĻāĻŋ āĻ¯ā§ āĻĒā§āĻ°ā§āĻā§āĻˇāĻžāĻĒāĻā§ āĻ¸āĻāĻā§āĻ°āĻš āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻ¤āĻž āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ - āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ° āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧā§, āĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧ āĻ¯ā§ āĻāĻŽāĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻŽā§āĻ¯āĻžāĻ¨āĻŋāĻĢā§āĻ¸ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ kubectl āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻŽāĻžāĻ¸ā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦāĨ¤
-
PortForward
: āĻāĻŽāĻ°āĻž āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻ¯ā§āĻāĻžāĻŦā§ āĻĒā§āĻ°ā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻĢāĻ°āĻāĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻāĻ°āĻŋ āĻ¤āĻžāĻ° āĻ āĻ¨ā§āĻ°ā§āĻĒkubectl port-forward
, āĻāĻŽāĻ°āĻž āĻ¸ā§āĻā§āĻ¯āĻžāĻĢā§āĻ˛ā§āĻĄāĻā§ āĻāĻ āĻāĻŽāĻžāĻ¨ā§āĻĄāĻāĻŋ āĻāĻ˛ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻ¨āĻž āĻĻāĻŋāĻāĨ¤ āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧ āĻĒā§āĻ°ā§āĻ 9000 āĻ¨āĻžāĻŽ āĻ¸āĻš āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ¯āĻŧ 8080 āĻ āĻĢāĻ°ā§āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻāĻ°āĻž āĻšāĻ¯āĻŧleeroy-web
.
āĻāĻāĻž āĻāĻžāĻ˛ā§ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ skaffold dev
: āĻĻāĻ˛āĻāĻŋ āĻāĻāĻāĻŋ āĻāĻ˛āĻŽāĻžāĻ¨ "āĻĢāĻŋāĻĄāĻŦā§āĻ¯āĻžāĻ āĻ˛ā§āĻĒ" āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦā§, āĻ¯ā§āĻŽāĻ¨ āĻāĻāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¸āĻŦāĻāĻŋāĻā§āĻ āĻ¸āĻāĻā§āĻ°āĻš āĻāĻ°āĻŦā§ āĻ¨āĻž āĻāĻŦāĻ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻŦā§, āĻ¤āĻŦā§ āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻ āĻŽā§āĻšā§āĻ°ā§āĻ¤ā§ āĻĒāĻĄā§āĻ° āĻ
āĻŦāĻ¸ā§āĻĨāĻž āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§āĻ āĻŦāĻ˛āĻŦā§, āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻā§āĻ˛āĻŋ āĻ¨āĻŋāĻ°ā§āĻā§āĻˇāĻŖ āĻāĻ°āĻŦā§ āĻāĻŦāĻ āĻĒāĻĄāĻā§āĻ˛āĻŋāĻ° āĻ
āĻŦāĻ¸ā§āĻĨāĻž āĻāĻĒāĻĄā§āĻ āĻāĻ°āĻŦā§āĨ¤
āĻāĻāĻžāĻ¨ā§ āĻ˛āĻā§āĻ āĻĢāĻ˛āĻžāĻĢāĻ˛ skaffold dev --port-forward
āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ:
āĻĒā§āĻ°āĻĨāĻŽāĻ¤, āĻāĻĒāĻ¨āĻŋ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻ¯ā§ āĻā§āĻ¯āĻžāĻļā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻā§āĻā§āĨ¤ āĻāĻ° āĻĒāĻ°ā§, āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻĒā§āĻ°ā§āĻāĻā§āĻ˛āĻŋ āĻĢāĻ°ā§āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻ¯ā§āĻšā§āĻ¤ā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ --port-forward
, Skaffold āĻŦāĻ¨ā§āĻĻāĻ° āĻĢāĻ°ā§āĻ¯āĻŧāĻžāĻ°ā§āĻĄ web
, āĻ¤āĻžāĻā§ āĻāĻŋāĻā§āĻāĻžāĻ¸āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻžāĻ¨ā§ app
āĻ¤āĻŋāĻ¨āĻŋ āĻ¤āĻžāĻ° āĻ¨āĻŋāĻāĻ¸ā§āĻŦ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻžāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋāĻ¤ā§ āĻ¨āĻŋāĻā§āĻˇā§āĻĒ āĻāĻ°ā§āĻāĻŋāĻ˛ā§āĻ¨ (āĻ¨āĻŋāĻāĻāĻ¤āĻŽ āĻŦāĻŋāĻ¨āĻžāĻŽā§āĻ˛ā§āĻ¯ā§ āĻŦā§āĻā§ āĻ¨āĻŋāĻ¨)āĨ¤ āĻāĻ° āĻĒāĻ°ā§, āĻāĻŽāĻ°āĻž āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻā§āĻ˛āĻŋ āĻĨā§āĻā§ āĻĒā§āĻ°āĻĨāĻŽ āĻ˛āĻāĻā§āĻ˛āĻŋ āĻĒāĻžāĻāĨ¤
āĻāĻāĻž āĻāĻžāĻ āĻāĻ°ā§ āĻāĻŋāĻ¨āĻž āĻā§āĻ āĻāĻ°āĻž āĻ¯āĻžāĻ?
~/skaffold/examples/microservices # kubectl get po
NAME READY STATUS RESTARTS AGE
leeroy-app-6998dfcc95-2nxvf 1/1 Running 0 103s
leeroy-web-69f7d47c9d-5ff77 1/1 Running 0 103s
~/skaffold/examples/microservices # curl localhost:9000
leeroooooy app!!!
āĻĢāĻžāĻāĻ˛ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻž āĻšāĻā§āĻā§ leeroy-app/app.go
- āĻāĻ¯āĻŧā§āĻ āĻ¸ā§āĻā§āĻ¨ā§āĻĄ āĻā§āĻā§ āĻ¯āĻžāĻ¯āĻŧ... āĻāĻŦāĻ:
~/skaffold/examples/microservices # kubectl get po
NAME READY STATUS RESTARTS AGE
leeroy-app-ffd79d986-l6nwp 1/1 Running 0 11s
leeroy-web-69f7d47c9d-5ff77 1/1 Running 0 4m59s
~/skaffold/examples/microservices # curl localhost:9000
leeroooooy Habr!!!
āĻāĻāĻ āĻ¸āĻŽāĻ¯āĻŧā§, āĻ¸ā§āĻā§āĻ¯āĻžāĻĢā§āĻ˛ā§āĻĄ āĻ¨āĻŋāĻā§āĻ āĻāĻ¨āĻ¸ā§āĻ˛ā§ āĻāĻā§āĻ° āĻŽāĻ¤ā§ āĻāĻāĻ āĻāĻŋāĻ¨āĻŋāĻ¸ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°ā§āĻā§, āĻāĻāĻāĻŋ āĻŦāĻŋāĻ¨ā§āĻĻā§ āĻŦāĻžāĻĻ āĻĻāĻŋāĻ¯āĻŧā§: āĻāĻāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ°ā§āĻ˛ āĻāĻāĻ āĻšāĻ¯āĻŧā§āĻā§ leeroy-app
, āĻāĻŦāĻ āĻ¸āĻŦ āĻāĻāĻŦāĻžāĻ°ā§ āĻ¨āĻ¯āĻŧāĨ¤
āĻāĻ°āĻ āĻ āĻ¨ā§āĻļā§āĻ˛āĻ¨
āĻāĻāĻŋāĻ āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°āĻžāĻ° āĻŽāĻ¤ā§ āĻ¯ā§ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻ¸ā§āĻā§āĻ¯āĻžāĻĢā§āĻ˛ā§āĻĄā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°āĻā§āĻ˛āĻŋ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻŦā§āĻāĻ¸ā§āĻā§āĻ°ā§āĻ¯āĻžāĻĒ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ init
, āĻ¯āĻž āĻā§āĻŦ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻāĻ¨āĻāĨ¤ āĻāĻāĻžāĻĄāĻŧāĻžāĻ, āĻāĻĒāĻ¨āĻŋ āĻŦā§āĻļ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻ˛āĻŋāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨: āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ā§ āĻĄā§āĻā§āĻ˛āĻĒāĻŽā§āĻ¨ā§āĻ āĻāĻžāĻ˛āĻžāĻ¨ āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻŽāĻžāĻ¨ā§āĻĄā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸ā§āĻā§āĻā§ āĻ°ā§āĻ˛ āĻāĻāĻ āĻāĻ°ā§āĻ¨ run
(āĻāĻāĻ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻšāĻŋāĻ¸āĻžāĻŦā§ dev
, āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻā§āĻ˛āĻŋ āĻ¨āĻŋāĻ°ā§āĻā§āĻˇāĻŖ āĻāĻ°ā§ āĻ¨āĻž), āĻāĻāĻāĻŋ āĻāĻŋāĻ¨ā§āĻ¨ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĨ¤
āĻāĻžāĻāĻžāĻā§āĻĻāĻžāĻ° āĻāĻĒāĻ° āĻāĻā§
āĻ¸ā§āĻā§āĻ¯āĻžāĻĢā§āĻ˛ā§āĻĄā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ¸āĻŽā§āĻāĻžāĻŦā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻāĻāĻāĻŋ āĻĻā§āĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§ āĻāĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻž āĻāĻ°āĻžāĨ¤ āĻĒā§āĻ°āĻ¤ā§āĻ¯ā§āĻā§ āĻ¤āĻžāĻĻā§āĻ° āĻ¨āĻŋāĻāĻ¸ā§āĻŦ āĻšāĻžāĻ°ā§āĻĄāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ°ā§ āĻŽāĻŋāĻ¨āĻŋāĻā§āĻŦ āĻāĻžāĻ˛āĻžāĻ¤ā§ āĻ¸ā§āĻŦāĻžāĻā§āĻāĻ¨ā§āĻĻā§āĻ¯āĻŦā§āĻ§ āĻāĻ°ā§ āĻ¨āĻž, āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋ āĻ°ā§āĻ˛ āĻāĻāĻ āĻāĻ°ā§ āĻāĻŦāĻ āĻāĻāĻŋ āĻĒāĻ°ā§āĻ¯āĻžāĻĒā§āĻ¤āĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°āĻŦā§ āĻŦāĻ˛ā§ āĻāĻļāĻž āĻāĻ°ā§... āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻ¸ā§āĻā§āĻ¯āĻžāĻĢā§āĻ˛ā§āĻĄ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻāĻŋ āĻĒā§āĻ°ā§āĻĒā§āĻ°āĻŋ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻ°ā§, āĻ¯āĻž āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻ°ā§āĻĄāĻĄāĻŋāĻ āĻāĻā§āĻāĻŋāĻ¨āĻŋāĻ¯āĻŧāĻžāĻ°āĻĻā§āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž, āĻ¯ā§āĻŽāĻ¨ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻā§ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ āĻāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§
āĻāĻŦāĻ āĻŽāĻ§ā§āĻ¯ā§
āĻāĻĒāĻ¸āĻāĻšāĻžāĻ°
āĻ¸ā§āĻā§āĻ¯āĻžāĻĢā§āĻ˛ā§āĻĄ āĻšāĻ˛ āĻĒāĻžāĻāĻĒāĻ˛āĻžāĻāĻ¨ āĻ¤ā§āĻ°āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻāĻ¨āĻ āĻā§āĻ˛ āĻ¯āĻž āĻā§āĻŦāĻžāĻ°āĻ¨ā§āĻā§ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻā§āĻ˛āĻŋāĻā§ āĻ°ā§āĻ˛ āĻāĻāĻ āĻāĻ°ā§ āĻāĻŦāĻ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻāĻāĻžāĻŦā§ āĻāĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ° āĻāĻĒāĻ° āĻĻā§āĻˇā§āĻāĻŋ āĻ¨āĻŋāĻŦāĻĻā§āĻ§ āĻāĻ°ā§ā§ˇ āĻāĻāĻŋ āĻāĻāĻāĻŋ "āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤" āĻĒāĻžāĻāĻĒāĻ˛āĻžāĻāĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻŦā§āĻļ āĻ¸āĻšāĻ āĻāĻ°ā§ āĻ¤ā§āĻ˛ā§ āĻ¯āĻž āĻŦāĻŋāĻāĻžāĻļāĻāĻžāĻ°ā§āĻ° āĻŽā§āĻ˛āĻŋāĻ āĻāĻžāĻšāĻŋāĻĻāĻžāĻā§āĻ˛āĻŋāĻā§ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°ā§, āĻ¤āĻŦā§ āĻ¯āĻĻāĻŋ āĻāĻā§āĻāĻž āĻšāĻ¯āĻŧ, āĻāĻĒāĻ¨āĻŋ āĻŦā§āĻšāĻ¤ā§āĻ¤āĻ° āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻā§āĻ˛āĻŋ āĻ¸āĻāĻāĻ āĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ā§ˇ āĻ¸āĻŋāĻāĻ/āĻ¸āĻŋāĻĄāĻŋ āĻĒā§āĻ°āĻ¸ā§āĻ¸ā§ āĻ¸ā§āĻā§āĻ¯āĻžāĻĢā§āĻ˛ā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻāĻāĻāĻŋ āĻ¸ā§āĻĒāĻˇā§āĻ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻšāĻŋāĻ¸ā§āĻŦā§
āĻ¸ā§āĻā§āĻ¯āĻžāĻĢā§āĻ˛ā§āĻĄā§āĻ° āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§āĻ GitHub-āĻ āĻĒā§āĻ°āĻžāĻ¯āĻŧ 8000+ āĻ¤āĻžāĻ°āĻāĻž āĻ°āĻ¯āĻŧā§āĻā§, āĻāĻāĻŋ Google āĻĻā§āĻŦāĻžāĻ°āĻž āĻŦāĻŋāĻāĻžāĻļāĻŋāĻ¤ āĻāĻŦāĻ āĻāĻ° āĻ
āĻāĻļ
āĻĻā§āĻ°āĻˇā§āĻāĻŦā§āĻ¯
āĻāĻŽāĻžāĻĻā§āĻ° āĻŦā§āĻ˛āĻā§āĻ āĻĒāĻĄāĻŧā§āĻ¨:
- ÂĢ
āĻā§āĻŦāĻžāĻ°āĻ¨ā§āĻāĻ¸ā§ āĻāĻžāĻ˛āĻŋāĻ¤ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻŦāĻŋāĻāĻžāĻļāĻāĻžāĻ°ā§āĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻ°āĻā§āĻāĻžāĻŽ "; - ÂĢ
werf - Kubernetes-āĻ CI/CD-āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻ˛ (āĻāĻāĻžāĻ°āĻāĻŋāĻ āĻāĻŦāĻ āĻāĻŋāĻĄāĻŋāĻ āĻ°āĻŋāĻĒā§āĻ°ā§āĻ) "; - ÂĢ
āĻŦāĻžāĻāĻžāĻ¨ v0.10.0: āĻāĻĒāĻ¨āĻžāĻ° āĻ˛ā§āĻ¯āĻžāĻĒāĻāĻĒā§āĻ° Kubernetes āĻĻāĻ°āĻāĻžāĻ° āĻ¨ā§āĻ "; - ÂĢ
Kubernetes āĻāĻŋāĻĒāĻ¸ āĻāĻŦāĻ āĻā§āĻļāĻ˛: āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧ āĻāĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ āĻāĻŦāĻ āĻā§āĻ˛āĻŋāĻĒā§āĻ°ā§āĻ¸ā§āĻ¨ā§āĻ¸ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ Âģ.
āĻāĻ¤ā§āĻ¸: www.habr.com