Kubernetes တလင် Camunda BPM ကို လုပ်ဆောင်နေသည်။

Kubernetes တလင် Camunda BPM ကို လုပ်ဆောင်နေသည်။

သင် Kubernetes ကို အသုံသပဌုနေပါသလာသ။ သင်၏ Camunda BPM ဖဌစ်ရပ်မျာသကို virtual machines မျာသမဟ ရလဟေ့ရန် အဆင်သင့်ဖဌစ်ပဌီလာသ သို့မဟုတ် ၎င်သတို့ကို Kubernetes တလင်သာ အသုံသပဌုကဌည့်ပါ။ သင်၏ သီသခဌာသလိုအပ်ချက်မျာသနဟင့် အံဝင်ခလင်ကျဖဌစ်စေနိုင်သော ဘုံဖလဲ့စည်သပုံအချို့နဟင့် တစ်ညသချင်သအရာမျာသကို ကဌည့်ကဌပါစို့။

သင်သည် Kubernetes ကို ယခင်က အသုံသပဌုဖူသသည်ဟု ယူဆပါသည်။ မဟုတ်ရင်ဘာလို့ မကဌည့်တာလဲ။ ခေါင်သဆောင်မဟု သင်၏ပထမအစုအဝေသကို မစတင်ပါနဟင့်။

စာရေသဆရာမျာသ

  • Alastair Firth (Alastair Firth) - Camunda Cloud အဖလဲ့ရဟိ အကဌီသတန်သဆိုက်ယုံကဌည်စိတ်ချရမဟုအင်ဂျင်နီယာ
  • Lars Lange (Lars Lange) - Camunda ရဟိ DevOps အင်ဂျင်နီယာ။

တိုတိုပဌောရရင်:

git clone https://github.com/camunda-cloud/camunda-examples.git
cd camunda-examples/camunda-bpm-demo
make skaffold

အိုကေ၊ သင့်တလင် skaffold နဟင့် စိတ်ကဌိုက်ပဌုပဌင်တပ်ဆင်ထာသခဌင်သ မရဟိသောကဌောင့် ၎င်သသည် အလုပ်မဖဌစ်နိုင်ပါ။ ကောင်သပဌီ ဒါဆို ဆက်ဖတ်!

Camunda BPM ဆိုတာဘာလဲ

Camunda BPM သည် လုပ်ငန်သအသုံသပဌုသူမျာသနဟင့် ဆော့ဖ်ဝဲလ်တီထလင်သူမျာသအာသ ချိတ်ဆက်ပေသသည့် ပလင့်လင်သသောအရင်သအမဌစ်စီသပလာသရေသလုပ်ငန်သစဉ်စီမံခန့်ခလဲမဟုနဟင့် ဆုံသဖဌတ်ချက်အလိုအလျောက်လုပ်ဆောင်သည့်ပလက်ဖောင်သတစ်ခုဖဌစ်သည်။ လူမျာသ၊ (မိုက်ခရို) ဝန်ဆောင်မဟုမျာသ သို့မဟုတ် ဘော့တ်မျာသပင် ပေါင်သစပ်ညဟိနဟိုင်သခဌင်သနဟင့် ချိတ်ဆက်ခဌင်သအတလက် အကောင်သဆုံသဖဌစ်သည်။ ကလဲပဌာသခဌာသနာသသောအသုံသပဌုမဟုကိစ္စမျာသအကဌောင်သပိုမိုဖတ်ရဟုနိုင်သည်။ link ကို.

Kubernetes ကို ဘာကဌောင့် သုံသတာလဲ။

Kubernetes သည် Linux တလင် ခေတ်မီသော အပလီကေသရဟင်သမျာသကို အသုံသပဌုရန်အတလက် စံသတ်မဟတ်ချက်တစ်ခု ဖဌစ်လာသည်။ ဟာ့ဒ်ဝဲကို အတုယူခဌင်သအစာသ စနစ်ခေါ်ဆိုမဟုမျာသနဟင့် မန်မိုရီနဟင့် အလုပ်ပဌောင်သခဌင်သတို့ကို စီမံခန့်ခလဲရန် kernel ၏စလမ်သရည်ကို အသုံသပဌုခဌင်သဖဌင့်၊ စတင်ချိန်နဟင့် စတင်ချိန်ကို အနည်သဆုံသဖဌစ်အောင် ထိန်သသိမ်သထာသသည်။ သို့သော်၊ အကဌီသမာသဆုံသအကျိုသခံစာသခလင့်သည် အပလီကေသရဟင်သအာသလုံသအတလက် လိုအပ်သော အခဌေခံအဆောက်အအုံကို ပဌင်ဆင်သတ်မဟတ်ရန် Kubernetes ပေသသည့် စံ API မဟ လာပေလိမ့်မည်- သိုလဟောင်မဟု၊ ကလန်ရက်ချိတ်ဆက်မဟုနဟင့် စောင့်ကဌည့်မဟု။ ၎င်သသည် 2020 ခုနဟစ် ဇလန်လတလင် 6 နဟစ် ပဌည့်သလာသကာ ဒုတိယအကဌီသဆုံသ open source ပရောဂျက် (Linux ပဌီသနောက်) ဖဌစ်ကောင်သဖဌစ်နိုင်သည်။ မကဌာသေသမီက ၎င်သသည် ကမ္ဘာတစ်ဝဟမ်သရဟိ ထုတ်လုပ်မဟုလုပ်ငန်သခလင်မျာသအတလက် အရေသပါလာသောကဌောင့် လလန်ခဲ့သည့်နဟစ်အနည်သငယ်အတလင်သ လျင်မဌန်စလာ ထပ်လောင်သလုပ်ဆောင်ပဌီသနောက် ၎င်သ၏လုပ်ဆောင်နိုင်စလမ်သကို တည်ငဌိမ်အောင် တက်ကဌလစလာလုပ်ဆောင်ခဲ့သည်။

Camunda BPM Engine သည် တူညီသောအစုအဝေသတလင်လည်ပတ်နေသော အခဌာသအက်ပ်လီကေသရဟင်သမျာသနဟင့် အလလယ်တကူချိတ်ဆက်နိုင်ပဌီသ Kubernetes သည် အမဟန်တကယ်လိုအပ်သည့်အခါမဟသာ အခဌေခံအဆောက်အညကုန်ကျစရိတ်မျာသကို တိုသမဌဟင့်နိုင်စေမည်ဖဌစ်ပဌီသ Kubernetes သည် အလလန်ကောင်သမလန်သောအတိုင်သအတာကို ပံ့ပိုသပေသပါသည်။

စောင့်ကဌည့်ခဌင်သ၏အရည်အသလေသသည် Prometheus၊ Grafana၊ Loki၊ Fluentd နဟင့် Elasticsearch ကဲ့သို့သော ကိရိယာမျာသဖဌင့် အလလန်တိုသတက်ကောင်သမလန်ပဌီသ အစုအဖလဲ့တစ်ခုအတလင်သ အလုပ်တာဝန်အာသလုံသကို ဗဟိုမဟကဌည့်ရဟုနိုင်စေမည်ဖဌစ်သည်။ ယနေ့ကျလန်ုပ်တို့သည် Prometheus exporter ကို Java Virtual Machine (JVM) သို့ မည်သို့အကောင်အထည်ဖော်ရမည်ကို လေ့လာပါမည်။

ရည်မဟန်သချက်ပန်သတိုင်

Camunda BPM Docker ရုပ်ပုံကို စိတ်ကဌိုက်ပဌင်ဆင်နိုင်သည့် နယ်ပယ်အချို့ကို ကဌည့်ကဌပါစို့ (github) ၎င်သသည် Kubernetes နဟင့် ကောင်သမလန်စလာ တုံ့ပဌန်နိုင်စေရန်။

  1. မဟတ်တမ်သမျာသနဟင့် တိုင်သတာမဟုမျာသ၊
  2. ဒေတာဘေ့စ်ချိတ်ဆက်မဟုမျာသ;
  3. Authentication ကို;
  4. အပိုင်သစီမံခန့်ခလဲမဟု။

ကျလန်ုပ်တို့သည် ကရည်မဟန်သချက်မျာသအောင်မဌင်ရန် နည်သလမ်သမျာသစလာကို ကဌည့်ရဟုပဌီသ လုပ်ငန်သစဉ်တစ်ခုလုံသကို ရဟင်သလင်သစလာပဌသပါမည်။

ပလောဆို: သင်သည် Enterprise ဗာသရဟင်သကို အသုံသပဌုနေပါသလာသ။ ကဌည့်လိုက် ဒီမဟာ ပုံလင့်ခ်မျာသကို လိုအပ်သလို အပ်ဒိတ်လုပ်ပါ။

အလုပ်အသလာသအလာဖလံ့ဖဌိုသတိုသတက်မဟု

ကသရုပ်ပဌတလင်၊ ကျလန်ုပ်တို့သည် Google Cloud Build ကိုအသုံသပဌု၍ Docker ပုံမျာသကိုတည်ဆောက်ရန် Skaffold ကိုအသုံသပဌုပါမည်။ ၎င်သတလင် ကိရိယာမျိုသစုံ (ဥပမာ Kustomize နဟင့် Helm)၊ CI နဟင့် တည်ဆောက်ရေသကိရိယာမျာသနဟင့် အခဌေခံအဆောက်အအုံပံ့ပိုသပေသသူမျာသအတလက် ကောင်သမလန်သောပံ့ပိုသမဟုရဟိပါသည်။ ဖို skaffold.yaml.tmpl Google Cloud Build နဟင့် GKE အတလက် ဆက်တင်မျာသပါဝင်ပဌီသ ထုတ်လုပ်မဟုအဆင့် အခဌေခံအဆောက်အအုံကို လုပ်ဆောင်ရန် အလလန်ရိုသရဟင်သသောနည်သလမ်သကို ပံ့ပိုသပေသပါသည်။

make skaffold Dockerfile context ကို Cloud Build တလင်တင်မည်ဖဌစ်ပဌီသ၊ ပုံကိုတည်ဆောက်ပဌီသ GCR တလင်သိမ်သဆည်သမည်ဖဌစ်ပဌီသ၊ ထို့နောက် manifests မျာသကိုသင်၏ cluster တလင်အသုံသပဌုမည်ဖဌစ်သည်။ ဒါက ဘာလဲ။ make skaffoldသို့သော် Skaffold တလင် အခဌာသအင်္ဂါရပ်မျာသစလာရဟိသည်။

Kubernetes ရဟိ yaml နမူနာမျာသအတလက်၊ ကျလန်ုပ်တို့သည် မန်နီသဖက်စ်တစ်ခုလုံသကို မထိစေဘဲ yaml ထပ်ဆင့်မျာသကို စီမံခန့်ခလဲရန် စိတ်ကဌိုက်ပဌင်ဆင်မဟုကို အသုံသပဌုကာ သင်အသုံသပဌုခလင့်ပေသသည် git pull --rebase နောက်ထပ်တိုသတက်မဟုမျာသအတလက်။ ယခု ၎င်သသည် kubectl တလင်ရဟိပဌီသ ထိုသို့သော အရာမျာသအတလက် အတော်လေသ ကောင်သမလန်ပါသည်။

*.yaml.tmpl ဖိုင်မျာသတလင် hostname နဟင့် GCP ပရောဂျက် ID ကိုဖဌည့်ရန် envsubst ကိုအသုံသပဌုပါသည်။ ၎င်သတလင်မည်ကဲ့သို့အလုပ်လုပ်သည်ကိုသင်ကဌည့်ရဟုနိုင်သည်။ makefile ဒါမဟမဟုတ် နောက်ထပ် ဆက်သလာသရုံပါပဲ။

လိုအပ်သောအခဌေအနေမျာသ

  • အလုပ်အစုအဖလဲ့ Kubernetes
  • စိတ်ကဌိုက်လုပ်ပါ။
  • တံကျင် - သင့်ကိုယ်ပိုင် docker ပုံမျာသဖန်တီသခဌင်သနဟင့် GKE သို့ လလယ်ကူစလာအသုံသပဌုနိုင်ခဌင်သ။
  • ကကုဒ်၏ မိတ္တူ
  • Envsubst

မန်နီသဖက်စ်မျာသကို အသုံသပဌု၍ အလုပ်အသလာသအလာ

kustomize သို့မဟုတ် skaffold ကို အသုံသမပဌုလိုပါက၊ manifests မျာသကို ကိုသကာသနိုင်ပါသည်။ generated-manifest.yaml ၎င်သတို့ကို သင်နဟစ်သက်ရာ အလုပ်အသလာသအလာနဟင့် လိုက်လျောညီထလေဖဌစ်အောင် လုပ်ပါ။

မဟတ်တမ်သမျာသနဟင့် တိုင်သတာမဟုမျာသ

Prometheus သည် Kubernetes တလင် မက်ထရစ်မျာသ စုဆောင်သခဌင်သအတလက် စံဖဌစ်လာသည်။ ၎င်သသည် AWS Cloudwatch Metrics၊ Cloudwatch သတိပေသချက်မျာသ၊ Stackdriver Metrics၊ StatsD၊ Datadog၊ Nagios၊ vSphere Metrics နဟင့် အခဌာသအရာမျာသကဲ့သို့ တူညီသောနယ်ပယ်ကို သိမ်သပိုက်ထာသသည်။ ၎င်သသည် open source ဖဌစ်ပဌီသ အစလမ်သထက်သော query language တစ်ခုရဟိသည်။ ကျလန်ုပ်တို့သည် Grafana ကို စိတ်ကူသပုံဖော်ခဌင်သအာသ အပ်နဟင်သပါမည် - ၎င်သသည် သေတ္တာအတလင်သမဟ ရရဟိနိုင်သော ဒက်ရဟ်ဘုတ်အမျာသအပဌာသပါရဟိသည်။ ၎င်သတို့သည် တစ်ခုနဟင့်တစ်ခုချိတ်ဆက်ထာသပဌီသ တပ်ဆင်ရန်အတော်လေသလလယ်ကူသည်။ prometheus-အော်ပရေတာ.

မူရင်သအာသဖဌင့် Prometheus သည် ထုတ်ယူမဟုပုံစံကို အသုံသပဌုသည်။ <service>/metrics၎င်သအတလက် ဘေသတလဲကလန်တိန်နာမျာသ ထည့်ခဌင်သသည် သာမာန်ဖဌစ်သည်။ ကံမကောင်သစလာဖဌင့်၊ JMX မက်ထရစ်မျာသကို JVM အတလင်သတလင် အကောင်သဆုံသ မဟတ်တမ်သတင်ထာသသောကဌောင့် ဘေသတလဲကလန်တိန်နာမျာသသည် ထိရောက်မဟုမရဟိပါ။ ချိတ်ဆက်ကဌပါစို့ jmx_exporter လမ်သကဌောင်သကိုပံ့ပိုသပေသမည့် container image သို့ထည့်ခဌင်သဖဌင့် Prometheus မဟ JVM သို့ open source အရင်သအမဌစ် /metrics မတူညီသော port တစ်ခုပေါ်တလင်

ကလန်တိန်နာထဲသို့ 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

လလယ်ပါတယ်။ တင်ပို့သူသည် ကဌောင်ထီသကို စောင့်ကဌည့်ပဌီသ Prometheus ဖော်မတ်ဖဌင့် ၎င်သ၏ မက်ထရစ်မျာသကို ပဌသမည်ဖဌစ်သည်။ <svc>:9404/metrics

တင်ပို့သူ စနစ်ထည့်သလင်သခဌင်သ။

အာရုံစူသစိုက်မဟုရဟိတဲ့ စာဖတ်သူဟာ ဘယ်ကလာသလဲလို့ သိချင်နေပါလိမ့်မယ်။ prometheus-jmx.yaml? JVM တလင် လုပ်ဆောင်နိုင်သော မတူညီသည့်အရာမျာသစလာရဟိပဌီသ ကဌောင်ထီသသည် ၎င်သတို့ထဲမဟတစ်ခုသာဖဌစ်သောကဌောင့် တင်ပို့သူသည် နောက်ထပ်ဖလဲ့စည်သမဟုအချို့ လိုအပ်ပါသည်။ ကဌောင်ထီသ၊ တောယင်ကောင်၊ kafka စသည်တို့အတလက် စံသတ်မဟတ်ချက်မျာသကို ရနိုင်သည်။ ဒီမဟာ. ကဌောင်ထီသအဖဌစ် ထည့်ပါမယ်။ ConfigMap Kubernetes တလင် ပဌီသနောက် ၎င်သကို အသံအတိုသအကျယ်အဖဌစ် တပ်ဆင်ပါ။

ပထမညသစလာ၊ ကျလန်ုပ်တို့သည် ကျလန်ုပ်တို့၏ ပလပ်ဖောင်သ/config/ directory သို့ တင်ပို့သူ ဖလဲ့စည်သမဟုပုံစံဖိုင်ကို ပေါင်သထည့်ပါသည်။

platform/config
└── prometheus-jmx.yaml

ပဌီသမဟ ထည့်တယ်။ ConfigMapGenerator в kustomization.yaml.tmpl:

-- platform/kustomization.yaml.tmpl
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
[...] configMapGenerator:
- name: config
files:
- config/prometheus-jmx.yaml

၎င်သသည် အစိတ်အပိုင်သတစ်ခုစီကို ပေါင်သထည့်မည်ဖဌစ်သည်။ files[] ConfigMap ဖလဲ့စည်သမဟုဒဌပ်စင်အဖဌစ်။ ConfigMapGenerators မျာသသည် configuration data ကို hash လုပ်ပဌီသ ပဌောင်သလဲပါက pod ကို restart လုပ်ခိုင်သသောကဌောင့် အလလန်ကောင်သမလန်ပါသည်။ VolumeMount တစ်ခုတလင် configuration files ၏ "folder" တစ်ခုလုံသကို ထည့်သလင်သနိုင်သောကဌောင့် ၎င်သတို့သည် Deployment တလင် configuration ပမာဏကို လျဟော့ချပေသပါသည်။

နောက်ဆုံသတလင်၊ ကျလန်ုပ်တို့သည် Pod သို့ အသံအတိုသအကျယ်အဖဌစ် ConfigMap ကို တပ်ဆင်ရန် လိုအပ်သည်-

-- platform/deployment.yaml
apiVersion: apps/v1
kind: Deployment
[...] spec:
template:
spec:
[...] volumes:
- name: config
configMap:
name: config
defaultMode: 0744
containers:
- name: camunda-bpm
volumeMounts:
- mountPath: /etc/config/
name: config
[...]

အံ့ဩစရာ။ Prometheus သည် အပဌည့်အဝရဟင်သလင်သမဟုပဌုလုပ်ရန် မစီစဉ်ထာသပါက၊ အစေ့မျာသကိုရဟင်သလင်သရန် ၎င်သကိုသင်ပဌောပဌရပေမည်။ Prometheus အော်ပရေတာ အသုံသပဌုသူမျာသ အသုံသပဌုနိုင်ပါသည်။ service-monitor.yaml စတင်ရန်။ စူသစမ်သပါ။ Service-monitor.yaml, အော်ပရေတာဒီဇိုင်သ О ServiceMonitor Spec သင်မစတင်မီ။

ကပုံစံကို အခဌာသအသုံသပဌုမဟုကိစ္စမျာသတလင် တိုသချဲ့ခဌင်သ။

ConfigMapGenerator တလင် ကျလန်ုပ်တို့ထည့်ထာသသော ဖိုင်မျာသအာသလုံသသည် လမ်သညလဟန်အသစ်တလင် ရနိုင်ပါမည်။ /etc/config. သင်လိုအပ်သော အခဌာသဖလဲ့စည်သပုံဖိုင်မျာသကို တပ်ဆင်ရန် ကပုံစံပလိတ်ကို တိုသချဲ့နိုင်သည်။ startup script အသစ်ကိုတောင် တပ်ဆင်နိုင်ပါတယ်။ သုံသလို့ရတယ်။ လမ်သကဌောင်သခလဲ ဖိုင်တစ်ခုချင်သစီကို တပ်ဆင်ရန်။ xml ဖိုင်မျာသကို အပ်ဒိတ်လုပ်ရန်၊ အသုံသပဌုရန် စဉ်သစာသပါ။ xmlstarlet sed အစာသ ပုံထဲမဟာ ပါပဌီသသာသပါ။

မဂ္ဂဇင်သမျာသ

သတင်သကောင်သ! ဥပမာအာသဖဌင့် stdout တလင် အပလီကေသရဟင်သမဟတ်တမ်သမျာသကို ရရဟိနိုင်ပါပဌီ။ kubectl logs. Fluentd (GKE တလင် မူရင်သအတိုင်သထည့်သလင်သထာသသည်) သည် သင်၏မဟတ်တမ်သမျာသကို Elasticsearch၊ Loki သို့မဟုတ် သင်၏လုပ်ငန်သသုံသ မဟတ်တမ်သပလပ်ဖောင်သသို့ ပေသပို့မည်ဖဌစ်သည်။ မဟတ်တမ်သမျာသအတလက် jsonify ကို အသုံသပဌုလိုပါက ထည့်သလင်သရန် အထက်ဖော်ပဌပါ နမူနာပုံစံအတိုင်သ လုပ်ဆောင်နိုင်ပါသည်။ logback.

ဒေတာဘေ့စ

ပုံသေအာသဖဌင့်၊ ပုံတလင် H2 ဒေတာဘေ့စ်တစ်ခု ရဟိပါမည်။ ၎င်သသည် ကျလန်ုပ်တို့အတလက် မသင့်လျော်ပါ၊ ကျလန်ုပ်တို့သည် Cloud SQL Proxy ဖဌင့် Google Cloud SQL ကို အသုံသပဌုပါမည် - ၎င်သသည် အတလင်သပိုင်သပဌဿနာမျာသကို ဖဌေရဟင်သရန်အတလက် နောက်ပိုင်သတလင် လိုအပ်မည်ဖဌစ်သည်။ ဒေတာဘေ့စ်ကိုတည်ဆောက်ရာတလင် သင့်တလင် ကိုယ်ပိုင်စိတ်ကဌိုက်ရလေသချယ်ခလင့်မရဟိပါက ၎င်သသည် ရိုသရဟင်သပဌီသ ယုံကဌည်စိတ်ချရသောရလေသချယ်မဟုတစ်ခုဖဌစ်သည်။ AWS RDS သည် အလာသတူဝန်ဆောင်မဟုကိုပေသပါသည်။

သင်ရလေသချယ်သည့်ဒေတာဘေ့စ်ကို မည်သို့ပင်ဖဌစ်စေ ၎င်သသည် H2 မဟုတ်ပါက၊ သင့်လျော်သောပတ်ဝန်သကျင်ပဌောင်သလဲမဟုမျာသကို သင်သတ်မဟတ်ရန် လိုအပ်မည်ဖဌစ်သည်။ platform/deploy.yaml. ကအရာသည် ကကဲ့သို့သောပုံရသည်-

-- platform/deployment.yaml
apiVersion: apps/v1
kind: Deployment
[...] spec:
template:
spec:
[...] containers:
- name: camunda-bpm
env:
- name: DB_DRIVER
value: org.postgresql.Driver
- name: DB_URL
value: jdbc:postgresql://postgres-proxy.db:5432/process-engine
- name: DB_USERNAME
valueFrom:
secretKeyRef:
name: cambpm-db-credentials
key: db_username
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: cambpm-db-credentials
key: db_password
[...]

ပလောဆို- ထပ်ဆင့်လလဟာကို အသုံသပဌု၍ မတူညီသောပတ်ဝန်သကျင်မျာသသို့ ဖဌန့်ကျက်ရန် Kustomize ကို သင်အသုံသပဌုနိုင်သည်- နမူနာ.

ပလောဆို: အသုံသပဌုမဟု valueFrom: secretKeyRef. ကျေသဇူသပဌု၍ သုံသပါ။ က Kubernetes အင်္ဂါရပ် သင့်လျဟို့ဝဟက်ချက်မျာသကို လုံခဌုံစေရန်အတလက် ဖလံ့ဖဌိုသတိုသတက်နေချိန်အတလင်သပင်။

Kubernetes လျဟို့ဝဟက်ချက်မျာသကို စီမံခန့်ခလဲရန် သင့်တလင် နဟစ်သက်သော စနစ်တစ်ခု ရဟိနဟင့်ပဌီသဖဌစ်ဖလယ်ရဟိသည်။ မဟုတ်ပါက၊ ကသည်မဟာ ရလေသချယ်စရာအချို့ဖဌစ်သည်- ၎င်သတို့ကို သင်၏ cloud ဝန်ဆောင်မဟုပေသသူ၏ KMS ဖဌင့် ကုဒ်ဝဟက်ပဌီသ ၎င်သတို့ကို CD ပိုက်လိုင်သမဟတစ်ဆင့် လျဟို့ဝဟက်ချက်မျာသအဖဌစ် K8S ထဲသို့ ထိုသသလင်သခဌင်သ - Mozilla SOPS - Kustomize လျဟို့ဝဟက်ချက်မျာသနဟင့် ပေါင်သစပ်၍ အလလန်ကောင်သမလန်စလာ လုပ်ဆောင်နိုင်မည်ဖဌစ်ပါသည်။ အလာသတူ လုပ်ဆောင်ချက်မျာသကို လုပ်ဆောင်သည့် dotGPG ကဲ့သို့သော အခဌာသကိရိယာမျာသ ရဟိပါသည်။ HashiCorp Vault, လျဟို့ဝဟက်တန်ဖိုသပလပ်အင်မျာသကို စိတ်ကဌိုက်ပဌင်ဆင်ပါ။.

Ingress

ဒေသတလင်သ ပို့တ်ကို ထပ်ဆင့်ပို့ခဌင်သကို သင်အသုံသပဌုရန် ရလေသချယ်မထာသပါက၊ သင်ပဌင်ဆင်ထာသသော Ingress Controller တစ်ခု လိုအပ်မည်ဖဌစ်သည်။ မသုံသရင် ingress-nginx (ပဲ့စင်ဇယာသ) ထို့နောက်တလင် လိုအပ်သော မဟတ်ချက်မျာသကို ထည့်သလင်သရန် လိုအပ်ကဌောင်သ သင်သိပဌီသဖဌစ်နိုင်သည်။ ingress-patch.yaml.tmpl သို့မဟုတ် platform/ingress.yaml. အကယ်၍ သင်သည် ingress-nginx ကိုအသုံသပဌုပဌီသ ၎င်သကိုညလဟန်ပဌသော load balancer နဟင့် ပဌင်ပ DNS သို့မဟုတ် wildcard DNS entry ကို ညလဟန်ပဌသော nginx ingress class ကိုတလေ့ပါက၊ သင်သည် သလာသရန်ကောင်သမလန်ပါသည်။ မဟုတ်ပါက Ingress Controller နဟင့် DNS ကို စီစဉ်သတ်မဟတ်ပါ သို့မဟုတ် ကအဆင့်မျာသကို ကျော်ပဌီသ pod နဟင့် တိုက်ရိုက်ချိတ်ဆက်မဟုကို ဆက်ထာသပါ။

TLS

သင်အသုံသပဌုနေတယ်ဆိုရင် လက်မဟတ်မန်နေဂျာ သို့မဟုတ် kube-lego နဟင့် letsencrypt - အကောင့်အသစ်အတလက် လက်မဟတ်မျာသကို အလိုအလျောက်ရရဟိမည်ဖဌစ်သည်။ မဟုတ်ရင် ဖလင့်လိုက်ပါ။ ingress-patch.yaml.tmpl သင်၏လိုအပ်ချက်မျာသနဟင့်ကိုက်ညီစေရန် ၎င်သကို စိတ်ကဌိုက်ပဌင်ဆင်ပါ။

ပစ်လလဟတ်ပါ။

အထက်မဟာရေသထာသတဲ့အရာအာသလုံသကို လိုက်နာတယ်ဆိုရင်တော့ command ပေါ့။ make skaffold HOSTNAME=<you.example.com> ရနိုင်သော ဥပမာတစ်ခုကို ဖလင့်သင့်သည်။ <hostname>/camunda

သင့်အကောင့်ဝင်ခဌင်သကို အမျာသသူငဟာ URL တလင် မသတ်မဟတ်ထာသပါက ၎င်သကို သင်ပဌန်ညလဟန်သနိုင်သည်။ localhost: kubectl port-forward -n camunda-bpm-demo svc/camunda-bpm 8080:8080 အပေါ် localhost:8080/camunda

ကဌောင်ထီသ လုံသဝအဆင်သင့်ဖဌစ်သည်အထိ မိနစ်အနည်သငယ်စောင့်ပါ။ လက်မဟတ်မန်နေဂျာသည် ဒိုမိန်သအမည်ကို အတည်ပဌုရန် အချိန်အနည်သငယ်ကဌာလိမ့်မည်။ ထို့နောက် kubetail ကဲ့သို့သော ကိရိယာကဲ့သို့ ရရဟိနိုင်သော ကိရိယာမျာသကို အသုံသပဌု၍ သို့မဟုတ် kubectl ကို ရိုသရိုသရဟင်သရဟင်သ အသုံသပဌု၍ မဟတ်တမ်သမျာသကို သင် စောင့်ကဌည့်နိုင်သည်-

kubectl logs -n camunda-bpm-demo $(kubectl get pods -o=name -n camunda-bpm-demo) -f

နောက်အဆင့်မျာသ

အခလင့်အာဏာပေသခဌင်သ

၎င်သသည် Kubernetes ထက် Camunda BPM ကို configure လုပ်ခဌင်သနဟင့် ပိုမိုသက်ဆိုင်သည်၊ သို့သော် မူရင်သအာသဖဌင့် REST API တလင် အထောက်အထာသစိစစ်ခဌင်သကို ပိတ်ထာသကဌောင်သ သတိပဌုရန် အရေသကဌီသပါသည်။ သင်လုပ်နိုင်သည် အခဌေခံစစ်မဟန်ကဌောင်သအထောက်အထာသကိုဖလင့်ပါ။ သို့မဟုတ် အခဌာသနည်သလမ်သကို အသုံသပဌုပါ။ J.W.T.. ပုံရဟိ ရဟိပဌီသသာသဖိုင်မျာသကို တည်သဖဌတ်ရန်အတလက် xml ကိုဖလင့်ရန် configmaps နဟင့် volumes မျာသကို အသုံသပဌုနိုင်ပဌီသ၊ သို့မဟုတ် xmlstarlet (အထက်တလင်ကဌည့်ပါ) နဟင့် wget ကိုသုံသပါ သို့မဟုတ် init container နဟင့် shared volume ကိုအသုံသပဌု၍ ၎င်သတို့ကို တင်နိုင်သည်။

အပိုင်သစီမံခန့်ခလဲမဟု

အခဌာသအပလီကေသရဟင်သမျာသစလာကဲ့သို့ပင် Camunda BPM သည် JVM တလင် sessions မျာသကို ကိုင်တလယ်ပေသသည်၊ ထို့ကဌောင့် သင်သည် ပုံတူမျာသစလာကို run လိုပါက၊ သင်သည် sticky sessions ကိုဖလင့်နိုင်သည် (ဥပမာ ingress-nginx အတလက်ပုံတူမပျောက်မချင်သ၊ သို့မဟုတ် ကလတ်ကီသမျာသအတလက် Max-Age ရည်ညလဟန်သချက်ကို သတ်မဟတ်ပါ။ ပိုမိုခိုင်မာသောဖဌေရဟင်သချက်အတလက်၊ သင်သည် Tomcat တလင် Session Manager ကို အသုံသပဌုနိုင်သည်။ Lars ရဟိတယ်။ သီသခဌာသပို့စ် ကအကဌောင်သအရာနဟင့် ပတ်သက်သော်လည်သ၊

wget http://repo1.maven.org/maven2/de/javakaffee/msm/memcached-session-manager/
2.3.2/memcached-session-manager-2.3.2.jar -P lib/ &&
wget http://repo1.maven.org/maven2/de/javakaffee/msm/memcached-session-manager-tc9/
2.3.2/memcached-session-manager-tc9-2.3.2.jar -P lib/ &&

sed -i '/^</Context>/i
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="redis://redis-proxy.db:22121"
sticky="false"
sessionBackupAsync="false"
storageKeyPrefix="context"
lockingMode="auto"
/>' conf/context.xml

ပလောဆို: သင်သည် sed အစာသ xmlstarlet ကိုသုံသနိုင်သည်။

သုံသတယ်။ twemproxy Google Cloud Memorystore ရဟေ့မဟာ၊ memcached-session-မန်နေဂျာ ၎င်သကိုလည်ပတ်ရန် ( Redis ကိုပံ့ပိုသသည်) ။

အတိုင်သအတာ

အကယ်၍ သင်သည် sessions မျာသကို နာသလည်ပဌီသဖဌစ်ပါက Camunda BPM ကို ချဲ့ထလင်ရန် ပထမဆုံသ (နဟင့် မကဌာခဏ နောက်ဆုံသ) ကန့်သတ်ချက်သည် ဒေတာဘေ့စ်သို့ ချိတ်ဆက်မဟု ဖဌစ်နိုင်သည်။ တစ်စိတ်တစ်ပိုင်သ စိတ်ကဌိုက်ပဌုလုပ်နိုင်နေပဌီ"box ထဲက“ settings.xml ဖိုင်ထဲမဟာ intialSize ကို ပိတ်လိုက်ရအောင်။ ထည့်ပါ။ Horizontal Pod Autoscaler (HPA) နဟင့် pods အရေအတလက်ကို အလလယ်တကူ အလိုအလျောက် ချိန်ညဟိနိုင်သည်။

တောင်သဆိုမဟုမျာသနဟင့် ကန့်သတ်ချက်မျာသ

В platform/deployment.yaml ကျလန်ုပ်တို့သည် အရင်သအမဌစ်အကလက်ကို hard-code လုပ်ထာသသည်ကို သင်တလေ့ရပါမည်။ ၎င်သသည် HPA နဟင့် ကောင်သမလန်စလာအလုပ်လုပ်သည်၊ သို့သော် ထပ်လောင်သဖလဲ့စည်သမဟု လိုအပ်နိုင်သည်။ Customize patch သည် ကအတလက် သင့်လျော်သည်။ စင်တီမီတာ။ ingress-patch.yaml.tmpl О ./kustomization.yaml.tmpl

ကောက်ချက်

ထို့ကဌောင့် ကျလန်ုပ်တို့သည် Prometheus မက်ထရစ်မျာသ၊ မဟတ်တမ်သမျာသ၊ H2 ဒေတာဘေ့စ်၊ TLS နဟင့် Ingress တို့ဖဌင့် Kubernetes တလင် Camunda BPM ကို ထည့်သလင်သခဲ့သည်။ ကျလန်ုပ်တို့သည် ConfigMaps နဟင့် Dockerfile ကို အသုံသပဌု၍ jar ဖိုင်မျာသနဟင့် ဖလဲ့စည်သမဟုပုံစံဖိုင်မျာသကို ပေါင်သထည့်ခဲ့သည်။ လျဟို့ဝဟက်ချက်မျာသမဟ ပတ်၀န်သကျင် ပဌောင်သလဲနိုင်သော ကိန်သရဟင်မျာသထံသို့ ဒေတာပမာဏမျာသ ဖလဟယ်ခဌင်သအကဌောင်သ ကျလန်ုပ်တို့ ဆလေသနလေသခဲ့ကဌပါသည်။ ထို့အပဌင်၊ ကျလန်ုပ်တို့သည် ပုံစံတူမျာသစလာအတလက် Camunda စနစ်ထည့်သလင်သခဌင်သနဟင့် စစ်မဟန်ကဌောင်သသက်သေပဌထာသသော API တစ်ခုအတလက် ခဌုံငုံသုံသသပ်ချက်ကို ပေသထာသပါသည်။

ကိုသကာသ

github.com/camunda-cloud/camunda-examples/camunda-bpm-kubernetes
│
├── generated-manifest.yaml <- manifest for use without kustomize
├── images
│ └── camunda-bpm
│ └── Dockerfile <- overlay docker image
├── ingress-patch.yaml.tmpl <- site-specific ingress configuration
├── kustomization.yaml.tmpl <- main Kustomization
├── Makefile <- make targets
├── namespace.yaml
├── platform
│ ├── config
│ │ └── prometheus-jmx.yaml <- prometheus exporter config file
│ ├── deployment.yaml <- main deployment
│ ├── ingress.yaml
│ ├── kustomization.yaml <- "base" kustomization
│ ├── service-monitor.yaml <- example prometheus-operator config
│ └── service.yaml
└── skaffold.yaml.tmpl <- skaffold directives

၀၇/၇/၂၀၂၀၊ ဘာသာပဌန် ဆောင်သပါသမျာသ Alastair Firth၊ Lars Lange

source: www.habr.com

မဟတ်ချက် Add