Kubernetes-āĻ HA āĻŽā§‹āĻĄā§‡ Keycloak āĻšāĻžāĻ˛āĻžāĻ¨

Kubernetes-āĻ HA āĻŽā§‹āĻĄā§‡ Keycloak āĻšāĻžāĻ˛āĻžāĻ¨

TL; āĻĄāĻŋāĻ†āĻ°: āĻ•ā§€āĻ•ā§āĻ˛ā§‹āĻ•ā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻŦāĻ°āĻŖ āĻĨāĻžāĻ•āĻŦā§‡, āĻāĻ•āĻŸāĻŋ āĻ“āĻĒā§‡āĻ¨ āĻ¸ā§‹āĻ°ā§āĻ¸ āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ āĻ•āĻ¨ā§āĻŸā§āĻ°ā§‹āĻ˛ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ, āĻ…āĻ­ā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§€āĻŖ āĻ•āĻžāĻ āĻžāĻŽā§‹āĻ° āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖ, āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ā§‡āĻ° āĻŦāĻŋāĻŦāĻ°āĻŖāĨ¤

āĻ­ā§‚āĻŽāĻŋāĻ•āĻž āĻāĻŦāĻ‚ āĻŽā§‚āĻ˛ āĻ§āĻžāĻ°āĻŖāĻž

āĻāĻ‡ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§‡, āĻ†āĻŽāĻ°āĻž Kubernetes-āĻāĻ° āĻ‰āĻĒāĻ°ā§‡ āĻāĻ•āĻŸāĻŋ Keycloak āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ° āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻŽāĻžāĻĨāĻžāĻ¯āĻŧ āĻ°āĻžāĻ–āĻ¤ā§‡ āĻšāĻŦā§‡ āĻāĻŽāĻ¨ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ• āĻ§āĻžāĻ°āĻŖāĻžāĻ—ā§āĻ˛āĻŋ āĻĻā§‡āĻ–āĻŦāĨ¤

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

āĻ•ā§€āĻ•ā§āĻ˛ā§‹āĻ• āĻšāĻ˛ āĻœāĻžāĻ­āĻžāĻ¤ā§‡ āĻ˛ā§‡āĻ–āĻž āĻāĻ•āĻŸāĻŋ āĻŦā§āĻ¯āĻžāĻĒāĻ• āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡āĻ° āĻ‰āĻĒāĻ°ā§‡ āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ āĻŦāĻ¨ā§āĻ¯ āĻŽāĻžāĻ›āĻŋ. āĻ¸āĻ‚āĻ•ā§āĻˇā§‡āĻĒā§‡, āĻāĻŸāĻŋ āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ•āĻžāĻ āĻžāĻŽā§‹ āĻ¯āĻž āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻĻā§‡āĻ° āĻĢā§‡āĻĄāĻžāĻ°ā§‡āĻļāĻ¨ āĻāĻŦāĻ‚ SSO (āĻāĻ•āĻ• āĻ¸āĻžāĻ‡āĻ¨-āĻ…āĻ¨) āĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻĻā§‡āĻ¯āĻŧāĨ¤

āĻ†āĻŽāĻ°āĻž āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ…āĻĢāĻŋāĻ¸āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻĒāĻĄāĻŧāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻŽāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻœāĻžāĻ¨āĻžāĻ‡ āĻ“āĻ¯āĻŧā§‡āĻŦāĻ¸āĻžāĻ‡āĻŸ āĻŦāĻž āĻ‰āĻ‡āĻ•āĻŋāĻĒāĻŋāĻĄāĻŋāĻ¯āĻŧāĻž āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻŦā§‹āĻāĻžāĻ° āĻœāĻ¨ā§āĻ¯āĨ¤

āĻ•ā§€āĻ•ā§āĻ˛ā§‹āĻ• āĻšāĻžāĻ˛ā§ āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡

Keycloak āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻœāĻ¨ā§āĻ¯ āĻĻā§āĻŸāĻŋ āĻ¸ā§āĻĨāĻžāĻ¯āĻŧā§€ āĻĄā§‡āĻŸāĻž āĻ‰ā§ŽāĻ¸ā§‡āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨:

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

āĻ•ā§€āĻ•ā§āĻ˛ā§‹āĻ• āĻšāĻžāĻ°āĻŸāĻŋ āĻ­āĻŋāĻ¨ā§āĻ¨ āĻŽā§‹āĻĄā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡:

  • āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ - āĻāĻ•āĻŸāĻŋ āĻāĻŦāĻ‚ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž, āĻāĻ•āĻŸāĻŋ āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ā§ˇ standalone.xml
  • āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤ āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ° (āĻ‰āĻšā§āĻš āĻĒā§āĻ°āĻžāĻĒā§āĻ¯āĻ¤āĻž āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ) - āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ•āĻ‡ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡, āĻ¯āĻž āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻŋ āĻ¸āĻŋāĻ™ā§āĻ•ā§āĻ°ā§‹āĻ¨āĻžāĻ‡āĻœ āĻ•āĻ°āĻž āĻ†āĻŦāĻļā§āĻ¯āĻ•āĨ¤ āĻ¸ā§‡āĻŸāĻŋāĻ‚āĻ¸ āĻāĻ•āĻŸāĻŋ āĻĢāĻžāĻ‡āĻ˛ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ standalone-ha.xml, āĻ‰āĻĒāĻ°āĻ¨ā§āĻ¤ā§ āĻ†āĻĒāĻ¨āĻŋ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ āĻ˛ā§‹āĻĄ āĻŦā§āĻ¯āĻžāĻ˛ā§‡āĻ¨ā§āĻ¸āĻžāĻ° āĻļā§‡āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡.
  • āĻĄā§‹āĻŽā§‡āĻ¨ āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ° — āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ° āĻŦāĻžāĻĄāĻŧāĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻžāĻĨā§‡ āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ• āĻŽā§‹āĻĄā§‡ āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ° āĻļā§āĻ°ā§ āĻ•āĻ°āĻž āĻāĻ•āĻŸāĻŋ āĻ°ā§āĻŸāĻŋāĻ¨ āĻāĻŦāĻ‚ āĻŦāĻŋāĻ°āĻ•ā§āĻ¤āĻŋāĻ•āĻ° āĻ•āĻžāĻœ āĻšāĻ¯āĻŧā§‡ āĻ“āĻ ā§‡, āĻ¯ā§‡āĻšā§‡āĻ¤ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻŦāĻžāĻ° āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻšāĻ¯āĻŧ, āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ° āĻ¨ā§‹āĻĄā§‡ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°āĻž āĻ†āĻŦāĻļā§āĻ¯āĻ•āĨ¤ āĻ…āĻĒāĻžāĻ°ā§‡āĻļāĻ¨ā§‡āĻ° āĻĄā§‹āĻŽā§‡āĻ¨ āĻŽā§‹āĻĄ āĻ•āĻŋāĻ›ā§ āĻļā§‡āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻ¸ā§āĻŸā§‹āĻ°ā§‡āĻœ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ āĻ¸ā§‡āĻŸ āĻ†āĻĒ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĒā§āĻ°āĻ•āĻžāĻļ āĻ•āĻ°ā§‡ āĻāĻ‡ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ° āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ•āĻ°ā§‡āĨ¤ āĻāĻ‡ āĻ¸ā§‡āĻŸāĻŋāĻ‚āĻ¸ āĻĢāĻžāĻ‡āĻ˛ā§‡ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ domain.xml
  • āĻĄā§‡āĻŸāĻž āĻ¸ā§‡āĻ¨ā§āĻŸāĻžāĻ°ā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋ — āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻŦā§‡āĻļ āĻ•āĻ¯āĻŧā§‡āĻ•āĻŸāĻŋ āĻĄā§‡āĻŸāĻž āĻ¸ā§‡āĻ¨ā§āĻŸāĻžāĻ°ā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ°ā§‡ Keycloak āĻšāĻžāĻ˛āĻžāĻ¤ā§‡ āĻšāĻžāĻ¨, āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ‡ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻ­ā§ŒāĻ—āĻ˛āĻŋāĻ• āĻ…āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ā§‡āĨ¤ āĻāĻ‡ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒā§‡, āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻĄā§‡āĻŸāĻž āĻ¸ā§‡āĻ¨ā§āĻŸāĻžāĻ°ā§‡ āĻ•ā§€āĻ•ā§āĻ˛ā§‹āĻ• āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°āĻ—ā§āĻ˛āĻŋāĻ° āĻ¨āĻŋāĻœāĻ¸ā§āĻŦ āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ° āĻĨāĻžāĻ•āĻŦā§‡āĨ¤

āĻāĻ‡ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§‡ āĻ†āĻŽāĻ°āĻž āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻŦāĻŋāĻŦā§‡āĻšāĻ¨āĻž āĻ•āĻ°āĻŦā§‡ āĻĻā§āĻŦāĻŋāĻ¤ā§€āĻ¯āĻŧ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ, āĻ¯ā§‡ āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤ āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ°, āĻāĻŦāĻ‚ āĻ†āĻŽāĻ°āĻž āĻĄā§‡āĻŸāĻž āĻ•ā§‡āĻ¨ā§āĻĻā§āĻ°āĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋāĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧā§‡āĻ“ āĻāĻ•āĻŸā§ āĻ¸ā§āĻĒāĻ°ā§āĻļ āĻ•āĻ°āĻŦ, āĻ¯ā§‡āĻšā§‡āĻ¤ā§ āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸā§‡ āĻāĻ‡ āĻĻā§āĻŸāĻŋ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻŸāĻŋ āĻŦā§‹āĻ§āĻ—āĻŽā§āĻ¯āĨ¤ āĻ¸ā§ŒāĻ­āĻžāĻ—ā§āĻ¯āĻŦāĻļāĻ¤, āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻ¸ā§‡ āĻŦā§‡āĻļ āĻ•āĻ¯āĻŧā§‡āĻ•āĻŸāĻŋ āĻĒāĻĄ (āĻ•ā§€āĻ•ā§āĻ˛ā§‹āĻ• āĻ¨ā§‹āĻĄ) āĻāĻ° āĻ¸ā§‡āĻŸāĻŋāĻ‚āĻ¸ āĻ¸āĻŋāĻ™ā§āĻ•ā§āĻ°ā§‹āĻ¨āĻžāĻ‡āĻœ āĻ•āĻ°āĻ¤ā§‡ āĻ•ā§‹āĻ¨ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¨ā§‡āĻ‡, āĻ¤āĻžāĻ‡ āĻĄā§‹āĻŽā§‡āĻ‡āĻ¨ āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ° āĻāĻŸāĻž āĻ•āĻ°āĻž āĻ–ā§āĻŦ āĻ•āĻ āĻŋāĻ¨ āĻšāĻŦā§‡ āĻ¨āĻžāĨ¤

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

āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤ āĻ•ā§€āĻ•ā§āĻ˛ā§‹āĻ• āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ°

āĻāĻ‡ āĻŽā§‹āĻĄā§‡ āĻ•ā§€āĻ•ā§āĻ˛ā§‹āĻ• āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨:

  • āĻŦāĻžāĻšā§āĻ¯āĻŋāĻ• āĻ­āĻžāĻ— āĻ•āĻ°āĻž āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ° āĻ•āĻ°ā§āĻ¨
  • āĻ˛ā§‹āĻĄ āĻŦā§āĻ¯āĻžāĻ˛ā§‡āĻ¨ā§āĻ¸āĻžāĻ° āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻ•āĻ°ā§āĻ¨
  • IP āĻŽāĻžāĻ˛ā§āĻŸāĻŋāĻ•āĻžāĻ¸ā§āĻŸ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¸āĻš āĻāĻ•āĻŸāĻŋ āĻ…āĻ­ā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§€āĻŖ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ• āĻ†āĻ›ā§‡

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

āĻāĻ•āĻŸāĻŋ āĻĢā§‡āĻ‡āĻ˛āĻ“āĻ­āĻžāĻ° (HA) āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ°ā§‡ āĻ•ā§€āĻ•ā§āĻ˛ā§‹āĻ• āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡ āĻ¤āĻž āĻ†āĻ°āĻ“ āĻ­āĻžāĻ˛āĻ­āĻžāĻŦā§‡ āĻŦā§‹āĻāĻžāĻ° āĻœāĻ¨ā§āĻ¯, āĻāĻŸāĻŋ āĻ“āĻ¯āĻŧāĻžāĻ‡āĻ˛ā§āĻĄāĻĢā§āĻ˛āĻžāĻ‡āĻ¯āĻŧā§‡āĻ° āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ°āĻŋāĻ‚ āĻ•ā§āĻˇāĻŽāĻ¤āĻžāĻ° āĻ‰āĻĒāĻ° āĻ•āĻ¤āĻŸāĻž āĻ¨āĻŋāĻ°ā§āĻ­āĻ° āĻ•āĻ°ā§‡ āĻ¤āĻž āĻœāĻžāĻ¨āĻž āĻ—ā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖāĨ¤

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

  • mod_cluster: āĻāĻ•āĻŸāĻŋ HTTP āĻ˛ā§‹āĻĄ āĻŦā§āĻ¯āĻžāĻ˛ā§‡āĻ¨ā§āĻ¸āĻžāĻ° āĻšāĻŋāĻ¸āĻžāĻŦā§‡ Apache āĻāĻ° āĻ¸āĻžāĻĨā§‡ āĻāĻ•āĻ¤ā§āĻ°ā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡, āĻĄāĻŋāĻĢāĻ˛ā§āĻŸāĻ°ā§‚āĻĒā§‡ āĻšā§‹āĻ¸ā§āĻŸ āĻ–ā§āĻāĻœā§‡ āĻĒā§‡āĻ¤ā§‡ TCP āĻŽāĻžāĻ˛ā§āĻŸāĻŋāĻ•āĻžāĻ¸ā§āĻŸā§‡āĻ° āĻ‰āĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻ­āĻ° āĻ•āĻ°ā§‡āĨ¤ āĻāĻ•āĻŸāĻŋ āĻŦāĻšāĻŋāĻ°āĻžāĻ—āĻ¤ āĻŦā§āĻ¯āĻžāĻ˛ā§‡āĻ¨ā§āĻ¸āĻžāĻ° āĻ¸āĻ™ā§āĻ—ā§‡ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻŋāĻ¤ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡.

  • infinispan: āĻĒāĻ°āĻŋāĻŦāĻšāĻ¨ āĻ¸ā§āĻ¤āĻ° āĻšāĻŋāĻ¸āĻžāĻŦā§‡ JGroups āĻšā§āĻ¯āĻžāĻ¨ā§‡āĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻ•āĻ°āĻž āĻ•ā§āĻ¯āĻžāĻļā§‡āĨ¤ āĻ‰āĻĒāĻ°āĻ¨ā§āĻ¤ā§, āĻāĻŸāĻŋ āĻ•ā§āĻ¯āĻžāĻļā§‡ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ āĻ¸āĻŋāĻ™ā§āĻ•ā§āĻ°ā§‹āĻ¨āĻžāĻ‡āĻœ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻŦāĻšāĻŋāĻ°āĻžāĻ—āĻ¤ āĻ‡āĻ¨āĻĢāĻŋāĻ¨āĻŋāĻ¸ā§āĻĒā§āĻ¯āĻžāĻ¨ āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ°ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¯ā§‹āĻ—āĻžāĻ¯ā§‹āĻ— āĻ•āĻ°āĻ¤ā§‡ HotRod āĻĒā§āĻ°ā§‹āĻŸā§‹āĻ•āĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤

  • jgroups: JGroups āĻšā§āĻ¯āĻžāĻ¨ā§‡āĻ˛ā§‡āĻ° āĻ‰āĻĒāĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§‡ āĻ…āĻ¤ā§āĻ¯āĻ¨ā§āĻ¤ āĻ‰āĻĒāĻ˛āĻŦā§āĻ§ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ—ā§āĻ˛āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻ—ā§āĻ°ā§āĻĒ āĻ¯ā§‹āĻ—āĻžāĻ¯ā§‹āĻ— āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡āĨ¤ āĻ¨āĻžāĻŽāĻ¯ā§āĻ•ā§āĻ¤ āĻĒāĻžāĻ‡āĻĒāĻ—ā§āĻ˛āĻŋ āĻāĻ•āĻŸāĻŋ āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ°ā§‡ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻĻā§ƒāĻˇā§āĻŸāĻžāĻ¨ā§āĻ¤āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ—ā§āĻ°ā§āĻĒā§‡ āĻ¸āĻ‚āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻžāĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧ āĻ¯āĻžāĻ¤ā§‡ āĻ¯ā§‹āĻ—āĻžāĻ¯ā§‹āĻ—ā§‡āĻ° āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯ āĻ¯ā§‡āĻŽāĻ¨ āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¯ā§‹āĻ—ā§āĻ¯āĻ¤āĻž, āĻ¸ā§āĻļā§ƒāĻ™ā§āĻ–āĻ˛āĻ¤āĻž āĻāĻŦāĻ‚ āĻŦā§āĻ¯āĻ°ā§āĻĨāĻ¤āĻžāĻ° āĻĒā§āĻ°āĻ¤āĻŋ āĻ¸āĻ‚āĻŦā§‡āĻĻāĻ¨āĻļā§€āĻ˛āĻ¤āĻž āĻĨāĻžāĻ•ā§‡āĨ¤

āĻ˛ā§‹āĻĄ āĻŦā§āĻ¯āĻžāĻ˛ā§‡āĻ¨ā§āĻ¸āĻžāĻ°

āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻ¸ āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ°ā§‡ āĻĒā§āĻ°āĻŦā§‡āĻļ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻ• āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻŦā§āĻ¯āĻžāĻ˛ā§‡āĻ¨ā§āĻ¸āĻžāĻ° āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻ–āĻŋāĻ¤ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻ—ā§āĻ˛āĻŋ āĻŽāĻ¨ā§‡ āĻ°āĻžāĻ–āĻž āĻ—ā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ:

Keycloak āĻ…āĻ¨ā§āĻŽāĻžāĻ¨ āĻ•āĻ°ā§‡ āĻ¯ā§‡ HTTP āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻĒā§āĻ°āĻŽāĻžāĻŖā§€āĻ•āĻ°āĻŖ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻ‚āĻ¯ā§‹āĻ—āĻ•āĻžāĻ°ā§€ āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸā§‡āĻ° āĻĻā§‚āĻ°āĻŦāĻ°ā§āĻ¤ā§€ āĻ āĻŋāĻ•āĻžāĻ¨āĻž āĻšāĻ˛ āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ°ā§‡āĻ° āĻ†āĻ¸āĻ˛ āĻ†āĻ‡āĻĒāĻŋ āĻ āĻŋāĻ•āĻžāĻ¨āĻžāĨ¤ āĻŦā§āĻ¯āĻžāĻ˛ā§‡āĻ¨ā§āĻ¸āĻžāĻ° āĻāĻŦāĻ‚ āĻ‡āĻ¨āĻ—ā§āĻ°ā§‡āĻ¸ āĻ¸ā§‡āĻŸāĻŋāĻ‚āĻ¸ āĻ¸āĻ āĻŋāĻ•āĻ­āĻžāĻŦā§‡ HTTP āĻšā§‡āĻĄāĻžāĻ° āĻ¸ā§‡āĻŸ āĻ•āĻ°āĻž āĻ‰āĻšāĻŋāĻ¤ X-Forwarded-For и X-Forwarded-Proto, āĻāĻŦāĻ‚ āĻŽā§‚āĻ˛ āĻļāĻŋāĻ°ā§‹āĻ¨āĻžāĻŽ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°ā§āĻ¨ HOST. āĻ¸āĻ°ā§āĻŦāĻļā§‡āĻˇ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ ingress-nginx (>0.22.0) āĻĄāĻŋāĻĢāĻ˛ā§āĻŸāĻ°ā§‚āĻĒā§‡ āĻāĻŸāĻŋ āĻ¨āĻŋāĻˇā§āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻ•āĻ°ā§‡

āĻĒāĻ¤āĻžāĻ•āĻž āĻ¸āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡ proxy-address-forwarding āĻāĻ•āĻŸāĻŋ āĻĒāĻ°āĻŋāĻŦā§‡āĻļ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§€āĻ˛ āĻ¸ā§‡āĻŸ āĻ•āĻ°ā§‡ PROXY_ADDRESS_FORWARDING в true āĻ•ā§€āĻ•ā§āĻ˛ā§‹āĻ•āĻ•ā§‡ āĻŦā§‹āĻāĻžāĻ¯āĻŧ āĻ¯ā§‡ āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻ•ā§āĻ¸āĻŋāĻ° āĻĒāĻŋāĻ›āĻ¨ā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻ›ā§‡āĨ¤

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

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

āĻ•ā§€āĻ•ā§āĻ˛ā§‹āĻ• āĻ¨ā§‹āĻĄā§‡āĻ° āĻ¨āĻžāĻŽāĻ“ āĻ¸āĻ‚āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°ā§‡ āĻ¯āĻž āĻĒā§āĻ°āĻĨāĻŽā§‡ āĻ¸āĻžāĻĄāĻŧāĻž āĻĻāĻŋāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛ AUTH_SESSION_ID, āĻāĻŦāĻ‚ āĻ¯ā§‡āĻšā§‡āĻ¤ā§ āĻ…āĻ¤ā§āĻ¯āĻ¨ā§āĻ¤ āĻ‰āĻĒāĻ˛āĻŦā§āĻ§ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖā§‡āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻ¨ā§‹āĻĄ āĻāĻ•āĻ‡ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡, āĻ¤āĻžāĻĻā§‡āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻ…āĻŦāĻļā§āĻ¯āĻ‡ āĻĨāĻžāĻ•āĻ¤ā§‡ āĻšāĻŦā§‡ āĻ˛ā§‡āĻ¨āĻĻā§‡āĻ¨ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻĒā§ƒāĻĨāĻ• āĻāĻŦāĻ‚ āĻ…āĻ¨āĻ¨ā§āĻ¯ āĻ¨ā§‹āĻĄ āĻ¸āĻ¨āĻžāĻ•ā§āĻ¤āĻ•āĻžāĻ°ā§€āĨ¤ āĻāĻŸāĻŋ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻžāĻ° āĻ¸ā§āĻĒāĻžāĻ°āĻŋāĻļ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ JAVA_OPTS āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ jboss.node.name и jboss.tx.node.id āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻ¨ā§‹āĻĄā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ…āĻ¨āĻ¨ā§āĻ¯ - āĻ†āĻĒāĻ¨āĻŋ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻĒāĻĄā§‡āĻ° āĻ¨āĻžāĻŽ āĻ°āĻžāĻ–āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤ āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻ•āĻŸāĻŋ āĻĒāĻĄ āĻ¨āĻžāĻŽ āĻ°āĻžāĻ–ā§‡āĻ¨, āĻ¤āĻžāĻšāĻ˛ā§‡ jboss āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ 23 āĻ…āĻ•ā§āĻˇāĻ°ā§‡āĻ° āĻ¸ā§€āĻŽāĻž āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ­ā§āĻ˛āĻŦā§‡āĻ¨ āĻ¨āĻž, āĻ¤āĻžāĻ‡ āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡ āĻāĻ•āĻŸāĻŋ StatefulSet āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻ­āĻžāĻ˛āĨ¤

āĻ†āĻ°ā§‡āĻ•āĻŸāĻŋ āĻ°ā§‡āĻ• - āĻ¯āĻĻāĻŋ āĻĒāĻĄāĻŸāĻŋ āĻŽā§āĻ›ā§‡ āĻĢā§‡āĻ˛āĻž āĻšāĻ¯āĻŧ āĻŦāĻž āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻšāĻžāĻ˛ā§ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻ¤āĻŦā§‡ āĻāĻ° āĻ•ā§āĻ¯āĻžāĻļā§‡ āĻšāĻžāĻ°āĻŋāĻ¯āĻŧā§‡ āĻ—ā§‡āĻ›ā§‡āĨ¤ āĻāĻŸāĻŋ āĻŦāĻŋāĻŦā§‡āĻšāĻ¨āĻžāĻ¯āĻŧ āĻ¨āĻŋāĻ¯āĻŧā§‡, āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ•ā§āĻ¯āĻžāĻļā§‡āĻ—ā§āĻ˛āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻ•ā§āĻ¯āĻžāĻļā§‡ āĻŽāĻžāĻ˛āĻŋāĻ•āĻĻā§‡āĻ° āĻ¸āĻ‚āĻ–ā§āĻ¯āĻž āĻ•āĻŽāĻĒāĻ•ā§āĻˇā§‡ āĻĻā§āĻŸāĻŋāĻ¤ā§‡ āĻ¸ā§‡āĻŸ āĻ•āĻ°āĻž āĻŽā§‚āĻ˛ā§āĻ¯āĻŦāĻžāĻ¨, āĻ¯āĻžāĻ¤ā§‡ āĻ•ā§āĻ¯āĻžāĻļā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ…āĻ¨ā§āĻ˛āĻŋāĻĒāĻŋ āĻĨāĻžāĻ•ā§‡āĨ¤ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻšāĻ˛ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹ Wildfly āĻœāĻ¨ā§āĻ¯ āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻĒāĻĄ āĻļā§āĻ°ā§ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻāĻŸāĻŋ āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋāĻ¤ā§‡ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°ā§āĻ¨ /opt/jboss/startup-scripts āĻĒāĻžāĻ¤ā§āĻ°ā§‡:

āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§

embed-server --server-config=standalone-ha.xml --std-out=echo
batch

echo * Setting CACHE_OWNERS to "${env.CACHE_OWNERS}" in all cache-containers

/subsystem=infinispan/cache-container=keycloak/distributed-cache=sessions:write-attribute(name=owners, value=${env.CACHE_OWNERS:1})
/subsystem=infinispan/cache-container=keycloak/distributed-cache=authenticationSessions:write-attribute(name=owners, value=${env.CACHE_OWNERS:1})
/subsystem=infinispan/cache-container=keycloak/distributed-cache=actionTokens:write-attribute(name=owners, value=${env.CACHE_OWNERS:1})
/subsystem=infinispan/cache-container=keycloak/distributed-cache=offlineSessions:write-attribute(name=owners, value=${env.CACHE_OWNERS:1})
/subsystem=infinispan/cache-container=keycloak/distributed-cache=clientSessions:write-attribute(name=owners, value=${env.CACHE_OWNERS:1})
/subsystem=infinispan/cache-container=keycloak/distributed-cache=offlineClientSessions:write-attribute(name=owners, value=${env.CACHE_OWNERS:1})
/subsystem=infinispan/cache-container=keycloak/distributed-cache=loginFailures:write-attribute(name=owners, value=${env.CACHE_OWNERS:1})

run-batch
stop-embedded-server

āĻ¤āĻžāĻ°āĻĒāĻ° āĻĒāĻ°āĻŋāĻŦā§‡āĻļ āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ā§‡āĻ° āĻŽāĻžāĻ¨ āĻ¸ā§‡āĻŸ āĻ•āĻ°ā§āĻ¨ CACHE_OWNERS āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§‡

āĻ†āĻ‡āĻĒāĻŋ āĻŽāĻžāĻ˛ā§āĻŸāĻŋāĻ•āĻžāĻ¸ā§āĻŸ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¸āĻš āĻŦā§āĻ¯āĻ•ā§āĻ¤āĻŋāĻ—āĻ¤ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•

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

āĻ†āĻĒāĻ¨āĻžāĻ° Kubernetes āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ°ā§‡ āĻ†āĻ‡āĻĒāĻŋ āĻŽāĻžāĻ˛ā§āĻŸāĻŋāĻ•āĻžāĻ¸ā§āĻŸ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¨āĻž āĻĨāĻžāĻ•āĻ˛ā§‡, āĻ†āĻĒāĻ¨āĻŋ āĻ¨ā§‹āĻĄāĻ—ā§āĻ˛āĻŋ āĻ–ā§āĻāĻœā§‡ āĻĒā§‡āĻ¤ā§‡ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻĒā§āĻ°ā§‹āĻŸā§‹āĻ•āĻ˛ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ JGroups āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤

āĻĒā§āĻ°āĻĨāĻŽ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāĻŸāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ KUBE_DNSāĻ¯āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ headless service āĻ•ā§€āĻ•ā§āĻ˛ā§‹āĻ• āĻ¨ā§‹āĻĄāĻ—ā§āĻ˛āĻŋ āĻ–ā§āĻāĻœā§‡ āĻĒā§‡āĻ¤ā§‡, āĻ†āĻĒāĻ¨āĻŋ āĻ•ā§‡āĻŦāĻ˛ JGroups-āĻ•ā§‡ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ° āĻ¨āĻžāĻŽ āĻĒāĻžāĻ¸ āĻ•āĻ°ā§āĻ¨ āĻ¯āĻž āĻ¨ā§‹āĻĄāĻ—ā§āĻ˛āĻŋ āĻ–ā§āĻāĻœā§‡ āĻĒā§‡āĻ¤ā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻŦā§‡āĨ¤

āĻ†āĻ°ā§‡āĻ•āĻŸāĻŋ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ KUBE_PING, āĻ¯āĻž āĻ¨ā§‹āĻĄ āĻ…āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻ•āĻ°āĻ¤ā§‡ API āĻāĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡ (āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ serviceAccount āĻ…āĻ§āĻŋāĻ•āĻžāĻ° āĻ¸āĻš list и get, āĻāĻŦāĻ‚ āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻŸāĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻĒāĻĄāĻ—ā§āĻ˛āĻŋ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ° āĻ•āĻ°ā§āĻ¨ serviceAccount).

JGroups āĻ¯ā§‡āĻ­āĻžāĻŦā§‡ āĻ¨ā§‹āĻĄ āĻ–ā§āĻāĻœā§‡ āĻĒāĻžāĻ¯āĻŧ āĻ¤āĻž āĻĒāĻ°āĻŋāĻŦā§‡āĻļā§‡āĻ° āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ āĻ¸ā§‡āĻŸ āĻ•āĻ°ā§‡ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ JGROUPS_DISCOVERY_PROTOCOL и JGROUPS_DISCOVERY_PROPERTIESāĨ¤ āĻœāĻ¨ā§āĻ¯ KUBE_PING āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻœāĻŋāĻœā§āĻžāĻžāĻ¸āĻž āĻ•āĻ°ā§‡ āĻĒāĻĄ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻšāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ namespace и labels.

ī¸ āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻŽāĻžāĻ˛ā§āĻŸāĻŋāĻ•āĻžāĻ¸ā§āĻŸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡āĻ¨ āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻ¸ āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ°ā§‡ āĻĻā§āĻŸāĻŋ āĻŦāĻž āĻ¤āĻžāĻ° āĻŦā§‡āĻļāĻŋ āĻ•ā§€āĻ•ā§āĻ˛ā§‹āĻ• āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ° āĻšāĻžāĻ˛āĻžāĻ¨ (āĻ†āĻ¸ā§āĻ¨ āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨ā§‡ āĻāĻ•āĻŸāĻŋ āĻŦāĻ˛āĻŋ production, āĻĻā§āĻŦāĻŋāĻ¤ā§€āĻ¯āĻŧ - staging) - āĻāĻ•āĻŸāĻŋ āĻ•ā§€āĻ•ā§āĻ˛ā§‹āĻ• āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ°ā§‡āĻ° āĻ¨ā§‹āĻĄ āĻ…āĻ¨ā§āĻ¯ āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ°ā§‡ āĻ¯ā§‹āĻ— āĻĻāĻŋāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ āĻ¸ā§‡āĻŸ āĻ•āĻ°ā§‡ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ…āĻ¨āĻ¨ā§āĻ¯ āĻŽāĻžāĻ˛ā§āĻŸāĻŋāĻ•āĻžāĻ¸ā§āĻŸ āĻ āĻŋāĻ•āĻžāĻ¨āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻ­ā§āĻ˛āĻŦā§‡āĻ¨ āĻ¨āĻžjboss.default.multicast.address и jboss.modcluster.multicast.address в JAVA_OPTS.

āĻĄā§‡āĻŸāĻž āĻ¸ā§‡āĻ¨ā§āĻŸāĻžāĻ°ā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋ

Kubernetes-āĻ HA āĻŽā§‹āĻĄā§‡ Keycloak āĻšāĻžāĻ˛āĻžāĻ¨

āĻ˛āĻŋāĻ‚āĻ•

Keycloak āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻĄā§‡āĻŸāĻž āĻ¸ā§‡āĻ¨ā§āĻŸāĻžāĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻžāĻ§āĻŋāĻ• āĻĒā§ƒāĻĨāĻ• āĻ‡āĻ¨āĻĢāĻŋāĻ¨āĻŋāĻ¸ā§āĻĒā§āĻ¯āĻžāĻ¨ āĻ•ā§āĻ¯āĻžāĻļā§‡ āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ Keycloak āĻ¨ā§‹āĻĄāĻ—ā§āĻ˛āĻŋ āĻ¨āĻŋāĻ¯āĻŧā§‡ āĻ—āĻ āĻŋāĻ¤ Keycloack āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ°āĻ—ā§āĻ˛āĻŋ āĻ…āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤āĨ¤ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻĄā§‡āĻŸāĻž āĻ¸ā§‡āĻ¨ā§āĻŸāĻžāĻ°ā§‡ āĻ•ā§€āĻ•ā§āĻ˛ā§‹āĻ• āĻ¨ā§‹āĻĄā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ•ā§‹āĻ¨ā§‹ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āĻ¯ āĻ¨ā§‡āĻ‡āĨ¤

āĻ•ā§€āĻ•ā§āĻ˛ā§‹āĻ• āĻ¨ā§‹āĻĄāĻ—ā§āĻ˛āĻŋ āĻĄā§‡āĻŸāĻž āĻ¸ā§‡āĻ¨ā§āĻŸāĻžāĻ°ā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ¯ā§‹āĻ—āĻžāĻ¯ā§‹āĻ—ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻŦāĻžāĻšā§āĻ¯āĻŋāĻ• āĻœāĻžāĻ­āĻž āĻĄā§‡āĻŸāĻž āĻ—ā§āĻ°āĻŋāĻĄ (āĻ‡āĻ¨āĻĢāĻŋāĻ¨āĻŋāĻ¸ā§āĻĒā§āĻ¯āĻžāĻ¨ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°) āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡āĨ¤ āĻ¯ā§‹āĻ—āĻžāĻ¯ā§‹āĻ— āĻĒā§āĻ°ā§‹āĻŸā§‹āĻ•āĻ˛ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§€ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡ āĻ‡āĻ¨āĻĢāĻŋāĻ¨āĻŋāĻ¸ā§āĻĒā§āĻ¯āĻžāĻ¨ āĻšāĻŸāĻ°āĻĄ.

āĻ‡āĻ¨āĻĢāĻŋāĻ¨āĻŋāĻ¸ā§āĻĒā§āĻ¯āĻžāĻ¨ āĻ•ā§āĻ¯āĻžāĻļā§‡ āĻ…āĻŦāĻļā§āĻ¯āĻ‡ āĻ…ā§āĻ¯āĻžāĻŸā§āĻ°āĻŋāĻŦāĻŋāĻ‰āĻŸā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ remoteStore, āĻ¯āĻžāĻ¤ā§‡ āĻĄā§‡āĻŸāĻž āĻĻā§‚āĻ°āĻŦāĻ°ā§āĻ¤ā§€āĻ­āĻžāĻŦā§‡ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ (āĻ…āĻ¨ā§āĻ¯ āĻĄā§‡āĻŸāĻž āĻ¸ā§‡āĻ¨ā§āĻŸāĻžāĻ°ā§‡, āĻĒā§āĻ°āĻžāĻ¯āĻŧ. āĻ…āĻ¨ā§āĻŦāĻžāĻĻāĻ•) āĻ•ā§āĻ¯āĻžāĻļā§‡āĨ¤ JDG āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°āĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻĒā§ƒāĻĨāĻ• āĻ‡āĻ¨āĻĢāĻŋāĻ¨āĻŋāĻ¸ā§āĻĒā§āĻ¯āĻžāĻ¨ āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ° āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡, āĻ¯āĻžāĻ¤ā§‡ āĻ¸āĻžāĻ‡āĻŸā§‡ JDG1-āĻ āĻĄā§‡āĻŸāĻž āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ site1 āĻ¸āĻžāĻ‡āĻŸā§‡ JDG2 āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋ āĻ•āĻ°āĻž āĻšāĻŦā§‡ site2.

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

āĻ•āĻŋāĻ›ā§ āĻ•ā§āĻ¯āĻžāĻļā§‡āĻ° āĻœāĻ¨ā§āĻ¯, āĻŦā§āĻ¯āĻžāĻ•āĻ†āĻĒ āĻ¨āĻž āĻ¨ā§‡āĻ“āĻ¯āĻŧāĻž āĻāĻŦāĻ‚ āĻ‡āĻ¨āĻĢāĻŋāĻ¨āĻŋāĻ¸ā§āĻĒā§āĻ¯āĻžāĻ¨ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻĄā§‡āĻŸāĻž āĻ˛ā§‡āĻ–āĻž āĻāĻĄāĻŧāĻžāĻ¨ā§‹āĻ“ āĻ¸āĻŽā§āĻ­āĻŦāĨ¤ āĻāĻŸāĻŋ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ¸ā§‡āĻŸāĻŋāĻ‚āĻ¸āĻŸāĻŋ āĻ¸āĻ°āĻŋāĻ¯āĻŧā§‡ āĻĢā§‡āĻ˛āĻ¤ā§‡ āĻšāĻŦā§‡ remote-store āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ‡āĻ¨āĻĢāĻŋāĻ¨āĻŋāĻ¸ā§āĻĒā§āĻ¯āĻžāĻ¨ āĻ•ā§āĻ¯āĻžāĻļā§‡ (āĻĢāĻžāĻ‡āĻ˛āĻŸāĻŋāĻ¤ā§‡ standalone-ha.xml), āĻ¯āĻžāĻ° āĻĒāĻ°ā§‡ āĻ•āĻŋāĻ›ā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ replicated-cache āĻāĻ›āĻžāĻĄāĻŧāĻžāĻ“ Infinispan āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻ¸āĻžāĻ‡āĻĄā§‡ āĻ†āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻšāĻŦā§‡ āĻ¨āĻžāĨ¤

āĻ•ā§āĻ¯āĻžāĻļā§‡ āĻ¸ā§‡āĻŸ āĻ†āĻĒ āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡

āĻ•ā§€āĻ•ā§āĻ˛ā§‹āĻ•ā§‡ āĻĻā§āĻŸāĻŋ āĻ§āĻ°āĻŖā§‡āĻ° āĻ•ā§āĻ¯āĻžāĻļā§‡ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡:

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

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

āĻ‡āĻ¨āĻĢāĻŋāĻ¨āĻŋāĻ¸ā§āĻĒā§āĻ¯āĻžāĻ¨ āĻ•ā§āĻ¯āĻžāĻļā§‡

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

āĻ…ā§āĻ¯āĻžāĻ•āĻļāĻ¨ āĻŸā§‹āĻ•ā§‡āĻ¨. āĻ†āĻ°ā§‡āĻ•āĻŸāĻŋ āĻ§āĻžāĻ°āĻŖāĻž, āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¤ā§‡ āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻšāĻ¯āĻŧ āĻ¯āĻ–āĻ¨, āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ•ā§‡ āĻŽā§‡āĻ˛ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ…āĻ¸āĻŋāĻ™ā§āĻ•ā§āĻ°ā§‹āĻ¨āĻžāĻ¸āĻ­āĻžāĻŦā§‡ āĻ•āĻŋāĻ›ā§ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻšāĻ˛āĻžāĻ•āĻžāĻ˛ā§€āĻ¨ forget password āĻ•ā§āĻ¯āĻžāĻļā§‡ actionTokens āĻ¸āĻ‚āĻļā§āĻ˛āĻŋāĻˇā§āĻŸ āĻŸā§‹āĻ•ā§‡āĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻŽā§‡āĻŸāĻžāĻĄā§‡āĻŸāĻž āĻŸā§āĻ°ā§āĻ¯āĻžāĻ• āĻ•āĻ°āĻ¤ā§‡ āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ - āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻāĻ•āĻŸāĻŋ āĻŸā§‹āĻ•ā§‡āĻ¨ āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡āĻ‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻāĻŦāĻ‚ āĻ†āĻŦāĻžāĻ° āĻ¸āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻ•āĻ°āĻž āĻ¯āĻžāĻŦā§‡ āĻ¨āĻžāĨ¤ āĻāĻ‡ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻ•ā§āĻ¯āĻžāĻļā§‡ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻĄā§‡āĻŸāĻž āĻ¸ā§‡āĻ¨ā§āĻŸāĻžāĻ°ā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋ āĻ•āĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨āĨ¤

āĻ¸āĻžā§āĻšāĻŋāĻ¤ āĻĄā§‡āĻŸāĻž āĻ•ā§āĻ¯āĻžāĻļāĻŋāĻ‚ āĻāĻŦāĻ‚ āĻŦāĻžāĻ°ā§āĻ§āĻ•ā§āĻ¯ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ā§‡āĻ° āĻ˛ā§‹āĻĄ āĻ‰āĻĒāĻļāĻŽ āĻ•āĻ°āĻ¤ā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡āĨ¤ āĻāĻ‡ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻ•ā§āĻ¯āĻžāĻļāĻŋāĻ‚ āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻ‰āĻ¨ā§āĻ¨āĻ¤ āĻ•āĻ°ā§‡, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻ¸ā§āĻĒāĻˇā§āĻŸ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¯ā§‹āĻ— āĻ•āĻ°ā§‡āĨ¤ āĻ¯āĻĻāĻŋ āĻāĻ•āĻŸāĻŋ āĻ•ā§€āĻ•ā§āĻ˛ā§‹āĻ• āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻĄā§‡āĻŸāĻž āĻ†āĻĒāĻĄā§‡āĻŸ āĻ•āĻ°ā§‡, āĻ…āĻ¨ā§āĻ¯ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ…āĻŦāĻļā§āĻ¯āĻ‡ āĻ…āĻŦāĻšāĻŋāĻ¤ āĻ•āĻ°āĻž āĻ‰āĻšāĻŋāĻ¤ āĻ¯āĻžāĻ¤ā§‡ āĻ¤āĻžāĻ°āĻž āĻ¤āĻžāĻĻā§‡āĻ° āĻ•ā§āĻ¯āĻžāĻļā§‡ āĻĄā§‡āĻŸāĻž āĻ†āĻĒāĻĄā§‡āĻŸ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻ•ā§€āĻ•ā§āĻ˛ā§‹āĻ• āĻ¸ā§āĻĨāĻžāĻ¨ā§€āĻ¯āĻŧ āĻ•ā§āĻ¯āĻžāĻļā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ realms, users и authorization āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻĨā§‡āĻ•ā§‡ āĻĄā§‡āĻŸāĻž āĻ•ā§āĻ¯āĻžāĻļā§‡ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯āĨ¤

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

āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ° āĻ¸ā§‡āĻļāĻ¨. āĻ¨āĻžāĻŽ āĻ¸āĻš āĻ•ā§āĻ¯āĻžāĻļā§‡ sessions, clientSessions, offlineSessions и offlineClientSessions, āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻĄā§‡āĻŸāĻž āĻ¸ā§‡āĻ¨ā§āĻŸāĻžāĻ°āĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ° āĻ¸ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻĄā§‡āĻŸāĻž āĻ¸āĻžā§āĻšāĻ¯āĻŧ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻ°āĻŋāĻŦā§‡āĻļāĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻ¯āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€ āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ°ā§‡ āĻ¸āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻĨāĻžāĻ•āĻžāĻ•āĻžāĻ˛ā§€āĻ¨ āĻ¸āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻĨāĻžāĻ•ā§‡āĨ¤ āĻāĻ‡ āĻ•ā§āĻ¯āĻžāĻļā§‡āĻ—ā§āĻ˛āĻŋ āĻļā§‡āĻˇ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻĻā§‡āĻ° āĻ•āĻžāĻ› āĻĨā§‡āĻ•ā§‡ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•āĻ°āĻŖā§‡āĻ° HTTP āĻ…āĻ¨ā§āĻ°ā§‹āĻ§āĻ—ā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡, āĻ¤āĻžāĻ‡ āĻāĻ—ā§āĻ˛āĻŋ āĻ¸ā§āĻŸāĻŋāĻ•āĻŋ āĻ¸ā§‡āĻļāĻ¨ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¯ā§āĻ•ā§āĻ¤ āĻāĻŦāĻ‚ āĻĄā§‡āĻŸāĻž āĻ•ā§‡āĻ¨ā§āĻĻā§āĻ°āĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋ āĻ•āĻ°āĻž āĻ†āĻŦāĻļā§āĻ¯āĻ•ā§ˇ

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

āĻāĻ•āĻŸāĻŋ āĻ‡āĻ¨āĻĢāĻŋāĻ¨āĻŋāĻ¸ā§āĻĒā§āĻ¯āĻžāĻ¨ āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ° āĻ°ā§‹āĻ˛ āĻ†āĻ‰āĻŸ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ¸ā§‡āĻŸāĻŋāĻ‚āĻ¸ āĻĢāĻžāĻ‡āĻ˛ā§‡ āĻ•ā§āĻ¯āĻžāĻļā§‡ āĻ¸āĻ‚āĻœā§āĻžāĻž āĻ¯ā§‹āĻ— āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡:

<replicated-cache-configuration name="keycloak-sessions" mode="ASYNC" start="EAGER" batching="false">
</replicated-cache-configuration>

<replicated-cache name="work" configuration="keycloak-sessions" />
<replicated-cache name="sessions" configuration="keycloak-sessions" />
<replicated-cache name="offlineSessions" configuration="keycloak-sessions" />
<replicated-cache name="actionTokens" configuration="keycloak-sessions" />
<replicated-cache name="loginFailures" configuration="keycloak-sessions" />
<replicated-cache name="clientSessions" configuration="keycloak-sessions" />
<replicated-cache name="offlineClientSessions" configuration="keycloak-sessions" />

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

āĻ¤āĻžāĻ°āĻĒāĻ° āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ remoteStore Keycloak āĻ•ā§āĻ¯āĻžāĻļā§‡ āĻœāĻ¨ā§āĻ¯. āĻāĻŸāĻŋ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯, āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸāĻ‡ āĻ¯āĻĨā§‡āĻˇā§āĻŸ, āĻ¯āĻž āĻ†āĻ—ā§‡āĻ°āĻŸāĻŋāĻ° āĻŽāĻ¤ā§‹āĻ‡ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¯āĻž āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§€āĻ˛ āĻ¸ā§‡āĻŸ āĻ•āĻ°āĻ¤ā§‡ āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻšāĻ¯āĻŧ CACHE_OWNERS, āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻĢāĻžāĻ‡āĻ˛ā§‡ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻāĻŦāĻ‚ āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋāĻ¤ā§‡ āĻ°āĻžāĻ–āĻ¤ā§‡ āĻšāĻŦā§‡ /opt/jboss/startup-scripts:

āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§

embed-server --server-config=standalone-ha.xml --std-out=echo
batch

echo *** Update infinispan subsystem ***
/subsystem=infinispan/cache-container=keycloak:write-attribute(name=module, value=org.keycloak.keycloak-model-infinispan)

echo ** Add remote socket binding to infinispan server **
/socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=remote-cache:add(host=${remote.cache.host:localhost}, port=${remote.cache.port:11222})

echo ** Update replicated-cache work element **
/subsystem=infinispan/cache-container=keycloak/replicated-cache=work/store=remote:add( 
    passivation=false, 
    fetch-state=false, 
    purge=false, 
    preload=false, 
    shared=true, 
    remote-servers=["remote-cache"], 
    cache=work, 
    properties={ 
        rawValues=true, 
        marshaller=org.keycloak.cluster.infinispan.KeycloakHotRodMarshallerFactory, 
        protocolVersion=${keycloak.connectionsInfinispan.hotrodProtocolVersion} 
    } 
)

/subsystem=infinispan/cache-container=keycloak/replicated-cache=work:write-attribute(name=statistics-enabled,value=true)

echo ** Update distributed-cache sessions element **
/subsystem=infinispan/cache-container=keycloak/distributed-cache=sessions/store=remote:add( 
    passivation=false, 
    fetch-state=false, 
    purge=false, 
    preload=false, 
    shared=true, 
    remote-servers=["remote-cache"], 
    cache=sessions, 
    properties={ 
        rawValues=true, 
        marshaller=org.keycloak.cluster.infinispan.KeycloakHotRodMarshallerFactory, 
        protocolVersion=${keycloak.connectionsInfinispan.hotrodProtocolVersion} 
    } 
)
/subsystem=infinispan/cache-container=keycloak/distributed-cache=sessions:write-attribute(name=statistics-enabled,value=true)

echo ** Update distributed-cache offlineSessions element **
/subsystem=infinispan/cache-container=keycloak/distributed-cache=offlineSessions/store=remote:add( 
    passivation=false, 
    fetch-state=false, 
    purge=false, 
    preload=false, 
    shared=true, 
    remote-servers=["remote-cache"], 
    cache=offlineSessions, 
    properties={ 
        rawValues=true, 
        marshaller=org.keycloak.cluster.infinispan.KeycloakHotRodMarshallerFactory, 
        protocolVersion=${keycloak.connectionsInfinispan.hotrodProtocolVersion} 
    } 
)
/subsystem=infinispan/cache-container=keycloak/distributed-cache=offlineSessions:write-attribute(name=statistics-enabled,value=true)

echo ** Update distributed-cache clientSessions element **
/subsystem=infinispan/cache-container=keycloak/distributed-cache=clientSessions/store=remote:add( 
    passivation=false, 
    fetch-state=false, 
    purge=false, 
    preload=false, 
    shared=true, 
    remote-servers=["remote-cache"], 
    cache=clientSessions, 
    properties={ 
        rawValues=true, 
        marshaller=org.keycloak.cluster.infinispan.KeycloakHotRodMarshallerFactory, 
        protocolVersion=${keycloak.connectionsInfinispan.hotrodProtocolVersion} 
    } 
)
/subsystem=infinispan/cache-container=keycloak/distributed-cache=clientSessions:write-attribute(name=statistics-enabled,value=true)

echo ** Update distributed-cache offlineClientSessions element **
/subsystem=infinispan/cache-container=keycloak/distributed-cache=offlineClientSessions/store=remote:add( 
    passivation=false, 
    fetch-state=false, 
    purge=false, 
    preload=false, 
    shared=true, 
    remote-servers=["remote-cache"], 
    cache=offlineClientSessions, 
    properties={ 
        rawValues=true, 
        marshaller=org.keycloak.cluster.infinispan.KeycloakHotRodMarshallerFactory, 
        protocolVersion=${keycloak.connectionsInfinispan.hotrodProtocolVersion} 
    } 
)
/subsystem=infinispan/cache-container=keycloak/distributed-cache=offlineClientSessions:write-attribute(name=statistics-enabled,value=true)

echo ** Update distributed-cache loginFailures element **
/subsystem=infinispan/cache-container=keycloak/distributed-cache=loginFailures/store=remote:add( 
    passivation=false, 
    fetch-state=false, 
    purge=false, 
    preload=false, 
    shared=true, 
    remote-servers=["remote-cache"], 
    cache=loginFailures, 
    properties={ 
        rawValues=true, 
        marshaller=org.keycloak.cluster.infinispan.KeycloakHotRodMarshallerFactory, 
        protocolVersion=${keycloak.connectionsInfinispan.hotrodProtocolVersion} 
    } 
)
/subsystem=infinispan/cache-container=keycloak/distributed-cache=loginFailures:write-attribute(name=statistics-enabled,value=true)

echo ** Update distributed-cache actionTokens element **
/subsystem=infinispan/cache-container=keycloak/distributed-cache=actionTokens/store=remote:add( 
    passivation=false, 
    fetch-state=false, 
    purge=false, 
    preload=false, 
    shared=true, 
    cache=actionTokens, 
    remote-servers=["remote-cache"], 
    properties={ 
        rawValues=true, 
        marshaller=org.keycloak.cluster.infinispan.KeycloakHotRodMarshallerFactory, 
        protocolVersion=${keycloak.connectionsInfinispan.hotrodProtocolVersion} 
    } 
)
/subsystem=infinispan/cache-container=keycloak/distributed-cache=actionTokens:write-attribute(name=statistics-enabled,value=true)

echo ** Update distributed-cache authenticationSessions element **
/subsystem=infinispan/cache-container=keycloak/distributed-cache=authenticationSessions:write-attribute(name=statistics-enabled,value=true)

echo *** Update undertow subsystem ***
/subsystem=undertow/server=default-server/http-listener=default:write-attribute(name=proxy-address-forwarding,value=true)

run-batch
stop-embedded-server

āĻ‡āĻ¨ā§āĻ¸āĻŸāĻ˛ āĻ•āĻ°āĻ¤ā§‡ āĻ­ā§āĻ˛āĻŦā§‡āĻ¨ āĻ¨āĻž JAVA_OPTS HotRod āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻœāĻ¨ā§āĻ¯ Keycloak āĻ¨ā§‹āĻĄā§‡āĻ° āĻœāĻ¨ā§āĻ¯: remote.cache.host, remote.cache.port āĻāĻŦāĻ‚ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ° āĻ¨āĻžāĻŽ jboss.site.name.

āĻ˛āĻŋāĻ™ā§āĻ• āĻāĻŦāĻ‚ āĻ…āĻ¤āĻŋāĻ°āĻŋāĻ•ā§āĻ¤ āĻĄāĻ•ā§āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāĻ¨

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

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

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