ื ืืฆื Kubernetes? ืืจืืื ืฆื ืืึทื ืืืื Camunda BPM ืื ืกืืึทื ืกืื ืคืื ืืืืจืืืึทื ืืืฉืื ืขื, ืึธืืขืจ ืืคึฟืฉืจ ื ืึธืจ ืคึผืจืืืืจื ืฆื ืืืืคื ืืื ืืืืฃ Kubernetes? ืืื ืก ืงืืง ืืื ืขืืืขืืข ืคึผืจืึธืกื ืงืึทื ืคืืืืขืจืืืฉืึทื ื ืืื ืืืื ืืืืึทืื ืืืึธืก ืงืขื ืขื ืืืื ืืืืืขืจื ืฆื ืืืื ืกืคึผืขืฆืืคืืฉ ืืืืขืจืคืขื ืืฉื.
ืขืก ืึทืกืืื ืึทื ืืืจ ืืึธื ืืขืืืืื ื Kubernetes ืคืจืืขืจ. ืืืื ื ืืฉื, ืคืืจืืืืก ืืึธื ื ืื ื ืขืืขื ืึท ืงืืง ืืื
ืืืืจืื
Alastair Firth (Alastair Firth) - ืขืืืขืจ ืืืขืืืืืื ืจืขืืืึทืืืืืื ืื ืืฉืขื ืืจ ืืื ืื ืงืึทืืื ืืึท ืงืืึธืื ืืึทื ืฉืึทืคึฟื;Lars Lange (Lars Lange) - ืืขืืืึธืคึผืก ืื ืืฉืขื ืืจ ืืื ืงืึทืืื ืืึท.
ืืื ืงืืจืฆื:
git clone https://github.com/camunda-cloud/camunda-examples.git
cd camunda-examples/camunda-bpm-demo
make skaffold
ืึธืืงืื, ืขืก ืืืกืืึธืืข ืืื ื ืืฉื ืึทืจืืขืื ืืืืึทื ืืืจ ืืึธื ื ืื ืืึธืื ืกืงืึทืคืึทืื ืืื ืงืืกืืึธืืืืข ืืื ืกืืึทืืืจื. ื ื ืืขืืึธืื ืืืืขื ืขื ืืืืฃ!
ืืืึธืก ืืื Camunda BPM
Camunda BPM ืืื ืึทื ืึธืคึฟื ืืงืืจ ืืขืฉืขืคื ืคึผืจืึธืฆืขืก ืคืึทืจืืืึทืืืื ื ืืื ืืึทืฉืืืก ืึธืืึทืืืืฉืึทื ืคึผืืึทืืคืึธืจืืข ืืืึธืก ืงืึทื ืขืงืฅ ืืขืฉืขืคื ื ืืฆืขืจืก ืืื ืืืืืืืืืจื ืืขืืืขืืึธืคึผืขืจืก. ืขืก ืืื ืืืขืึทื ืคึฟืึทืจ ืงืึธืืึธืจืืึทื ืืืืื ื ืืื ืงืึทื ืขืงืืื ื ืืขื ืืฉื, (ืืืงืจืึธ) ืืึทืืื ืื ืืก ืึธืืขืจ ืืคืืื ืืึธืฅ! ืืืจ ืงืขื ื ืืืืขื ืขื ืืขืจ ืืืขืื ืื ืคืึทืจืฉืืืขื ืข ื ืืฆื ืงืึทืกืขืก ืืื
ืคืืจืืืืก ื ืืฆื Kubernetes
Kubernetes ืืื ืืขืืืืจื ืืขืจ ืืข ืคืึทืงืืึธ ื ืึธืจืืึทื ืคึฟืึทืจ ืคืืืกื ืืืง ืืึธืืขืจื ืึทืคึผืืึทืงืืืฉืึทื ื ืืืืฃ ืืื ืืงืก. ืืืจื ื ืืฆื ืกืืกืืขื ืงืึทืืืก ืึทื ืฉืืึธื ืคืื ืืึทืื ืืืึทืจื ืขืืืึทืืืืฉืึทื ืืื ืื ืงืขืจื ืก ืคืืืืงืืื ืฆื ืคืืจื ืืืงืึธืจื ืืื ืืึทืกืง ืกืืืืืฉืื ื, ืฉืืืืื ืฆืืื ืืื ืกืืึทืจืืึทืคึผ ืฆืืื ืืขื ืขื ืืขืืืืื ืฆื ืึท ืืื ืืืื. ืึธืืขืจ, ืื ืืืืึทืกื ื ืืฅ ืงืขื ืงืืืขื ืคืื ืื ื ืึธืจืืึทื ืึทืคึผื ืืืึธืก Kubernetes ืืื ืฆื ืงืึทื ืคืืืืขืจ ืื ืื ืคืจืึทืกืืจืึทืงืืฉืขืจ ืคืืจืืื ืื ืืืจื ืึทืืข ืึทืคึผืืึทืงืืืฉืึทื ื: ืกืืึธืจืืืืฉ, ื ืขืืืืึธืจืงืื ื ืืื ืืึธื ืืืึธืจืื ื. ืขืก ืืื ืืขืืืขื 2020 ืืึธืจ ืึทืื ืืื ืืื ื 6 ืืื ืืื ืืึธืืขืจ ืืขืจ ืฆืืืืื ืืจืขืกืืขืจ ืึธืคึฟื ืืงืืจ ืคึผืจืืืขืงื (ื ืึธื ืืื ืืงืก). ืขืก ืืื ืืขืฆืื ืก ืึทืงืืืืืื ืกืืืืืึทืืืืื ืืืื ืคืึทื ืืงืฉืึทื ืึทืืืื ื ืึธื ืืื ืืืขืจืึทืืืึธื ืืื ืื ืืขืฆืืข ืืืกื ืืึธืจื, ืืืืึทื ืขืก ืืืขืจื ืงืจืืืืฉ ืคึฟืึทืจ ืคึผืจืึธืืืงืฆืืข ืืืขืจืงืืึธืืื ืึทืจืื ืื ืืืขืื.
Camunda BPM Engine ืงืขื ืขื ืืืืื ืคืึทืจืืื ืื ืฆื ืื ืืขืจืข ืึทืคึผืืึทืงืืืฉืึทื ื ืืืึธืก ืืืืคื ืืืืฃ ืืขืจ ืืขืืืืงืขืจ ืงื ืืื, ืืื Kubernetes ืืื ืืืกืืขืฆืืืื ื ืกืงืึทืืึทืืืืืื, ืึทืืึทืืื ื ืืืจ ืฆื ืคืึทืจืืจืขืกืขืจื ืื ืคืจืึทืกืืจืึทืงืืฉืขืจ ืงืึธืก ืืืืื ืืืขื ืืึทืงืข ืืืจืฃ (ืืื ืืืืื ืจืขืืืฆืืจื ืืื ืืื ืืืจืฃ).
ืื ืงืืืึทืืืืขื ืคืื ืืึธื ืืืึธืจืื ื ืืื ืืืื ืืืืขืจ ืืืคึผืจืืืื ืืื ืืืฉืืจืื ืึทืืึท ืืื Prometheus, Grafana, Loki, Fluentd ืืื Elasticsearch, ืึทืืึทืืื ื ืืืจ ืฆื ืฆืขื ืืจืื ืืขื ืึทืืข ืืืขืจืงืืึธืืื ืืื ืึท ืงื ืืื. ืืืึทื ื ืืืจ ืืืขืื ืงืืงื ืืื ืืื ืฆื ืื ืกืืจืืืขื ื ืื ืคึผืจืึธืืขืืืขืืก ืขืงืกืคึผืึธืจืืขืจ ืืื ืื Java Virtual Machine (JVM).
Objectives
ืืึธืืืจ ืงืืงื ืืื ืึท ืืืกื ืืขืืืื ืืื ืืืจ ืงืขื ืขื ืงืึทืกืืึทืืืื ืื Camunda BPM Docker ืืืื (
- ืืึธืืก ืืื ืืขืืจืืงืก;
- ืืึทืืึทืืึทืกืข ืงืึทื ืขืงืฉืึทื ื;
- ืึธืืขื ืืึทืงืืืฉืึทื;
- ืกืขืกืืข ืคืึทืจืืืึทืืืื ื.
ืืืจ ืืืขืื ืงืืงื ืืื ืขืืืขืืข ืืืขืื ืฆื ืืขืจืืจืืืื ืื ืฆืืื ืืื ืงืืืจ ืืืืึทืื ืื ืืื ืฆืข ืคึผืจืึธืฆืขืก.
ืืึธื: ืืืจ ื ืืฆื ืื ืขื ืืขืจืคึผืจืืื ืืืขืจืกืืข? ืงืืง
ืืืึธืจืงืคืืึธืื ืึทื ืืืืืงืืื ื
ืืื ืืขื ืืขืืึธ, ืืืจ ืืืขืื ื ืืฆื Skaffold ืฆื ืืืืขื ืืึธืงืงืขืจ ืืืืืขืจ ื ืืฆื Google Cloud Build. ืขืก ืืื ืืื ืฉืืืฆื ืคึฟืึทืจ ืคืึทืจืฉืืื ืืืฉืืจืื (ืึทืืึท ืืื Kustomize ืืื Helm), CI ืืื ืืืืขื ืืืฉืืจืื, ืืื ืื ืคืจืึทืกืืจืึทืงืืฉืขืจ ืคึผืจืึทืืืืืืขืจื. ืืขืงืข skaffold.yaml.tmpl
ืืืื ืกืขืืืื ืืก ืคึฟืึทืจ Google Cloud Build ืืื GKE, ืคึผืจืึทืืืืืืื ื ืึท ืืืืขืจ ืคึผืฉืื ืืืขื ืฆื ืืืืคื ืคึผืจืึธืืืงืฆืืข-ืืืื ืื ื ืื ืคืจืึทืกืืจืึทืงืืฉืขืจ.
make skaffold
ืืืขื ืืึธืื ืื Dockerfile ืงืึธื ืืขืงืกื ืืื ืงืืึธืื ืืืืขื, ืืืืขื ืื ืืืื ืืื ืงืจืึธื ืขืก ืืื GCR, ืืื ืืขืืึธืื ืฆืืืืืื ืื ืืึทื ืืคืขืกืฅ ืฆื ืืืื ืงื ืืื. ืืึธืก ืืื ืืืึธืก ืขืก ืืื make skaffold
, ืึธืืขืจ Skaffold ืืื ืคืืืข ืื ืืขืจืข ืคึฟืขืึดืงืืืื.
ืคึฟืึทืจ ืืึทืื ืืขืืคึผืืึทืืขืก ืืื Kubernetes, ืืืจ ื ืืฆื ืงืืกืืึธืืืืข ืฆื ืคืืจื ืืึทืื ืึธืืืืขืจืืืื ืึธื ืคืึธืจืงืื ื ืื ืืื ืฆืข ืืึทื ืึทืคืขืกืืืืฉืึทื, ืึทืืึทืืื ื ืืืจ ืฆื ื ืืฆื git pull --rebase
ืคึฟืึทืจ ืืืืึทืืขืจ ืืืคึผืจืืืืืึทื ืฅ. ืืืฆื ืขืก ืืื ืืื kubectl ืืื ืขืก ืึทืจืืขื ืืึทื ืฅ ืืื ืคึฟืึทืจ ืึทืืึท ืืืื.
ืืืจ ืืืื ื ืืฆื envsubst ืฆื ืืึทืคืขืืงืขืจื ืื ืืึธืกืื ืึทืืข ืืื GCP ืคึผืจืืืขืงื ืฉืืึทื ืืื ืื *.yaml.tmpl ืืขืงืขืก. ืืืจ ืงืขื ืขื ืืขื ืืื ืขืก ืึทืจืืขื ืืื makefile
ืึธืืขืจ ื ืึธืจ ืคืึธืจืืขืฆื ืืืืึทืืขืจ.
ืื ื ืืืืืง ืื ืึธืื
- ืึทืจืืขื ืงืืึทืกืืขืจ
Kubernetes ืงืึทืกืืึทืืืื Skaffold - ืคึฟืึทืจ ืงืจืืืืืื ื ืืืื ืืืืืขื ืข ืืึธืงืงืขืจ ืืืืืขืจ ืืื ืืจืื ื ืืืคึผืืืืืึทื ื ืฆื GKE- ืงืึธืคึผืืข ืคืื โโืืขื ืงืึธื
- ืขื ืืืืืกื
ืืืึธืจืงืคืืึธืื ื ืืฆื ืืึทื ืืคืขืกืฅ
ืืืื ืืืจ ืืึธื ื ืืฉื ืืืขืื ืฆื ื ืืฆื kustomize ืึธืืขืจ skaffold, ืืืจ ืงืขื ื ืึธืคึผืฉืืงื ืฆื ืื ืืึทื ืึทืคืขืกืืืืฉืึทื ื ืืื generated-manifest.yaml
ืืื ืึทืืึทืคึผื ืืื ืฆื ืื ืืืึธืจืงืคืืึธืื ืคืื ืืืื ืืจืืจื.
ืืึธืืก ืืื ืืขืืจืืงืก
ืคึผืจืึธืืขืืืขืืก ืืื ืืขืืืืจื ืืขืจ ื ืึธืจืืึทื ืคึฟืึทืจ ืงืึทืืขืงืืื ื ืืขืืจืืงืก ืืื ืงืืืขืจื ืขืืขืก. ืขืก ืึทืงืืึทืคึผืืื ืื ืืขืืืข ื ืืฉืข ืืื AWS Cloudwatch Metrics, Cloudwatch Alerts, Stackdriver Metrics, StatsD, Datadog, Nagios, vSphere Metrics ืืื ืื ืืขืจืข. ืขืก ืืื ืึธืคึฟื ืืงืืจ ืืื ืืื ืึท ืฉืืึทืจืง ืึธื ืคึฟืจืขื ืฉืคึผืจืึทื. ืืืจ ืืืขืื ืืขืื ืื ืืืืืฉืืืึทืืึทืืืืฉืึทื ืฆื Grafana - ืขืก ืงืืื ืืื ืึท ืืจืืืก ื ืืืขืจ ืคืื ืืึทืฉืืึธืจืื ืื ืืืฆื ืืืืก ืคืื ืื ืงืขืกืื. ืืื ืืขื ืขื ืคืืจืืื ืื ืฆื ืืขืืขืจ ืื ืืขืจืขืจ ืืื ืืขื ืขื ืืขืคืืขืจืขื ืืจืื ื ืฆื ืื ืกืืึทืืืจื ืืื
ืืืจื ืคืขืืืงืืึทื, ืคึผืจืึธืืขืืืขืืก ื ืืฆื ืื ืืงืกืืจืึทืงืฉืึทื ืืึธืืขื <service>/metrics
, ืืื ืึทืืื ื ืกืืืืงืึทืจ ืงืึทื ืืืื ืขืจื ืคึฟืึทืจ ืืขื ืืื ืคึผืจืึธืกื. ืฆืื ืืึทืืืืขืจื, JMX ืืขืืจืืงืก ืืขื ืขื ืืขืกืืขืจ ืืึธืื ืืื ืื 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, ืืื ืืึธืืงืึทื ืืื ืืืืื ืืืื ืขืจ ืคืื ืืื, ืึทืืื ืืขืจ ืขืงืกืคึผืึธืจืืขืจ ืืึทืจืฃ ื ืึธื ืงืึทื ืคืืืืขืจืืืฉืึทื. ืกืืึทื ืืึทืจื ืงืึทื ืคืืืืขืจืืืฉืึทื ื ืคึฟืึทืจ ืืึธืืงืึทื, ืืืืืืคืื, ืงืึทืคืงืึท ืืื ืึทืืื ืืืืฃ ืืขื ืขื ืื ืืืฆื
ืขืจืฉืืขืจ, ืืืจ ืืืืื ืื ืขืงืกืคึผืึธืจืืขืจ ืงืึทื ืคืืืืขืจืืืฉืึทื ืืขืงืข ืฆื ืืื ืืืขืจ ืคึผืืึทืืคืึธืจืืข / ืงืึธื ืคืื / ืืืขืืืืืึทืืขืจ
platform/config
โโโ prometheus-jmx.yaml
ืืขืืึธืื ืืืจ ืืืืื kustomization.yaml.tmp
l:
-- platform/kustomization.yaml.tmpl
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
[...]
configMapGenerator:
- name: config
files:
- config/prometheus-jmx.yaml
ืืึธืก ืืืขื ืืืืื ืืขืืขืจ ืขืืขืืขื ื files[]
ืืื ืึท ืงืึธื ืคืืืืึทืคึผ ืงืึทื ืคืืืืขืจืืืฉืึทื ืขืืขืืขื ื. ConfigMapGenerators ืืขื ืขื ืืจืืืก ืืืืึทื ืืื ืืึทืฉ ืื ืงืึทื ืคืืืืขืจืืืฉืึทื ืืึทืื ืืื ืฆืืืื ืืขื ืึท ืคึผืึธื ืจืืกืืึทืจื ืืืื ืขืก ืขื ืืขืจืื ืืขื. ืืื ืืืื ืจืขืืืฆืืจื ืื ืกืืืข ืคืื โโโโืงืึทื ืคืืืืขืจืืืฉืึทื ืืื ืืืคึผืืืืืึทื ื ืืื ื ืืืจ ืงืขื ืขื ืึธื ืงืืึทืคึผื ืึท ืืึทื ืฅ "ืืขืงืข" ืคืื ืงืึทื ืคืืืืขืจืืืฉืึทื ืืขืงืขืก ืืื ืืืื VolumeMount.
ืฆืื ืกืืฃ, ืืืจ ืืึทืจืคึฟื ืฆื ืึธื ืงืืึทืคึผื ืื 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
[...]
ืืืื ืืขืจืืขื. ืืืื ืคึผืจืึธืืขืืืขืืก ืืื ื ืืฉื ืงืึทื ืคืืืืขืจื ืฆื ืืึธื ืึท ืคืื ืจืืื ืืงืื ื, ืืืจ ืงืขื ืืึธืื ืฆื ืืึธืื ืขืก ืฆื ืจืืื ืืงื ืื ืคึผืึธืืก. ืคึผืจืึธืืขืืืขืืก ืึธืคึผืขืจืึทืืึธืจ ื ืืฆืขืจืก ืงืขื ืขื ื ืืฆื service-monitor.yaml
ืฆื ืึธื ืืืืื. ืืืกืคืึธืจืฉื Service-monitor.yaml
,
ืืงืกืืขื ืืื ื ืืขื ืืืกืืขืจ ืฆื ืื ืืขืจืข ื ืืฆื ืงืึทืกืขืก
ืึทืืข ืืขืงืขืก ืืืึธืก ืืืจ ืืืืื ืฆื ConfigMapGenerator ืืืขื ืืืื ืืืจืขืืืืื ืืื ืื ื ืืึทืข ืืืขืืืืืึทืืขืจ /etc/config
. ืืืจ ืงืขื ืขื ืคืึทืจืืจืืืืขืจื ืืขื ืืืกืืขืจ ืฆื ืึธื ืงืืึทืคึผื ืงืืื ืื ืืขืจืข ืงืึทื ืคืืืืขืจืืืฉืึทื ืืขืงืขืก ืืืจ ืืึทืจืคึฟื. ืืืจ ืงืขื ืขื ืืคืืื ืึธื ืงืืึทืคึผื ืึท ื ืืึทืข ืกืืึทืจืืึทืคึผ ืฉืจืืคื. ืืืจ ืงืขื ืขื ื ืืฆื
ืืึทืืึทืืื ื
ืืจืืืก ื ืืึทืขืก! ืึทืคึผืคึผืืืงืึทืืืึธื ืืึธืืก ืืขื ืขื ืฉืืื ืื ืืืฆื ืืืืฃ ืกืืืึธืื, ืืืฉื ืืื kubectl logs
. Fluentd (ืื ืกืืึทืืืจื ืืืจื ืคืขืืืงืืึทื ืืื GKE) ืืืขื ืคืึธืจืืืขืจืืื ืืืื ืืึธืืก ืฆื Elasticsearch, Loki ืึธืืขืจ ืืืื ืคืึทืจื ืขืืื ื ืืึธืืื ื ืคึผืืึทืืคืึธืจืืข. ืืืื ืืืจ ืืืืื ืฆื ื ืืฆื jsonify ืคึฟืึทืจ ืืึธืืก, ืืืจ ืงืขื ื ื ืึธืืืืื ืื ืืืืื ืืืกืืขืจ ืฆื ืื ืกืืึทืืืจื
Database
ืืืจื ืคืขืืืงืืึทื, ืื ืืืื ืืืขื ืืึธืื ืึท H2 ืืึทืืึทืืืืก. ืืึธืก ืืื ื ืืฉื ืคึผืึทืกืืง ืคึฟืึทืจ ืืื ืื, ืืื ืืืจ ืืืขืื ื ืืฆื Google Cloud SQL ืืื Cloud SQL Proxy - ืืึธืก ืืืขื ืืืื ืืืจืฃ ืฉืคึผืขืืขืจ ืฆื ืกืึธืืืืข ืื ืขืจืืขื ืคึผืจืึธืืืขืืก. ืืึธืก ืืื ืึท ืคึผืฉืื ืืื ืคืึทืจืืึธืืืขื ืึธืคึผืฆืืข ืืืื ืืืจ ืืึธื ื ืื ืืึธืื ืืืื ืืืืืขื ืข ืคึผืจืขืคึฟืขืจืขื ืฆื ืืื ืืึทืฉืืขืืืงื ืื ืืึทืืึทืืืืก. 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 ืกืืงืจืืฅ. ืืืื ื ืื, ืืึธ ืืขื ืขื ืขืืืขืืข ืึธืคึผืฆืืขืก: ืขื ืงืจืืคึผืืื ื ืืื ืืื ืืืื ืืืึธืืงื ืฉืคึผืืึทืืขืจ ืก KMS ืืื ืืขืืึธืื ืื ืืืฉืขืงืืื ื ืืื ืืื K8S ืืื ืกืืงืจืืฅ ืืืจื ืื ืกื ืจืขืจื - ืืื ืืข -
ืื ืืจืขืกืก
ืกืืึทืื ืืืจ ืงืืืึทืื ืฆื ื ืืฆื ืืืืข ืคึผืึธืจื ืคืึธืจืืืขืจืืื ื, ืืืจ ืืึทืจืคึฟื ืึท ืงืึทื ืคืืืืขืจื ืื ืืจืขืกืก ืงืึธื ืืจืึธืืืขืจ. ืืืื ืืืจ ืืึธื ื ืื ื ืืฆื ingress-patch.yaml.tmpl
ืึธืืขืจ platform/ingress.yaml
. ืืืื ืืืจ ื ืืฆื Ingress-nginx ืืื ืืขื ืึทื nginx ืื ืืจืขืกืก ืงืืึทืก ืืื ืึท ืืึทืกืข ืืึทืืึทื ืกืขืจ ืืื ืึท ืคืื ืืจืืืกื ืืืง ืื ืก ืึธืืขืจ ืืืืืืงืึทืจื ืื ืก ืคึผืึธืืืฆืืข, ืืืจ ืืขื ื ืืื ืฆื ืืืื. ืึทื ืืขืจืฉ, ืงืึทื ืคืืืืขืจ ืื ืื ืืจืขืกืก ืงืึธื ืืจืึธืืืขืจ ืืื ืื ืก, ืึธืืขืจ ืืึธืคึผืงืขื ืื ืกืืขืคึผืก ืืื ืืึทืืื ืื ืืืจืขืงื ืคึฟืึทืจืืื ืืื ื ืฆื ืื ืคึผืึธื.
ืืืก
ืืืื ืืืจ ื ืืฆื ingress-patch.yaml.tmpl
ืืื ืงืึทืกืืึทืืืื ืขืก ืฆื ืืืื ืืืืขืจืคืขื ืืฉื.
ืืึธื ืืฉ!
ืืืื ืืืจ ื ืืืืขืืื ืืขื ืึทืืฅ ืืขืฉืจืืื ืืืืื, ืืขืืึธืื ืืขืจ ืืึทืคึฟืขื 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
ืืืึทืจืื ืึท ืืืกื ืืื ืื ืืื ืืึธืืงืึทื ืืื ืืึธืจ ืืจืืื. ืกืขืจื-ืคืึทืจืืืึทืืืขืจ ืืืขื ื ืขืืขื ืขืืืขืืข ืืึธื ืฆื ืืึทืฉืืขืืืงื ืืขื ืคืขืื ื ืึธืืขื. ืืืจ ืงืขื ื ืืึธื ืืืึธืจ ืื ืืึธืืก ืืื ืื ืื ืืืฆื ืืืฉืืจืื ืึทืืึท ืืื ืึท ืืขืฆืืึทื ืืื ืงืืืขืืืืื ืึธืืขืจ ืคืฉืื ื ืืฆื kubectl:
kubectl logs -n camunda-bpm-demo $(kubectl get pods -o=name -n camunda-bpm-demo) -f
ืืืืึทืืขืจ ืกืืขืคึผืก
ืืขืจืืืืืขื ืืฉ
ืืึธืก ืืื ืืขืจ ืืึทืืืึทืืืง ืฆื ืงืึทื ืคืืืืขืจ Camunda BPM ืืื Kubernetes, ืึธืืขืจ ืขืก ืืื ืืืืืืืง ืฆื ืืึธื ืึทื ืืืจื ืคืขืืืงืืึทื, ืึธืืขื ืืึทืงืืืฉืึทื ืืื ืคืึทืจืงืจืืคึผืื ืืื ืื REST API. ืื ืงืขื ืกื
ืกืขืกืืข ืคืึทืจืืืึทืืืื ื
ืืื ืคืืืข ืื ืืขืจืข ืึทืคึผืืึทืงืืืฉืึทื ื, Camunda BPM ืืึทื ืืึทืื ืกืขืฉืึทื ื ืืื ืื JVM, ืึทืืื ืืืื ืืืจ ืืืืื ืฆื ืืืืคื ืงืืืคื ืจืขืคึผืืึทืงืึทื, ืืืจ ืงืขื ืขื ืืขืื ืงืืขืคึผืืง ืกืขืฉืึทื ื (
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
ืืึธื: ืืืจ ืงืขื ืขื ื ืืฆื xmlstarlet ืึทื ืฉืืึธื ืคืื sed
ืืืจ ืืขืืืืื ื
ืกืงืืืืื ื
ืืืื ืืืจ ืฉืืื ืคึฟืึทืจืฉืืืื ืกืขืฉืึทื ื, ืืขืจ ืขืจืฉืืขืจ (ืืื ืึธืคื ืื ืืขืฆืืข) ืืึทืืจืขื ืขืฆืื ื ืฆื ืกืงืืืืื ื Camunda BPM ืงืขื ืืืื ืื ืงืฉืจ ืฆื ืื ืืึทืืึทืืืืก. ืืืื ืงืืกืืึธืืืืึทืืืึธื ืืื ืฉืืื ืื ืืืฆื "
ืจืืงืืืขืก ืืื ืจืืกืืจืืงืฉืึทื ื
ะ platform/deployment.yaml
ืืืจ ืืืขื ืืขื ืึทื ืืืจ ืืึธืื ืฉืืืขืจ ืงืึธืืขื ืื ืจืขืกืืจืกื ืคืขืื. ืืึธืก ืึทืจืืขื ืืขืืื ื ืืื HPA, ืึธืืขืจ ืงืขื ืืึทืจืคื ื ืึธื ืงืึทื ืคืืืืขืจืืืฉืึทื. ืื ืงืืกืืึธืืืืข ืืึทืืข ืืื ืคึผืึทืกืืง ืคึฟืึทืจ ืืขื. ืกืขื ืืืืขืืขืจ. ingress-patch.yaml.tmpl ะธ ./kustomization.yaml.tmpl
ืจืขืืืืืึทื
ืึทืืื ืืืจ ืืื ืกืืึทืืืจื Camunda BPM ืืืืฃ Kubernetes ืืื ืคึผืจืึธืืขืืืขืืก ืืขืืจืืงืก, ืืึธืืก, H2 ืืึทืืึทืืืืก, TLS ืืื Ingress. ืืืจ ืืึธืื ืฆืืืขืืขืื ืกืืื ืืขืงืขืก ืืื ืงืึทื ืคืืืืขืจืืืฉืึทื ืืขืงืขืก ืืื ConfigMaps ืืื Dockerfile. ืืืจ ืืขืจืขืื ืืืขืื ืืงืกืืฉืืื ืืืฉืื ื ืืึทืื ืฆื ืืืึทืืืืื ืืื ืืืืึทื ืฆื ืกืืืืืืข ืืืขืจืืึทืืึทืื ืคึฟืื ืกืืงืจืืฅ. ืืื ืึทืืืฉืึทื, ืืืจ ืฆืืืขืฉืืขืื ืึทื ืืืืขืจืืืืง ืคืื ืืึทืฉืืขืืืงื Camunda ืคึฟืึทืจ ืงืืืคื ืจืขืคึผืืึทืงืึทื ืืื ืึทื ืึธืืขื ืืึทืงืืืืึทื ืึทืคึผื.
ืจืขืคึฟืขืจืขื ืฆื
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
05.08.2020/XNUMX/XNUMX, ืืืืขืจืืขืฆืื ื
ืืงืืจ: www.habr.com