په کوبرنیټس کې د HA حالت کې کیکلوک چلول

په کوبرنیټس کې د HA حالت کې کیکلوک چلول

د تمديد؛ DR: دلته به د کیکلوک توضیحات وي ، د خلاصې سرچینې لاسرسي کنټرول سیسټم ، د داخلي جوړښت تحلیل ، د تشکیلاتو توضیحات.

پیژندنه او کلیدي نظریات

پدې مقاله کې به موږ لومړني نظرونه وګورو چې باید په ذهن کې وساتل شي کله چې د کیکلوک کلسټر ځای په ځای کول د کبرنیټس په سر کې.

که تاسو غواړئ د کیکلوک په اړه نور معلومات ترلاسه کړئ، د مقالې په پای کې لینکونو ته مراجعه وکړئ. د دې لپاره چې په عمل کې ډیر ډوب شئ، تاسو کولی شئ مطالعه وکړئ زموږ ذخیره د یو ماډل سره چې د دې مقالې اصلي نظرونه پلي کوي (د لانچ لارښود شتون لري، دا مقاله به د وسیلې او ترتیباتو عمومي کتنه وړاندې کړي، نږدې ژباړن).

کیکلوک یو جامع سیسټم دی چې په جاوا کې لیکل شوی او د غوښتنلیک سرور په سر کې جوړ شوی وحشي مچۍ. په لنډه توګه، دا د واک لپاره یو چوکاټ دی چې د غوښتنلیک کاروونکو فدراسیون او SSO (واحد لاسلیک کولو) وړتیاوې ورکوي.

موږ تاسو ته بلنه درکوو چې رسمي ولولئ ویب پاڼه او یا ويکيپېډيا د مفصل پوهیدو لپاره.

د کیلواک پیل کول

کیکلوک د چلولو لپاره دوه دوامداره ډیټا سرچینو ته اړتیا لري:

  • یو ډیټابیس د تاسیس شوي معلوماتو ذخیره کولو لپاره کارول کیږي، لکه د کاروونکي معلومات
  • د ډیټاګریډ کیچ ، کوم چې د ډیټابیس څخه ډیټا ذخیره کولو لپاره کارول کیږي ، په بیله بیا د ځینې لنډ مهاله او په مکرر ډول بدلیدونکي میټاډاټا ذخیره کولو لپاره ، لکه د کارونکي ناستې. پلي شوي Infinispan، کوم چې معمولا د ډیټابیس په پرتله خورا ګړندی وي. مګر په هر حالت کې، په انفینیسپان کې خوندي شوي معلومات لنډمهاله دي - او دا اړتیا نلري چې هرچیرې خوندي شي کله چې کلستر بیا پیل شي.

کیکلاک په څلورو مختلف حالتونو کې کار کوي:

  • عادي - یو او یوازې یوه پروسه ، د فایل له لارې تنظیم شوې standalone.xml
  • منظم کلستر (د لوړ شتون اختیار) - ټولې پروسې باید ورته ترتیب وکاروي، کوم چې باید په لاسي ډول همغږي شي. ترتیبات په فایل کې زیرمه شوي standalone-ha.xml، سربیره پردې تاسو اړتیا لرئ ډیټابیس ته شریک لاسرسی او د بار بیلانسر چمتو کړئ.
  • د ډومین کلستر - په نورمال حالت کې د کلستر پیل کول په چټکۍ سره یو معمول او ستړي کوونکی کار کیږي ځکه چې کلستر وده کوي، ځکه چې هرکله چې ترتیب بدل شي، ټول بدلونونه باید په هر کلستر نوډ کې ترسره شي. د عملیاتو ډومین حالت دا مسله د ځینې شریک ذخیره کولو ځای په ترتیب کولو او ترتیب کولو خپرولو سره حل کوي. دا ترتیبات په فایل کې زیرمه شوي domain.xml
  • د معلوماتو مرکزونو ترمنځ نقل - که تاسو غواړئ د ډیری ډیټا مرکزونو په کلستر کې کیکلوک چل کړئ ، ډیری وختونه په مختلف جغرافیایی موقعیتونو کې. په دې اختیار کې، هر ډیټا مرکز به د کیکلوک سرورونو خپل کلستر ولري.

پدې مقاله کې به موږ په تفصیل سره دوهم اختیار په پام کې ونیسو، دا دی منظم کلستر، او موږ به د ډیټا مرکزونو ترمینځ د نقل کولو موضوع باندې یو څه لمس هم وکړو ، ځکه چې دا په کوبرنیټس کې د دې دوه اختیارونو چلول معنی لري. خوشبختانه ، په کوبرنیټس کې د څو پوډونو (کیکلوک نوډونو) تنظیماتو ترکیب کولو کې کومه ستونزه شتون نلري ، نو د ډومین کلستر دا به ډیر ستونزمن نه وي چې ترسره شي.

همدارنګه مهرباني وکړئ دا کلمه په پام کې ونیسئ کلستر د پاتې مقالې لپاره به یوازې د کیکلوک نوډونو یوې ډلې ته پلي شي چې یوځای کار کوي ، د کوبرنیټس کلستر ته راجع کولو ته اړتیا نشته.

منظم کیکلوک کلستر

په دې حالت کې د کیکلوک چلولو لپاره تاسو اړتیا لرئ:

  • بهرنۍ شریک ډیټابیس تنظیم کړئ
  • د بار توازن نصب کړئ
  • د IP ملټي کاسټ ملاتړ سره داخلي شبکه ولرئ

موږ به د بهرني ډیټابیس تنظیم کولو په اړه بحث ونه کړو، ځکه چې دا د دې مقالې موخه نه ده. راځئ فرض کړو چې په کوم ځای کې کاري ډیټابیس شتون لري - او موږ دې ته د ارتباط نقطه لرو. موږ به په ساده ډول دا ډاټا د چاپیریال متغیرونو ته اضافه کړو.

د دې لپاره چې ښه پوه شي چې کیکلوک څنګه په ناکامۍ (HA) کلستر کې کار کوي، دا مهمه ده چې پوه شئ چې دا ټول د Wildfly د کلستر کولو وړتیاو پورې اړه لري.

Wildfly ډیری فرعي سیسټمونه کاروي، ځینې یې د بار توازن په توګه کارول کیږي، ځینې یې د غلط زغم لپاره. د بار بیلانسر د غوښتنلیک شتون تضمینوي کله چې د کلستر نوډ ډیر بار وي، او د غلطۍ زغم د غوښتنلیک شتون ډاډمن کوي ​​حتی که ځینې کلستر نوډ ناکام شي. د دې فرعي سیسټمونو څخه ځینې:

  • mod_cluster: د اپاچي سره په ګډه د HTTP بار بیلانسر په توګه کار کوي، د ډیفالټ لخوا کوربه موندلو لپاره د TCP ملټي کاسټ پورې اړه لري. د بهرني بیلانس سره بدل کیدی شي.

  • infinispan: د ترانسپورت پرت په توګه د JGroups چینلونو په کارولو سره توزیع شوی زیرمه. سربیره پردې، دا کولی شي د HotRod پروتوکول وکاروي ترڅو د کیچ مینځپانګې همغږي کولو لپاره د بهرني انفینیسپان کلستر سره اړیکه ونیسي.

  • jgroups: د JGroups چینلونو پراساس د خورا موجود خدماتو لپاره د ګروپ ارتباطي ملاتړ چمتو کوي. نومول شوي پایپونه په کلستر کې د غوښتنلیک مثالونو ته اجازه ورکوي چې په ګروپونو کې وصل شي ترڅو ارتباط ځانګړتیاوې ولري لکه اعتبار، ترتیب، او د ناکامۍ لپاره حساسیت.

بار بیلانسر

کله چې د کبرنیټس کلستر کې د ننوتلو کنټرولر په توګه بیلانسر نصب کړئ ، نو دا مهمه ده چې لاندې شیان په پام کې ونیسئ:

Keycloak ګومان کوي ​​​​چې د پیرودونکي ریموټ پته د HTTP له لارې د تصدیق سرور سره نښلوي د پیرودونکي کمپیوټر اصلي IP پته ده. د بیلانسر او ننوتلو ترتیبات باید د 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 اړتیا ته.

شخصي شبکه د IP ملټي کاسټ ملاتړ سره

که تاسو Weavenet د CNI په توګه کاروئ، ملټي کاسټ به سمدلاسه کار وکړي - او ستاسو د کیکلوک نوډونه به د پیل کیدو سره سم یو بل وګوري.

که تاسو په خپل Kubernetes کلستر کې د ip multicast ملاتړ نلرئ، تاسو کولی شئ د نوډونو موندلو لپاره د نورو پروتوکولونو سره کار کولو لپاره 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.

د معلوماتو مرکزونو ترمنځ نقل

په کوبرنیټس کې د HA حالت کې کیکلوک چلول

سوریه

کیکلوک د هر ډیټا مرکز لپاره څو جلا انفینیسپان کیچ کلسترونه کاروي چیرې چې کیکلوک کلسترونه د کیکلوک نوډونو څخه جوړ شوي موقعیت لري. مګر د مختلف ډیټا مرکزونو کې د کیکلوک نوډونو ترمینځ هیڅ توپیر شتون نلري.

کیکلوک نوډونه د ډیټا مرکزونو ترمینځ د اړیکو لپاره د بهرني جاوا ډیټا ګریډ (Infinispan سرور) کاروي. اړیکه د پروتوکول مطابق کار کوي Infinispan HotRod.

Infinispan کیچونه باید د خاصیت سره تنظیم شي remoteStoreد دې لپاره چې ډاټا په لیرې توګه ذخیره شي (په بل ډیټا مرکز کې، نږدې ژباړن) کیچ. د JDG سرورونو په مینځ کې جلا infinispan کلسترونه شتون لري، نو د JDG1 په سایټ کې ذخیره شوي ډاټا site1 په سایټ کې به JDG2 ته نقل شي site2.

او په نهایت کې ، ترلاسه کونکی JDG سرور د پیرودونکي اتصالاتو له لارې د دې کلستر کیکلوک سرورونو ته خبر ورکوي ، کوم چې د HotRod پروتوکول ځانګړتیا ده. کیکلوک نوډونه آن site2 خپل انفینسپین کیچونه تازه کړئ او د کارونکي ځانګړي سیشن په کیکلوک نوډونو کې هم شتون لري site2.

د ځینو کیچونو لپاره، دا هم امکان لري چې بیک اپ ونه کړئ او په بشپړ ډول د Infinispan سرور له لارې د معلوماتو لیکلو څخه ډډه وکړئ. د دې کولو لپاره تاسو اړتیا لرئ تنظیمات لرې کړئ remote-store ځانګړی Infinispan کیچ (په فایل کې standalone-ha.xml)، له هغې وروسته ځینې مشخص replicated-cache د انفینیسپان سرور اړخ ته به نور اړتیا ونلري.

د کیچونو تنظیم کول

په کیکلوک کې دوه ډوله کیچونه شتون لري:

  • ځايي. دا د ډیټابیس تر څنګ موقعیت لري او په ډیټابیس کې د بار کمولو او همدارنګه د غبرګون ځنډ کمولو لپاره کار کوي. دا ډول کیچ حقیقي، پیرودونکي، رولونه، او د کاروونکي میټاډاټا ذخیره کوي. دا ډول کیچ نه نقل کیږي، حتی که کیچ د کیکلوک کلستر برخه وي. که چیرې په کیچ کې ننوتل بدل شي، د بدلون په اړه یو پیغام په کلستر کې پاتې سرورونو ته لیږل کیږي، وروسته له هغې چې ننوتل د کیچ څخه ایستل کیږي. تفصیل وګورئ work د کړنلارې نور تفصیل لپاره لاندې وګورئ.

  • نقل شوی. د کارونکي ناستې پروسس کوي، آفلاین ټوکنونه، او د پاسورډ فشینګ هڅو او نورو بریدونو موندلو لپاره د ننوتلو غلطیو څارنه هم کوي. په دې کیچونو کې زیرمه شوي معلومات لنډمهاله دي، یوازې په RAM کې زیرمه شوي، مګر په ټول کلستر کې نقل کیدی شي.

Infinispan کیچ

غونډې - په کیکلوک کې یو مفهوم، جلا کیچ ویل کیږي authenticationSessionsد ځانګړو کاروونکو معلوماتو ذخیره کولو لپاره کارول کیږي. د دې زیرمو څخه غوښتنې معمولا د براوزر او کیکلوک سرورونو لخوا اړین دي ، نه د غوښتنلیکونو لخوا. دا هغه ځای دی چیرې چې د چپچینې غونډو انحصار په عمل کې راځي ، او دا ډول کیچونه پخپله تکرار ته اړتیا نلري ، حتی د فعال - فعال حالت په حالت کې.

د عمل نښه. بل مفهوم، معمولا د مختلفو سناریوګانو لپاره کارول کیږي کله چې، د بیلګې په توګه، کاروونکي باید د بریښنالیک له لارې یو څه په غیر متناسب ډول ترسره کړي. د مثال په توګه، د طرزالعمل په ترڅ کې forget password کیچ actionTokens د اړوندو توکیو میټاډاټا تعقیبولو لپاره کارول کیږي - د بیلګې په توګه، یو ټوکن دمخه کارول شوی او بیا فعال نشي. دا ډول کیچ معمولا اړتیا لري چې د ډیټا مرکزونو ترمینځ تکرار شي.

د ذخیره شوي معلوماتو زیرمه کول او عمر ورکول په ډیټابیس کې د بار کمولو لپاره کار کوي. دا ډول کیشینګ فعالیت ښه کوي، مګر ښکاره ستونزه زیاتوي. که یو کیکلوک سرور ډیټا تازه کړي ، نو نور سرورونه باید خبر شي ترڅو دوی وکولی شي په خپلو زیرمو کې ډاټا تازه کړي. Keycloak محلي کیچونه کاروي 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

Add a comment