Kubernetes เชชเชฐ HA เชฎเซ‹เชกเชฎเชพเช‚ เช•เซ€เช•เซเชฒเซ‹เช• เชšเชฒเชพเชตเซ‹

Kubernetes เชชเชฐ HA เชฎเซ‹เชกเชฎเชพเช‚ เช•เซ€เช•เซเชฒเซ‹เช• เชšเชฒเชพเชตเซ‹

TL; DR: เชคเซเชฏเชพเช‚ เช•เซ€เช•เซเชฒเซ‹เช•, เช“เชชเชจ เชธเซ‹เชฐเซเชธ เชเช•เซเชธเซ‡เชธ เช•เช‚เชŸเซเชฐเซ‹เชฒ เชธเชฟเชธเซเชŸเชฎ, เช†เช‚เชคเชฐเชฟเช• เช‰เชชเช•เชฐเชฃเชจเซเช‚ เชตเชฟเชถเซเชฒเซ‡เชทเชฃ, เช—เซ‹เช เชตเชฃเซ€ เชตเชฟเช—เชคเซ‹เชจเซเช‚ เชตเชฐเซเชฃเชจ เชนเชถเซ‡.

เชชเชฐเชฟเชšเชฏ เช…เชจเซ‡ เชฎเซเช–เซเชฏ เชตเชฟเชšเชพเชฐเซ‹

เช† เชฒเซ‡เช–เชฎเชพเช‚, เช†เชชเชฃเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซ€เชธเชจเซ€ เชŸเซ‹เชš เชชเชฐ เช•เซ€เช•เซเชฒเซ‹เช• เช•เซเชฒเชธเซเชŸเชฐ เช—เซ‹เช เชตเชคเซ€ เชตเช–เชคเซ‡ เชงเซเชฏเชพเชจเชฎเชพเช‚ เชฐเชพเช–เชตเชพเชจเชพ เชฎเซเช–เซเชฏ เชตเชฟเชšเชพเชฐเซ‹ เชœเซ‹เชˆเชถเซเช‚.

เชœเซ‹ เชคเชฎเซ‡ เช•เซ€เช•เซเชฒเซ‹เช• เชตเชฟเชถเซ‡ เชตเชงเซ เชœเชพเชฃเชตเชพ เชฎเชพเช‚เช—เชคเชพ เชนเซ‹, เชคเซ‹ เช•เซƒเชชเชพ เช•เชฐเซ€เชจเซ‡ เชฒเซ‡เช–เชจเชพ เช…เช‚เชคเซ‡ เช†เชชเซ‡เชฒเซ€ เชฒเชฟเช‚เช•เซเชธเชจเซ‹ เชธเช‚เชฆเชฐเซเชญ เชฒเซ‹. เชคเชฎเชพเชฐเซ€ เชœเชพเชคเชจเซ‡ เชชเซเชฐเซ‡เช•เซเชŸเชฟเชธเชฎเชพเช‚ เชตเชงเซ เชŠเช‚เชกเชพเชฃเชชเซ‚เชฐเซเชตเช• เชฒเซ€เชจ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชคเชฎเซ‡ เช…เชญเซเชฏเชพเชธ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เช…เชฎเชพเชฐเชพ เชญเช‚เชกเชพเชฐ เชฎเซ‹เชกเซเชฏเซเชฒ เชธเชพเชฅเซ‡ เชœเซ‡ เช† เชฒเซ‡เช–เชจเชพ เชฎเซเช–เซเชฏ เชตเชฟเชšเชพเชฐเซ‹เชจเซ‡ เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เซ‡ เช›เซ‡ (เชฒเซ‰เชจเซเชš เชฎเชพเชฐเซเช—เชฆเชฐเซเชถเชฟเช•เชพ เชคเซเชฏเชพเช‚ เช›เซ‡, เช† เชฒเซ‡เช–เชฎเชพเช‚ เช‰เชชเช•เชฐเชฃ เช…เชจเซ‡ เชธเซ‡เชŸเชฟเช‚เช—เซเชธเชจเซ€ เชเชพเช‚เช–เซ€ เชนเชถเซ‡, เช†เชถเชฐเซ‡ เช…เชจเซเชตเชพเชฆเช•).

เช•เซ€เช•เซเชฒเซ‹เช• เช เชœเชพเชตเชพเชฎเชพเช‚ เชฒเช–เซ‡เชฒเซ€ เชเช• เชœเชŸเชฟเชฒ เชธเชฟเชธเซเชŸเชฎ เช›เซ‡ เช…เชจเซ‡ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชธเชฐเซเชตเชฐเชจเซ€ เชŸเซ‹เชš เชชเชฐ เชฌเชจเซ‡เชฒเซ€ เช›เซ‡. เชตเชพเช‡เชฒเซเชกเชซเซเชฒเชพเชฏ. เชŸเซ‚เช‚เช•เชฎเชพเช‚, เชคเซ‡ เชเช• เช…เชงเชฟเช•เซƒเชคเชคเชพ เชฎเชพเชณเช–เซเช‚ เช›เซ‡ เชœเซ‡ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“เชจเซ‡ เชซเซ‡เชกเชฐเซ‡เชถเชจ เช…เชจเซ‡ SSO (เชธเชฟเช‚เช—เชฒ เชธเชพเช‡เชจ-เช“เชจ) เช•เซเชทเชฎเชคเชพ เช†เชชเซ‡ เช›เซ‡.

เช…เชฎเซ‡ เชคเชฎเชจเซ‡ เชธเชคเซเชคเชพเชตเชพเชฐ เชตเชพเช‚เชšเชตเชพ เชฎเชพเชŸเซ‡ เช†เชฎเช‚เชคเซเชฐเชฟเชค เช•เชฐเซ€เช เช›เซ€เช เชตเซ‡เชฌเชธเชพเช‡เชŸ เช…เชฅเชตเชพ เชตเชฟเช•เชฟเชชเซ€เชกเชฟเชฏเชพ เชตเชฟเช—เชคเชตเชพเชฐ เชธเชฎเชœ เชฎเชพเชŸเซ‡.

เช•เซ€เช•เซเชฒเซ‹เช• เชถเชฐเซ‚ เช•เชฐเซ‹

เช•เซ€เช•เซเชฒเซ‹เช•เชจเซ‡ เชšเชฒเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชฌเซ‡ เชธเชคเชค เชกเซ‡เชŸเชพ เชธเซเชคเซเชฐเซ‹เชคเซ‹เชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡:

  • เชธเชคเชค เชกเซ‡เชŸเชพ เชธเซเชŸเซ‹เชฐ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชตเชชเชฐเชพเชคเซ‹ เชกเซ‡เชŸเชพเชฌเซ‡เช, เชœเซ‡เชฎ เช•เซ‡ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“ เชตเชฟเชถเซ‡เชจเซ€ เชฎเชพเชนเชฟเชคเซ€
  • เชกเซ‡เชŸเชพเช—เซเชฐเซ€เชก เช•เซ‡เชถ, เชœเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชกเซ‡เชŸเชพเชฌเซ‡เชเชฎเชพเช‚เชฅเซ€ เชกเซ‡เชŸเชพเชจเซ‡ เช•เซ‡เชถ เช•เชฐเชตเชพ เชคเซ‡เชฎเชœ เช•เซ‡เชŸเชฒเชพเช• เช…เชฒเซเชชเชœเซ€เชตเซ€ เช…เชจเซ‡ เชตเชพเชฐเช‚เชตเชพเชฐ เชฌเชฆเชฒเชพเชคเชพ เชฎเซ‡เชŸเชพเชกเซ‡เชŸเชพเชจเซ‡ เชธเช‚เช—เซเชฐเชนเชฟเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชฅเชพเชฏ เช›เซ‡, เชœเซ‡เชฎ เช•เซ‡ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชธเชคเซเชฐเซ‹. เชฌเชนเชพเชฐ เชชเชพเชกเซเชฏเซเช‚ เช‡เชจเซเชซเชฟเชจเชฟเชธเซเชชเซ‡เชจ, เชœเซ‡ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ เชกเซ‡เชŸเชพเชฌเซ‡เช เช•เชฐเชคเชพเช‚ เชจเซ‹เช‚เชงเชชเชพเชคเซเชฐ เชฐเซ€เชคเซ‡ เชเชกเชชเซ€ เชนเซ‹เชฏ เช›เซ‡. เชชเชฐเช‚เชคเซ เช•เซ‹เชˆ เชชเชฃ เชธเช‚เชœเซ‹เช—เซ‹เชฎเชพเช‚, Infinispan เชฎเชพเช‚ เชธเชพเชšเชตเซ‡เชฒ เชกเซ‡เชŸเชพ เช•เซเชทเชฃเชฟเช• เช›เซ‡ - เช…เชจเซ‡ เชœเซเชฏเชพเชฐเซ‡ เช•เซเชฒเชธเซเชŸเชฐ เชซเชฐเซ€เชฅเซ€ เชถเชฐเซ‚ เชฅเชพเชฏ เชคเซเชฏเชพเชฐเซ‡ เชคเซ‡เชจเซ‡ เช•เซเชฏเชพเช‚เช• เชธเชพเชšเชตเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชจเชฅเซ€.

เช•เซ€เช•เซเชฒเซ‹เช• เชšเชพเชฐ เช…เชฒเช— เช…เชฒเช— เชฎเซ‹เชกเชฎเชพเช‚ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡:

  • เชธเชพเชฎเชพเชจเซเชฏ - เชเช• เช…เชจเซ‡ เชฎเชพเชคเซเชฐ เชเช• เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ, เชซเชพเช‡เชฒ เชฆเซเชตเชพเชฐเชพ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชฟเชค standalone.xml
  • เชจเชฟเชฏเชฎเชฟเชค เช•เซเชฒเชธเซเชŸเชฐ (เช…เชคเซเชฏเช‚เชค เช‰เชชเชฒเชฌเซเชง เชตเชฟเช•เชฒเซเชช) - เชฌเชงเซ€ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเช“เช เชธเชฎเชพเชจ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเซ‹ เชœเซ‹เชˆเช, เชœเซ‡ เชฎเซ‡เชจเซเชฏเซเช…เชฒเซ€ เชธเชฟเช‚เช•เซเชฐเชจเชพเช‡เช เชฅเชตเซ€ เชœเซ‹เชˆเช. เชธเซ‡เชŸเชฟเช‚เช—เซเชธ เชซเชพเช‡เชฒเชฎเชพเช‚ เชธเช‚เช—เซเชฐเชนเชฟเชค เช›เซ‡ standalone-ha.xml, เชตเชงเซเชฎเชพเช‚, เชคเชฎเชพเชฐเซ‡ เชกเซ‡เชŸเชพเชฌเซ‡เชเชจเซ€ เชตเชนเซ‡เช‚เชšเชพเชฏเซ‡เชฒ เชเช•เซเชธเซ‡เชธ เช…เชจเซ‡ เชฒเซ‹เชก เชฌเซ‡เชฒเซ‡เชจเซเชธเชฐ เชฌเชจเชพเชตเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡.
  • เชกเซ‹เชฎเซ‡เชจ เช•เซเชฒเชธเซเชŸเชฐ - เช•เซเชฒเชธเซเชŸเชฐเชจเซ‡ เชธเชพเชฎเชพเชจเซเชฏ เชธเซเชฅเชฟเชคเชฟเชฎเชพเช‚ เชเชกเชชเชฅเซ€ เชถเชฐเซ‚ เช•เชฐเชตเซเช‚ เช เชจเชฟเชฏเชฎเชฟเชค เช…เชจเซ‡ เช•เช‚เชŸเชพเชณเชพเชœเชจเช• เช•เชพเชฐเซเชฏ เชฌเชจเซ€ เชœเชพเชฏ เช›เซ‡ เช•เชพเชฐเชฃ เช•เซ‡ เช•เซเชฒเชธเซเชŸเชฐ เชตเชงเซ‡ เช›เซ‡, เช•เชพเชฐเชฃ เช•เซ‡ เชฆเชฐ เชตเช–เชคเซ‡ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชฌเชฆเชฒเชพเชฏ เช›เซ‡, เช•เซเชฒเชธเซเชŸเชฐเชจเชพ เชฆเชฐเซ‡เช• เชจเซ‹เชก เชชเชฐ เชคเชฎเชพเชฎ เชซเซ‡เชฐเชซเชพเชฐเซ‹ เช•เชฐเชตเชพ เช†เชตเชถเซเชฏเช• เช›เซ‡. เช“เชชเชฐเซ‡เชถเชจเชจเซ‹ เชกเซ‹เชฎเซ‡เชจ เชฎเซ‹เชก เช•เซ‡เชŸเชฒเชพเช• เชถเซ‡เชฐ เช•เชฐเซ‡เชฒ เชธเซเชŸเซ‹เชฐเซ‡เชœ เชธเซ‡เชŸ เช•เชฐเซ€เชจเซ‡ เช…เชจเซ‡ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชชเซเชฐเช•เชพเชถเชฟเชค เช•เชฐเซ€เชจเซ‡ เช† เชธเชฎเชธเซเชฏเชพเชจเซ‡ เชนเชฒ เช•เชฐเซ‡ เช›เซ‡. เช† เชธเซ‡เชŸเชฟเช‚เช—เซเชธ เชซเชพเช‡เชฒเชฎเชพเช‚ เชธเช‚เช—เซเชฐเชนเชฟเชค เช›เซ‡ domain.xml
  • เชกเซ‡เชŸเชพ เช•เซ‡เชจเซเชฆเซเชฐเซ‹ เชตเชšเซเชšเซ‡ เชชเซเชฐเชคเชฟเช•เซƒเชคเชฟ - เชœเซ‹ เชคเชฎเซ‡ เช•เซ€เช•เซเชฒเซ‹เช•เชจเซ‡ เช•เซ‡เชŸเชฒเชพเช• เชกเซ‡เชŸเชพ เชธเซ‡เชจเซเชŸเชฐเซเชธเชจเชพ เช•เซเชฒเชธเซเชŸเชฐเชฎเชพเช‚ เชšเชฒเชพเชตเชตเชพ เชฎเชพเช‚เช—เชคเชพ เชนเซ‹, เชคเซ‹ เชฎเซ‹เชŸเชพเชญเชพเช—เซ‡ เชตเชฟเชตเชฟเชง เชญเซŒเช—เซ‹เชฒเชฟเช• เชธเซเชฅเชณเซ‹เช. เช† เชตเชฟเช•เชฒเซเชชเชฎเชพเช‚, เชฆเชฐเซ‡เช• เชกเซ‡เชŸเชพ เชธเซ‡เชจเซเชŸเชฐเชฎเชพเช‚ เช•เซ€เช•เซเชฒเซ‹เช• เชธเชฐเซเชตเชฐเซเชธเชจเซเช‚ เชชเซ‹เชคเชพเชจเซเช‚ เช•เซเชฒเชธเซเชŸเชฐ เชนเชถเซ‡.

เช† เชฒเซ‡เช–เชฎเชพเช‚, เช…เชฎเซ‡ เชฌเซ€เชœเชพ เชตเชฟเช•เชฒเซเชช เชชเชฐ เชจเชœเซ€เช•เชฅเซ€ เชจเชœเชฐ เชจเชพเช–เซ€เชถเซเช‚, เชเชŸเชฒเซ‡ เช•เซ‡. เชธเชพเชฎเชพเชจเซเชฏ เช•เซเชฒเชธเซเชŸเชฐ, เชคเซ‡เชฎเชœ เชกเซ‡เชŸเชพ เช•เซ‡เชจเซเชฆเซเชฐเซ‹ เชตเชšเซเชšเซ‡ เชชเซเชฐเชคเชฟเช•เซƒเชคเชฟเชจเชพ เชตเชฟเชทเชฏ เชชเชฐ เชฅเซ‹เชกเซ‹ เชธเซเชชเชฐเซเชถ, เช•เชพเชฐเชฃ เช•เซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชฎเชพเช‚ เช† เชฌเซ‡ เชตเชฟเช•เชฒเซเชชเซ‹ เชšเชฒเชพเชตเชตเชพเชจเซ‹ เช…เชฐเซเชฅ เช›เซ‡. เชธเชฆเชญเชพเช—เซเชฏเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชจเซ‡ เชฌเชนเซเชตเชฟเชง เชชเซ‹เชกเซเชธ (เช•เซ€เช•เซเชฒเซ‹เช• เชจเซ‹เชกเซเชธ) เชจเซ€ เชธเซ‡เชŸเชฟเช‚เช—เซเชธ เชธเชฎเชจเซเชตเชฏ เช•เชฐเชตเชพเชฎเชพเช‚ เช•เซ‹เชˆ เชธเชฎเชธเซเชฏเชพ เชจเชฅเซ€, เชคเซ‡เชฅเซ€ เชกเซ‹เชฎเซ‡เชจ เช•เซเชฒเชธเซเชŸเชฐ เชคเซ‡ เช•เชฐเชตเซเช‚ เช–เซ‚เชฌ เชฎเซเชถเซเช•เซ‡เชฒ เชฐเชนเซ‡เชถเซ‡ เชจเชนเซ€เช‚.

เชชเชฃ เช•เซƒเชชเชพ เช•เชฐเซ€เชจเซ‡ เชจเซ‹เช‚เชง เช•เชฐเซ‹ เช•เซ‡ เชถเชฌเซเชฆ เช•เซเชฒเชธเซเชŸเชฐ เชœเซเชฏเชพเช‚ เชธเซเชงเซ€ เชฒเซ‡เช–เชจเซ‹ เช…เช‚เชค เชเช•เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชคเชพ เช•เซ€เช•เซเชฒเซ‹เช• เชจเซ‹เชกเซเชธเชจเชพ เชœเซ‚เชฅเชจเซ‡ เชœ เชฒเชพเช—เซ เชฅเชถเซ‡, เชคเซเชฏเชพเช‚ เชธเซเชงเซ€ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เช•เซเชฒเชธเซเชŸเชฐเชจเซ‹ เชธเช‚เชฆเชฐเซเชญ เชฒเซ‡เชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชจเชฅเซ€.

เชจเชฟเชฏเชฎเชฟเชค เช•เซ€เช•เซเชฒเซ‹เช• เช•เซเชฒเชธเซเชŸเชฐ

เช† เชฎเซ‹เชกเชฎเชพเช‚ เช•เซ€เช•เซเชฒเซ‹เช• เชšเชฒเชพเชตเชตเชพ เชฎเชพเชŸเซ‡, เชคเชฎเชพเชฐเซ‡ เช†เชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡:

  • เชฌเชพเชนเซเชฏ เชตเชนเซ‡เช‚เชšเชพเชฏเซ‡เชฒ เชกเซ‡เชŸเชพเชฌเซ‡เช เชธเซ‡เชŸ เช•เชฐเซ‹
  • เชฒเซ‹เชก เชฌเซ‡เชฒเซ‡เชจเซเชธเชฐ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‹
  • ip เชฎเชฒเซเชŸเซ€เช•เชพเชธเซเชŸ เชธเชชเซ‹เชฐเซเชŸ เชธเชพเชฅเซ‡ เช†เช‚เชคเชฐเชฟเช• เชจเซ‡เชŸเชตเชฐเซเช• เชงเชฐเชพเชตเซ‡ เช›เซ‡

เช…เชฎเซ‡ เชฌเชพเชนเซเชฏ เชกเซ‡เชŸเชพเชฌเซ‡เชเชจเชพ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจเชจเซเช‚ เชตเชฟเชถเซเชฒเซ‡เชทเชฃ เช•เชฐเซ€เชถเซเช‚ เชจเชนเซ€เช‚, เช•เชพเชฐเชฃ เช•เซ‡ เชคเซ‡ เช† เชฒเซ‡เช–เชจเซ‹ เชนเซ‡เชคเซ เชจเชฅเซ€. เชšเชพเชฒเซ‹ เชงเชพเชฐเซ€เช เช•เซ‡ เช•เซเชฏเชพเช‚เช• เช•เชพเชฐเซเชฏเช•เชพเชฐเซ€ เชกเซ‡เชŸเชพเชฌเซ‡เช เช›เซ‡ - เช…เชจเซ‡ เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชคเซ‡เชจเชพ เชฎเชพเชŸเซ‡ เชœเซ‹เชกเชพเชฃ เชฌเชฟเช‚เชฆเซ เช›เซ‡. เช…เชฎเซ‡ เชซเช•เซเชค เช† เชกเซ‡เชŸเชพเชจเซ‡ เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชšเชฒเซ‹เชฎเชพเช‚ เช‰เชฎเซ‡เชฐเซ€เชถเซเช‚.

เชซเซ‡เชฒเช“เชตเชฐ (HA) เช•เซเชฒเชธเซเชŸเชฐเชฎเชพเช‚ เช•เซ€เช•เซเชฒเซ‹เช• เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡ เชคเซ‡ เชตเชงเซ เชธเชพเชฐเซ€ เชฐเซ€เชคเซ‡ เชธเชฎเชœเชตเชพ เชฎเชพเชŸเซ‡, เชคเซ‡ เชœเชพเชฃเชตเซเช‚ เช…เช—เชคเซเชฏเชจเซเช‚ เช›เซ‡ เช•เซ‡ เช† เชฌเชงเซเช‚ เชตเชพเช‡เชฒเซเชกเชซเซเชฒเชพเชฏเชจเซ€ เช•เซเชฒเชธเซเชŸเชฐเชฟเช‚เช— เช•เซเชทเชฎเชคเชพเช“ เชชเชฐ เช•เซ‡เชŸเชฒเซ‹ เช†เชงเชพเชฐ เชฐเชพเช–เซ‡ เช›เซ‡.

เชตเชพเช‡เชฒเซเชกเชซเซเชฒเชพเชฏ เช…เชจเซ‡เช• เชธเชฌเชธเชฟเชธเซเชŸเชฎเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡, เชคเซ‡เชฎเชพเช‚เชจเชพ เช•เซ‡เชŸเชฒเชพเช•เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชฒเซ‹เชก เชฌเซ‡เชฒเซ‡เชจเซเชธเชฐ เชคเชฐเซ€เช•เซ‡ เชฅเชพเชฏ เช›เซ‡, เช•เซ‡เชŸเชฒเชพเช•เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชซเซ‡เชฒเช“เชตเชฐ เชฎเชพเชŸเซ‡ เชฅเชพเชฏ เช›เซ‡. เชœเซเชฏเชพเชฐเซ‡ เช•เซเชฒเชธเซเชŸเชฐ เชจเซ‹เชก เช“เชตเชฐเชฒเซ‹เชก เชฅเชพเชฏ เชคเซเชฏเชพเชฐเซ‡ เชฒเซ‹เชก เชฌเซ‡เชฒเซ‡เชจเซเชธเชฐ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชจเซ€ เช‰เชชเชฒเชฌเซเชงเชคเชพเชจเซ‡ เชธเซเชจเชฟเชถเซเชšเชฟเชค เช•เชฐเซ‡ เช›เซ‡, เช…เชจเซ‡ เช•เซ‡เชŸเชฒเชพเช• เช•เซเชฒเชธเซเชŸเชฐ เชจเซ‹เชก เชจเชฟเชทเซเชซเชณ เชœเชพเชฏ เชคเซ‹ เชชเชฃ เชซเซ‡เชฒเช“เชตเชฐ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชจเซ€ เช‰เชชเชฒเชฌเซเชงเชคเชพเชจเซ€ เช–เชพเชคเชฐเซ€ เช•เชฐเซ‡ เช›เซ‡. เช†เชฎเชพเช‚เชจเซ€ เช•เซ‡เชŸเชฒเซ€เช• เชธเชฌเชธเชฟเชธเซเชŸเชฎเซเชธ เช›เซ‡:

  • mod_cluster: HTTP เชฒเซ‹เชก เชฌเซ‡เชฒเซ‡เชจเซเชธเชฐ เชคเชฐเซ€เช•เซ‡ เช…เชชเชพเชšเซ‡ เชธเชพเชฅเซ‡ เชœเซ‹เชกเชพเชฃเชฎเชพเช‚ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡, เชกเชฟเชซเซ‹เชฒเซเชŸ เชนเซ‹เชธเซเชŸ เชถเซ‹เชง เชฎเชพเชŸเซ‡ TCP เชฎเชฒเซเชŸเชฟเช•เชพเชธเซเชŸ เชชเชฐ เช†เชงเชพเชฐ เชฐเชพเช–เซ‡ เช›เซ‡. เชฌเชพเชนเซเชฏ เชฌเซ‡เชฒเซ‡เชจเซเชธเชฐ เชฆเซเชตเชพเชฐเชพ เชฌเชฆเชฒเซ€ เชถเช•เชพเชฏ เช›เซ‡.

  • infinispan: เชชเชฐเชฟเชตเชนเชจ เชธเซเชคเชฐ เชคเชฐเซ€เช•เซ‡ JGroups เชšเซ‡เชจเชฒเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชตเชฟเชคเชฐเชฟเชค เช•เซ‡เชถ. เชตเซˆเช•เชฒเซเชชเชฟเช• เชฐเซ€เชคเซ‡, เชคเซ‡ เช•เซ‡เชถเชจเชพ เชธเชฎเชพเชตเชฟเชทเซเชŸเซ‹เชจเซ‡ เชธเชฎเชจเซเชตเชฏเชฟเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชฌเชพเชนเซเชฏ Infinispan เช•เซเชฒเชธเซเชŸเชฐ เชธเชพเชฅเซ‡ เชตเชพเชคเชšเซ€เชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ HotRod เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡.

  • jgroups: JGroups เชšเซ‡เชจเชฒเซ‹ เชชเชฐ เช†เชงเชพเชฐเชฟเชค เช…เชคเซเชฏเช‚เชค เช‰เชชเชฒเชฌเซเชง เชธเซ‡เชตเชพเช“ เชฎเชพเชŸเซ‡ เชœเซ‚เชฅ เชเชธเซ‹เชธเชฟเชเชถเชจ เชฎเชพเชŸเซ‡ เชธเชฎเชฐเซเชฅเชจ เชชเซ‚เชฐเซเช‚ เชชเชพเชกเซ‡ เช›เซ‡. เชจเชพเชฎเชตเชพเชณเซ€ เชชเชพเชˆเชชเซ‹ เช•เซเชฒเชธเซเชŸเชฐเชฎเชพเช‚ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชจเชพ เชฆเชพเช–เชฒเชพเช“เชจเซ‡ เชœเซ‚เชฅเซ‹เชฎเชพเช‚ เชœเซ‹เชกเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡ เชœเซ‡เชฅเซ€ เช•เชจเซ‡เช•เซเชถเชจเชฎเชพเช‚ เชตเชฟเชถเซเชตเชธเชจเซ€เชฏเชคเชพ, เชธเซเชตเซเชฏเชตเชธเซเชฅเชฟเชคเชคเชพ เช…เชจเซ‡ เชจเชฟเชทเซเชซเชณเชคเชพเชจเซ€ เชธเช‚เชตเซ‡เชฆเชจเชถเซ€เชฒเชคเชพ เชœเซ‡เชตเชพ เช—เซเชฃเชงเชฐเซเชฎเซ‹ เชนเซ‹เชฏ.

เชฒเซ‹เชก เชฌเซ‡เชฒเซ‡เชจเซเชธเชฐ

เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เช•เซเชฒเชธเซเชŸเชฐเชฎเชพเช‚ เชชเซเชฐเชตเซ‡เชถ เชจเชฟเชฏเช‚เชคเซเชฐเช• เชคเชฐเซ€เช•เซ‡ เชฌเซ‡เชฒเซ‡เชจเซเชธเชฐ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡, เชจเซ€เชšเซ‡เชจเซ€ เชฌเชพเชฌเชคเซ‹ เชงเซเชฏเชพเชจเชฎเชพเช‚ เชฐเชพเช–เชตเซ€ เชฎเชนเชคเซเชตเชชเซ‚เชฐเซเชฃ เช›เซ‡:

เช•เซ€เช•เซเชฒเซ‹เช•เชจเซเช‚ เช•เชพเชฐเซเชฏ เชธเซ‚เชšเชตเซ‡ เช›เซ‡ เช•เซ‡ HTTP เชฆเซเชตเชพเชฐเชพ เชชเซเชฐเชฎเชพเชฃเซ€เช•เชฐเชฃ เชธเชฐเซเชตเชฐ เชธเชพเชฅเซ‡ เช•เชจเซ‡เช•เซเชŸ เชฅเชคเชพ เช•เซเชฒเชพเชฏเช‚เชŸเชจเซเช‚ เชฐเซ€เชฎเซ‹เชŸ เชธเชฐเชจเชพเชฎเซเช‚ เช เช•เซเชฒเชพเชฏเชจเซเชŸ เช•เชฎเซเชชเซเชฏเซเชŸเชฐเชจเซเช‚ เชตเชพเชธเซเชคเชตเชฟเช• IP เชธเชฐเชจเชพเชฎเซเช‚ เช›เซ‡. เชฌเซ‡เชฒเซ‡เชจเซเชธเชฐ เช…เชจเซ‡ เช‡เชจเซเช—เซเชฐเซ‡เชธ เชธเซ‡เชŸเชฟเช‚เช—เซเชธเชจเซ‡ เชฏเซ‹เช—เซเชฏ เชฐเซ€เชคเซ‡ HTTP เชนเซ‡เชกเชฐเซเชธ เชธเซ‡เชŸ เช•เชฐเชตเชพ เชœเซ‹เชˆเช X-Forwarded-For ะธ X-Forwarded-Proto, เช…เชจเซ‡ เชฎเซ‚เชณ เชถเซ€เชฐเซเชทเช• เชฐเชพเช–เซ‹ HOST. เชจเชตเซ€เชจเชคเชฎ เชธเช‚เชธเซเช•เชฐเชฃ ingress-nginx (> 0.22.0) เชคเซ‡เชจเซ‡ เชกเชฟเชซเซ‰เชฒเซเชŸ เชฐเซ‚เชชเซ‡ เช…เช•เซเชทเชฎ เช•เชฐเซ‡ เช›เซ‡

เชงเซเชตเชœ เชธเช•เซเชฐเชฟเชฏเช•เชฐเชฃ proxy-address-forwarding เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชšเชฒ เชธเซ‡เชŸ เช•เชฐเซ€เชจเซ‡ PROXY_ADDRESS_FORWARDING ะฒ true เช•เซ€เช•เซเชฒเซ‹เช•เชจเซ‡ เชธเชฎเชœเชฃ เช†เชชเซ‡ เช›เซ‡ เช•เซ‡ เชคเซ‡ เชชเซเชฐเซ‹เช•เซเชธเซ€เชจเซ€ เชชเชพเช›เชณ เชฆเซ‹เชกเซ‡ เช›เซ‡.

เชคเชฎเชพเชฐเซ‡ เชชเชฃ เชธเช•เซเชทเชฎ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เชธเซเชŸเซ€เช•เซ€ เชธเชคเซเชฐเซ‹ เชชเซเชฐเชตเซ‡เชถเชฎเชพเช‚. เช•เซ€เช•เซเชฒเซ‹เช• เชตเชฐเซเชคเชฎเชพเชจ เชชเซเชฐเชฎเชพเชฃเซ€เช•เชฐเชฃ เชธเชคเซเชฐ เช…เชจเซ‡ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชธเชคเซเชฐ เชธเชพเชฅเซ‡ เชธเช‚เช•เชณเชพเชฏเซ‡เชฒ เชกเซ‡เชŸเชพ เชธเซเชŸเซ‹เชฐ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ Infinispan เชจเชพ เชตเชฟเชคเชฐเชฟเชค เช•เซ‡เชถเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡. เช•เซ…เชถ เชกเชฟเชซเซ‰เชฒเซเชŸ เชฐเซ‚เชชเซ‡ เชเช•เชฒ เชฎเชพเชฒเชฟเช• เช›เซ‡, เชฌเซ€เชœเชพ เชถเชฌเซเชฆเซ‹เชฎเชพเช‚ เช•เชนเซ€เช เชคเซ‹ เชคเซ‡ เชšเซ‹เช•เซเช•เชธ เชธเชคเซเชฐ เช•เซ‡เชŸเชฒเชพเช• เช•เซเชฒเชธเซเชŸเชฐ เชจเซ‹เชก เชชเชฐ เชธเช‚เช—เซเชฐเชนเชฟเชค เชฅเชพเชฏ เช›เซ‡ เช…เชจเซ‡ เช…เชจเซเชฏ เชจเซ‹เชกเซเชธเชจเซ‡ เชคเซ‡ เชธเชคเซเชฐเชจเซ€ เชเช•เซเชธเซ‡เชธเชจเซ€ เชœเชฐเซ‚เชฐ เชนเซ‹เชฏ เชคเซ‹ เชคเซ‡เชจเซ‡ เชฆเซ‚เชฐเชฅเซ€ เชตเชฟเชจเช‚เชคเซ€ เช•เชฐเชตเซ€ เช†เชตเชถเซเชฏเช• เช›เซ‡.

เช–เชพเชธ เช•เชฐเซ€เชจเซ‡, เชฆเชธเซเชคเชพเชตเซ‡เชœเซ‹เชจเซ€ เชตเชฟเชฐเซเชฆเซเชง, เช•เซ‚เช•เซ€เชจเชพ เชจเชพเชฎ เชธเชพเชฅเซ‡ เชธเชคเซเชฐ เชœเซ‹เชกเชตเชพเชจเซเช‚ เช…เชฎเชพเชฐเชพ เชฎเชพเชŸเซ‡ เช•เชพเชฎ เช•เชฐเชคเซเช‚ เชจเชฅเซ€ AUTH_SESSION_ID. เช•เซ€เช•เซเชฒเซ‹เช•เซ‡ เชฐเซ€เชกเชพเชฏเชฐเซ‡เช•เซเชŸเชจเซ‡ เชฒเซ‚เชช เช•เชฐเซเชฏเซเช‚ เช›เซ‡, เชคเซ‡เชฅเซ€ เช…เชฎเซ‡ เชธเซเชŸเซ€เช•เซ€ เชธเชคเซเชฐ เชฎเชพเชŸเซ‡ เช…เชฒเช— เช•เซ‚เช•เซ€ เชจเชพเชฎ เชชเชธเช‚เชฆ เช•เชฐเชตเชพเชจเซ€ เชญเชฒเชพเชฎเชฃ เช•เชฐเซ€เช เช›เซ€เช.

เช•เซ€เช•เซเชฒเซ‹เช• เช เชฏเชœเชฎเชพเชจเชจเซเช‚ เชจเชพเชฎ เชชเชฃ เชœเซ‹เชกเซ‡ เช›เซ‡ เชœเซ‡เชฃเซ‡ เชชเซเชฐเชฅเชฎ เชœเชตเชพเชฌ เช†เชชเซเชฏเซ‹ เชนเชคเซ‹ AUTH_SESSION_ID, เช…เชจเซ‡ เช•เชพเชฐเชฃ เช•เซ‡ เช…เชคเซเชฏเช‚เชค เช‰เชชเชฒเชฌเซเชง เชธเช‚เชธเซเช•เชฐเชฃเชฎเชพเช‚ เชฆเชฐเซ‡เช• เชจเซ‹เชก เชธเชฎเชพเชจ เชกเซ‡เชŸเชพเชฌเซ‡เชเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡, เชคเซ‡เชฎเชพเช‚เชจเชพ เชฆเชฐเซ‡เช• เชนเซ‹เชตเซ€ เชœ เชœเซ‹เชˆเช เชตเซเชฏเชตเชนเชพเชฐเซ‹เชจเซเช‚ เชธเช‚เชšเชพเชฒเชจ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชเช• เช…เชฒเช— เช…เชจเซ‡ เช…เชจเชจเซเชฏ เชจเซ‹เชก ID. เชฎเซ‚เช•เชตเชพเชจเซ€ เชญเชฒเชพเชฎเชฃ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ JAVA_OPTS เชชเชฐเชฟเชฎเชพเชฃเซ‹ jboss.node.name ะธ jboss.tx.node.id เชฆเชฐเซ‡เช• เชจเซ‹เชก เชฎเชพเชŸเซ‡ เช…เชจเชจเซเชฏ - เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชคเชฎเซ‡ เชชเซ‹เชกเชจเซเช‚ เชจเชพเชฎ เชธเซ‡เชŸ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹. เชœเซ‹ เชคเชฎเซ‡ เชชเซ‹เชกเชจเซเช‚ เชจเชพเชฎ เชฎเซ‚เช•เซ‹ เชคเซ‹ - jboss เชตเซ‡เชฐเซ€เชเชฌเชฒ เชฎเชพเชŸเซ‡ 23 เช…เช•เซเชทเชฐเชจเซ€ เชฎเชฐเซเชฏเชพเชฆเชพ เชตเชฟเชถเซ‡ เชญเซ‚เชฒเชถเซ‹ เชจเชนเซ€เช‚, เชคเซ‡เชฅเซ€ เชธเซเชŸเซ‡เชŸเชซเซเชฒเชธเซ‡เชŸเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเซ‹ เชตเชงเซ เชธเชพเชฐเซเช‚ เช›เซ‡, เชกเชฟเชชเซเชฒเซ‹เชฏเชฎเซ‡เชจเซเชŸเชจเซ‹ เชจเชนเซ€เช‚.

เชเช• เชตเชงเซ เชฐเซ‡เช• - เชœเซ‹ เชชเซ‹เชก เช•เชพเชขเซ€ เชจเชพเช–เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช…เชฅเชตเชพ เชชเซเชจเชƒเชชเซเชฐเชพเชฐเช‚เชญ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡, เชคเซ‹ เชคเซ‡เชจเซ€ เช•เซ‡เชถ เช–เซ‹เชตเชพเชˆ เชœเชพเชฏ เช›เซ‡. เช†เชจเซ‡ เชงเซเชฏเชพเชจเชฎเชพเช‚ เชฐเชพเช–เซ€เชจเซ‡, เชคเชฎเชพเชฎ เช•เซ‡เชถ เชฎเชพเชŸเซ‡ เช•เซ‡เชถ เชฎเชพเชฒเชฟเช•เซ‹เชจเซ€ เชธเช‚เช–เซเชฏเชพ เช“เช›เชพเชฎเชพเช‚ เช“เช›เซ€ เชฌเซ‡ เชชเชฐ เชธเซ‡เชŸ เช•เชฐเชตเซ€ เชฏเซ‹เช—เซเชฏ เช›เซ‡, เชคเซ‡เชฅเซ€ เช•เซ‡เชถเชจเซ€ เชเช• เชจเช•เชฒ เชนเชถเซ‡. เชคเซ‡เชจเซ‹ เช‰เช•เซ‡เชฒ เชฆเซ‹เชกเชตเชพเชจเซ‹ เช›เซ‡ เชตเชพเช‡เชฒเซเชกเชซเซเชฒเชพเชฏ เชฎเชพเชŸเซ‡ เชธเซเช•เซเชฐเชฟเชชเซเชŸ เชชเซ‹เชก เชถเชฐเซ‚ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡, เชคเซ‡เชจเซ‡ เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€เชฎเชพเช‚ เชฎเซ‚เช•เซ€เชจเซ‡ /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 เชœเชฐเซ‚เชฐเซ€ เชฎเชพเชŸเซ‡.

เช†เช‡เชชเซ€ เชฎเชฒเซเชŸเซ€เช•เชพเชธเซเชŸ เชธเชชเซ‹เชฐเซเชŸ เชธเชพเชฅเซ‡ เช–เชพเชจเช—เซ€ เชจเซ‡เชŸเชตเชฐเซเช•

เชœเซ‹ เชคเชฎเซ‡ เชคเชฎเชพเชฐเชพ CNI เชคเชฐเซ€เช•เซ‡ เชตเซ€เชตเซ‡เชจเซ‡เชŸเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชฐเชนเซเชฏเชพเช‚ เช›เซ‹, เชคเซ‹ เชฎเชฒเซเชŸเซ€เช•เชพเชธเซเชŸ เชคเชฐเชค เชœ เช•เชพเชฎ เช•เชฐเชถเซ‡ - เช…เชจเซ‡ เชคเชฎเชพเชฐเชพ เช•เซ€เช•เซเชฒเซ‹เช• เชจเซ‹เชกเซเชธ เชเช• เชฌเซ€เชœเชพเชจเซ‡ เชœเซ‹เชถเซ‡ เช•เซ‡ เชคเชฐเชค เชœ เชคเซ‡เช“ เชšเชพเชฒเซ เชฅเชถเซ‡.

เชœเซ‹ เชคเชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชคเชฎเชพเชฐเชพ Kubernetes เช•เซเชฒเชธเซเชŸเชฐเชฎเชพเช‚ ip เชฎเชฒเซเชŸเซ€เช•เชพเชธเซเชŸ เชธเชชเซ‹เชฐเซเชŸ เชจเชฅเซ€, เชคเซ‹ เชคเชฎเซ‡ เชจเซ‹เชกเซเชธ เชถเซ‹เชงเชตเชพ เชฎเชพเชŸเซ‡ เช…เชจเซเชฏ เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒ เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ 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 เชฎเซ‹เชกเชฎเชพเช‚ เช•เซ€เช•เซเชฒเซ‹เช• เชšเชฒเชพเชตเซ‹

ะกะฒัะทัŒ

เช•เซ€เช•เซเชฒเซ‹เช• เชฆเชฐเซ‡เช• เชกเซ‡เชŸเชพ เชธเซ‡เชจเซเชŸเชฐ เชฎเชพเชŸเซ‡ เชฌเชนเซเชตเชฟเชง เช…เชฒเช— เช‡เชจเซเชซเชฟเชจเชฟเชธเซเชชเซ‡เชจ เช•เซ‡เชถ เช•เซเชฒเชธเซเชŸเชฐเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡ เชœเซ‡ เช•เซ€เช•เซเชฒเซ‹เช• เชจเซ‹เชกเซเชธเชฅเซ€ เชฌเชจเซ‡เชฒเชพ เช•เซ€เช•เซเชฒเซ‹เช• เช•เซเชฒเชธเซเชŸเชฐเซ‹เชจเซ‡ เชนเซ‹เชธเซเชŸ เช•เชฐเซ‡ เช›เซ‡. เชชเชฐเช‚เชคเซ เชคเซ‡ เชœ เชธเชฎเชฏเซ‡, เชตเชฟเชตเชฟเชง เชกเซ‡เชŸเชพ เช•เซ‡เชจเซเชฆเซเชฐเซ‹เชฎเชพเช‚ เช•เซ€เช•เซเชฒเซ‹เช• เชจเซ‹เชกเซเชธ เชตเชšเซเชšเซ‡ เช•เซ‹เชˆ เชคเชซเชพเชตเชค เชจเชฅเซ€.

เช•เซ€เช•เซเชฒเซ‹เช• เชจเซ‹เชกเซเชธ เชกเซ‡เชŸเชพ เชธเซ‡เชจเซเชŸเชฐเซ‹ เชตเชšเซเชšเซ‡ เชตเชพเชคเชšเซ€เชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชฌเชพเชนเซเชฏ เชœเชพเชตเชพ เชกเซ‡เชŸเชพ เช—เซเชฐเซ€เชก (เช‡เชจเซเชซเชฟเชจเชฟเชธเซเชชเซ‡เชจ เชธเชฐเซเชตเชฐเซเชธ) เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡. เช•เซ‹เชฎเซเชฏเซเชจเชฟเช•เซ‡เชถเชจ เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒ เช…เชจเซเชธเชพเชฐ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡ Infinispan HotRod.

Infinispan เช•เซ‡เชถ เชเชŸเซเชฐเซ€เชฌเซเชฏเซเชŸ เชธเชพเชฅเซ‡ เช—เซ‹เช เชตเซ‡เชฒ เชนเซ‹เชตเชพ เชœเซ‹เชˆเช remoteStore, เชœเซ‡เชฅเซ€ เชกเซ‡เชŸเชพ เชฐเชฟเชฎเซ‹เชŸเชฎเชพเช‚ เชธเซเชŸเซ‹เชฐ เช•เชฐเซ€ เชถเช•เชพเชฏ (เชฌเซ€เชœเชพ เชกเซ‡เชŸเชพ เชธเซ‡เชจเซเชŸเชฐเชฎเชพเช‚, เช†เชถเชฐเซ‡ เช…เชจเซเชตเชพเชฆเช•) เช•เซ‡เชถ. JDG เชธเชฐเซเชตเชฐเซเชธเชฎเชพเช‚ เช…เชฒเช— เช‡เชจเซเชซเชฟเชจเชฟเชธเซเชชเซ‡เชจ เช•เซเชฒเชธเซเชŸเชฐเซ‹ เช›เซ‡, เชคเซ‡เชฅเซ€ เชธเชพเช‡เชŸ เชชเชฐ JDG1 เชชเชฐ เชกเซ‡เชŸเชพ เชธเช‚เช—เซเชฐเชนเชฟเชค เช›เซ‡ site1 เชธเชพเช‡เชŸ เชชเชฐ JDG2 เชชเชฐ เชจเช•เชฒ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡ site2.

เช…เช‚เชคเซ‡, เชชเซเชฐเชพเชชเซเชค เช•เชฐเชจเชพเชฐ JDG เชธเชฐเซเชตเชฐ เชคเซ‡เชจเชพ เช•เซเชฒเชธเซเชŸเชฐเชจเชพ เช•เซ€เช•เซเชฒเซ‹เช• เชธเชฐเซเชตเชฐเซเชธเชจเซ‡ เช•เซเชฒเชพเชฏเชจเซเชŸ เช•เชจเซ‡เช•เซเชถเชจเซเชธ เชฆเซเชตเชพเชฐเชพ เชธเซ‚เชšเชฟเชค เช•เชฐเซ‡ เช›เซ‡, เชœเซ‡ HotRod เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒเชจเซเช‚ เชฒเช•เซเชทเชฃ เช›เซ‡. เช•เซ€เช•เซเชฒเซ‹เช• เชจเซ‹เชกเซเชธ เชšเชพเชฒเซ site2 เชคเซ‡เชฎเชจเชพ Infinispan เช•เซ‡เชถเชจเซ‡ เช…เชชเชกเซ‡เชŸ เช•เชฐเซ‹ เช…เชจเซ‡ เชšเซ‹เช•เซเช•เชธ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชธเชคเซเชฐ เช•เซ€เช•เซเชฒเซ‹เช• เชจเซ‹เชกเซเชธ เชชเชฐ เชชเชฃ เช‰เชชเชฒเชฌเซเชง เชฌเชจเซ‡ เช›เซ‡ site2.

เช•เซ‡เชŸเชฒเชพเช• เช•เซ‡เชถเชจเซเช‚ เชฌเซ‡เช•เช…เชช เชจ เชฒเซ‡เชตเซเช‚ เช…เชจเซ‡ Infinispan เชธเชฐเซเชตเชฐ เชฆเซเชตเชพเชฐเชพ เชกเซ‡เชŸเชพ เชฒเช–เชตเชพเชจเซ‹ เชธเช‚เชชเซ‚เชฐเซเชฃ เช‡เชจเช•เชพเชฐ เช•เชฐเชตเซ‹ เชชเชฃ เชถเช•เซเชฏ เช›เซ‡. เช† เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชคเชฎเชพเชฐเซ‡ เชธเซ‡เชŸเชฟเช‚เช— เชฆเซ‚เชฐ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ remote-store เชšเซ‹เช•เซเช•เชธ Infinispan เช•เซ‡เชถ (เชซเชพเชˆเชฒเชฎเชพเช‚ standalone-ha.xml), เชœเซ‡ เชชเช›เซ€ เช…เชฎเซเช• เชšเซ‹เช•เซเช•เชธ replicated-cache เช‡เชจเซเชซเชฟเชจเชฟเชธเซเชชเซ‡เชจ เชธเชฐเซเชตเชฐเชจเซ€ เชฌเชพเชœเซเชฎเชพเช‚ เชชเชฃ เชนเชตเซ‡ เชœเชฐเซ‚เชฐ เชฐเชนเซ‡เชถเซ‡ เชจเชนเซ€เช‚.

เช•เซ…เชถ เชธเซ‡เชŸ เช•เชฐเซ€ เชฐเชนเซเชฏเชพเช‚ เช›เซ€เช

เช•เซ€เช•เซเชฒเซ‹เช•เชฎเชพเช‚ เชฌเซ‡ เชชเซเชฐเช•เชพเชฐเชจเชพ เช•เซ‡เชถ เช›เซ‡:

  • เชธเซเชฅเชพเชจเชฟเช•. เชคเซ‡ เช†เชงเชพเชฐเชจเซ€ เชฌเชพเชœเซเชฎเชพเช‚ เชธเซเชฅเชฟเชค เช›เซ‡, เชกเซ‡เชŸเชพเชฌเซ‡เช เชชเชฐเชจเชพ เชญเชพเชฐเชจเซ‡ เช˜เชŸเชพเชกเชตเชพ เชคเซ‡เชฎเชœ เชชเซเชฐเชคเชฟเชธเชพเชฆ เชฒเซ‡เชŸเชจเซเชธเซ€ เช˜เชŸเชพเชกเชตเชพ เชฎเชพเชŸเซ‡ เชธเซ‡เชตเชพ เช†เชชเซ‡ เช›เซ‡. เช† เชชเซเชฐเช•เชพเชฐเชจเซ€ เช•เซ‡เชถ เช•เซเชทเซ‡เชคเซเชฐ, เช—เซเชฐเชพเชนเช•เซ‹, เชญเซ‚เชฎเชฟเช•เชพเช“ เช…เชจเซ‡ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชฎเซ‡เชŸเชพเชกเซ‡เชŸเชพเชจเซ‡ เชธเช‚เช—เซเชฐเชนเชฟเชค เช•เชฐเซ‡ เช›เซ‡. เชœเซ‹ เช† เช•เซ‡เชถ เช•เซ€เช•เซเชฒเซ‹เช• เช•เซเชฒเชธเซเชŸเชฐเชจเซ‹ เชญเชพเช— เชนเซ‹เชฏ เชคเซ‹ เชชเชฃ เช† เชชเซเชฐเช•เชพเชฐเชจเซ€ เช•เซ‡เชถเชจเซ€ เชจเช•เชฒ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชคเซ€ เชจเชฅเซ€. เชœเซ‹ เช•เซ‡เชถเชฎเชพเช‚ เช•เซ‡เชŸเชฒเซ€เช• เชเชจเซเชŸเซเชฐเซ€ เชฌเชฆเชฒเชพเชฏ เช›เซ‡, เชคเซ‹ เช•เซเชฒเชธเซเชŸเชฐเชฎเชพเช‚เชจเชพ เชฌเชพเช•เซ€เชจเชพ เชธเชฐเซเชตเชฐเซเชธ เชชเชฐ เชซเซ‡เชฐเชซเชพเชฐเชจเซ‹ เชธเช‚เชฆเซ‡เชถ เชฎเซ‹เช•เชฒเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชœเซ‡ เชชเช›เซ€ เช•เซ‡เชถเชฎเชพเช‚เชฅเซ€ เชเชจเซเชŸเซเชฐเซ€ เชฌเชพเช•เชพเชค เชฐเชพเช–เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เชตเชฐเซเชฃเชจ เชœเซเช“ work เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเชจเชพ เชตเชงเซ เชตเชฟเช—เชคเชตเชพเชฐ เชตเชฐเซเชฃเชจ เชฎเชพเชŸเซ‡ เชจเซ€เชšเซ‡.

  • เชชเซเชฐเชคเชฟเช•เซƒเชคเชฟเชฏเซ‹เช—เซเชฏ. เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชธเชคเซเชฐเซ‹, เช‘เชซเชฒเชพเช‡เชจ เชŸเซ‹เช•เชจเซเชธ เชชเชฐ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช•เชฐเซ‡ เช›เซ‡ เช…เชจเซ‡ เชชเชพเชธเชตเชฐเซเชก เชซเชฟเชถเชฟเช‚เช— เชชเซเชฐเชฏเชพเชธเซ‹ เช…เชจเซ‡ เช…เชจเซเชฏ เชนเซเชฎเชฒเชพเช“ เชถเซ‹เชงเชตเชพ เชฎเชพเชŸเซ‡ เชฒเซ‹เช—เชฟเชจ เชจเชฟเชทเซเชซเชณเชคเชพเช“เชจเซเช‚ เชจเชฟเชฐเซ€เช•เซเชทเชฃ เช•เชฐเซ‡ เช›เซ‡. เช† เช•เซ‡เชถเชฎเชพเช‚ เชธเช‚เช—เซเชฐเชนเชฟเชค เชกเซ‡เชŸเชพ เช…เชธเซเชฅเชพเชฏเซ€ เช›เซ‡, เชซเช•เซเชค RAM เชฎเชพเช‚ เชธเช‚เช—เซเชฐเชนเชฟเชค เช›เซ‡, เชชเชฐเช‚เชคเซ เชธเชฎเช—เซเชฐ เช•เซเชฒเชธเซเชŸเชฐเชฎเชพเช‚ เชจเช•เชฒ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡.

Infinispan Caches

เชธเชคเซเชฐเซ‹ - เช•เซ€เช•เซเชฒเซ‹เช•เชฎเชพเช‚ เชเช• เช–เซเชฏเชพเชฒ, เช…เชฒเช— เช•เซ‡เชถ, เชœเซ‡เชจเซ‡ เช•เชนเซ‡เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ 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 เช•เซ€เช•เซเชฒเซ‹เช• เช•เซ‡เชถ เชฎเชพเชŸเซ‡. เช† เชฎเชพเชŸเซ‡, เชเช• เชธเซเช•เซเชฐเชฟเชชเซเชŸ เชชเชฐเซเชฏเชพเชชเซเชค เช›เซ‡, เชœเซ‡ เชชเชพเช›เชฒเชพ เชเช•เชจเซ€ เชœเซ‡เชฎ เชœ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชœเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชšเชฒ เชธเซ‡เชŸ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชฅเชพเชฏ เช›เซ‡. 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 เช•เชพเชฎ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช•เซ€เช•เซเชฒเซ‹เช• เชจเซ‹เชกเซเชธ เชฎเชพเชŸเซ‡: remote.cache.host, remote.cache.port เช…เชจเซ‡ เชธเซ‡เชตเชพเชจเซเช‚ เชจเชพเชฎ jboss.site.name.

เชฒเชฟเช‚เช•เซเชธ เช…เชจเซ‡ เชตเชงเชพเชฐเชพเชจเชพ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ

เชฒเซ‡เช–เชจเซ‹ เช…เชจเซเชตเชพเชฆ เช…เชจเซ‡ เช•เชฐเซเชฎเชšเชพเชฐเซ€เช“ เชฆเซเชตเชพเชฐเชพ เชนเซ‡เชฌเชฐ เชฎเชพเชŸเซ‡ เชคเซˆเชฏเชพเชฐ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เชนเชคเซ‹ เชธเซเชฒเชฐเซเชฎ เชคเชพเชฒเซ€เชฎ เช•เซ‡เชจเซเชฆเซเชฐ โ€” เชชเซเชฐเซ‡เช•เซเชŸเชฟเชถเชจเชฐเซ‹ เชคเชฐเชซเชฅเซ€ เชธเช˜เชจ, เชตเชฟเชกเชฟเชฏเซ‹ เช…เชญเซเชฏเชพเชธเช•เซเชฐเชฎเซ‹ เช…เชจเซ‡ เช•เซ‹เชฐเซเชชเซ‹เชฐเซ‡เชŸ เชคเชพเชฒเซ€เชฎ (เช•เซเชฌเชฐเชจเซ‡เชŸเชธ, เชกเซ‡เชตเช“เชชเซเชธ, เชกเซ‹เช•เชฐ, เชเชจเซเชธเชฟเชฌเชฒ, เชธเซ‡เชซ, เชเชธเช†เชฐเช‡)

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹