рдХреЕрд╕реЕрдиреНрдбреНрд░рд╛рдЪреЗ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдордзреНрдпреЗ рд╕реНрдерд▓рд╛рдВрддрд░: рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рдЖрдгрд┐ рдЙрдкрд╛рдп

рдХреЕрд╕реЕрдиреНрдбреНрд░рд╛рдЪреЗ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдордзреНрдпреЗ рд╕реНрдерд▓рд╛рдВрддрд░: рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рдЖрдгрд┐ рдЙрдкрд╛рдп

рдЖрдореНрд╣реА рдирд┐рдпрдорд┐рддрдкрдгреЗ Apache Cassandra рдбреЗрдЯрд╛рдмреЗрд╕рдЪрд╛ рд╕рд╛рдордирд╛ рдХрд░рддреЛ рдЖрдгрд┐ рддреЛ Kubernetes-рдЖрдзрд╛рд░рд┐рдд рдкрд╛рдпрд╛рднреВрдд рд╕реБрд╡рд┐рдзрд╛рдВрдордзреНрдпреЗ рдСрдкрд░реЗрдЯ рдХрд░рдгреНрдпрд╛рдЪреА рдЧрд░рдЬ рдЖрд╣реЗ. рдпрд╛ рд╕рд╛рдордЧреНрд░реАрдордзреНрдпреЗ, рдЖрдореНрд╣реА рдХреЕрд╕реЕрдиреНрдбреНрд░рд╛рдЪреЗ K8s рдХрдбреЗ рд╕реНрдерд▓рд╛рдВрддрд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХ рдкрд╛рд╡рд▓реЗ, рдирд┐рдХрд╖ рдЖрдгрд┐ рд╡рд┐рджреНрдпрдорд╛рди рдЙрдкрд╛рдп (рдСрдкрд░реЗрдЯрд░рдЪреНрдпрд╛ рд╡рд┐рд╣рдВрдЧрд╛рд╡рд▓реЛрдХрдирд╛рд╕рд╣) рдЖрдордЪреНрдпрд╛ рджреГрд╖реНрдЯреАрдХреЛрди рд╕рд╛рдорд╛рдпрд┐рдХ рдХрд░реВ.

"рдЬреЛ рд╕реНрддреНрд░реАрд╡рд░ рд░рд╛рдЬреНрдп рдХрд░реВ рд╢рдХрддреЛ рддреЛ рд░рд╛рдЬреНрдпрд╛рд╡рд░рд╣реА рд░рд╛рдЬреНрдп рдХрд░реВ рд╢рдХрддреЛ"

рдХреЕрд╕рд╛рдВрдбреНрд░рд╛ рдХреЛрдг рдЖрд╣реЗ? рд╣реА рдПрдХ рд╡рд┐рддрд░реАрдд рд╕реНрдЯреЛрд░реЗрдЬ рдкреНрд░рдгрд╛рд▓реА рдЖрд╣реЗ рдЬреА рдПрдХрд╛рд╣реА рдмрд┐рдВрджреВрдЪреНрдпрд╛ рдЕрдкрдпрд╢рд╛рд╢рд┐рд╡рд╛рдп рдЙрдЪреНрдЪ рдЙрдкрд▓рдмреНрдзрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛рдирд╛ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдбреЗрдЯрд╛ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдбрд┐рдЭрд╛рдЗрди рдХреЗрд▓реЗрд▓реА рдЖрд╣реЗ. рдкреНрд░рдХрд▓реНрдкрд╛рд▓рд╛ рдХреНрд╡рдЪрд┐рддрдЪ рджреАрд░реНрдШ рдкрд░рд┐рдЪрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ, рдореНрд╣рдгреВрди рдореА рдХреЕрд╕реЕрдиреНрдбреНрд░рд╛рдЪреА рдлрдХреНрдд рдореБрдЦреНрдп рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рджреЗрдИрди рдЬреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд▓реЗрдЦрд╛рдЪреНрдпрд╛ рд╕рдВрджрд░реНрднрд╛рдд рд╕рдВрдмрдВрдзрд┐рдд рдЕрд╕рддреАрд▓:

  • рдХреЕрд╕рд╛рдВрдбреНрд░рд╛ рд╣реЗ рдЬрд╛рд╡рд╛рдордзреНрдпреЗ рд▓рд┐рд╣рд┐рд▓реЗрд▓реЗ рдЖрд╣реЗ.
  • рдХреЕрд╕реЕрдиреНрдбреНрд░рд╛ рдЯреЛрдкреЛрд▓реЙрдЬреАрдордзреНрдпреЗ рдЕрдиреЗрдХ рд╕реНрддрд░рд╛рдВрдЪрд╛ рд╕рдорд╛рд╡реЗрд╢ рдЖрд╣реЗ:
    • рдиреЛрдб - рдПрдХ рддреИрдирд╛рдд рдХреЕрд╕реЕрдиреНрдбреНрд░рд╛ рдЙрджрд╛рд╣рд░рдг;
    • рд░реЕрдХ рд╣рд╛ рдХреЕрд╕реЕрдВрдбреНрд░рд╛ рдЙрджрд╛рд╣рд░рдгрд╛рдВрдЪрд╛ рдПрдХ рд╕рдореВрд╣ рдЖрд╣реЗ, рдЬреЛ рдХрд╛рд╣реА рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрджреНрд╡рд╛рд░реЗ рдПрдХрддреНрд░рд┐рдд рдЖрд╣реЗ, рддреНрдпрд╛рдЪ рдбреЗрдЯрд╛ рд╕реЗрдВрдЯрд░рдордзреНрдпреЗ рд╕реНрдерд┐рдд рдЖрд╣реЗ;
    • рдбреЗрдЯрд╛рд╕реЗрдВрдЯрд░ - рдПрдХрд╛ рдбреЗрдЯрд╛ рд╕реЗрдВрдЯрд░рдордзреНрдпреЗ рд╕реНрдерд┐рдд рдХреЕрд╕реЕрдВрдбреНрд░рд╛ рдЙрджрд╛рд╣рд░рдгрд╛рдВрдЪреНрдпрд╛ рд╕рд░реНрд╡ рдЧрдЯрд╛рдВрдЪрд╛ рд╕рдВрдЧреНрд░рд╣;
    • рдХреНрд▓рд╕реНрдЯрд░ рд╣рд╛ рд╕рд░реНрд╡ рдбреЗрдЯрд╛ рдХреЗрдВрджреНрд░рд╛рдВрдЪрд╛ рд╕рдВрдЧреНрд░рд╣ рдЖрд╣реЗ.
  • Cassandra рдиреЛрдб рдУрд│рдЦрдгреНрдпрд╛рд╕рд╛рдареА IP рдкрддреНрддрд╛ рд╡рд╛рдкрд░рддреЗ.
  • рд▓реЗрдЦрди рдЖрдгрд┐ рд╡рд╛рдЪрди рдХреНрд░рд┐рдпрд╛рдВрдирд╛ рдЧрддреА рджреЗрдгреНрдпрд╛рд╕рд╛рдареА, рдХреЕрд╕реЕрдВрдбреНрд░рд╛ рдХрд╛рд╣реА рдбреЗрдЯрд╛ RAM рдордзреНрдпреЗ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рддреЗ.

рдЖрддрд╛ - рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдЪреНрдпрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрднрд╛рд╡реНрдп рд╣рд▓рд╡рд╛рдХрдбреЗ.

рд╣рд╕реНрддрд╛рдВрддрд░рдгрд╛рд╕рд╛рдареА рдЪреЗрдХ-рд▓рд┐рд╕реНрдЯ

рдХреЕрд╕реЕрдиреНрдбреНрд░рд╛рдЪреНрдпрд╛ рдХреБрдмрд░рдиреЗрдЯреЗрд╕рдЪреНрдпрд╛ рд╕реНрдерд▓рд╛рдВрддрд░рд╛рдмрджреНрджрд▓ рдмреЛрд▓рддрд╛рдирд╛, рдЖрдореНрд╣рд╛рд▓рд╛ рдЖрд╢рд╛ рдЖрд╣реЗ рдХреА рдпрд╛ рд╣рд╛рд▓рдЪрд╛рд▓реАрдореБрд│реЗ рддреЗ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреЗ рдЕрдзрд┐рдХ рд╕реЛрдпреАрд╕реНрдХрд░ рд╣реЛрдИрд▓. рдпрд╛рд╕рд╛рдареА рдХрд╛рдп рдЖрд╡рд╢реНрдпрдХ рдЕрд╕реЗрд▓, рдпрд╛рд╕рд╛рдареА рдХрд╛рдп рдорджрдд рд╣реЛрдИрд▓?

1. рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░реЗрдЬ

рдЖрдзреАрдЪ рд╕реНрдкрд╖реНрдЯ рдХреЗрд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ, рдХреЕрд╕рд╛рдВрдбрд╛ рдбреЗрдЯрд╛рдЪрд╛ рдХрд╛рд╣реА рднрд╛рдЧ RAM - in рдордзреНрдпреЗ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рддреЗ рдореЗрдордЯреЗрдмрд▓. рдкрд░рдВрддреБ рдбреЗрдЯрд╛рдЪрд╛ рдЖрдгрдЦреА рдПрдХ рднрд╛рдЧ рдЖрд╣реЗ рдЬреЛ рдбрд┐рд╕реНрдХрд╡рд░ рдЬрддрди рдХреЗрд▓рд╛ рдЬрд╛рддреЛ - рдлреЙрд░реНрдордордзреНрдпреЗ SSTable. рдпрд╛ рдбреЗрдЯрд╛рдордзреНрдпреЗ рдПрдХ рдШрдЯрдХ рдЬреЛрдбрд▓рд╛ рдЬрд╛рддреЛ рдХрдорд┐рдЯ рд▓реЙрдЧ тАФ рд╕рд░реНрд╡ рд╡реНрдпрд╡рд╣рд╛рд░рд╛рдВрдЪреЗ рд░реЗрдХреЙрд░реНрдб, рдЬреЗ рдбрд┐рд╕реНрдХрд╡рд░ рджреЗрдЦреАрд▓ рдЬрддрди рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд.

рдХреЕрд╕реЕрдиреНрдбреНрд░рд╛рдЪреЗ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдордзреНрдпреЗ рд╕реНрдерд▓рд╛рдВрддрд░: рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рдЖрдгрд┐ рдЙрдкрд╛рдп
рдХреЕрд╕рдБрдбреНрд░рд╛рдордзреНрдпреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдЖрдХреГрддреА рд▓рд┐рд╣рд╛

Kubernetes рдордзреНрдпреЗ, рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдореНрд╣реА PersistentVolume рд╡рд╛рдкрд░реВ рд╢рдХрддреЛ. рд╕рд┐рджреНрдз рдпрдВрддреНрд░рдгрд╛рдВрдмрджреНрджрд▓ рдзрдиреНрдпрд╡рд╛рдж, Kubernetes рдордзреАрд▓ рдбреЗрдЯрд╛рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреЗ рджрд░рд╡рд░реНрд╖реА рд╕реЛрдкреЗ рд╣реЛрдд рдЖрд╣реЗ.

рдХреЕрд╕реЕрдиреНрдбреНрд░рд╛рдЪреЗ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдордзреНрдпреЗ рд╕реНрдерд▓рд╛рдВрддрд░: рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рдЖрдгрд┐ рдЙрдкрд╛рдп
рдЖрдореНрд╣реА рдкреНрд░рддреНрдпреЗрдХ рдХреЕрд╕реЕрдиреНрдбреНрд░рд╛ рдкреЙрдбрд▓рд╛ рдЖрдордЪреЗ рд╕реНрд╡рддрдГрдЪреЗ рдкрд░реНрд╕рд┐рд╕реНрдЯрдВрдЯ рд╡реНрд╣реЙрд▓реНрдпреВрдо рд╡рд╛рдЯрдк рдХрд░реВ

рд╣реЗ рд▓рдХреНрд╖рд╛рдд рдШреЗрдгреЗ рдорд╣рддреНрддреНрд╡рд╛рдЪреЗ рдЖрд╣реЗ рдХреА рдХреЕрд╕реЕрдиреНрдбреНрд░рд╛ рд╕реНрд╡рддрдГ рдбреЗрдЯрд╛ рдкреНрд░рддрд┐рдХреГрддреА рд╕реВрдЪрд┐рдд рдХрд░рддреЗ, рдпрд╛рд╕рд╛рдареА рдЕрдВрдЧрднреВрдд рдпрдВрддреНрд░рдгрд╛ рдСрдлрд░ рдХрд░рддреЗ. рдореНрд╣рдгреВрди, рдЬрд░ рддреБрдореНрд╣реА рдореЛрдареНрдпрд╛ рд╕рдВрдЦреНрдпреЗрдиреЗ рдиреЛрдбреНрд╕рдордзреВрди Cassandra рдХреНрд▓рд╕реНрдЯрд░ рддрдпрд╛рд░ рдХрд░рдд рдЕрд╕рд╛рд▓, рддрд░ рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░реЗрдЬрд╕рд╛рдареА Ceph рдХрд┐рдВрд╡рд╛ GlusterFS рд╕рд╛рд░рдЦреНрдпрд╛ рд╡рд┐рддрд░рд┐рдд рдкреНрд░рдгрд╛рд▓реА рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рдЧрд░рдЬ рдирд╛рд╣реА. рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рд╡рд╛рдкрд░реВрди рд╣реЛрд╕реНрдЯ рдбрд┐рд╕реНрдХрд╡рд░ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рдгреЗ рддрд░реНрдХрд╕рдВрдЧрдд рдЕрд╕реЗрд▓ рд╕реНрдерд╛рдирд┐рдХ рдкрд░реНрд╕рд┐рд╕реНрдЯрдВрдЯ рдбрд┐рд╕реНрдХ рдХрд┐рдВрд╡рд╛ рдорд╛рдЙрдВрдЯрд┐рдВрдЧ hostPath.

рджреБрд╕рд░рд╛ рдкреНрд░рд╢реНрди рдЕрд╕рд╛ рдЖрд╣реЗ рдХреА рддреБрдореНрд╣рд╛рд▓рд╛ рдкреНрд░рддреНрдпреЗрдХ рд╡реИрд╢рд┐рд╖реНрдЯреНрдп рд╢рд╛рдЦреЗрд╕рд╛рдареА рд╡рд┐рдХрд╕рдХрд╛рдВрд╕рд╛рдареА рд╕реНрд╡рддрдВрддреНрд░ рд╡рд╛рддрд╛рд╡рд░рдг рддрдпрд╛рд░ рдХрд░рд╛рдпрдЪреЗ рдЖрд╣реЗ рдХрд╛. рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рдпреЛрдЧреНрдп рджреГрд╖реНрдЯреАрдХреЛрди рдореНрд╣рдгрдЬреЗ рдПрдХ рдХреЕрд╕реЕрдиреНрдбреНрд░рд╛ рдиреЛрдб рд╡рд╛рдврд╡рдгреЗ рдЖрдгрд┐ рдбреЗрдЯрд╛ рд╡рд┐рддрд░рд┐рдд рд╕реНрдЯреЛрд░реЗрдЬрдордзреНрдпреЗ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рдгреЗ, рдореНрд╣рдгрдЬреЗ. рдирдореВрдж рдХреЗрд▓реЗрд▓реЗ Ceph рдЖрдгрд┐ GlusterFS рд╣реЗ рддреБрдордЪреЗ рдкрд░реНрдпрд╛рдп рдЕрд╕рддреАрд▓. рдордЧ рдбреЗрд╡реНрд╣рд▓рдкрд░рд▓рд╛ рдЦрд╛рддреНрд░реА рдЕрд╕реЗрд▓ рдХреА рдХреБрдмрд░реНрдирдЯреЗрд╕ рдХреНрд▓рд╕реНрдЯрд░ рдиреЛрдбреНрд╕рдкреИрдХреА рдПрдХ рдЬрд░реА рд╣рд░рд╡рд▓рд╛ рддрд░реАрд╣реА рддреЛ рдЪрд╛рдЪрдгреА рдбреЗрдЯрд╛ рдЧрдорд╛рд╡рдгрд╛рд░ рдирд╛рд╣реА.

2. рджреЗрдЦрд░реЗрдЦ

рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдордзреНрдпреЗ рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ рд▓рд╛рдЧреВ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЕрдХреНрд╖рд░рд╢рдГ рдмрд┐рдирд╡рд┐рд░реЛрдз рдирд┐рд╡рдб рдореНрд╣рдгрдЬреЗ рдкреНрд░реЛрдорд┐рдерд┐рдпрд╕ (рдЖрдореНрд╣реА рдпрд╛рдмрджреНрджрд▓ рддрдкрд╢реАрд▓рд╡рд╛рд░ рдмреЛрд▓рд▓реЛ рд╕рдВрдмрдВрдзрд┐рдд рдЕрд╣рд╡рд╛рд▓). рдХреЕрд╕реЕрдиреНрдбреНрд░рд╛ рдкреНрд░реЛрдорд┐рдерд┐рдпрд╕рд╕рд╛рдареА рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдирд┐рд░реНрдпрд╛рддрджрд╛рд░рд╛рдВрд╕рд╣ рдХрд╕реЗ рдХрд░рдд рдЖрд╣реЗ? рдЖрдгрд┐, рдЧреНрд░рд╛рдлрд╛рдирд╛рд╕рд╛рдареА рдЬреБрд│рдгрд╛рд░реНтАНрдпрд╛ рдбреЕрд╢рдмреЛрд░реНрдбрд╕рд╣ рдЖрдгрдЦреА рдорд╣рддреНрддреНрд╡рд╛рдЪреЗ рдХрд╛рдп рдЖрд╣реЗ?

рдХреЕрд╕реЕрдиреНрдбреНрд░рд╛рдЪреЗ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдордзреНрдпреЗ рд╕реНрдерд▓рд╛рдВрддрд░: рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рдЖрдгрд┐ рдЙрдкрд╛рдп
рдХреЕрд╕реЕрдиреНрдбреНрд░рд╛рд╕рд╛рдареА рдЧреНрд░рд╛рдлрдирд╛рдордзреНрдпреЗ рдЖрд▓реЗрдЦ рджрд┐рд╕рдгреНрдпрд╛рдЪреЗ рдЙрджрд╛рд╣рд░рдг

рдлрдХреНрдд рджреЛрди рдирд┐рд░реНрдпрд╛рддрджрд╛рд░ рдЖрд╣реЗрдд: рдЬреЗрдПрдордПрдХреНрд╕_рдПрдХреНрд╕рдкреЛрд░реНрдЯрд░ ╨╕ cassandra_exporter.

рдЖрдореНрд╣реА рд╕реНрд╡рддрдГрд╕рд╛рдареА рдкрд╣рд┐рд▓рд╛ рдирд┐рд╡рдбрд▓рд╛ рдХрд╛рд░рдг:

  1. рдЬреЗрдПрдордПрдХреНрд╕ рдирд┐рд░реНрдпрд╛рддрдХ рд╡рд╛рдврдд рдЖрдгрд┐ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрдд рдЖрд╣реЗрдд, рддрд░ рдХреЕрд╕реЕрдВрдбреНрд░рд╛ рдирд┐рд░реНрдпрд╛рддрдХрд╛рдВрдирд╛ рдкреБрд░реЗрд╕реЗ рд╕рдореБрджрд╛рдп рд╕рдорд░реНрдерди рдорд┐рд│реВ рд╢рдХрд▓реЗрд▓реЗ рдирд╛рд╣реА. Cassandra Exporter рдЕрдЬреВрдирд╣реА Cassandra рдЪреНрдпрд╛ рдмрд░реНтАНрдпрд╛рдЪ рдЖрд╡реГрддреНрддреНрдпрд╛рдВрдирд╛ рд╕рдорд░реНрдерди рджреЗрдд рдирд╛рд╣реА.
  2. рдзреНрд╡рдЬ рдЬреЛрдбреВрди рддреБрдореНрд╣реА рддреЗ рдЬрд╛рд╡рд╛рдЬреЗрдВрдЯ рдореНрд╣рдгреВрди рдЪрд╛рд▓рд╡реВ рд╢рдХрддрд╛ -javaagent:<plugin-dir-name>/cassandra-exporter.jar=--listen=:9180.
  3. рддреНрдпрд╛рдЪреНрдпрд╛рд╕рд╛рдареА рдПрдХ рдЖрд╣реЗ рдкреБрд░реЗрд╕рд╛ рдбреЕрд╢рдмреЛрд░реНрдб, рдЬреЗ Cassandra Exporter рд╢реА рд╡рд┐рд╕рдВрдЧрдд рдЖрд╣реЗ.

3. Kubernetes primitives рдирд┐рд╡рдбрдгреЗ

рдХреЕрд╕реЕрдиреНрдбреНрд░рд╛ рдХреНрд▓рд╕реНрдЯрд░рдЪреНрдпрд╛ рд╡рд░реАрд▓ рд╕рдВрд░рдЪрдиреЗрдиреБрд╕рд╛рд░, рддреЗрдереЗ рд╡рд░реНрдгрди рдХреЗрд▓реЗрд▓реНрдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рдЧреЛрд╖реНрдЯреАрдЪреЗ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рд╢рдмреНрджрд╛рд╡рд▓реАрдордзреНрдпреЗ рднрд╛рд╖рд╛рдВрддрд░ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░реВрдпрд╛:

  • рдХреЕрд╕реЕрдиреНрдбреНрд░рд╛ рдиреЛрдб тЖТ рдкреЙрдб
  • рдХреЕрд╕реЕрдиреНрдбреНрд░рд╛ рд░реЕрдХ тЖТ рд╕реНрдЯреЗрдЯрдлреБрд▓рд╕реЗрдЯ
  • рд╕реНрдЯреЗрдЯрдлреБрд▓рд╕реЗрдЯреНрд╕ рд╡рд░реВрди рдХреЕрд╕реЕрдиреНрдбреНрд░рд╛ рдбреЗрдЯрд╛рд╕реЗрдВрдЯрд░ тЖТ рдкреВрд▓
  • Cassandra рдХреНрд▓рд╕реНрдЯрд░ тЖТ ???

рд╕рдВрдкреВрд░реНрдг Cassandra рдХреНрд▓рд╕реНрдЯрд░ рдПрдХрд╛рдЪ рд╡реЗрд│реА рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХрд╛рд╣реА рдЕрддрд┐рд░рд┐рдХреНрдд рдШрдЯрдХ рдЧрд╣рд╛рд│ рдЕрд╕рд▓реНрдпрд╛рдЪреЗ рджрд┐рд╕реВрди рдЖрд▓реЗ. рдкрдг рдЬрд░ рдХрд╛рд╣реА рдЕрд╕реНрддрд┐рддреНрд╡рд╛рдд рдирд╕реЗрд▓ рддрд░ рдЖрдкрдг рддреЗ рддрдпрд╛рд░ рдХрд░реВ рд╢рдХрддреЛ! рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдХрдбреЗ рдпрд╛ рдЙрджреНрджреЗрд╢рд╛рд╕рд╛рдареА рд╕реНрд╡рддрдГрдЪреА рд╕рдВрд╕рд╛рдзрдиреЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдгреНрдпрд╛рдЪреА рдпрдВрддреНрд░рдгрд╛ рдЖрд╣реЗ - рд╕рд╛рдиреБрдХреВрд▓ рд╕рдВрд╕рд╛рдзрди рд╡реНрдпрд╛рдЦреНрдпрд╛.

рдХреЕрд╕реЕрдиреНрдбреНрд░рд╛рдЪреЗ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдордзреНрдпреЗ рд╕реНрдерд▓рд╛рдВрддрд░: рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рдЖрдгрд┐ рдЙрдкрд╛рдп
рдиреЛрдВрджреА рдЖрдгрд┐ рд╕реВрдЪрдирд╛рдВрд╕рд╛рдареА рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрд╕рд╛рдзрдиреЗ рдШреЛрд╖рд┐рдд рдХрд░рдгреЗ

рдкрд░рдВрддреБ рд╕рд╛рдиреБрдХреВрд▓ рд╕рдВрд╕рд╛рдзрдирд╛рдЪрд╛ рд╕реНрд╡рддрдГрдЪ рдХрд╛рд╣реА рдЕрд░реНрде рдирд╛рд╣реА: рд╢реЗрд╡рдЯреА, рддреНрдпрд╛рд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдирд┐рдпрдВрддреНрд░рдХ. рддреБрдореНрд╣рд╛рд▓рд╛ рдорджрдд рдШреНрдпрд╛рд╡реА рд▓рд╛рдЧреЗрд▓ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдСрдкрд░реЗрдЯрд░...

4. рд╢реЗрдВрдЧрд╛ рдУрд│рдЦрдгреЗ

рд╡рд░реАрд▓ рдкрд░рд┐рдЪреНрдЫреЗрджрд╛рдордзреНрдпреЗ, рдЖрдореНрд╣реА рд╕рд╣рдордд рдЭрд╛рд▓реЛ рдХреА рдПрдХ рдХреЕрд╕реЕрдиреНрдбреНрд░рд╛ рдиреЛрдб рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдордзреАрд▓ рдПрдХрд╛ рдкреЙрдбрдЪреНрдпрд╛ рдмрд░реЛрдмрд░реАрдЪрд╛ рдЕрд╕реЗрд▓. рдкрдг рдкреЙрдбреНрд╕рдЪреЗ IP рдкрддреНрддреЗ рдкреНрд░рддреНрдпреЗрдХ рд╡реЗрд│реА рд╡реЗрдЧрд│реЗ рдЕрд╕рддреАрд▓. рдЖрдгрд┐ Cassandra рдордзреАрд▓ рдиреЛрдбрдЪреА рдУрд│рдЦ IP рдкрддреНрддреНрдпрд╛рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдЖрд╣реЗ... рдЕрд╕реЗ рджрд┐рд╕реВрди рдЖрд▓реЗ рдХреА рдкреНрд░рддреНрдпреЗрдХ рдкреЙрдб рдХрд╛рдвреВрди рдЯрд╛рдХрд▓реНрдпрд╛рдирдВрддрд░, Cassandra рдХреНрд▓рд╕реНрдЯрд░ рдПрдХ рдирд╡реАрди рдиреЛрдб рдЬреЛрдбреЗрд▓.

рдПрдХ рдорд╛рд░реНрдЧ рдЖрд╣реЗ, рдЖрдгрд┐ рдлрдХреНрдд рдПрдХ рдирд╛рд╣реА:

  1. рдЖрдореНрд╣реА рд╣реЛрд╕реНрдЯ рдЖрдпрдбреЗрдВрдЯрд┐рдлрд╛рдпрд░реНрд╕ (UUID рдЬреЗ рдХреЕрд╕реЕрдиреНрдбреНрд░рд╛ рдЙрджрд╛рд╣рд░рдгреЗ рдЕрдирдиреНрдпрдкрдгреЗ рдУрд│рдЦрддрд╛рдд) рдХрд┐рдВрд╡рд╛ IP рдкрддреНрддреНрдпрд╛рдВрджреНрд╡рд╛рд░реЗ рд░реЗрдХреЙрд░реНрдб рдареЗрд╡реВ рд╢рдХрддреЛ рдЖрдгрд┐ рддреЗ рд╕рд░реНрд╡ рдХрд╛рд╣реА рд╕рдВрд░рдЪрдирд╛/рдЯреЗрдмрд▓рдордзреНрдпреЗ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░реВ рд╢рдХрддреЛ. рдкрджреНрдзрддреАрдЪреЗ рджреЛрди рдореБрдЦреНрдп рддреЛрдЯреЗ рдЖрд╣реЗрдд:
    • рдПрдХрд╛рдЪ рд╡реЗрд│реА рджреЛрди рдиреЛрдбреНрд╕ рдкрдбрд▓реНрдпрд╛рд╕ рд╢рд░реНрдпрддреАрдЪреА рд╕реНрдерд┐рддреА рдирд┐рд░реНрдорд╛рдг рд╣реЛрдгреНрдпрд╛рдЪрд╛ рдзреЛрдХрд╛. рд╡рд╛рдв рдЭрд╛рд▓реНрдпрд╛рдирдВрддрд░, рдХреЕрд╕реЕрдВрдбреНрд░рд╛ рдиреЛрдбреНрд╕ рдПрдХрд╛рдЪ рд╡реЗрд│реА рдЯреЗрдмрд▓рд╡рд░реВрди рдЖрдпрдкреА рдкрддреНрддреНрдпрд╛рдЪреА рд╡рд┐рдирдВрддреА рдХрд░рддреАрд▓ рдЖрдгрд┐ рддреНрдпрд╛рдЪ рд╕рдВрд╕рд╛рдзрдирд╛рд╕рд╛рдареА рд╕реНрдкрд░реНрдзрд╛ рдХрд░рддреАрд▓.
    • Cassandra рдиреЛрдбрдиреЗ рддреНрдпрд╛рдЪрд╛ рдбреЗрдЯрд╛ рдЧрдорд╛рд╡рд▓рд╛ рдЕрд╕рд▓реНрдпрд╛рд╕, рдЖрдореНрд╣реА рдпрд╛рдкреБрдвреЗ рддреЛ рдУрд│рдЦрдгреНрдпрд╛рд╕ рд╕рдХреНрд╖рдо рд░рд╛рд╣рдгрд╛рд░ рдирд╛рд╣реА.
  2. рджреБрд╕рд░рд╛ рдЙрдкрд╛рдп рд▓рд╣рд╛рди рд╣реЕрдХрд╕рд╛рд░рдЦрд╛ рджрд┐рд╕рддреЛ, рдкрд░рдВрддреБ рддрд░реАрд╣реА: рдЖрдореНрд╣реА рдкреНрд░рддреНрдпреЗрдХ рдХреЕрд╕реЕрдВрдбреНрд░рд╛ рдиреЛрдбрд╕рд╛рдареА рдХреНрд▓рд╕реНрдЯрд░рдЖрдпрдкреАрд╕рд╣ рд╕реЗрд╡рд╛ рддрдпрд╛рд░ рдХрд░реВ рд╢рдХрддреЛ. рдпрд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдордзреНрдпреЗ рд╕рдорд╕реНрдпрд╛:
    • Cassandra рдХреНрд▓рд╕реНрдЯрд░рдордзреНрдпреЗ рднрд░рдкреВрд░ рдиреЛрдбреНрд╕ рдЕрд╕рд▓реНрдпрд╛рд╕, рдЖрдореНрд╣рд╛рд▓рд╛ рдмрд░реНтАНрдпрд╛рдЪ рд╕реЗрд╡рд╛ рддрдпрд╛рд░ рдХрд░рд╛рд╡реНрдпрд╛ рд▓рд╛рдЧрддреАрд▓.
    • рдХреНрд▓рд╕реНрдЯрд░рдЖрдпрдкреА рд╡реИрд╢рд┐рд╖реНрдЯреНрдп iptables рджреНрд╡рд╛рд░реЗ рд▓рд╛рдЧреВ рдХреЗрд▓реЗ рдЖрд╣реЗ. Cassandra рдХреНрд▓рд╕реНрдЯрд░рдордзреНрдпреЗ рдЕрдиреЗрдХ (1000... рдХрд┐рдВрд╡рд╛ 100?) рдиреЛрдбреНрд╕ рдЕрд╕рд▓реНрдпрд╛рд╕ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реЛрдК рд╢рдХрддреЗ. рддрд░реА IPVS рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рд╕рдВрддреБрд▓рди рдпрд╛ рд╕рдорд╕реНрдпреЗрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░реВ рд╢рдХрддрд╛.
  3. рддрд┐рд╕рд░рд╛ рдЙрдкрд╛рдп рдореНрд╣рдгрдЬреЗ рд╕реЗрдЯрд┐рдВрдЧ рд╕рдХреНрд╖рдо рдХрд░реВрди рдкреЙрдбреНрд╕рдЪреНрдпрд╛ рд╕рдорд░реНрдкрд┐рдд рдиреЗрдЯрд╡рд░реНрдХрдРрд╡рдЬреА рдХреЕрд╕реЕрдВрдбреНрд░рд╛ рдиреЛрдбреНрд╕рд╕рд╛рдареА рдиреЛрдбреНрд╕рдЪреЗ рдиреЗрдЯрд╡рд░реНрдХ рд╡рд╛рдкрд░рдгреЗ. hostNetwork: true. рд╣реА рдкрджреНрдзрдд рдХрд╛рд╣реА рдорд░реНрдпрд╛рджрд╛ рд▓рд╛рджрддреЗ:
    • рдпреБрдирд┐рдЯреНрд╕ рдмрджрд▓рдгреНрдпрд╛рд╕рд╛рдареА. рд╣реЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдХреА рдирд╡реАрди рдиреЛрдбрдордзреНрдпреЗ рдорд╛рдЧреАрд▓ рдкреНрд░рдорд╛рдгреЗрдЪ IP рдкрддреНрддрд╛ рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ (рдПрдбрдмреНрд▓реНрдпреВрдПрд╕, рдЬреАрд╕реАрдкреА рд╕рд╛рд░рдЦреНрдпрд╛ рдХреНрд▓рд╛рдЙрдбрдордзреНрдпреЗ рд╣реЗ рдХрд░рдгреЗ рдЬрд╡рд│рдЬрд╡рд│ рдЕрд╢рдХреНрдп рдЖрд╣реЗ);
    • рдХреНрд▓рд╕реНрдЯрд░ рдиреЛрдбреНрд╕рдЪреЗ рдиреЗрдЯрд╡рд░реНрдХ рд╡рд╛рдкрд░реВрди, рдЖрдореНрд╣реА рдиреЗрдЯрд╡рд░реНрдХ рд╕рдВрд╕рд╛рдзрдирд╛рдВрд╕рд╛рдареА рд╕реНрдкрд░реНрдзрд╛ рдХрд░реВ рд▓рд╛рдЧрддреЛ. рдореНрд╣рдгреВрди, рдПрдХрд╛ рдХреНрд▓рд╕реНрдЯрд░ рдиреЛрдбрд╡рд░ рдХреЕрд╕реЕрдиреНрдбреНрд░рд╛рд╕рд╣ рдПрдХрд╛рдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рдкреЙрдб рдареЗрд╡рдгреЗ рд╕рдорд╕реНрдпрд╛рдкреНрд░рдзрд╛рди рдЕрд╕реЗрд▓.

5. рдмреЕрдХрдЕрдк

рдЖрдореНрд╣рд╛рд▓рд╛ рд╢реЗрдбреНрдпреВрд▓рд╡рд░ рдПрдХрд╛рдЪ рдХреЕрд╕реЕрдиреНрдбреНрд░рд╛ рдиреЛрдбрдЪреНрдпрд╛ рдбреЗрдЯрд╛рдЪреА рд╕рдВрдкреВрд░реНрдг рдЖрд╡реГрддреНрддреА рдЬрддрди рдХрд░рд╛рдпрдЪреА рдЖрд╣реЗ. Kubernetes рд╡рд╛рдкрд░реВрди рдПрдХ рд╕реЛрдпреАрд╕реНрдХрд░ рд╡реИрд╢рд┐рд╖реНрдЯреНрдп рдкреНрд░рджрд╛рди рдХрд░рддреЗ рдХреНрд░реЛрдирдЬреЙрдм, рдкрдг рдЗрдереЗ рдХреЕрд╕реЕрдиреНрдбреНрд░рд╛ рд╕реНрд╡рддрдГ рдЖрдордЪреНрдпрд╛ рдЪрд╛рдХрд╛рдВрдордзреНрдпреЗ рд╕реНрдкреЛрдХ рдареЗрд╡рддреЗ.

рдореА рддреБрдореНрд╣рд╛рд▓рд╛ рдЖрдард╡рдг рдХрд░реВрди рджреЗрддреЛ рдХреА рдХреЕрд╕реЕрдВрдбреНрд░рд╛ рдореЗрдорд░реАрдордзреНрдпреЗ рдХрд╛рд╣реА рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рддреЗ. рдкреВрд░реНрдг рдмреЕрдХрдЕрдк рдШреЗрдгреНрдпрд╛рд╕рд╛рдареА, рддреБрдореНрд╣рд╛рд▓рд╛ рдореЗрдорд░реАрдордзреАрд▓ рдбреЗрдЯрд╛ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ (рдореЗрдордЯреЗрдмрд▓реНрд╕) рдбрд┐рд╕реНрдХрд╡рд░ рд╣рд▓рд╡рд╛ (SSTables). рдпрд╛ рдЯрдкреНрдкреНрдпрд╛рд╡рд░, рдХреЕрд╕реЕрдВрдбреНрд░рд╛ рдиреЛрдб рдХрдиреЗрдХреНрд╢рди рд╕реНрд╡реАрдХрд╛рд░рдгреЗ рдерд╛рдВрдмрд╡рддреЗ, рдХреНрд▓рд╕реНрдЯрд░рдордзреВрди рдкреВрд░реНрдгрдкрдгреЗ рдмрдВрдж рд╣реЛрддреЗ.

рдпрд╛рдирдВрддрд░, рдмреЕрдХрдЕрдк рдХрд╛рдврд▓рд╛ рдЬрд╛рддреЛ (рд╕реНрдиреЕрдкрд╢реЙрдЯ) рдЖрдгрд┐ рдпреЛрдЬрдирд╛ рдЬрддрди рдХреЗрд▓реА рдЬрд╛рддреЗ (рдХреАрд╕реНрдкреЗрд╕). рдЖрдгрд┐ рдордЧ рдЕрд╕реЗ рджрд┐рд╕реВрди рдЖрд▓реЗ рдХреА рдлрдХреНрдд рдмреЕрдХрдЕрдк рдЖрдореНрд╣рд╛рд▓рд╛ рдХрд╛рд╣реАрд╣реА рджреЗрдд тАЛтАЛрдирд╛рд╣реА: рдЖрдореНрд╣рд╛рд▓рд╛ рдбреЗрдЯрд╛ рдЖрдпрдбреЗрдВрдЯрд┐рдлрд╛рдпрд░ рдЬрддрди рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдЬреНрдпрд╛рд╕рд╛рдареА рдХреЕрд╕реЕрдВрдбреНрд░рд╛ рдиреЛрдб рдЬрдмрд╛рдмрджрд╛рд░ рд╣реЛрддрд╛ - рд╣реЗ рд╡рд┐рд╢реЗрд╖ рдЯреЛрдХрди рдЖрд╣реЗрдд.

рдХреЕрд╕реЕрдиреНрдбреНрд░рд╛рдЪреЗ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдордзреНрдпреЗ рд╕реНрдерд▓рд╛рдВрддрд░: рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рдЖрдгрд┐ рдЙрдкрд╛рдп
рдХреЕрд╕реЕрдВрдбреНрд░рд╛ рдиреЛрдбреНрд╕ рдХреЛрдгрддреНрдпрд╛ рдбреЗрдЯрд╛рд╕рд╛рдареА рдЬрдмрд╛рдмрджрд╛рд░ рдЖрд╣реЗрдд рд╣реЗ рдУрд│рдЦрдгреНрдпрд╛рд╕рд╛рдареА рдЯреЛрдХрдирдЪреЗ рд╡рд┐рддрд░рдг

рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдордзреНрдпреЗ Google рд╡рд░реВрди рдХреЕрд╕реЕрдВрдбреНрд░рд╛ рдмреЕрдХрдЕрдк рдШреЗрдгреНрдпрд╛рд╕рд╛рдареА рдЙрджрд╛рд╣рд░рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдпреЗрдереЗ рдЖрдврд│реВ рд╢рдХрддреЗ рд╣рд╛ рджреБрд╡рд╛. рд╕реНрдиреЕрдкрд╢реЙрдЯ рдШреЗрдгреНрдпрд╛рдкреВрд░реНрд╡реА рдиреЛрдбрд╡рд░ рдбреЗрдЯрд╛ рд░реАрд╕реЗрдЯ рдХрд░рдгреЗ рд╣рд╛ рдПрдХрдЪ рдореБрджреНрджрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд┐рдЪрд╛рд░рд╛рдд рдШреЗрдд рдирд╛рд╣реА. рдореНрд╣рдгрдЬреЗрдЪ, рдмреЕрдХрдЕрдк рд╕рдзреНрдпрд╛рдЪреНрдпрд╛ рд╕реНрдерд┐рддреАрд╕рд╛рдареА рдирд╛рд╣реА, рдкрд░рдВрддреБ рдереЛрдбреНрдпрд╛ рдкреВрд░реНрд╡реАрдЪреНрдпрд╛ рд╕реНрдерд┐рддреАрд╕рд╛рдареА рдХреЗрд▓рд╛ рдЬрд╛рддреЛ. рдкрд░рдВрддреБ рд╣реЗ рдиреЛрдбрд▓рд╛ рдСрдкрд░реЗрд╢рдирдордзреВрди рдмрд╛рд╣реЗрд░ рди рдШреЗрдгреНрдпрд╛рд╕ рдорджрдд рдХрд░рддреЗ, рдЬреЗ рдЦреВрдк рддрд╛рд░реНрдХрд┐рдХ рд╡рд╛рдЯрддреЗ.

set -eu

if [[ -z "$1" ]]; then
  info "Please provide a keyspace"
  exit 1
fi

KEYSPACE="$1"

result=$(nodetool snapshot "${KEYSPACE}")

if [[ $? -ne 0 ]]; then
  echo "Error while making snapshot"
  exit 1
fi

timestamp=$(echo "$result" | awk '/Snapshot directory: / { print $3 }')

mkdir -p /tmp/backup

for path in $(find "/var/lib/cassandra/data/${KEYSPACE}" -name $timestamp); do
  table=$(echo "${path}" | awk -F "[/-]" '{print $7}')
  mkdir /tmp/backup/$table
  mv $path /tmp/backup/$table
done


tar -zcf /tmp/backup.tar.gz -C /tmp/backup .

nodetool clearsnapshot "${KEYSPACE}"

рдПрдХрд╛ рдХреЕрд╕реЕрдВрдбреНрд░рд╛ рдиреЛрдбрдордзреВрди рдмреЕрдХрдЕрдк рдШреЗрдгреНрдпрд╛рд╕рд╛рдареА рдмреЕрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯрдЪреЗ рдЙрджрд╛рд╣рд░рдг

рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдордзреАрд▓ рдХреЕрд╕реЕрдиреНрдбреНрд░рд╛рд╕рд╛рдареА рддрдпрд╛рд░ рдЙрдкрд╛рдп

рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдордзреНрдпреЗ рдХреЕрд╕реЕрдиреНрдбреНрд░рд╛ рддреИрдирд╛рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕рдзреНрдпрд╛ рдХрд╛рдп рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ рдЖрдгрд┐ рдпрд╛рдкреИрдХреА рдХреЛрдгрддреЗ рд╕рд░реНрд╡реЛрддреНрдХреГрд╖реНрдЯ рдЖрд╡рд╢реНрдпрдХрддрд╛рдВрдиреБрд╕рд╛рд░ рдЖрд╣реЗрдд?

1. рд╕реНрдЯреЗрдЯрдлреБрд▓рд╕реЗрдЯ рдХрд┐рдВрд╡рд╛ рд╣реЗрд▓реНрдо рдЪрд╛рд░реНрдЯрд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдЙрдкрд╛рдп

рдХреЕрд╕реЕрдиреНрдбреНрд░рд╛ рдХреНрд▓рд╕реНрдЯрд░ рдЪрд╛рд▓рд╡рдгреНрдпрд╛рд╕рд╛рдареА рдореВрд▓рднреВрдд рд╕реНрдЯреЗрдЯрдлреБрд▓рд╕реЗрдЯреНрд╕ рдлрдВрдХреНрд╢рдиреНрд╕ рд╡рд╛рдкрд░рдгреЗ рд╣рд╛ рдПрдХ рдЪрд╛рдВрдЧрд▓рд╛ рдкрд░реНрдпрд╛рдп рдЖрд╣реЗ. рд╣реЗрд▓реНрдо рдЪрд╛рд░реНрдЯ рдЖрдгрд┐ рдЧреЛ рдЯреЗрдореНрдкреНрд▓реЗрдЯреНрд╕ рд╡рд╛рдкрд░реВрди, рддреБрдореНрд╣реА рдХреЕрд╕реЕрдВрдбреНрд░рд╛ рддреИрдирд╛рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рд▓рд╛ рд▓рд╡рдЪрд┐рдХ рдЗрдВрдЯрд░рдлреЗрд╕ рдкреНрд░рджрд╛рди рдХрд░реВ рд╢рдХрддрд╛.

рд╣реЗ рд╕рд╣рд╕рд╛ рдЪрд╛рдВрдЧрд▓реЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ... рдЬреЛрдкрд░реНрдпрдВрдд рдХрд╛рд╣реАрддрд░реА рдЕрдирдкреЗрдХреНрд╖рд┐рдд рдШрдбрдд рдирд╛рд╣реА, рдЬрд╕реЗ рдХреА рдиреЛрдб рдЕрдкрдпрд╢. рдорд╛рдирдХ Kubernetes рд╕рд╛рдзрдиреЗ рдлрдХреНрдд рд╡рд░ рд╡рд░реНрдгрди рдХреЗрд▓реЗрд▓реА рд╕рд░реНрд╡ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рд╡рд┐рдЪрд╛рд░рд╛рдд рдШреЗрдК рд╢рдХрдд рдирд╛рд╣реАрдд. рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рд╣рд╛ рджреГрд╖реНрдЯреАрдХреЛрди рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╡рд╛рдкрд░рд╛рдВрд╕рд╛рдареА рдХрд┐рддреА рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ рдпрд╛рдмрджреНрджрд▓ рдЦреВрдк рдорд░реНрдпрд╛рджрд┐рдд рдЖрд╣реЗ: рдиреЛрдб рдмрджрд▓рдгреЗ, рдмреЕрдХрдЕрдк, рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддреА, рдирд┐рд░реАрдХреНрд╖рдг рдЗ.

рдкреНрд░рддрд┐рдирд┐рдзреА:

рджреЛрдиреНрд╣реА рдЪрд╛рд░реНрдЯ рддрд┐рддрдХреЗрдЪ рдЪрд╛рдВрдЧрд▓реЗ рдЖрд╣реЗрдд, рдкрд░рдВрддреБ рд╡рд░ рд╡рд░реНрдгрди рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╕рдорд╕реНрдпрд╛рдВрдЪреНрдпрд╛ рдЕрдзреАрди рдЖрд╣реЗрдд.

2. Kubernetes рдСрдкрд░реЗрдЯрд░рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдЙрдкрд╛рдп

рдЕрд╕реЗ рдкрд░реНрдпрд╛рдп рдЕрдзрд┐рдХ рдордиреЛрд░рдВрдЬрдХ рдЖрд╣реЗрдд рдХрд╛рд░рдг рддреЗ рдХреНрд▓рд╕реНрдЯрд░ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рднрд░рдкреВрд░ рд╕рдВрдзреА рдкреНрд░рджрд╛рди рдХрд░рддрд╛рдд. Cassandra рдСрдкрд░реЗрдЯрд░ рдбрд┐рдЭрд╛рдЗрди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЗрддрд░ рдбреЗрдЯрд╛рдмреЗрд╕рдкреНрд░рдорд╛рдгреЗ, рдПрдХ рдЪрд╛рдВрдЧрд▓рд╛ рдирдореБрдирд╛ рд╕рд╛рдЗрдбрдХрд╛рд░ <-> рдХрдВрдЯреНрд░реЛрд▓рд░ <-> CRD рд╕рд╛рд░рдЦрд╛ рджрд┐рд╕рддреЛ:

рдХреЕрд╕реЕрдиреНрдбреНрд░рд╛рдЪреЗ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдордзреНрдпреЗ рд╕реНрдерд▓рд╛рдВрддрд░: рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рдЖрдгрд┐ рдЙрдкрд╛рдп
рдЪрд╛рдВрдЧрд▓реНрдпрд╛ рдкреНрд░рдХрд╛рд░реЗ рдбрд┐рдЭрд╛рдЗрди рдХреЗрд▓реЗрд▓реНрдпрд╛ рдХреЕрд╕реЕрдВрдбреНрд░рд╛ рдСрдкрд░реЗрдЯрд░рдордзреНрдпреЗ рдиреЛрдб рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдпреЛрдЬрдирд╛

рдЪрд▓рд╛ рд╡рд┐рджреНрдпрдорд╛рди рдСрдкрд░реЗрдЯрд░ рдкрд╛рд╣реВ.

1. instaclust рд╡рд░реВрди Cassandra-operator

  • GitHub
  • рддрдпрд╛рд░реА: рдЕрд▓реНрдлрд╛
  • рдкрд░рд╡рд╛рдирд╛: Apache 2.0
  • рдордзреНрдпреЗ рд▓рд╛рдЧреВ: Java

рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХреЕрд╕реЕрдВрдбреНрд░рд╛ рддреИрдирд╛рддреА рдСрдлрд░ рдХрд░рдгрд╛рд░реНтАНрдпрд╛ рдХрдВрдкрдиреАрдХрдбреВрди рд╣рд╛ рдЦрд░реЛрдЦрд░рдЪ рдПрдХ рдЕрддрд┐рд╢рдп рдЖрд╢рд╛рджрд╛рдпрдХ рдЖрдгрд┐ рд╕рдХреНрд░рд┐рдпрдкрдгреЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрдгрд╛рд░рд╛ рдкреНрд░рдХрд▓реНрдк рдЖрд╣реЗ. рд╣реЗ, рд╡рд░ рд╡рд░реНрдгрди рдХреЗрд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ, рд╕рд╛рдЗрдбрдХрд╛рд░ рдХрдВрдЯреЗрдирд░ рд╡рд╛рдкрд░рддреЗ рдЬреЗ HTTP рджреНрд╡рд╛рд░реЗ рдЖрджреЗрд╢ рд╕реНрд╡реАрдХрд╛рд░рддреЗ. Java рдордзреНрдпреЗ рд▓рд┐рд╣рд┐рд▓реЗрд▓реЗ, рддреНрдпрд╛рдд рдХрдзреАрдХрдзреА рдХреНрд▓рд╛рдпрдВрдЯ-рдЧреЛ рд▓рд╛рдпрдмреНрд░рд░реАрдЪреА рдЕрдзрд┐рдХ рдкреНрд░рдЧрдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдирд╕рддреЗ. рддрд╕реЗрдЪ, рдСрдкрд░реЗрдЯрд░ рдПрдХрд╛ рдбреЗрдЯрд╛рд╕реЗрдВрдЯрд░рд╕рд╛рдареА рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рд░реЕрдХрдЪреЗ рд╕рдорд░реНрдерди рдХрд░рдд рдирд╛рд╣реА.

рдкрд░рдВрддреБ рдСрдкрд░реЗрдЯрд░рдХрдбреЗ рдореЙрдирд┐рдЯрд░рд┐рдВрдЧрд╕рд╛рдареА рд╕рдорд░реНрдерди, CRD рд╡рд╛рдкрд░реВрди рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдХреНрд▓рд╕реНрдЯрд░ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЖрдгрд┐ рдмреЕрдХрдЕрдк рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдг рдЕрд╕реЗ рдлрд╛рдпрджреЗ рдЖрд╣реЗрдд.

2. рдЬреЗрдЯрд╕реНрдЯреЕрдХ рд╡рд░реВрди рдиреЗрд╡реНрд╣рд┐рдЧреЗрдЯрд░

  • GitHub
  • рддрдпрд╛рд░реА: рдЕрд▓реНрдлрд╛
  • рдкрд░рд╡рд╛рдирд╛: Apache 2.0
  • рдордзреНрдпреЗ рд▓рд╛рдЧреВ: рдЧреЛрд▓рдВрдЧ

рдбреАрдмреА-рдП-рдП-рд╕рд░реНрд╡реНрд╣рд┐рд╕ рддреИрдирд╛рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдбрд┐рдЭрд╛рдЗрди рдХреЗрд▓реЗрд▓реЗ рд╡рд┐рдзрд╛рди. рд╕рдзреНрдпрд╛ рджреЛрди рдбреЗрдЯрд╛рдмреЗрд╕реЗрд╕рдЪреЗ рд╕рдорд░реНрдерди рдХрд░рддреЗ: Elasticsearch рдЖрдгрд┐ Cassandra. рдпрд╛рдд RBAC рджреНрд╡рд╛рд░реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдНрдХреНрд╕реЗрд╕ рдХрдВрдЯреНрд░реЛрд▓ рд╕рд╛рд░рдЦреЗ рдордиреЛрд░рдВрдЬрдХ рдЙрдкрд╛рдп рдЖрд╣реЗрдд (рдпрд╛рд╕рд╛рдареА рддреНрдпрд╛рдЪреЗ рд╕реНрд╡рддрдГрдЪреЗ рд╕реНрд╡рддрдВрддреНрд░ рдиреЗрд╡реНрд╣рд┐рдЧреЗрдЯрд░-рдПрдкрд┐рд╕рд░реНрд╡реНрд╣рд░ рдЖрд╣реЗ). рдПрдХ рдордиреЛрд░рдВрдЬрдХ рдкреНрд░рдХрд▓реНрдк рдЬреНрдпрд╛рдХрдбреЗ рдЬрд╡рд│реВрди рдкрд╛рд╣рдгреНрдпрд╛рд╕рд╛рд░рдЦреЗ рдЖрд╣реЗ, рдкрд░рдВрддреБ рд╢реЗрд╡рдЯрдЪреЗ рд╡рдЪрди рджреАрдб рд╡рд░реНрд╖рд╛рдкреВрд░реНрд╡реА рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рд╣реЛрддреЗ, рдЬреЗ рд╕реНрдкрд╖реНрдЯрдкрдгреЗ рддреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рдХрдореА рдХрд░рддреЗ.

3. vgkowski рджреНрд╡рд╛рд░реЗ Cassandra-рдСрдкрд░реЗрдЯрд░

  • GitHub
  • рддрдпрд╛рд░реА: рдЕрд▓реНрдлрд╛
  • рдкрд░рд╡рд╛рдирд╛: Apache 2.0
  • рдордзреНрдпреЗ рд▓рд╛рдЧреВ: рдЧреЛрд▓рдВрдЧ

рддреНрдпрд╛рдВрдиреА рдпрд╛рдЪрд╛ "рдЧрдВрднреАрд░рдкрдгреЗ" рд╡рд┐рдЪрд╛рд░ рдХреЗрд▓рд╛ рдирд╛рд╣реА, рдХрд╛рд░рдг рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрд╢реА рд╢реЗрд╡рдЯрдЪреА рд╡рдЪрдирдмрджреНрдзрддрд╛ рдПрдХ рд╡рд░реНрд╖рд╛рдкреВрд░реНрд╡реА рд╣реЛрддреА. рдСрдкрд░реЗрдЯрд░ рдбреЗрд╡реНрд╣рд▓рдкрдореЗрдВрдЯ рд╕реЛрдбрд▓реЗ рдЖрд╣реЗ: рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдЪреА рдирд╡реАрдирддрдо рдЖрд╡реГрддреНрддреА 1.9 рдЖрд╣реЗ.

4. рд░реБрдХ рджреНрд╡рд╛рд░реЗ Cassandra-рдСрдкрд░реЗрдЯрд░

  • GitHub
  • рддрдпрд╛рд░реА: рдЕрд▓реНрдлрд╛
  • рдкрд░рд╡рд╛рдирд╛: Apache 2.0
  • рдордзреНрдпреЗ рд▓рд╛рдЧреВ: рдЧреЛрд▓рдВрдЧ

рдПрдХ рдСрдкрд░реЗрдЯрд░ рдЬреНрдпрд╛рдЪрд╛ рд╡рд┐рдХрд╛рд╕ рдЖрдореНрд╣рд╛рд▓рд╛ рдкрд╛рд╣рд┐рдЬреЗ рддрд┐рддрдХреНрдпрд╛ рд╡реЗрдЧрд╛рдиреЗ рд╣реЛрдд рдирд╛рд╣реА. рдХреНрд▓рд╕реНрдЯрд░ рдореЕрдиреЗрдЬрдореЗрдВрдЯрд╕рд╛рдареА рдпрд╛рдд рдПрдХ рд╕реБрд╡рд┐рдЪрд╛рд░рд┐рдд CRD рд░рдЪрдирд╛ рдЖрд╣реЗ, рдХреНрд▓рд╕реНрдЯрд░рдЖрдпрдкреА (рд╕рдорд╛рди "рд╣реЕрдХ") рд╡рд╛рдкрд░реВрди рдиреЛрдбреНрд╕ рдУрд│рдЦрдгреНрдпрд╛рдЪреА рд╕рдорд╕реНрдпрд╛ рд╕реЛрдбрд╡рддреЗ... рдкрдг рдЖрддреНрддрд╛рд╕рд╛рдареА рдПрд╡рдвреЗрдЪ рдЖрд╣реЗ. рд╕рдзреНрдпрд╛ рдХреЛрдгрддреЗрд╣реА рдирд┐рд░реАрдХреНрд╖рдг рдХрд┐рдВрд╡рд╛ рдмреЕрдХрдЕрдк рдмреЙрдХреНрд╕рдЪреНрдпрд╛ рдмрд╛рд╣реЗрд░ рдирд╛рд╣реА (рддрд╕реЗ, рдЖрдореНрд╣реА рджреЗрдЦрд░реЗрдЦреАрд╕рд╛рдареА рдЖрд╣реЛрдд рддреЗ рдЖрдореНрд╣реА рд╕реНрд╡рддрдГ рдШреЗрддрд▓реЗ). рдПрдХ рдордиреЛрд░рдВрдЬрдХ рдореБрджреНрджрд╛ рдЕрд╕рд╛ рдЖрд╣реЗ рдХреА рддреБрдореНрд╣реА рд╣рд╛ рдСрдкрд░реЗрдЯрд░ рд╡рд╛рдкрд░реВрди ScyllaDB рджреЗрдЦреАрд▓ рддреИрдирд╛рдд рдХрд░реВ рд╢рдХрддрд╛.

NB: рдЖрдореНрд╣реА рдЖрдордЪреНрдпрд╛ рдПрдХрд╛ рдкреНрд░рдХрд▓реНрдкрд╛рдд рдХрд┐рд░рдХреЛрд│ рдмрджрд▓рд╛рдВрд╕рд╣ рд╣рд╛ рдСрдкрд░реЗрдЯрд░ рд╡рд╛рдкрд░рд▓рд╛. рдСрдкрд░реЗрд╢рдирдЪреНрдпрд╛ рд╕рдВрдкреВрд░реНрдг рдХрд╛рд▓рд╛рд╡рдзреАрдд (~4 рдорд╣рд┐рдиреЗ рдСрдкрд░реЗрд╢рди) рдСрдкрд░реЗрдЯрд░рдЪреНрдпрд╛ рдХрд╛рдорд╛рдд рдХреЛрдгрддреАрд╣реА рд╕рдорд╕реНрдпрд╛ рд▓рдХреНрд╖рд╛рдд рдЖрд▓реА рдирд╛рд╣реА.

5. рдирд╛рд░рд┐рдВрдЧреА рдкрд╛рд╕реВрди CassKop

  • GitHub
  • рддрдпрд╛рд░реА: рдЕрд▓реНрдлрд╛
  • рдкрд░рд╡рд╛рдирд╛: Apache 2.0
  • рдордзреНрдпреЗ рд▓рд╛рдЧреВ: рдЧреЛрд▓рдВрдЧ

рдпрд╛рджреАрддреАрд▓ рд╕рд░реНрд╡рд╛рдд рддрд░реБрдг рдСрдкрд░реЗрдЯрд░: рдкрд╣рд┐рд▓реА рдХрдорд┐рдЯ 23 рдореЗ 2019 рд░реЛрдЬреА рдХрд░рдгреНрдпрд╛рдд рдЖрд▓реА. рдЖрдзреАрдЪ рдЖрддрд╛ рддреНрдпрд╛рдЪреНрдпрд╛ рд╢рд╕реНрддреНрд░рд╛рдЧрд╛рд░рд╛рдд рдЖрдордЪреНрдпрд╛ рд╕реВрдЪреАрдордзреВрди рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рдЖрд╣реЗрдд, рдЬреНрдпрд╛рдЪреЗ рдЕрдзрд┐рдХ рддрдкрд╢реАрд▓ рдкреНрд░рдХрд▓реНрдк рднрд╛рдВрдбрд╛рд░рд╛рдд рдЖрдврд│реВ рд╢рдХрддрд╛рдд. рдСрдкрд░реЗрдЯрд░ рд▓реЛрдХрдкреНрд░рд┐рдп рдСрдкрд░реЗрдЯрд░-sdk рдЪреНрдпрд╛ рдЖрдзрд╛рд░рд╛рд╡рд░ рддрдпрд╛рд░ рдХреЗрд▓рд╛ рдЖрд╣реЗ. рдмреЙрдХреНрд╕рдЪреНрдпрд╛ рдмрд╛рд╣реЗрд░ рдирд┐рд░реАрдХреНрд╖рдгрд╛рд╕ рд╕рдорд░реНрдерди рджреЗрддреЗ. рдЗрддрд░ рдСрдкрд░реЗрдЯрд░рдордзреАрд▓ рдореБрдЦреНрдп рдлрд░рдХ рдореНрд╣рдгрдЬреЗ рд╡рд╛рдкрд░ CassKop рдкреНрд▓рдЧрдЗрди, Python рдордзреНрдпреЗ рд▓рд╛рдЧреВ рдХреЗрд▓реЗ рдЖрдгрд┐ Cassandra рдиреЛрдбреНрд╕рдордзреАрд▓ рд╕рдВрд╡рд╛рджрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗ.

рдирд┐рд╖реНрдХрд░реНрд╖

рдХреЕрд╕реЕрдиреНрдбреНрд░рд╛рд▓рд╛ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдордзреНрдпреЗ рдкреЛрд░реНрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рджреГрд╖реНрдЯрд┐рдХреЛрди рдЖрдгрд┐ рд╕рдВрднрд╛рд╡реНрдп рдкрд░реНрдпрд╛рдпрд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛ рд╕реНрд╡рддрдГрдЪ рдмреЛрд▓рддреЗ: рд╡рд┐рд╖рдп рдорд╛рдЧрдгреАрдд рдЖрд╣реЗ.

рдпрд╛ рдЯрдкреНрдкреНрдпрд╛рд╡рд░, рддреБрдореНрд╣реА рддреБрдордЪреНрдпрд╛ рд╕реНрд╡рдд:рдЪреНрдпрд╛ рдЬреЛрдЦрдореАрд╡рд░ рдЖрдгрд┐ рдЬреЛрдЦрдореАрд╡рд░ рд╡рд░реАрд▓рдкреИрдХреА рдХреЛрдгрддрд╛рд╣реА рдкреНрд░рдпрддреНрди рдХрд░реВ рд╢рдХрддрд╛: рдХреЛрдгрддрд╛рд╣реА рд╡рд┐рдХрд╛рд╕рдХ рдЙрддреНрдкрд╛рджрди рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдд рддреНрдпрд╛рдВрдЪреНрдпрд╛ рд╕реЛрд▓реНрдпреВрд╢рдирдЪреНрдпрд╛ 100% рдСрдкрд░реЗрд╢рдирдЪреА рд╣рдореА рджреЗрдд тАЛтАЛрдирд╛рд╣реА. рдкрд░рдВрддреБ рдЖрдзреАрдЪ, рдЕрдиреЗрдХ рдЙрддреНрдкрд╛рджрдиреЗ рд╡рд┐рдХрд╛рд╕ рдмреЗрдВрдЪрдордзреНрдпреЗ рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрд╢рд╛рджрд╛рдпрдХ рджрд┐рд╕рддрд╛рдд.

рдорд▓рд╛ рд╡рд╛рдЯрддрдВ рднрд╡рд┐рд╖реНрдпрд╛рдд рдЬрд╣рд╛рдЬрд╛рд╡рд░реАрд▓ рд╣реА рдмрд╛рдИ рдХрд╛рдореА рдпреЗрдИрд▓!

PS

рдЖрдордЪреНрдпрд╛ рдмреНрд▓реЙрдЧрд╡рд░ рджреЗрдЦреАрд▓ рд╡рд╛рдЪрд╛:

рд╕реНрддреНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛