āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻ¸ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ°āĻžāĻ¨āĻŸāĻžāĻ‡āĻŽ āĻĒāĻ°āĻŋāĻŦā§‡āĻļ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻĄāĻ•āĻžāĻ°ā§‡āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ CRI-O: CentOS 8 āĻ āĻ¸ā§‡āĻŸāĻ†āĻĒ

āĻšā§āĻ¯āĻžāĻ˛ā§‹! āĻ†āĻŽāĻžāĻ° āĻ¨āĻžāĻŽ āĻ¸ā§‡āĻ°ā§āĻ—ā§‡āĻ‡, āĻ†āĻŽāĻŋ āĻ¸āĻžāĻ°ā§āĻĢ āĻ DevOps. Surf-āĻāĻ° DevOps āĻŦāĻŋāĻ­āĻžāĻ—ā§‡āĻ° āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻŦāĻŋāĻļā§‡āĻˇāĻœā§āĻžāĻĻā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻŽāĻŋāĻĨāĻ¸ā§āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻž āĻāĻŦāĻ‚ āĻ•āĻžāĻœā§‡āĻ° āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻāĻ•ā§€āĻ­ā§‚āĻ¤ āĻ•āĻ°āĻž āĻ¨āĻ¯āĻŧ, āĻ¤āĻžāĻ° āĻ¨āĻŋāĻœāĻ¸ā§āĻŦ āĻĒāĻ°āĻŋāĻ•āĻžāĻ āĻžāĻŽā§‹ āĻāĻŦāĻ‚ āĻ—ā§āĻ°āĻžāĻšāĻ•ā§‡āĻ° āĻĒāĻ°āĻŋāĻ•āĻžāĻ āĻžāĻŽā§‹ āĻ‰āĻ­āĻ¯āĻŧ āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡āĻ‡ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋāĻ—ā§āĻ˛āĻŋ āĻ¸āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻ­āĻžāĻŦā§‡ āĻ—āĻŦā§‡āĻˇāĻŖāĻž āĻ“ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°āĻžāĨ¤

āĻ¨ā§€āĻšā§‡ āĻ†āĻŽāĻŋ āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ°āĻ—ā§āĻ˛āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ•ā§‡āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻ—ā§āĻ˛āĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ•āĻŋāĻ›ā§ āĻ•āĻĨāĻž āĻŦāĻ˛āĻŦ āĻ¯āĻž āĻ†āĻŽāĻ°āĻž āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻ…āĻ§ā§āĻ¯āĻ¯āĻŧāĻ¨ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¸āĻŽā§āĻŽā§āĻ–ā§€āĻ¨ āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛āĻžāĻŽ CentOS 8 āĻāĻŦāĻ‚ āĻ•āĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ CRI-O āĻāĻŦāĻ‚ āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻĻā§āĻ°ā§āĻ¤ āĻāĻ•āĻŸāĻŋ āĻāĻ•ā§āĻ¸āĻŋāĻ•āĻŋāĻ‰āĻŸā§‡āĻŦāĻ˛ āĻĒāĻ°āĻŋāĻŦā§‡āĻļ āĻ¸ā§‡āĻŸ āĻ†āĻĒ āĻ•āĻ°āĻŦā§‡āĻ¨ Kubernetes.

āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻ¸ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ°āĻžāĻ¨āĻŸāĻžāĻ‡āĻŽ āĻĒāĻ°āĻŋāĻŦā§‡āĻļ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻĄāĻ•āĻžāĻ°ā§‡āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ CRI-O: CentOS 8 āĻ āĻ¸ā§‡āĻŸāĻ†āĻĒ

āĻ•ā§‡āĻ¨ āĻĄāĻ•āĻžāĻ° CentOS 8 āĻ āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ­ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻž?

āĻ¸āĻ°ā§āĻŦāĻļā§‡āĻˇ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻ°āĻŋāĻ˛āĻŋāĻœ āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻ•āĻ°āĻžāĻ° āĻĒāĻ°ā§‡ RHEL 8 āĻŦāĻž CentOS 8 āĻ•ā§‡āĻ‰ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻ¨āĻž āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻ•āĻ°ā§āĻ¨: āĻāĻ‡ āĻĄāĻŋāĻ¸ā§āĻŸā§āĻ°āĻŋāĻŦāĻŋāĻ‰āĻļāĻ¨ āĻāĻŦāĻ‚ āĻ…āĻĢāĻŋāĻ¸āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻ°āĻŋāĻĒā§‹āĻœāĻŋāĻŸāĻ°āĻŋāĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¨ā§‡āĻ‡ āĻĄāĻ•āĻļā§āĻ°āĻŽāĻŋāĻ•, āĻ¯āĻž āĻ†āĻĻāĻ°ā§āĻļāĻ—āĻ¤āĻ­āĻžāĻŦā§‡ āĻāĻŦāĻ‚ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ°ā§€āĻ­āĻžāĻŦā§‡ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻœāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°ā§‡ āĻĒā§‹āĻĄāĻŽā§āĻ¯āĻžāĻ¨, āĻŦāĻŋāĻ˛ā§āĻĄāĻš (āĻĄāĻŋāĻĢāĻ˛ā§āĻŸāĻ°ā§‚āĻĒā§‡ āĻŦāĻŋāĻ¤āĻ°āĻŖā§‡ āĻ‰āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤) āĻāĻŦāĻ‚ CRI-O. āĻāĻŸāĻŋ āĻ“āĻĒā§‡āĻ¨ āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ° āĻ‡āĻ¨āĻŋāĻļāĻŋāĻ¯āĻŧā§‡āĻŸāĻŋāĻ­ (āĻ“āĻ¸āĻŋāĻ†āĻ‡) āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻ…āĻ‚āĻļ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ°ā§‡āĻĄ āĻšā§āĻ¯āĻžāĻŸ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ‰āĻ¨ā§āĻ¨āĻ¤ āĻŽāĻžāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻŋāĻ• āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§‡āĻ° āĻ•āĻžāĻ°āĻŖā§‡āĨ¤

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

āĻ­ā§āĻ˛āĻ¤ā§āĻ°ā§āĻŸāĻŋ āĻĄāĻ•āĻļā§āĻ°āĻŽāĻŋāĻ• āĻāĻŦāĻ‚ āĻ¨āĻ¤ā§āĻ¨ āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ°āĻŸāĻŋāĻ° āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻ—ā§āĻ˛āĻŋ āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡ āĻ•āĻŋāĻ›ā§ āĻŦāĻŋāĻļāĻĻā§‡ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻāĻ‡ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻŸāĻŋ, āĻāĻŦāĻ‚ OCI āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ•ā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻļāĻĻ āĻŦāĻŋāĻŦāĻ°āĻŖ āĻāĻŦāĻ‚ āĻāĻ° āĻ¸ā§āĻĨāĻžāĻĒāĻ¤ā§āĻ¯ āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯āĻ—ā§āĻ˛āĻŋ āĻ…āĻĢāĻŋāĻ¸āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻĄāĻ•ā§āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāĻ¨ āĻāĻŦāĻ‚ āĻ°ā§‡āĻĄ āĻšā§āĻ¯āĻžāĻŸ āĻĨā§‡āĻ•ā§‡ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻĒāĻžāĻ“āĻ¯āĻŧāĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ (āĻ–āĻžāĻ°āĻžāĻĒ āĻ¨āĻ¯āĻŧ āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ Red Hat āĻŦā§āĻ˛āĻ—ā§‡) āĻāĻŦāĻ‚ āĻ¤ā§ƒāĻ¤ā§€āĻ¯āĻŧ āĻĒāĻ•ā§āĻˇā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻĒāĻ°ā§āĻ¯āĻžāĻ˛ā§‹āĻšāĻ¨āĻž.

āĻĒā§āĻ°āĻ¸ā§āĻ¤āĻžāĻŦāĻŋāĻ¤ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ•ā§‡āĻ° āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻ•ā§€ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻžāĻ°āĻŋāĻ¤āĻž āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¤āĻž āĻ˛āĻ•ā§āĻˇ āĻ•āĻ°āĻž āĻ—ā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ:

  • āĻĒā§‹āĻĄāĻŽā§āĻ¯āĻžāĻ¨ — runC āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ° āĻāĻŦāĻ‚ āĻ‡āĻŽā§‡āĻœ āĻ¸ā§āĻŸā§‹āĻ°ā§‡āĻœā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻŽāĻŋāĻĨāĻ¸ā§āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž;
  • āĻŦāĻŋāĻ˛ā§āĻĄāĻš — āĻ¸āĻŽāĻžāĻŦā§‡āĻļ āĻāĻŦāĻ‚ āĻ°ā§‡āĻœāĻŋāĻ¸ā§āĻŸā§āĻ°āĻŋāĻ¤ā§‡ āĻ›āĻŦāĻŋ āĻ†āĻĒāĻ˛ā§‹āĻĄ āĻ•āĻ°āĻž;
  • CRI-O — āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ° āĻ…āĻ°ā§āĻ•ā§‡āĻ¸ā§āĻŸā§āĻ°ā§‡āĻļāĻ¨ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻšāĻ¯ā§‹āĻ—ā§āĻ¯ āĻĒāĻ°āĻŋāĻŦā§‡āĻļ (āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻ¸)āĨ¤

āĻ†āĻŽāĻŋ āĻŽāĻ¨ā§‡ āĻ•āĻ°āĻŋ āĻ¯ā§‡ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ•ā§‡āĻ° āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻ…ā§āĻ¯āĻžāĻ•āĻļāĻ¨ā§‡āĻ° āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ¸ā§āĻ•āĻŋāĻŽāĻŸāĻŋ āĻŦā§‹āĻāĻžāĻ° āĻœāĻ¨ā§āĻ¯, āĻāĻ–āĻžāĻ¨ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻšāĻŋāĻ¤ā§āĻ° āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°āĻžāĻ° āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļ āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻšā§āĻ›ā§‡ Kubernetes c āĻ°āĻžāĻ¨āĻ¸āĻŋ āĻāĻŦāĻ‚ āĻ¨āĻŋāĻŽā§āĻ¨-āĻ¸ā§āĻ¤āĻ°ā§‡āĻ° āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ CRI-O:

āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻ¸ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ°āĻžāĻ¨āĻŸāĻžāĻ‡āĻŽ āĻĒāĻ°āĻŋāĻŦā§‡āĻļ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻĄāĻ•āĻžāĻ°ā§‡āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ CRI-O: CentOS 8 āĻ āĻ¸ā§‡āĻŸāĻ†āĻĒ

CRI-O и Kubernetes āĻāĻ•āĻ‡ āĻ°āĻŋāĻ˛āĻŋāĻœ āĻāĻŦāĻ‚ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻšāĻ•ā§āĻ° āĻŽā§‡āĻ¨ā§‡ āĻšāĻ˛ā§āĻ¨ (āĻ¸āĻžāĻŽāĻžā§āĻœāĻ¸ā§āĻ¯āĻ¤āĻž āĻŽā§āĻ¯āĻžāĻŸā§āĻ°āĻŋāĻ•ā§āĻ¸ āĻ–ā§āĻŦāĻ‡ āĻ¸āĻšāĻœ: āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ Kubernetes и CRI-O āĻŽāĻŋāĻ˛ā§‡ āĻ¯āĻžāĻ¯āĻŧ), āĻāĻŦāĻ‚ āĻāĻŸāĻŋ, āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻžāĻ°āĻĻā§‡āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻ‡ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ•ā§‡āĻ° āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•āĻ˛āĻžāĻĒā§‡āĻ° āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻāĻŦāĻ‚ āĻŦāĻŋāĻ¸ā§āĻ¤ā§ƒāĻ¤ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻžāĻ° āĻ‰āĻĒāĻ° āĻĢā§‹āĻ•āĻžāĻ¸ āĻ•āĻ°āĻžāĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŸāĻŋ āĻŦāĻŋāĻŦā§‡āĻšāĻ¨āĻžāĻ¯āĻŧ āĻ¨āĻŋāĻ¯āĻŧā§‡, āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¯ā§‡ āĻ•ā§‹āĻ¨āĻ“ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§‡āĻ° āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¤ā§‡ āĻ…āĻĒāĻžāĻ°ā§‡āĻļāĻ¨ā§‡ āĻ¸āĻ°ā§āĻŦāĻžāĻ§āĻŋāĻ• āĻ…āĻ°ā§āĻœāĻ¨āĻ¯ā§‹āĻ—ā§āĻ¯ āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻļā§€āĻ˛āĻ¤āĻž āĻ†āĻļāĻž āĻ•āĻ°āĻžāĻ° āĻ…āĻ§āĻŋāĻ•āĻžāĻ° āĻĻā§‡āĻ¯āĻŧ (āĻ†āĻĒā§‡āĻ•ā§āĻˇāĻŋāĻ• āĻšāĻžāĻ˛āĻ•āĻžāĻ¤āĻž āĻāĻ–āĻžāĻ¨ā§‡āĻ“ āĻ‰āĻĒāĻ•āĻžāĻ°ā§€āĨ¤ CRI-O āĻ¤ā§āĻ˛āĻ¨āĻžāĻ¯āĻŧ āĻĄāĻ•āĻļā§āĻ°āĻŽāĻŋāĻ• āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻžāĻ°āĻŋāĻ¤āĻžāĻ° āĻ‰āĻĻā§āĻĻā§‡āĻļā§āĻ¯āĻŽā§‚āĻ˛āĻ• āĻ¸ā§€āĻŽāĻžāĻŦāĻĻā§āĻ§āĻ¤āĻžāĻ° āĻ•āĻžāĻ°āĻŖā§‡)āĨ¤

āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ Kubernetes "āĻ¸āĻ āĻŋāĻ• āĻ‰āĻĒāĻžāĻ¯āĻŧ" āĻ‰āĻĒāĻžāĻ¯āĻŧ (āĻ“āĻ¸āĻŋāĻ†āĻ‡ āĻ…āĻ¨ā§āĻ¸āĻžāĻ°ā§‡, āĻ…āĻŦāĻļā§āĻ¯āĻ‡) āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ CRI-O āĻ‰āĻĒāĻ° CentOS 8 āĻ†āĻŽāĻ°āĻž āĻ•āĻŋāĻ›ā§ āĻ›ā§‹āĻŸāĻ–āĻžāĻŸā§‹ āĻ…āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻ° āĻ¸āĻŽā§āĻŽā§āĻ–ā§€āĻ¨ āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛āĻžāĻŽ, āĻ¯āĻž āĻ†āĻŽāĻ°āĻž āĻ¸āĻĢāĻ˛āĻ­āĻžāĻŦā§‡ āĻ•āĻžāĻŸāĻŋāĻ¯āĻŧā§‡ āĻ‰āĻ ā§‡āĻ›āĻŋāĨ¤ āĻ†āĻŽāĻŋ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ā§‡āĻļāĻ¨ āĻāĻŦāĻ‚ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻžāĻŦāĻ˛ā§€ āĻļā§‡āĻ¯āĻŧāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒā§‡āĻ°ā§‡ āĻ–ā§āĻļāĻŋ āĻšāĻŦ, āĻ¯āĻž āĻŽā§‹āĻŸ āĻĒā§āĻ°āĻžāĻ¯āĻŧ 10 āĻŽāĻŋāĻ¨āĻŋāĻŸ āĻ¸āĻŽāĻ¯āĻŧ āĻ¨ā§‡āĻŦā§‡āĨ¤

CRI-O āĻĢā§āĻ°ā§‡āĻŽāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ• āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ CentOS 8 āĻ āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻ¸ āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻŦā§‡āĻ¨

āĻĒā§‚āĻ°ā§āĻŦāĻļāĻ°ā§āĻ¤: āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻ•āĻ°āĻž āĻ¸āĻš āĻ•āĻŽāĻĒāĻ•ā§āĻˇā§‡ āĻāĻ•āĻŸāĻŋ āĻšā§‹āĻ¸ā§āĻŸā§‡āĻ° āĻ‰āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ (2 āĻ•ā§‹āĻ°, 4 āĻœāĻŋāĻŦāĻŋ āĻ°â€Œā§āĻ¯āĻžāĻŽ, āĻ•āĻŽāĻĒāĻ•ā§āĻˇā§‡ 15 āĻœāĻŋāĻŦāĻŋ āĻ¸ā§āĻŸā§‹āĻ°ā§‡āĻœ) CentOS 8 ("āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°" āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ā§‡āĻļāĻ¨ āĻĒā§āĻ°ā§‹āĻĢāĻžāĻ‡āĻ˛āĻŸāĻŋ āĻ¸ā§āĻĒāĻžāĻ°āĻŋāĻļ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ), āĻ¸ā§‡āĻ‡āĻ¸āĻžāĻĨā§‡ āĻ¸ā§āĻĨāĻžāĻ¨ā§€āĻ¯āĻŧ DNS-āĻ āĻāĻŸāĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ¨ā§āĻŸā§āĻ°āĻŋ (āĻļā§‡āĻˇ āĻ…āĻŦāĻ˛āĻŽā§āĻŦāĻ¨ āĻšāĻŋāĻ¸āĻžāĻŦā§‡, āĻ†āĻĒāĻ¨āĻŋ /etc/hosts-āĻ āĻāĻ•āĻŸāĻŋ āĻāĻ¨ā§āĻŸā§āĻ°āĻŋ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻĒā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨)āĨ¤ āĻāĻŦāĻ‚ āĻ­ā§āĻ˛āĻŦā§‡āĻ¨ āĻ¨āĻž āĻ…āĻĻāĻ˛āĻŦāĻĻāĻ˛ āĻ¨āĻŋāĻˇā§āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻ•āĻ°ā§āĻ¨.

āĻ†āĻŽāĻ°āĻž āĻŽā§‚āĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻšā§‹āĻ¸ā§āĻŸā§‡ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•āĻ˛āĻžāĻĒ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻ•āĻ°āĻŋ, āĻ¸āĻ¤āĻ°ā§āĻ• āĻĨāĻžāĻ•ā§āĻ¨āĨ¤

  1. āĻĒā§āĻ°āĻĨāĻŽ āĻ§āĻžāĻĒā§‡, āĻ†āĻŽāĻ°āĻž OS āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ° āĻ•āĻ°āĻŦ, CRI-O-āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ• āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¤āĻž āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻ“ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ° āĻ•āĻ°āĻŦāĨ¤
    • āĻšāĻ˛ā§āĻ¨ OS āĻ†āĻĒāĻĄā§‡āĻŸ āĻ•āĻ°āĻž āĻ¯āĻžāĻ•:
      dnf -y update
      

    • āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€āĻ¤ā§‡ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻĢāĻžāĻ¯āĻŧāĻžāĻ°āĻ“āĻ¯āĻŧāĻžāĻ˛ āĻāĻŦāĻ‚ SELinux āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ āĻāĻ–āĻžāĻ¨ā§‡ āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻ¨āĻŋāĻ°ā§āĻ­āĻ° āĻ•āĻ°ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻšā§‹āĻ¸ā§āĻŸ āĻŦāĻž āĻšā§‹āĻ¸ā§āĻŸāĻ°āĻž āĻ•ā§‹āĻ¨ āĻĒāĻ°āĻŋāĻŦā§‡āĻļā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻŦā§‡ āĻ¤āĻžāĻ° āĻ‰āĻĒāĻ°āĨ¤ āĻ†āĻĒāĻ¨āĻŋ āĻĨā§‡āĻ•ā§‡ āĻ¸ā§āĻĒāĻžāĻ°āĻŋāĻļ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§€ āĻāĻ•āĻŸāĻŋ āĻĢāĻžāĻ¯āĻŧāĻžāĻ°āĻ“āĻ¯āĻŧāĻžāĻ˛ āĻ¸ā§‡āĻŸ āĻ†āĻĒ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ āĻĄāĻ•ā§āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāĻ¨, āĻ…āĻĨāĻŦāĻž, āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻļā§āĻŦāĻ¸ā§āĻ¤ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•ā§‡ āĻĨāĻžāĻ•ā§‡āĻ¨ āĻŦāĻž āĻ¤ā§ƒāĻ¤ā§€āĻ¯āĻŧ āĻĒāĻ•ā§āĻˇā§‡āĻ° āĻĢāĻžāĻ¯āĻŧāĻžāĻ°āĻ“āĻ¯āĻŧāĻžāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡āĻ¨, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻĄāĻŋāĻĢāĻ˛ā§āĻŸ āĻœā§‹āĻ¨āĻŸāĻŋāĻ•ā§‡ āĻŦāĻŋāĻļā§āĻŦāĻ¸ā§āĻ¤ā§‡ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°ā§āĻ¨ āĻŦāĻž āĻĢāĻžāĻ¯āĻŧāĻžāĻ°āĻ“āĻ¯āĻŧāĻžāĻ˛ āĻŦāĻ¨ā§āĻ§ āĻ•āĻ°ā§āĻ¨:
      firewall-cmd --set-default-zone trusted
      
      firewall-cmd --reload

      āĻĢāĻžāĻ¯āĻŧāĻžāĻ°āĻ“āĻ¯āĻŧāĻžāĻ˛ āĻŦāĻ¨ā§āĻ§ āĻ•āĻ°āĻ¤ā§‡ āĻ†āĻĒāĻ¨āĻŋ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻ–āĻŋāĻ¤ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāĻŸāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨:

      systemctl disable --now firewalld
      

      SELinux āĻŦāĻ¨ā§āĻ§ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻŦāĻž "āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋāĻŽā§‚āĻ˛āĻ•" āĻŽā§‹āĻĄā§‡ āĻ¸ā§āĻ¯ā§āĻ‡āĻš āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡:

      setenforce 0
      
      sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

    • āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻ•āĻžāĻ°ā§āĻ¨ā§‡āĻ˛ āĻŽāĻĄāĻŋāĻ‰āĻ˛ āĻāĻŦāĻ‚ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻœāĻ—ā§āĻ˛āĻŋ āĻ˛ā§‹āĻĄ āĻ•āĻ°ā§āĻ¨, āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ¸ā§āĻŸāĻžāĻ°ā§āĻŸāĻ†āĻĒā§‡ "br_netfilter" āĻŽāĻĄāĻŋāĻ‰āĻ˛āĻŸāĻŋāĻ° āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻ˛ā§‹āĻĄāĻŋāĻ‚ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ° āĻ•āĻ°ā§āĻ¨:
      modprobe overlay
      
      modprobe br_netfilter
      
      echo "br_netfilter" >> /etc/modules-load.d/br_netfilter.conf
      
      dnf -y install iproute-tc
      

    • āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻŸ āĻĢāĻ°āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻĄāĻŋāĻ‚ āĻ¸āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻ•āĻ°āĻ¤ā§‡ āĻāĻŦāĻ‚ āĻŸā§āĻ°āĻžāĻĢāĻŋāĻ• āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•āĻ°āĻŖ āĻ¸āĻ āĻŋāĻ• āĻ•āĻ°āĻ¤ā§‡, āĻ†āĻŽāĻ°āĻž āĻ‰āĻĒāĻ¯ā§āĻ•ā§āĻ¤ āĻ¸ā§‡āĻŸāĻŋāĻ‚āĻ¸ āĻ•āĻ°āĻŦ:
      cat > /etc/sysctl.d/99-kubernetes-cri.conf <<EOF
      net.bridge.bridge-nf-call-iptables = 1
      net.ipv4.ip_forward = 1
      net.bridge.bridge-nf-call-ip6tables = 1
      EOF
      

      āĻ•āĻ°āĻž āĻ¸ā§‡āĻŸāĻŋāĻ‚āĻ¸ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°ā§āĻ¨:

      sysctl --system

    • āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ āĻ¸ā§‡āĻŸ āĻ•āĻ°ā§āĻ¨ CRI-O (āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ CRI-O, āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡ āĻ‰āĻ˛ā§āĻ˛āĻŋāĻ–āĻŋāĻ¤ āĻšāĻŋāĻ¸āĻžāĻŦā§‡, āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ āĻŽā§‡āĻ˛ā§‡ Kubernetes), āĻ¸āĻ°ā§āĻŦāĻļā§‡āĻˇ āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻļā§€āĻ˛ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ āĻĨā§‡āĻ•ā§‡ Kubernetes āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ā§‡ 1.18:
      export REQUIRED_VERSION=1.18
      

      āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻ¸āĻ‚āĻ—ā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ āĻ¯ā§‹āĻ— āĻ•āĻ°ā§āĻ¨:

      dnf -y install 'dnf-command(copr)'
      
      dnf -y copr enable rhcontainerbot/container-selinux
      
      curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable.repo https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable/CentOS_8/devel:kubic:libcontainers:stable.repo
      
      curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable:cri-o:$REQUIRED_VERSION.repo https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable:cri-o:$REQUIRED_VERSION/CentOS_8/devel:kubic:libcontainers:stable:cri-o:$REQUIRED_VERSION.repo

    • āĻāĻ–āĻ¨ āĻ†āĻŽāĻ°āĻž āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋ CRI-O:
      dnf -y install cri-o
      

      āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ā§‡āĻļāĻ¨ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻšāĻ˛āĻžāĻ•āĻžāĻ˛ā§€āĻ¨ āĻ†āĻŽāĻ°āĻž āĻ¯ā§‡ āĻĒā§āĻ°āĻĨāĻŽ āĻ¸ā§‚āĻ•ā§āĻˇā§āĻŽāĻ¤āĻžāĻ° āĻŽā§āĻ–ā§‹āĻŽā§āĻ–āĻŋ āĻšāĻ‡ āĻ¸ā§‡āĻĻāĻŋāĻ•ā§‡ āĻŽāĻ¨ā§‹āĻ¯ā§‹āĻ— āĻĻāĻŋāĻ¨: āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨āĻŸāĻŋ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻž āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ CRI-O āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻļā§āĻ°ā§ āĻ•āĻ°āĻžāĻ° āĻ†āĻ—ā§‡, āĻ¯ā§‡āĻšā§‡āĻ¤ā§ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻ•āĻ¨āĻŽāĻ¨ āĻ•āĻŽā§āĻĒā§‹āĻ¨ā§‡āĻ¨ā§āĻŸā§‡āĻ° āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻāĻ•āĻŸāĻŋ āĻĨā§‡āĻ•ā§‡ āĻ†āĻ˛āĻžāĻĻāĻž āĻ…āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡:

      sed -i 's//usr/libexec/crio/conmon//usr/bin/conmon/' /etc/crio/crio.conf

      āĻāĻ–āĻ¨ āĻ†āĻĒāĻ¨āĻŋ āĻĄā§‡āĻŽāĻ¨ āĻ¸āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻļā§āĻ°ā§ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ CRI-O:

      systemctl enable --now crio
      

      āĻ†āĻĒāĻ¨āĻŋ āĻĄā§‡āĻŽāĻ¨ āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨:

      systemctl status crio
      

  2. āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ā§‡āĻļāĻ¨ āĻāĻŦāĻ‚ āĻ¸āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻ•āĻ°āĻŖ Kubernetes.
    • āĻ†āĻ¸ā§āĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻ¸āĻ‚āĻ—ā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻ¯āĻžāĻ•:
      cat <<EOF > /etc/yum.repos.d/kubernetes.repo
      [kubernetes]
      name=Kubernetes
      baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-$basearch
      enabled=1
      gpgcheck=1
      repo_gpgcheck=1
      gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
      exclude=kubelet kubeadm kubectl
      EOF
      

      āĻāĻ–āĻ¨ āĻ†āĻŽāĻ°āĻž āĻ‡āĻ¨ā§āĻ¸āĻŸāĻ˛ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋ Kubernetes (āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ 1.18, āĻ‰āĻĒāĻ°ā§‡ āĻ‰āĻ˛ā§āĻ˛āĻŋāĻ–āĻŋāĻ¤):

      dnf install -y kubelet-1.18* kubeadm-1.18* kubectl-1.18* --disableexcludes=kubernetes

    • āĻĻā§āĻŦāĻŋāĻ¤ā§€āĻ¯āĻŧ āĻ—ā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ āĻ¸ā§‚āĻ•ā§āĻˇā§āĻŽāĻ¤āĻž: āĻ¯ā§‡āĻšā§‡āĻ¤ā§ āĻ†āĻŽāĻ°āĻž āĻāĻ•āĻŸāĻŋ āĻĄā§‡āĻŽāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻŋ āĻ¨āĻž āĻĄāĻ•āĻļā§āĻ°āĻŽāĻŋāĻ•āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ†āĻŽāĻ°āĻž āĻĄā§‡āĻŽāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻŋ CRI-O, āĻ˛āĻžā§āĻš āĻāĻŦāĻ‚ āĻ†āĻ°āĻŽā§āĻ­ āĻ•āĻ°āĻžāĻ° āĻ†āĻ—ā§‡ Kubernetes āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĢāĻžāĻ‡āĻ˛ /var/lib/kubelet/config.yaml-āĻ āĻ‰āĻĒāĻ¯ā§āĻ•ā§āĻ¤ āĻ¸ā§‡āĻŸāĻŋāĻ‚āĻ¸ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡, āĻĒā§āĻ°āĻĨāĻŽā§‡ āĻĒāĻ›āĻ¨ā§āĻĻāĻ¸āĻ‡ āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡:
      mkdir /var/lib/kubelet
      
      cat <<EOF > /var/lib/kubelet/config.yaml
      apiVersion: kubelet.config.k8s.io/v1beta1
      kind: KubeletConfiguration
      cgroupDriver: systemd
      EOF

    • āĻ¤ā§ƒāĻ¤ā§€āĻ¯āĻŧ āĻ—ā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ āĻĒāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻ¯āĻž āĻ†āĻŽāĻ°āĻž āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ā§‡āĻļāĻ¨ā§‡āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¸āĻŽā§āĻŽā§āĻ–ā§€āĻ¨ āĻšāĻ‡: āĻ†āĻŽāĻ°āĻž āĻ¯ā§‡ āĻĄā§āĻ°āĻžāĻ‡āĻ­āĻžāĻ°āĻŸāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡āĻ›āĻŋ āĻ¤āĻž āĻ¸āĻ¤ā§āĻ¤ā§āĻŦā§‡āĻ“ cgroup, āĻāĻŦāĻ‚ āĻ†āĻ°ā§āĻ—ā§āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻāĻ° āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĒāĻžāĻ¸ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻ•ā§āĻŦāĻ˛ā§‡āĻŸ āĻĒā§āĻ°āĻžāĻ¨ā§‹ (āĻ¯ā§‡āĻŽāĻ¨ āĻĄāĻ•ā§āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāĻ¨ā§‡ āĻ¸ā§āĻĒāĻˇā§āĻŸāĻ­āĻžāĻŦā§‡ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡), āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻĢāĻžāĻ‡āĻ˛ā§‡ āĻ†āĻ°ā§āĻ—ā§āĻŽā§‡āĻ¨ā§āĻŸ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡, āĻ…āĻ¨ā§āĻ¯āĻĨāĻžāĻ¯āĻŧ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ° āĻ†āĻ°āĻŽā§āĻ­ āĻ•āĻ°āĻž āĻšāĻŦā§‡ āĻ¨āĻž:
      cat /dev/null > /etc/sysconfig/kubelet
      
      cat <<EOF > /etc/sysconfig/kubelet
      KUBELET_EXTRA_ARGS=--container-runtime=remote --cgroup-driver=systemd --container-runtime-endpoint='unix:///var/run/crio/crio.sock'
      EOF

    • āĻāĻ–āĻ¨ āĻ†āĻŽāĻ°āĻž āĻĄā§‡āĻŽāĻ¨ āĻ¸āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋ āĻ•ā§āĻŦāĻ˛ā§‡āĻŸ:
      sudo systemctl enable --now kubelet
      

      āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻŽāĻ¤ āĻ•āĻ°ā§‡ āĻ¨āĻŋāĻ¤ā§‡ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ-āĻŦāĻŋāĻŽāĻžāĻ¨ āĻŦāĻž āĻ•āĻ°ā§āĻŽā§€ āĻŽāĻŋāĻ¨āĻŋāĻŸā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ¨ā§‹āĻĄ, āĻ†āĻĒāĻ¨āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ āĻāĻ‡ āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻ¸āĻ™ā§āĻ—ā§‡.

  3. āĻāĻŸāĻž āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ° āĻ†āĻ°āĻŽā§āĻ­ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ.
    • āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ° āĻļā§āĻ°ā§ āĻ•āĻ°āĻ¤ā§‡, āĻ•āĻŽāĻžāĻ¨ā§āĻĄāĻŸāĻŋ āĻšāĻžāĻ˛āĻžāĻ¨:
      kubeadm init --pod-network-cidr=10.244.0.0/16
      

      "kubeadm join â€Ļ" āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ°ā§‡ āĻ¯ā§‹āĻ—āĻĻāĻžāĻ¨ā§‡āĻ° āĻ•āĻŽāĻžāĻ¨ā§āĻĄāĻŸāĻŋ āĻ˛āĻŋāĻ–āĻ¤ā§‡ āĻ­ā§āĻ˛āĻŦā§‡āĻ¨ āĻ¨āĻž, āĻ¯āĻž āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ†āĻ‰āĻŸāĻĒā§āĻŸā§‡āĻ° āĻļā§‡āĻˇā§‡ āĻŦāĻž āĻ…āĻ¨ā§āĻ¤āĻ¤ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻŸā§‹āĻ•ā§‡āĻ¨āĻ—ā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤

    • āĻĒāĻĄ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ˛āĻžāĻ—āĻ‡āĻ¨ (CNI) āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻ•āĻ°āĻž āĻ¯āĻžāĻ•āĨ¤ āĻ†āĻŽāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļ āĻĻāĻŋāĻ‡ āĻŦāĻ¸ā§āĻ¤ā§āĻ°āĻŦāĻŋāĻļā§‡āĻˇ. āĻ¸āĻŽā§āĻ­āĻŦāĻ¤ āĻ†āĻ°āĻ“ āĻœāĻ¨āĻĒā§āĻ°āĻŋāĻ¯āĻŧ āĻĒāĻļāĻŽā§€ āĻ•āĻžāĻĒāĻĄāĻŧ āĻ¸āĻ™ā§āĻ—ā§‡ āĻ¸āĻžāĻŽāĻžā§āĻœāĻ¸ā§āĻ¯ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ†āĻ›ā§‡ nftables, āĻšā§āĻ¯āĻžāĻ āĻāĻŦāĻ‚ āĻšā§āĻ¯āĻžāĻ āĻŦāĻ¸ā§āĻ¤ā§āĻ°āĻŦāĻŋāĻļā§‡āĻˇ - āĻāĻ•āĻŽāĻžāĻ¤ā§āĻ° āĻ¸āĻŋāĻāĻ¨āĻ†āĻ‡ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻĒā§āĻ°āĻ¸ā§āĻ¤āĻžāĻŦāĻŋāĻ¤ āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖāĻ­āĻžāĻŦā§‡ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻŋāĻ¤ Kubernetes:
      kubectl --kubeconfig /etc/kubernetes/admin.conf apply -f https://docs.projectcalico.org/v3.15/manifests/calico.yaml 

    • āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ°ā§‡ āĻāĻ•āĻŸāĻŋ āĻ•āĻ°ā§āĻŽā§€ āĻ¨ā§‹āĻĄ āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻ•āĻ°āĻ¤ā§‡, āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻžāĻŦāĻ˛ā§€ 1 āĻāĻŦāĻ‚ 2 āĻ…āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§€ āĻāĻŸāĻŋ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡, āĻ…āĻĨāĻŦāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻ˛āĻŋāĻĒāĻŋ, āĻ¤āĻžāĻ°āĻĒāĻ° "kubeadm init..." āĻ†āĻ‰āĻŸāĻĒā§āĻŸ āĻĨā§‡āĻ•ā§‡ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāĻŸāĻŋ āĻšāĻžāĻ˛āĻžāĻ¨ āĻ¯āĻž āĻ†āĻŽāĻ°āĻž āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§€ āĻ§āĻžāĻĒā§‡ āĻ˛āĻŋāĻ–ā§‡āĻ›āĻŋāĻ˛āĻžāĻŽ:
      kubeadm join $CONTROL_PLANE_ADDRESS:6443 --token $TOKEN 
          --discovery-token-ca-cert-hash $TOKEN_HASH

    • āĻ†āĻ¸ā§āĻ¨ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°ā§‡ āĻĻā§‡āĻ–āĻŋ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ° āĻ†āĻ°āĻŽā§āĻ­ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻāĻŦāĻ‚ āĻ•āĻžāĻœ āĻļā§āĻ°ā§ āĻ•āĻ°ā§‡āĻ›ā§‡:
      kubectl --kubeconfig=/etc/kubernetes/admin.conf get pods -A
      

    āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤! āĻ†āĻĒāĻ¨āĻŋ āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡āĻ‡ āĻ†āĻĒāĻ¨āĻžāĻ° K8s āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ°ā§‡ āĻĒā§‡āĻ˛ā§‹āĻĄ āĻšā§‹āĻ¸ā§āĻŸ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ā§ˇ

āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¸āĻžāĻŽāĻ¨ā§‡ āĻ•āĻŋ āĻ…āĻĒā§‡āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻ›ā§‡

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

āĻ¸āĻžāĻĨā§‡ āĻĨāĻžāĻ•ā§āĻ¨!

āĻāĻ‡ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻŸāĻŋ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻ–āĻŋāĻ¤ āĻ‰āĻ¤ā§āĻ¸āĻ—ā§āĻ˛āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻ§āĻ¨ā§āĻ¯āĻŦāĻžāĻĻ āĻ‰āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛:



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

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