рддреБрдореНрд╣реА Kubernetes рд╡рд╛рдкрд░рдд рдЖрд╣рд╛рдд? рддреБрдордЪреА Camunda BPM рдЙрджрд╛рд╣рд░рдгреЗ рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢реАрдирдЪреНрдпрд╛ рдмрд╛рд╣реЗрд░ рд╣рд▓рд╡рдгреНрдпрд╛рд╕ рддрдпрд╛рд░ рдЖрд╣рд╛рдд, рдХрд┐рдВрд╡рд╛ рдХрджрд╛рдЪрд┐рдд рддреНрдпрд╛рдВрдирд╛ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рд╡рд░ рдЪрд╛рд▓рд╡рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░рд╛? рдЪрд▓рд╛ рдХрд╛рд╣реА рд╕рд╛рдорд╛рдиреНрдп рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдиреНрд╕ рдЖрдгрд┐ рд╡реИрдпрдХреНрддрд┐рдХ рдЖрдпрдЯрдо рдкрд╛рд╣реВ рдЬреНрдпрд╛ рдЖрдкрд▓реНрдпрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЧрд░рдЬреЗрдиреБрд╕рд╛рд░ рддрдпрд╛рд░ рдХреЗрд▓реНрдпрд╛ рдЬрд╛рдК рд╢рдХрддрд╛рдд.
рд╣реЗ рдЧреГрд╣реАрдд рдзрд░рддреЗ рдХреА рддреБрдореНрд╣реА рдпрд╛рдЖрдзреА рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рд╡рд╛рдкрд░рд▓реЗ рдЖрд╣реЗрдд. рдирд╕реЗрд▓ рддрд░ рдХрд╛ рдмрдШреВ рдирдпреЗ
рд▓реЗрдЦрдХ
рдЕреЕрд▓рд┐рд╕реНрдЯрд░ рдлрд░реНрде (рдЕреЕрд▓рд┐рд╕реНрдЯрд░ рдлрд░реНрде) - рдХреЕрдореБрдВрдбрд╛ рдХреНрд▓рд╛рдЙрдб рдЯреАрдорд╡рд░реАрд▓ рд╡рд░рд┐рд╖реНрда рд╕рд╛рдЗрдЯ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдЕрднрд┐рдпрдВрддрд╛;рд▓рд╛рд░реНрд╕ рд▓рдБрдЧреЗ (рд▓рд╛рд░реНрд╕ рд▓рдБрдЧреЗ) - рдХреЕрдореБрдВрдбрд╛ рдпреЗрдереЗ DevOps рдЕрднрд┐рдпрдВрддрд╛.
рдереЛрдбрдХреНрдпрд╛рдд:
git clone https://github.com/camunda-cloud/camunda-examples.git
cd camunda-examples/camunda-bpm-demo
make skaffold
рдареАрдХ рдЖрд╣реЗ, рддреБрдордЪреНрдпрд╛рдХрдбреЗ рд╕реНрдХрд╛рдлреЛрд▓реНрдб рдЖрдгрд┐ рдХрд╕реНрдЯрдорд╛рдЗрдЭ рдЗрдиреНрд╕реНрдЯреЙрд▓ рдирд╕рд▓реНрдпрд╛рдореБрд│реЗ рдХрджрд╛рдЪрд┐рдд рддреЗ рдХрд╛рдо рдХрд░рдд рдирд╕реЗрд▓. рдмрд░рдВ рдордЧ рд╡рд╛рдЪрд╛!
рдХреЕрдореБрдВрдбрд╛ рдмреАрдкреАрдПрдо рдореНрд╣рдгрдЬреЗ рдХрд╛рдп?
Camunda BPM рд╣реЗ рдПрдХ рдореБрдХреНрдд рд╕реНрд░реЛрдд рд╡реНрдпрд╡рд╕рд╛рдп рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЖрдгрд┐ рдирд┐рд░реНрдгрдп рдСрдЯреЛрдореЗрд╢рди рдкреНрд▓реЕрдЯрдлреЙрд░реНрдо рдЖрд╣реЗ рдЬреЗ рд╡реНрдпрд╡рд╕рд╛рдп рд╡рд╛рдкрд░рдХрд░реНрддреЗ рдЖрдгрд┐ рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ рдбреЗрд╡реНрд╣рд▓рдкрд░ рдпрд╛рдВрдирд╛ рдЬреЛрдбрддреЗ. рд▓реЛрдХ, (рдорд╛рдпрдХреНрд░реЛ) рд╕реЗрд╡рд╛ рдХрд┐рдВрд╡рд╛ рдЕрдЧрджреА рдмреЙрдЯреНрд╕рдордзреНрдпреЗ рд╕рдордиреНрд╡рдп рд╕рд╛рдзрдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рддреНрдпрд╛рдВрдирд╛ рдЬреЛрдбрдгреНрдпрд╛рд╕рд╛рдареА рд╣реЗ рдЖрджрд░реНрд╢ рдЖрд╣реЗ! рдЖрдкрдг рдпреЗрдереЗ рд╡рд┐рд╡рд┐рдз рд╡рд╛рдкрд░ рдкреНрд░рдХрд░рдгрд╛рдВрдмрджреНрджрд▓ рдЕрдзрд┐рдХ рд╡рд╛рдЪреВ рд╢рдХрддрд╛
рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдХрд╛ рд╡рд╛рдкрд░рд╛рд╡реЗ
рд▓рд┐рдирдХреНрд╕рд╡рд░ рдЖрдзреБрдирд┐рдХ рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рдЪрд╛рд▓рд╡рд┐рдгреНрдпрд╛рд╕рд╛рдареА рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рд╣реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдорд╛рдирдХ рдмрдирд▓реЗ рдЖрд╣реЗ. рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░ рдЗрдореНрдпреБрд▓реЗрд╢рдирдРрд╡рдЬреА рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рд╡рд╛рдкрд░реВрди рдЖрдгрд┐ рдХрд░реНрдирд▓рдЪреА рдореЗрдорд░реА рдЖрдгрд┐ рдЯрд╛рд╕реНрдХ рд╕реНрд╡рд┐рдЪрд┐рдВрдЧ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛, рдмреВрдЯ рд╡реЗрд│ рдЖрдгрд┐ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╡реЗрд│ рдХрдореАрддрдХрдореА рдареЗрд╡рд▓реА рдЬрд╛рддреЗ. рддрдерд╛рдкрд┐, рд╕рд░реНрд╡ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдВрд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХ рдкрд╛рдпрд╛рднреВрдд рд╕реБрд╡рд┐рдзрд╛ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА Kubernetes рдкреНрд░рджрд╛рди рдХреЗрд▓реЗрд▓реНрдпрд╛ рдорд╛рдирдХ API рдордзреВрди рд╕рд░реНрд╡рд╛рдд рдореЛрдард╛ рдлрд╛рдпрджрд╛ рд╣реЛрдК рд╢рдХрддреЛ: рд╕реНрдЯреЛрд░реЗрдЬ, рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧ рдЖрдгрд┐ рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ. рддреЛ рдЬреВрди 2020 рдордзреНрдпреЗ 6 рд╡рд░реНрд╖рд╛рдВрдЪрд╛ рдЭрд╛рд▓рд╛ рдЖрдгрд┐ рдХрджрд╛рдЪрд┐рдд (Linux рдирдВрддрд░) рджреБрд╕рд░рд╛ рд╕рд░реНрд╡рд╛рдд рдореЛрдард╛ рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░рдХрд▓реНрдк рдЖрд╣реЗ. рдЬрдЧрднрд░рд╛рддреАрд▓ рдЙрддреНрдкрд╛рджрди рд╡рд░реНрдХрд▓реЛрдбреНрд╕рд╕рд╛рдареА рддреЗ рдЧрдВрднреАрд░ рдмрдирд▓реНрдпрд╛рдореБрд│реЗ рдЧреЗрд▓реНрдпрд╛ рдХрд╛рд╣реА рд╡рд░реНрд╖рд╛рдВрдд рдЬрд▓рдж рдкреБрдирд░рд╛рд╡реГрддреНрддреАрдирдВрддрд░ рддреЗ рдЕрд▓реАрдХрдбреЗ рд╕рдХреНрд░рд┐рдпрдкрдгреЗ рддреНрдпрд╛рдЪреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╕реНрдерд┐рд░ рдХрд░рдд рдЖрд╣реЗ.
Camunda BPM рдЗрдВрдЬрд┐рди рддреНрдпрд╛рдЪ рдХреНрд▓рд╕реНрдЯрд░рд╡рд░ рдЪрд╛рд▓рдгрд╛рд▒реНрдпрд╛ рдЗрддрд░ рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рд╢реА рд╕рд╣рдЬрдкрдгреЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрдК рд╢рдХрддреЗ рдЖрдгрд┐ Kubernetes рдЙрддреНрдХреГрд╖реНрдЯ рд╕реНрдХреЗрд▓реЗрдмрд┐рд▓рд┐рдЯреА рдкреНрд░рджрд╛рди рдХрд░рддреЗ, рдЬреНрдпрд╛рдореБрд│реЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдЦрд░реЛрдЦрд░ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕реЗрд▓ рддреЗрд╡реНрд╣рд╛рдЪ рдкрд╛рдпрд╛рднреВрдд рд╕реБрд╡рд┐рдзрд╛рдВрдЪрд╛ рдЦрд░реНрдЪ рд╡рд╛рдврд╡рддрд╛ рдпреЗрддреЛ (рдЖрдгрд┐ рдЖрд╡рд╢реНрдпрдХрддреЗрдиреБрд╕рд╛рд░ рддреЗ рд╕рд╣рдЬрдкрдгреЗ рдХрдореА рдХрд░рддрд╛ рдпреЗрддреЗ).
Prometheus, Grafana, Loki, Fluentd рдЖрдгрд┐ Elasticsearch рд╕рд╛рд░рдЦреНрдпрд╛ рд╕рд╛рдзрдирд╛рдВрд╕рд╣ рдореЙрдирд┐рдЯрд░рд┐рдВрдЧрдЪреА рдЧреБрдгрд╡рддреНрддрд╛ рджреЗрдЦреАрд▓ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рд╕реБрдзрд╛рд░рд▓реА рдЖрд╣реЗ, рдЬреНрдпрд╛рдореБрд│реЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдХреНрд▓рд╕реНрдЯрд░рдордзреНрдпреЗ рд╕рд░реНрд╡ рд╡рд░реНрдХрд▓реЛрдбреНрд╕ рдордзреНрдпрд╡рд░реНрддреАрдкрдгреЗ рдкрд╛рд╣рддрд╛ рдпреЗрддрд╛рдд. рдЖрдЬ рдЖрдкрдг рдЬрд╛рд╡рд╛ рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢реАрди (JVM) рдордзреНрдпреЗ рдкреНрд░реЛрдорд┐рдерд┐рдпрд╕ рдирд┐рд░реНрдпрд╛рддрдХ рдХрд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рд╛рдпрдЪреЗ рддреЗ рдкрд╛рд╣реВ.
рдЙрджреНрджреАрд╖реНрдЯреЗ
рдЪрд▓рд╛ рдХрд╛рд╣реА рдХреНрд╖реЗрддреНрд░реЗ рдкрд╛рд╣реВ рдЬрд┐рдереЗ рдЖрдкрдг рдХреЕрдореБрдВрдбрд╛ рдмреАрдкреАрдПрдо рдбреЙрдХрд░ рдкреНрд░рддрд┐рдорд╛ рд╕рд╛рдиреБрдХреВрд▓рд┐рдд рдХрд░реВ рд╢рдХрддреЛ (
- рд▓реЙрдЧ рдЖрдгрд┐ рдореЗрдЯреНрд░рд┐рдХреНрд╕;
- рдбреЗрдЯрд╛рдмреЗрд╕ рдХрдиреЗрдХреНрд╢рди;
- рдкреНрд░рдорд╛рдгреАрдХрд░рдг;
- рд╕рддреНрд░ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди.
рд╣реА рдЙрджреНрджрд┐рд╖реНрдЯреЗ рд╕рд╛рдзреНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдореНрд╣реА рдЕрдиреЗрдХ рдорд╛рд░реНрдЧ рдкрд╛рд╣реВ рдЖрдгрд┐ рд╕рдВрдкреВрд░реНрдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реНрдкрд╖реНрдЯрдкрдгреЗ рджрд░реНрд╢рд╡реВ.
рд╢реЗрд░рд╛: рддреБрдореНрд╣реА рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЭ рдЖрд╡реГрддреНрддреА рд╡рд╛рдкрд░рдд рдЖрд╣рд╛рдд? рджрд┐рд╕рдд
рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣ рд╡рд┐рдХрд╛рд╕
рдпрд╛ рдбреЗрдореЛрдордзреНрдпреЗ, рдЖрдореНрд╣реА Google рдХреНрд▓рд╛рдЙрдб рдмрд┐рд▓реНрдб рд╡рд╛рдкрд░реВрди рдбреЙрдХрд░ рдкреНрд░рддрд┐рдорд╛ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА Skaffold рдЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВ. рдпрд╛рдд рд╡рд┐рд╡рд┐рдз рд╕рд╛рдзрдирд╛рдВрд╕рд╛рдареА (рдЬрд╕реЗ рдХреА рдХреБрд╕реНрдЯрдорд╛рдИрдЭ рдЖрдгрд┐ рд╣реЗрд▓реНрдо), рд╕реАрдЖрдп рдЖрдгрд┐ рдмрд┐рд▓реНрдб рдЯреВрд▓реНрд╕ рдЖрдгрд┐ рдкрд╛рдпрд╛рднреВрдд рд╕реБрд╡рд┐рдзрд╛ рдкреНрд░рджрд╛рддреНрдпрд╛рдВрд╕рд╛рдареА рдЪрд╛рдВрдЧрд▓рд╛ рд╕рдорд░реНрдерди рдЖрд╣реЗ. рдлрд╛рдИрд▓ skaffold.yaml.tmpl
Google рдХреНрд▓рд╛рдЙрдб рдмрд┐рд▓реНрдб рдЖрдгрд┐ GKE рд╕рд╛рдареА рд╕реЗрдЯрд┐рдВрдЧреНрдЬ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХрд░рддреЗ, рдЙрддреНрдкрд╛рджрди-рд╢реНрд░реЗрдгреА рдкрд╛рдпрд╛рднреВрдд рд╕реБрд╡рд┐рдзрд╛ рдЪрд╛рд▓рд╡рдгреНрдпрд╛рдЪрд╛ рдПрдХ рдЕрддрд┐рд╢рдп рд╕реЛрдкрд╛ рдорд╛рд░реНрдЧ рдкреНрд░рджрд╛рди рдХрд░рддреЗ.
make skaffold
рдбреЙрдХрд░рдлрд╛рдЗрд▓ рд╕рдВрджрд░реНрдн рдХреНрд▓рд╛рдЙрдб рдмрд┐рд▓реНрдбрдордзреНрдпреЗ рд▓реЛрдб рдХрд░реЗрд▓, рдкреНрд░рддрд┐рдорд╛ рддрдпрд╛рд░ рдХрд░реЗрд▓ рдЖрдгрд┐ GCR рдордзреНрдпреЗ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░реЗрд▓ рдЖрдгрд┐ рдирдВрддрд░ рддреБрдордЪреНрдпрд╛ рдХреНрд▓рд╕реНрдЯрд░рд╡рд░ рдореЕрдирд┐рдлреЗрд╕реНрдЯ рд▓рд╛рдЧреВ рдХрд░реЗрд▓. рд╣реЗ рдЕрд╕реЗрдЪ рдХрд░рддреЗ make skaffold
, рдкрд░рдВрддреБ Skaffold рдордзреНрдпреЗ рдЗрддрд░ рдЕрдиреЗрдХ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рдЖрд╣реЗрдд.
Kubernetes рдордзреАрд▓ yaml рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕рд╕рд╛рдареА, рдЖрдореНрд╣реА рд╕рдВрдкреВрд░реНрдг рдореЕрдирд┐рдлреЗрд╕реНрдЯрд▓рд╛ рдХрд╛рдЯрд╛ рди рд▓рд╛рд╡рддрд╛ yaml рдЖрдЪреНрдЫрд╛рджрди рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА kustomize рд╡рд╛рдкрд░рддреЛ, рддреБрдореНрд╣рд╛рд▓рд╛ рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЛ git pull --rebase
рдкреБрдвреАрд▓ рд╕реБрдзрд╛рд░рдгрд╛рдВрд╕рд╛рдареА. рдЖрддрд╛ рддреЗ kubectl рдордзреНрдпреЗ рдЖрд╣реЗ рдЖрдгрд┐ рдЕрд╢рд╛ рдЧреЛрд╖реНрдЯреАрдВрд╕рд╛рдареА рддреЗ рдЪрд╛рдВрдЧрд▓реЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ.
*.yaml.tmpl рдлрд╛рдЗрд▓реНрд╕рдордзреНрдпреЗ рд╣реЛрд╕реНрдЯрдирд╛рд╡ рдЖрдгрд┐ GCP рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЖрдпрдбреА рднрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдореНрд╣реА envsubst рджреЗрдЦреАрд▓ рд╡рд╛рдкрд░рддреЛ. рддреЗ рдХрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ рддреЗ рддреБрдореНрд╣реА рдкрд╛рд╣реВ рд╢рдХрддрд╛ makefile
рдХрд┐рдВрд╡рд╛ рдлрдХреНрдд рдкреБрдвреЗ рд╕реБрд░реВ рдареЗрд╡рд╛.
рдЖрд╡рд╢реНрдпрдХ рдЕрдЯреА
- рдХрд╛рд░реНрдп рдХреНрд▓рд╕реНрдЯрд░
рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕рд╛рдиреБрдХреВрд▓ рдХрд░рд╛ рд╕реНрдХреЕрдлреЛрд▓реНрдб - рддреБрдордЪреНрдпрд╛ рд╕реНрд╡рддрдГрдЪреНрдпрд╛ рдбреЙрдХрд░ рдкреНрд░рддрд┐рдорд╛ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ GKE рд╡рд░ рд╕реБрд▓рдн рдЙрдкрдпреЛрдЬрди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА- рдпрд╛ рдХреЛрдбрдЪреА рдкреНрд░рдд
- Envsubst
рдореЕрдирд┐рдлреЗрд╕реНрдЯ рд╡рд╛рдкрд░реВрди рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣
рддреБрдореНрд╣рд╛рд▓рд╛ kustomize рдХрд┐рдВрд╡рд╛ skaffold рд╡рд╛рдкрд░рд╛рдпрдЪреЗ рдирд╕рд▓реНрдпрд╛рд╕, рддреБрдореНрд╣реА рдордзреАрд▓ рдореЕрдирд┐рдлреЗрд╕реНрдЯрдЪрд╛ рд╕рдВрджрд░реНрдн рдШреЗрдК рд╢рдХрддрд╛ generated-manifest.yaml
рдЖрдгрд┐ рддреНрдпрд╛рдВрдирд╛ рддреБрдордЪреНрдпрд╛ рдЖрд╡рдбреАрдЪреНрдпрд╛ рд╡рд░реНрдХрдлреНрд▓реЛрдордзреНрдпреЗ рдЬреБрд│рд╡реВрди рдШреНрдпрд╛.
рд▓реЙрдЧ рдЖрдгрд┐ рдореЗрдЯреНрд░рд┐рдХреНрд╕
рдкреНрд░реЛрдорд┐рдерд┐рдпрд╕ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдордзреНрдпреЗ рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдЧреЛрд│рд╛ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдорд╛рдирдХ рдмрдирд▓реЗ рдЖрд╣реЗрдд. рд╣реЗ AWS рдХреНрд▓рд╛рдЙрдбрд╡реЙрдЪ рдореЗрдЯреНрд░рд┐рдХреНрд╕, рдХреНрд▓рд╛рдЙрдбрд╡реЙрдЪ рдЕреЕрд▓рд░реНрдЯреНрд╕, рд╕реНрдЯреЕрдХрдбреНрд░рд┐рд╡реНрд╣рд░ рдореЗрдЯреНрд░рд┐рдХреНрд╕, рд╕реНрдЯреЕрдЯреНрд╕рдбреА, рдбреЗрдЯрд╛рдбреЙрдЧ, рдирд╛рдЧрд┐рдУрд╕, vSphere рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдЖрдгрд┐ рдЗрддрд░рд╛рдВрд╕рд╛рд░рдЦреЗрдЪ рд╕реНрдерд╛рди рд╡реНрдпрд╛рдкрддреЗ. рд╣реЗ рдореБрдХреНрдд рд╕реНрддреНрд░реЛрдд рдЖрд╣реЗ рдЖрдгрд┐ рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛ рдЖрд╣реЗ. рдЖрдореНрд╣реА рд╡реНрд╣рд┐рдЬреНрдпреБрдЕрд▓рд╛рдпрдЭреЗрд╢рди рдЧреНрд░рд╛рдлрд╛рдирд╛рдХрдбреЗ рд╕реЛрдкрд╡реВ - рддреЗ рдмреЙрдХреНрд╕рдЪреНрдпрд╛ рдмрд╛рд╣реЗрд░ рдореЛрдареНрдпрд╛ рд╕рдВрдЦреНрдпреЗрдиреЗ рдЙрдкрд▓рдмреНрдз рдбреЕрд╢рдмреЛрд░реНрдбрд╕рд╣ рдпреЗрддреЗ. рддреЗ рдПрдХрдореЗрдХрд╛рдВрд╢реА рдЬреЛрдбрд▓реЗрд▓реЗ рдЖрд╣реЗрдд рдЖрдгрд┐ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреЗ рддреБрд▓рдиреЗрдиреЗ рд╕реЛрдкреЗ рдЖрд╣реЗ
рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░, рдкреНрд░реЛрдорд┐рдерд┐рдпрд╕ рдПрдХреНрд╕рдЯреНрд░реЕрдХреНрд╢рди рдореЙрдбреЗрд▓ рд╡рд╛рдкрд░рддреЛ <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 рдордзреНрдпреЗ рдорд╛рдЙрдВрдЯ рдХрд░реВ рд╢рдХрддрд╛.
рд╢реЗрд╡рдЯреА, рдЖрдореНрд╣рд╛рд▓рд╛ рдкреЙрдбрд╡рд░ рд╡реНрд╣реЙрд▓реНрдпреВрдо рдореНрд╣рдгреВрди рдХреЙрдиреНрдлрд┐рдЧрдореЕрдк рдорд╛рдЙрдВрдЯ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ:
-- 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
. рддреБрдореНрд╣рд╛рд▓рд╛ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдЗрддрд░ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдлрд╛рдЗрд▓реНрд╕ рдорд╛рдЙрдВрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рддреБрдореНрд╣реА рд╣реЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╡рд╛рдврд╡реВ рд╢рдХрддрд╛. рддреБрдореНрд╣реА рдирд╡реАрди рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреЗрдЦреАрд▓ рдорд╛рдЙрдВрдЯ рдХрд░реВ рд╢рдХрддрд╛. рддреБрдореНрд╣реА рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛
.╨л
рдЙрддреНрддрдо рдмрд╛рддрдореА! рдЕрд░реНрдЬ рдиреЛрдВрджреА stdout рд╡рд░ рдЖрдзреАрдкрд╛рд╕реВрдирдЪ рдЙрдкрд▓рдмреНрдз рдЖрд╣реЗрдд, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде рд╕рд╣ kubectl logs
. Fluentd (GKE рдордзреНрдпреЗ рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░ рд╕реНрдерд╛рдкрд┐рдд) рддреБрдордЪреЗ рд▓реЙрдЧ рдЗрд▓рд╛рд╕реНрдЯрд┐рдХрд╕рд░реНрдЪ, рд▓реЛрдХреА рдХрд┐рдВрд╡рд╛ рддреБрдордЪреНрдпрд╛ рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЭ рд▓реЙрдЧрд┐рдВрдЧ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╡рд░ рдлреЙрд░рд╡рд░реНрдб рдХрд░реЗрд▓. рдЬрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рд▓реЙрдЧрд╕рд╛рдареА jsonify рд╡рд╛рдкрд░рд╛рдпрдЪреЗ рдЕрд╕реЗрд▓ рддрд░ рддреБрдореНрд╣реА рд╡рд░реАрд▓ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдЗрдиреНрд╕реНрдЯреЙрд▓ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдлреЙрд▓реЛ рдХрд░реВ рд╢рдХрддрд╛
рдбреЗрдЯрд╛рдмреЗрд╕
рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░, рдЗрдореЗрдЬрдордзреНрдпреЗ H2 рдбреЗрдЯрд╛рдмреЗрд╕ рдЕрд╕реЗрд▓. рд╣реЗ рдЖрдордЪреНрдпрд╛рд╕рд╛рдареА рдпреЛрдЧреНрдп рдирд╛рд╣реА рдЖрдгрд┐ рдЖрдореНрд╣реА рдХреНрд▓рд╛рдЙрдб SQL рдкреНрд░реЙрдХреНрд╕реАрд╕рд╣ 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
. рдХреГрдкрдпрд╛ рд╡рд╛рдкрд░рд╛
рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рд╕рд┐рдХреНрд░реЗрдЯреНрд╕ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рддреБрдордЪреНрдпрд╛рдХрдбреЗ рдЖрдзреАрдкрд╛рд╕реВрдирдЪ рдПрдХ рдкреНрд░рд╛рдзрд╛рдиреНрдп рдкреНрд░рдгрд╛рд▓реА рдЕрд╕рдгреНрдпрд╛рдЪреА рд╢рдХреНрдпрддрд╛ рдЖрд╣реЗ. рдирд╕рд▓реНрдпрд╛рд╕, рдпреЗрдереЗ рдХрд╛рд╣реА рдкрд░реНрдпрд╛рдп рдЖрд╣реЗрдд: рддреНрдпрд╛рдВрдирд╛ рддреБрдордЪреНрдпрд╛ рдХреНрд▓рд╛рдЙрдб рдкреНрд░рджрд╛рддреНрдпрд╛рдЪреНрдпрд╛ KMS рд╕рд╣ рдХреВрдЯрдмрджреНрдз рдХрд░рдгреЗ рдЖрдгрд┐ рдирдВрддрд░ рддреНрдпрд╛рдВрдирд╛ K8S рдордзреНрдпреЗ рд╕реАрдбреА рдкрд╛рдЗрдкрд▓рд╛рдЗрдирджреНрд╡рд╛рд░реЗ рдЧреБрдкрд┐рддреЗ рдореНрд╣рдгреВрди рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рдгреЗ -
рдкреНрд░рд╡реЗрд╢
рдЬреЛрдкрд░реНрдпрдВрдд рддреБрдореНрд╣реА рд╕реНрдерд╛рдирд┐рдХ рдкреЛрд░реНрдЯ рдлреЙрд░рд╡рд░реНрдбрд┐рдВрдЧ рд╡рд╛рдкрд░рдгреЗ рдирд┐рд╡рдбрдд рдирд╛рд╣реА, рддреЛрдкрд░реНрдпрдВрдд рддреБрдореНрд╣рд╛рд▓рд╛ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЗрд▓реЗрд▓рд╛ рдЗрдирдЧреНрд░реЗрд╕ рдХрдВрдЯреНрд░реЛрд▓рд░ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕реЗрд▓. рдЖрдкрдг рд╡рд╛рдкрд░рдд рдирд╕рд▓реНрдпрд╛рд╕ ingress-patch.yaml.tmpl
рдХрд┐рдВрд╡рд╛ platform/ingress.yaml
. рддреБрдореНрд╣реА ingress-nginx рд╡рд╛рдкрд░рдд рдЕрд╕рд▓реНрдпрд╛рд╕ рдЖрдгрд┐ рд▓реЛрдб рдмреЕрд▓рдиреНрд╕рд░рд╕рд╣ nginx рдЗрдВрдЧреНрд░реЗрд╕ рдХреНрд▓рд╛рд╕ рджрд┐рд╕рд▓реНрдпрд╛рд╕ рдЖрдгрд┐ рдмрд╛рд╣реНрдп DNS рдХрд┐рдВрд╡рд╛ рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдб DNS рдПрдВрдЯреНрд░реА рджрд┐рд╕рд▓реА, рддрд░ рддреБрдореНрд╣реА рдЬрд╛рдгреНрдпрд╛рд╕рд╛рдареА рдЪрд╛рдВрдЧрд▓реЗ рдЖрд╣рд╛рдд. рдЕрдиреНрдпрдерд╛, рдЗрдирдЧреНрд░реЗрд╕ рдХрдВрдЯреНрд░реЛрд▓рд░ рдЖрдгрд┐ DNS рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рд╛ рдХрд┐рдВрд╡рд╛ рдпрд╛ рдкрд╛рдпрд▒реНрдпрд╛ рд╡рдЧрд│рд╛ рдЖрдгрд┐ рдкреЙрдбрд╢реА рдереЗрдЯ рдХрдиреЗрдХреНрд╢рди рдареЗрд╡рд╛.
TLS
рдЖрдкрдг рд╡рд╛рдкрд░рдд рдЕрд╕рд▓реНрдпрд╛рд╕ 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
рдЯреЙрдордХреЕрдЯ рдкреВрд░реНрдгрдкрдгреЗ рддрдпрд╛рд░ рд╣реЛрдИрдкрд░реНрдпрдВрдд рдХрд╛рд╣реА рдорд┐рдирд┐рдЯреЗ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рд╛. рдбреЛрдореЗрди рдирд╛рд╡рд╛рдЪреА рдкрдбрддрд╛рд│рдгреА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА Cert-manager рд▓рд╛ рдХрд╛рд╣реА рд╡реЗрд│ рд▓рд╛рдЧреЗрд▓. рддреНрдпрд╛рдирдВрддрд░ рддреБрдореНрд╣реА рдЙрдкрд▓рдмреНрдз рд╕рд╛рдзрдирд╛рдВрдЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВрди рд▓реЙрдЧрдЪреЗ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░реВ рд╢рдХрддрд╛ рдЬрд╕реЗ рдХреА kubetail рд╕рд╛рд░рдЦреЗ рд╕рд╛рдзрди рдХрд┐рдВрд╡рд╛ рдлрдХреНрдд kubectl рд╡рд╛рдкрд░реВрди:
kubectl logs -n camunda-bpm-demo $(kubectl get pods -o=name -n camunda-bpm-demo) -f
рдкреБрдвреАрд▓ рдкрд╛рдпрд▒реНрдпрд╛
рдЕрдзрд┐рдХреГрддрддрд╛
рд╣реЗ Kubernetes рдкреЗрдХреНрд╖рд╛ Camunda BPM рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЕрдзрд┐рдХ рд╕рдВрдмрдВрдзрд┐рдд рдЖрд╣реЗ, рдкрд░рдВрддреБ рд╣реЗ рд▓рдХреНрд╖рд╛рдд рдШреЗрдгреЗ рдорд╣рддреНрддреНрд╡рд╛рдЪреЗ рдЖрд╣реЗ рдХреА рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░, REST API рдордзреНрдпреЗ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдЕрдХреНрд╖рдо рдХреЗрд▓реЗ рдЖрд╣реЗ. рдЖрдкрдг рдХрд░реВ рд╢рдХрддрд╛
рд╕рддреНрд░ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди
рдЗрддрд░ рдЕрдиреЗрдХ рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рдкреНрд░рдорд╛рдгреЗ, рдХреЕрдореБрдВрдбрд╛ рдмреАрдкреАрдПрдо 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
рд╢реЗрд░рд╛: рддреБрдореНрд╣реА sed рдРрд╡рдЬреА xmlstarlet рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛
рдЖрдореНрд╣реА рд╡рд╛рдкрд░рд▓реЗ
рд╕реНрдХреЗрд▓рд┐рдВрдЧ
рдЬрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рдЖрдзреАрдЪ рд╕рддреНрд░реЗ рд╕рдордЬрд▓реА рдЕрд╕рддреАрд▓, рддрд░ рдХреЕрдореБрдВрдбрд╛ рдмреАрдкреАрдПрдо рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдкрд╣рд┐рд▓реА (рдЖрдгрд┐ рдмрд░реНтАНрдпрд╛рдЪрджрд╛ рд╢реЗрд╡рдЯрдЪреА) рдорд░реНрдпрд╛рджрд╛ рдбреЗрдЯрд╛рдмреЗрд╕рд╢реА рдХрдиреЗрдХреНрд╢рди рдЕрд╕реВ рд╢рдХрддреЗ. рдЖрдВрд╢рд┐рдХ рд╕рд╛рдиреБрдХреВрд▓рди рдЖрдзреАрдЪ рдЙрдкрд▓рдмреНрдз рдЖрд╣реЗ "
рд╡рд┐рдирдВрддреНрдпрд╛ рдЖрдгрд┐ рдирд┐рд░реНрдмрдВрдз
╨Т platform/deployment.yaml
рддреБрдореНрд╣рд╛рд▓рд╛ рджрд┐рд╕реЗрд▓ рдХреА рдЖрдореНрд╣реА рд╕рдВрд╕рд╛рдзрди рдлреАрд▓реНрдб рд╣рд╛рд░реНрдб-рдХреЛрдб рдХреЗрд▓реЗ рдЖрд╣реЗ. рд╣реЗ HPA рд╕рд╣ рдЪрд╛рдВрдЧрд▓реЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ, рдкрд░рдВрддреБ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрд╕реВ рд╢рдХрддреЗ. рдпрд╛рд╕рд╛рдареА kustomize рдкреЕрдЪ рдпреЛрдЧреНрдп рдЖрд╣реЗ. рд╕реЗрдореА. ingress-patch.yaml.tmpl ╨╕ ./kustomization.yaml.tmpl
рдирд┐рд╖реНрдХрд░реНрд╖
рдореНрд╣рдгреВрди рдЖрдореНрд╣реА рдкреНрд░реЛрдорд┐рдерд┐рдпрд╕ рдореЗрдЯреНрд░рд┐рдХреНрд╕, рд▓реЙрдЧ, H2 рдбреЗрдЯрд╛рдмреЗрд╕, TLS рдЖрдгрд┐ Ingress рд╕рд╣ Kubernetes рд╡рд░ Camunda BPM рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗ. рдЖрдореНрд╣реА ConfigMaps рдЖрдгрд┐ Dockerfile рд╡рд╛рдкрд░реВрди рдЬрд╛рд░ рдлрд╛рдЗрд▓реНрд╕ рдЖрдгрд┐ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдлрд╛рдЗрд▓реНрд╕ рдЬреЛрдбрд▓реНрдпрд╛. рдЖрдореНрд╣реА рдбреЗрдЯрд╛рдЪреА рджреЗрд╡рд╛рдгрдШреЗрд╡рд╛рдг рд╡реНрд╣реЙрд▓реНрдпреВрдордордзреНрдпреЗ рдЖрдгрд┐ рдереЗрдЯ рдкрд░реНрдпрд╛рд╡рд░рдгреАрдп рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕рдордзреНрдпреЗ рдЧреБрдкреНрддрддреЗрдмрджреНрджрд▓ рдмреЛрд▓рд▓реЛ. рдпрд╛ рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдЖрдореНрд╣реА рдЕрдиреЗрдХ рдкреНрд░рддрд┐рдХреГрддреА рдЖрдгрд┐ рдПрдХ рдкреНрд░рдорд╛рдгреАрдХреГрдд API рд╕рд╛рдареА 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