موږ به د دې اهدافو ترلاسه کولو لپاره څو لارې وګورو او ټوله پروسه به په روښانه توګه وښیو.
تبصره: ایا تاسو د شرکت نسخه کاروئ؟ وګوره دلته او د اړتیا سره سم د عکس لینکونه تازه کړئ.
د کاري جریان پراختیا
پدې ډیمو کې ، موږ به د ګوګل کلاوډ جوړونې په کارولو سره د ډاکر عکسونو جوړولو لپاره سکافولډ وکاروو. دا د مختلفو وسیلو لپاره ښه ملاتړ لري (لکه Kustomize او Helm)، CI او جوړونکي اوزار، او زیربنا چمتو کونکي. دوتنه skaffold.yaml.tmpl د ګوګل کلاوډ جوړونې او GKE لپاره تنظیمات شامل دي، د تولید درجې زیربنا چلولو لپاره خورا ساده لاره چمتو کوي.
make skaffold د ډاکرفایل شرایط به په کلاوډ جوړ کې بار کړي ، عکس به رامینځته کړي او په GCR کې به یې زیرمه کړي ، او بیا به خپل کلستر ته څرګندونه پلي کړي. دا هغه څه دي چې دا یې کوي make skaffold، مګر سکافولډ ډیری نورې ځانګړتیاوې لري.
په کوبرنیټس کې د یامل ټیمپلیټونو لپاره ، موږ د بشپړ مینیفیسټ له مینځه وړلو پرته د یامل پوښونو اداره کولو لپاره kustomize کاروو ، تاسو ته اجازه درکوي چې وکاروئ git pull --rebase د نورو پرمختګونو لپاره. اوس دا په kubectl کې دی او دا د داسې شیانو لپاره خورا ښه کار کوي.
موږ د *.yaml.tmpl فایلونو کې د کوربه نوم او GCP پروژې ID ډکولو لپاره envsubst هم کاروو. تاسو کولی شئ وګورئ چې دا څنګه کار کوي makefile یا یوازې نور دوام ورکړئ.
که تاسو نه غواړئ kustomize یا skaffold وکاروئ، تاسو کولی شئ په دې کې د منشورونو ته مراجعه وکړئ generated-manifest.yaml او دوی د خپلې خوښې کاري فلو سره تطابق کړئ.
لوګو او میټریکونه
Prometheus په Kubernetes کې د میټریکونو راټولولو معیار ګرځیدلی. دا د AWS کلاوډ واچ میټریکونو ، کلاوډ واچ خبرتیاوې ، سټیک ډرایور میټریکس ، سټیټسD ، ډیټاډګ ، ناګیوس ، vSphere میټریکونو او نورو په څیر ورته ځای نیسي. دا خلاص سرچینه ده او د پوښتنې ځواکمنه ژبه لري. موږ به لید ګرافانا ته وسپارو - دا د بکس څخه بهر د ډیری ډشبورډونو سره راځي. دوی یو له بل سره وصل دي او نصب کول نسبتا اسانه دي prometheus-آپریټر.
په ډیفالټ ډول، پرومیتیوس د استخراج ماډل کاروي <service>/metrics، او د دې لپاره د سایډ کار کانټینر اضافه کول عام دي. له بده مرغه، د JMX میتریکونه په JVM کې خورا ښه ننوتل شوي، نو د سایډ کار کانټینرونه دومره اغیزمن ندي. راځئ چې وصل کړو jmx_exporter خلاص سرچینه له پرومیټیوس څخه JVM ته د کانټینر عکس کې اضافه کولو سره چې لاره چمتو کوي /metrics په بل بندر کې.
کانټینر ته Prometheus jmx_exporter اضافه کړئ
-- images/camunda-bpm/Dockerfile
FROM camunda/camunda-bpm-platform:tomcat-7.11.0
## Add prometheus exporter
RUN wget https://repo1.maven.org/maven2/io/prometheus/jmx/
jmx_prometheus_javaagent/0.11.0/jmx_prometheus_javaagent-0.11.0.jar -P lib/
#9404 is the reserved prometheus-jmx port
ENV CATALINA_OPTS -javaagent:lib/
jmx_prometheus_javaagent-0.11.0.jar=9404:/etc/config/prometheus-jmx.yaml
ښه، دا اسانه وه. صادرونکی به د ټامکاټ څارنه وکړي او خپل میټریکونه به په پرومیتیس فارمیټ کې ښکاره کړي <svc>:9404/metrics
د صادرونکي تنظیم کول
پام لرونکی لوستونکی شاید حیران شي چې دا له کوم ځای څخه راغلی prometheus-jmx.yaml؟ ډیری بیلابیل شیان شتون لري چې په JVM کې پرمخ ځي، او ټامکاټ یوازې یو له دوی څخه دی، نو صادرونکی یو څه اضافي ترتیباتو ته اړتیا لري. د ټامکاټ، وحشي مچۍ، کافکا او داسې نورو لپاره معیاري تشکیلات شتون لري دلته. موږ به tomcat په توګه اضافه کړو ConfigMap په Kubernetes کې او بیا یې د حجم په توګه نصب کړئ.
په ډیفالټ کې، عکس به د H2 ډیټابیس ولري. دا زموږ لپاره مناسب نه دی، او موږ به د ګوګل کلاوډ SQL د کلاوډ SQL پراکسي سره کاروو - دا به وروسته د داخلي ستونزو د حل لپاره اړین وي. دا یو ساده او د باور وړ انتخاب دی که تاسو د ډیټابیس په ترتیب کولو کې خپل غوره توبونه نلرئ. AWS RDS ورته خدمت وړاندې کوي.
تر هغه چې تاسو د محلي پورټ فارورډینګ کارولو انتخاب نه کوئ، تاسو به یو ترتیب شوي انګریس کنټرولر ته اړتیا ولرئ. که تاسو ونه کاروئ ingress-nginx (د هیلم چارټ) بیا تاسو ډیری احتمال دمخه پوهیږئ چې تاسو اړتیا لرئ په کې اړین تشریحات نصب کړئ ingress-patch.yaml.tmpl او یا platform/ingress.yaml. که تاسو ingress-nginx کاروئ او د nginx ingress ټولګي وګورئ چې د بار بیلنسر سره ورته اشاره کوي او د بهرني DNS یا وائلډ کارډ DNS ننوتل ، تاسو ښه یاست چې لاړ شئ. که نه نو ، د انګریس کنټرولر او DNS تنظیم کړئ ، یا دا مرحلې پریږدئ او پوډ ته مستقیم اړیکه وساتئ.
ټي ایل ایس
که تاسو یې کاروئ سند - مدیر یا kube-lego او letsencrypt - د نوي ننوتلو سندونه به په اوتومات ډول ترلاسه شي. که نه نو، خلاص کړئ ingress-patch.yaml.tmpl او دا ستاسو د اړتیاو سره سم تنظیم کړئ.
لانچ!
که تاسو پورته لیکل شوي هرڅه تعقیب کړئ، نو بیا کمانډ make skaffold HOSTNAME=<you.example.com> باید یو موجود مثال په لاره واچوي <hostname>/camunda
که تاسو خپل ننوتل عامه یو آر ایل ته نه وي ټاکلي، تاسو کولی شئ د هغې سره بیرته راستانه کړئ localhost: kubectl port-forward -n camunda-bpm-demo svc/camunda-bpm 8080:8080 په localhost:8080/camunda