рд░реБрдХ - рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рд╕рд╛рдареА рд╕реЗрд▓реНрдл-рд╕рд░реНрд╡реНрд╣рд┐рд╕ рдбреЗрдЯрд╛ рд╕реНрдЯреЛрдЕрд░

рд░реБрдХ - рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рд╕рд╛рдареА рд╕реЗрд▓реНрдл-рд╕рд░реНрд╡реНрд╣рд┐рд╕ рдбреЗрдЯрд╛ рд╕реНрдЯреЛрдЕрд░

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

рдХреЛрдгрддреНрдпрд╛ рдкреНрд░рдХрд╛рд░рдЪреЗ Rook?

рд░реБрдХ рдЧреЛ рдордзреНрдпреЗ рд▓рд┐рд╣рд┐рд▓реЗрд▓реЗ рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ рдЖрд╣реЗ (рджреНрд╡рд╛рд░рд╛ рд╡рд┐рддрд░рд┐рдд рдореЛрдлрдд Apache License 2.0 рдЕрдВрддрд░реНрдЧрдд), рдбреЗрдЯрд╛ рд╡реЗрдЕрд░рд╣рд╛рдКрд╕рдирд╛ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдХрд╛рд░реНрдпреЗ рдкреНрд░рджрд╛рди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдбрд┐рдЭрд╛рдЗрди рдХреЗрд▓реЗрд▓реЗ рд╕реНрд╡-рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди, рд╕реНрд╡-рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдЖрдгрд┐ рд╕реНрд╡-рдЙрдкрдЪрд╛рд░. рд╣реЗ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рд░реБрдХ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдХрд░рддреЗ (рдХреБрдмрд░рдиреЗрдЯ рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдд рд╡рд╛рдкрд░рд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд░реНтАНрдпрд╛ рдбреЗрдЯрд╛ рд╕реНрдЯреЛрдЕрд░рд╕рд╛рдареА): рдЙрдкрдпреЛрдЬрди, рдмреВрдЯрд╕реНрдЯреНрд░реЕрдкрд┐рдВрдЧ, рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди, рддрд░рддреВрдж, рд╕реНрдХреЗрд▓рд┐рдВрдЧ, рдЕрджреНрдпрддрдиреЗ, рд╕реНрдерд▓рд╛рдВрддрд░, рдЖрдкрддреНрддреА рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддреА, рджреЗрдЦрд░реЗрдЦ рдЖрдгрд┐ рд╕рдВрд╕рд╛рдзрди рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди.

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

рдШрдЯрдХ рдЖрдгрд┐ рддрд╛рдВрддреНрд░рд┐рдХ рдЙрдкрдХрд░рдг

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

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

  • рд╕реЗрдл рд╕реНрдЯреЛрд░реЗрдЬ рдбрд┐рдордирд╕рд╛рдареА рдбреЗрдордирд╕реЗрдЯ рддрдпрд╛рд░ рдХрд░рдгреЗ (ceph-osd) рд╕рд╛рдзреНрдпрд╛ RADOS рдХреНрд▓рд╕реНрдЯрд░рд╕рд╣;
  • Ceph рдирд┐рд░реАрдХреНрд╖рдгрд╛рд╕рд╛рдареА рд╢реЗрдВрдЧрд╛ рддрдпрд╛рд░ рдХрд░рдгреЗ (рдкрд╛рд╕реВрди ceph-mon, рдХреНрд▓рд╕реНрдЯрд░рдЪреА рд╕реНрдерд┐рддреА рддрдкрд╛рд╕рдд рдЖрд╣реЗ; рдХреЛрд░рдорд╕рд╛рдареА, рдмрд╣реБрддреЗрдХ рдкреНрд░рдХрд░рдгрд╛рдВрдордзреНрдпреЗ рддреАрди рдкреНрд░рддреА рдЙрдкрдпреЛрдЬрд┐рдд рдХреЗрд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд, рдЖрдгрд┐ рддреНрдпрд╛рдкреИрдХреА рдХрд╛рд╣реА рдкрдбрд▓реНрдпрд╛рд╕, рдирд╡реАрди рдЙрдЧрд╡рддреЗ);
  • CRD рдЪреЗ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди (рд╕рд╛рдиреБрдХреВрд▓ рд╕рдВрд╕рд╛рдзрди рд╡реНрдпрд╛рдЦреНрдпрд╛) рд╕реНрд╡рддрдГрд╕рд╛рдареА рдХреНрд▓рд╕реНрдЯрд░, рд╕реНрдЯреЛрд░реЗрдЬ рдкреВрд▓, рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реНрдЯреЛрдЕрд░реНрд╕ (HTTP рд╡рд┐рдирдВрддреНрдпрд╛ рджреЗрдгреНрдпрд╛рд╕рд╛рдареА рд╕рдВрд╕рд╛рдзрдиреЗ рдЖрдгрд┐ рд╕реЗрд╡рд╛рдВрдЪрд╛ рд╕рдВрдЪ рдЬреЗ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕рд╡рд░ PUT/GET рдХрд░рддрд╛рдд - рддреЗ S3 рдЖрдгрд┐ Swift API рд╢реА рд╕реБрд╕рдВрдЧрдд рдЖрд╣реЗрдд)рдЖрдгрд┐ рдлрд╛рдЗрд▓ рдкреНрд░рдгрд╛рд▓реА;
  • рд╕рд░реНрд╡ рдЖрд╡рд╢реНрдпрдХ рд╕реЗрд╡рд╛ рд╕реБрд░реВ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдкреЙрдбреНрд╕ рд╕реБрд░реВ рдХрд░рдгреЗ;
  • рд░реБрдХ рдПрдЬрдВрдЯреНрд╕рдЪреА рдирд┐рд░реНрдорд┐рддреА.

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

рд░реБрдХ - рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рд╕рд╛рдареА рд╕реЗрд▓реНрдл-рд╕рд░реНрд╡реНрд╣рд┐рд╕ рдбреЗрдЯрд╛ рд╕реНрдЯреЛрдЕрд░
рдПрдХреВрдг рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдХреНрд▓рд╕реНрдЯрд░ рдпреЛрдЬрдиреЗрдд рд░реБрдХ рдШрдЯрдХрд╛рдВрдЪреЗ рд╕реНрдерд╛рди рдЖрдгрд┐ рднреВрдорд┐рдХрд╛

рд░реБрдХ рддреАрди рдкреНрд░рдХрд╛рд░рдЪреЗ рд╕реНрдЯреЛрд░реЗрдЬ рдСрдлрд░ рдХрд░рддреЗ:

  1. рдмреНрд▓реЙрдХ (рдмреНрд▓реЙрдХ, StorageClass) тАФ рд╕реНрдЯреЛрд░реЗрдЬрд▓рд╛ рдПрдХрд╛рдЪ рдЪреВрд▓реАрд╡рд░ рдмрд╕рд╡рддреЗ;
  2. рд╡рд╕реНрддреВ (рдСрдмреНрдЬреЗрдХреНрдЯ, ObjectStore) - Kubernetes рдХреНрд▓рд╕реНрдЯрд░рдЪреНрдпрд╛ рдЖрдд рдЖрдгрд┐ рдмрд╛рд╣реЗрд░ рдЙрдкрд▓рдмреНрдз (S3 API рджреНрд╡рд╛рд░реЗ);
  3. рд╕рд╛рдорд╛рдпрд┐рдХ рдлрд╛рдЗрд▓ рдкреНрд░рдгрд╛рд▓реА (рд╕рд╛рдорд╛рдпрд┐рдХ рдлрд╛рдЗрд▓ рдкреНрд░рдгрд╛рд▓реА, Filesystem) рдПрдХ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдЖрд╣реЗ рдЬреА рдПрдХрд╛рдзрд┐рдХ рдкреЙрдбреНрд╕рдордзреВрди рд╡рд╛рдЪрди рдЖрдгрд┐ рд▓рд┐рд╣рд┐рдгреНрдпрд╛рд╕рд╛рдареА рдорд╛рдЙрдВрдЯ рдХреЗрд▓реА рдЬрд╛рдК рд╢рдХрддреЗ.

рд░реБрдХрдЪреНрдпрд╛ рдЕрдВрддрд░реНрдЧрдд рднрд╛рдЧрд╛рдВрдордзреНрдпреЗ рд╣реЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ:

  • рдЙрдВрдЪрд╡рдЯрд╛ - рд╕реЗрдл рдореЙрдирд┐рдЯрд░рд┐рдВрдЧрд╕рд╛рдареА рд╢реЗрдВрдЧрд╛ (рдЖрдзреАрдЪ рдирдореВрдж рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╕реЗрдл-рдореЙрдирд╕рд╣);
  • рдУрдПрд╕рдбреА - рд╕реЗрдл-рдУрдПрд╕рдбреА рдбрд┐рдордирд╕рд╣ рд╢реЗрдВрдЧрд╛ (рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реНрдЯреЛрд░реЗрдЬ рдбрд┐рдорди);
  • рдПрдордЬреАрдЖрд░ - рдПрдХ рд░рд╛рдХреНрд╖рд╕ рд╕рд╣ рд╢реЗрдВрдЧрд╛ ceph-mgr (Ceph рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ), рдЬреЗ рдмрд╛рд╣реНрдп рдкреНрд░рдгрд╛рд▓реА (рдирд┐рд░реАрдХреНрд╖рдг/рдирд┐рдпрдВрддреНрд░рдг) рд╕рд╛рдареА рдЕрддрд┐рд░рд┐рдХреНрдд рджреЗрдЦрд░реЗрдЦ рдХреНрд╖рдорддрд╛ рдЖрдгрд┐ рдЗрдВрдЯрд░рдлреЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рддреЗ;
  • рдЖрд░рдЬреАрдбрдмреНрд▓реНрдпреВ (рдкрд░реНрдпрд╛рдпреА) - рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реНрдЯреЛрд░реЗрдЬрд╕рд╣ рд╢реЗрдВрдЧрд╛;
  • рдПрдордбреАрдПрд╕ (рдкрд░реНрдпрд╛рдпреА) - рд╕рд╛рдорд╛рдпрд┐рдХ рдлрд╛рдЗрд▓ рдкреНрд░рдгрд╛рд▓реАрд╕рд╣ рдкреЙрдбреНрд╕.

рд░реБрдХ - рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рд╕рд╛рдареА рд╕реЗрд▓реНрдл-рд╕рд░реНрд╡реНрд╣рд┐рд╕ рдбреЗрдЯрд╛ рд╕реНрдЯреЛрдЕрд░

рд╕рд░реНрд╡ рд░реБрдХ рдбрд┐рдорди (рдореЙрдиреНрд╕, рдУрдПрд╕рдбреА, рдПрдордЬреАрдЖрд░, рдЖрд░рдЬреАрдбрдмреНрд▓реНрдпреВ, рдПрдордбреАрдПрд╕) рдПрдХрд╛рдЪ рдмрд╛рдпрдирд░реАрдордзреНрдпреЗ рд╕рдВрдХрд▓рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд (rook) рдХрдВрдЯреЗрдирд░рдордзреНрдпреЗ рдЪрд╛рд▓рдд рдЖрд╣реЗ.

рд░реБрдХ рдкреНрд░рдХрд▓реНрдкрд╛рдЪреНрдпрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдкрд░рд┐рдЪрдпрд╛рд╕рд╛рдареА, рд╣реА рд▓рд╣рд╛рди (резреи рд╕реНрд▓рд╛рдЗрдбреНрд╕) рджреЗрдЦреАрд▓ рдЙрдкрдпреБрдХреНрдд рдард░реВ рд╢рдХрддрд╛рдд. рд╕рд╛рджрд░реАрдХрд░рдг рдмрд╕рдо рддрдмрдмрд╛рд░рд╛рдХрдбреВрди (рдХреНрд╡рд╛рдВрдЯрдо рдХреЙрд░реНрдкрдордзреАрд▓ рд╕реАрдЯреАрдУ).

рд░реБрдХрдЪреЗ рд╕рдВрдЪрд╛рд▓рди

Rook рдСрдкрд░реЗрдЯрд░ Kubernetes рдЖрд╡реГрддреНрддреА 1.6 рдЖрдгрд┐ рдЙрдЪреНрдЪрддрд░ рдкреВрд░реНрдгрддрдГ рд╕рдорд░реНрдерди рдХрд░рддреЛ (рдЖрдгрд┐, рдЕрдВрд╢рддрдГ, рдЬреБрдиреЗ K8 рд░рд┐рд▓реАрдЭ - 1.5.2). рддреНрдпрд╛рдЪреНрдпрд╛ рд╕реНрдерд╛рдкрдирд╛ ╨▓ рд╕рд░реНрд╡рд╛рдд рд╕реЛрдкреА рдкрд░рд┐рд╕реНрдерд┐рддреА рдЕрд╕реЗ рджрд┐рд╕рддреЗ:

cd cluster/examples/kubernetes
kubectl create -f rook-operator.yaml
kubectl create -f rook-cluster.yaml

рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рд░реБрдХ рдСрдкрд░реЗрдЯрд░ рддрдпрд╛рд░ рдЖрд╣реЗ рд╣реЗрд▓реНрдо рдЪрд╛рд░реНрдЯ, рдзрдиреНрдпрд╡рд╛рдж рдЬреНрдпрд╛рдЪреА рд╕реНрдерд╛рдкрдирд╛ рдпрд╛рдкреНрд░рдорд╛рдгреЗ рдХреЗрд▓реА рдЬрд╛рдК рд╢рдХрддреЗ:

helm repo add rook-alpha https://charts.rook.io/alpha
helm install rook-alpha/rook

рдХрдореА рдкреНрд░рдорд╛рдгрд╛рдд рдЙрдкрд▓рдмреНрдз рд╕реЗрдЯрдЕрдк рдкрд░реНрдпрд╛рдп (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рддреБрдореНрд╣реА рд╕рдорд░реНрдерди рдЕрдХреНрд╖рдо рдХрд░реВ рд╢рдХрддрд╛ RBAC, рдЬрд░ рд╣реЗ рд╡реИрд╢рд┐рд╖реНрдЯреНрдп рддреБрдордЪреНрдпрд╛ рдХреНрд▓рд╕реНрдЯрд░рдордзреНрдпреЗ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рдд рдирд╕реЗрд▓), рдЬреНрдпрд╛рдВрдирд╛ рдкрд╛рд╕ рдХреЗрд▓реЗ рдЬрд╛рддреЗ helm install рдкреЕрд░рд╛рдореАрдЯрд░ рджреНрд╡рд╛рд░реЗ --set key=value[,key=value] (рдХрд┐рдВрд╡рд╛ рд╡реЗрдЧрд│реНрдпрд╛ YAML рдлрд╛рдИрд▓рдордзреНрдпреЗ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рд╛ рдЖрдгрд┐ рджреНрд╡рд╛рд░реЗ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рд╛ -f values.yaml).

рд░реБрдХ рдСрдкрд░реЗрдЯрд░ рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реНрдпрд╛рдирдВрддрд░ рдЖрдгрд┐ рддреНрдпрд╛рдЪреНрдпрд╛ рдПрдЬрдВрдЯрд╕рд╣ рдкреЙрдбреНрд╕ рд▓рд╛рдБрдЪ рдХреЗрд▓реНрдпрд╛рдирдВрддрд░, рдлрдХреНрдд рд░реБрдХ рдХреНрд▓рд╕реНрдЯрд░ рддрдпрд╛рд░ рдХрд░рдгреЗ рдмрд╛рдХреА рдЖрд╣реЗ, рдЬреНрдпрд╛рдЪреЗ рд╕рд░реНрд╡рд╛рдд рд╕реЛрдкреЗ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдЕрд╕реЗ рджрд┐рд╕рддреЗ (rook-cluster.yaml):

apiVersion: v1
kind: Namespace
metadata:
  name: rook
---
apiVersion: rook.io/v1alpha1
kind: Cluster
metadata:
  name: rook
  namespace: rook
spec:
  dataDirHostPath: /var/lib/rook
  storage:
    useAllNodes: true
    useAllDevices: false
    storeConfig:
      storeType: bluestore
      databaseSizeMB: 1024
      journalSizeMB: 1024

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

рдмрд╛рдХреА рдлрдХреНрдд рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирдордзреВрди рдХреНрд▓рд╕реНрдЯрд░ рддрдпрд╛рд░ рдХрд░рдгреЗ рдЖрдгрд┐ рдХреНрд▓рд╕реНрдЯрд░рдордзреНрдпреЗ (рдиреЗрдорд╕реНрдкреЗрд╕рдордзреНрдпреЗ) рдкреЙрдбреНрд╕ рддрдпрд╛рд░ рдЭрд╛рд▓реНрдпрд╛рдЪреА рдЦрд╛рддреНрд░реА рдХрд░рдгреЗ. rook):

kubectl create -f rook-cluster.yaml
kubectl -n rook get pod
NAME                              READY     STATUS    RESTARTS   AGE
rook-api-1511082791-7qs0m         1/1       Running   0          5m
rook-ceph-mgr0-1279756402-wc4vt   1/1       Running   0          5m
rook-ceph-mon0-jflt5              1/1       Running   0          6m
rook-ceph-mon1-wkc8p              1/1       Running   0          6m
rook-ceph-mon2-p31dj              1/1       Running   0          6m
rook-ceph-osd-0h6nb               1/1       Running   0          5m

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

рд░реБрдХ рдмреНрд▓реЙрдЧрд╡рд░ рдЧреЗрд▓реНрдпрд╛ рдиреЛрд╡реНрд╣реЗрдВрдмрд░рдордзреНрдпреЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рдЭрд╛рд▓реЗ рд╣реЛрддреЗ рддреБрд▓рдирд╛ рдЙрддреНрдкрд╛рджрдХрддрд╛ EBS рд╕рд╣. рддреНрдпрд╛рдЪреЗ рдкрд░рд┐рдгрд╛рдо рд▓рдХреНрд╖ рджреЗрдгреНрдпрд╛рд╕ рдкрд╛рддреНрд░ рдЖрд╣реЗрдд рдЖрдгрд┐ рдереЛрдбрдХреНрдпрд╛рдд рддреЗ рдЦрд╛рд▓реАрд▓рдкреНрд░рдорд╛рдгреЗ рдЖрд╣реЗрдд:

рд░реБрдХ - рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рд╕рд╛рдареА рд╕реЗрд▓реНрдл-рд╕рд░реНрд╡реНрд╣рд┐рд╕ рдбреЗрдЯрд╛ рд╕реНрдЯреЛрдЕрд░
рд░реБрдХ - рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рд╕рд╛рдареА рд╕реЗрд▓реНрдл-рд╕рд░реНрд╡реНрд╣рд┐рд╕ рдбреЗрдЯрд╛ рд╕реНрдЯреЛрдЕрд░

рд╕рдВрднрд╛рд╡рдирд╛

рд░реБрдХрдЪреА рд╕рджреНрдпрд╕реНрдерд┐рддреА рдЕрд▓реНрдлрд╛ рдЖрд╣реЗ рдЖрдгрд┐ рдЖрдЬрдкрд░реНрдпрдВрддрдЪреЗ рдирд╡реАрдирддрдо рдкреНрд░рдореБрдЦ рдкреНрд░рдХрд╛рд╢рди рдЖрд╣реЗ рдЖрд╡реГрддреНрддреА 0.6, рдиреЛрд╡реНрд╣реЗрдВрдмрд░ 2017 рдордзреНрдпреЗ рдкреНрд░рд╕рд┐рджреНрдз рдЭрд╛рд▓реЗ (рд╡рд░реНрддрдорд╛рди рд╕реБрдзрд╛рд░рдгрд╛ - v0.6.2 - 14 рдбрд┐рд╕реЗрдВрдмрд░ рд░реЛрдЬреА рдмрд╛рд╣реЗрд░ рдЖрд▓реЗ). рдЖрдзреАрдЪ 2018 рдЪреНрдпрд╛ рдкрд╣рд┐рд▓реНрдпрд╛ рд╕рд╣рд╛рдорд╛рд╣реАрдд, рдЕрдзрд┐рдХ рдкрд░рд┐рдкрдХреНрд╡ рдЖрд╡реГрддреНрддреНрдпрд╛рдВрдЪреЗ рдкреНрд░рдХрд╛рд╢рди рдЕрдкреЗрдХреНрд╖рд┐рдд рдЖрд╣реЗ: рдмреАрдЯрд╛ рдЖрдгрд┐ рд╕реНрдерд┐рд░ (рдЙрддреНрдкрд╛рджрдирд╛рдд рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЕрдзрд┐рдХреГрддрдкрдгреЗ рддрдпрд╛рд░).

рдорддреЗ рдирдХрд╛рд╢рд╛ рдкреНрд░рдХрд▓реНрдк, рдбреЗрд╡реНрд╣рд▓рдкрд░реНрд╕рдХрдбреЗ рдХрд┐рдорд╛рди рдкреБрдвреАрд▓ рджреЛрди рдкреНрд░рдХрд╛рд╢рдирд╛рдВрдордзреНрдпреЗ рд░реБрдХрдЪреНрдпрд╛ рд╡рд┐рдХрд╛рд╕рд╛рд╕рд╛рдареА рддрдкрд╢реАрд▓рд╡рд╛рд░ рджреГрд╖реНрдЯреА рдЖрд╣реЗ: 0.7 (рддреНрдпрд╛рдЪреА рддрдпрд╛рд░реА GitHub рдЯреНрд░реЕрдХрд░рдордзреНрдпреЗ рдЖрд╣реЗ рдореВрд▓реНрдпрдорд╛рдкрди рдХреЗрд▓реЗ рдЬрд╛рддреЗ 60%) рдЖрдгрд┐ 0.8. рдЕрдкреЗрдХреНрд╖рд┐рдд рдмрджрд▓рд╛рдВрдкреИрдХреА Ceph Block рдЖрдгрд┐ Ceph Object рд╕рд╛рдареА рд╕рдорд░реНрдердирд╛рдЪреЗ рдмреАрдЯрд╛ рдЖрд╡реГрддреНрддреА рд╕реНрдерд┐рддреАрдд рд╣рд╕реНрддрд╛рдВрддрд░рдг, CephFS рд╕рд╛рдареА рд╡реНрд╣реЙрд▓реНрдпреВрдордЪреА рдбрд╛рдпрдиреЕрдорд┐рдХ рддрд░рддреВрдж, рдкреНрд░рдЧрдд рд▓реЙрдЧрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо, рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдХреНрд▓рд╕реНрдЯрд░ рдЕрджреНрдпрддрдиреЗ, рд╡реНрд╣реЙрд▓реНрдпреВрдорд╕рд╛рдареА рд╕реНрдиреЕрдкрд╢реЙрдЯрд╕рд╛рдареА рд╕рдорд░реНрдерди.

рд░реБрдХ рдирдВрдмрд░ рдордзреНрдпреЗ рдШреЗрдгреЗ CNCF рдкреНрд░рдХрд▓реНрдк (рдЖрддрд╛рдкрд░реНрдпрдВрдд рдЕрдЧрджреА рд╕реБрд░реБрд╡рд╛рддреАрдЪреНрдпрд╛ рдЯрдкреНрдкреНрдпрд╛рд╡рд░ - "рдкреНрд░рд╛рд░рдВрдн-рд╕реНрддрд░" - рдмрд░реЛрдмрд░реАрдиреЗ linkerd ╨╕ CoreDNS) рд╣реА рдПрдХ рдкреНрд░рдХрд╛рд░рдЪреА рд╣рдореА рдЖрд╣реЗ рдЬреА рдЙрддреНрдкрд╛рджрдирд╛рдордзреНрдпреЗ рд╡рд╛рдврдгрд╛рд░реА рд╕реНрд╡рд╛рд░рд╕реНрдп рдЖрд╣реЗ. рдХреНрд▓рд╛рдЙрдб рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рдЪреНрдпрд╛ рдЬрдЧрд╛рдд рддреЗ рдХрд╕реЗ рд╕реНрдерд╛рди рдорд┐рд│рд╡реЗрд▓ рд╣реЗ рд╕реНрдерд┐рд░ рдЖрд╡реГрддреНрддреНрдпрд╛ рд░рд┐рд▓реАрдЬ рдЭрд╛рд▓реНрдпрд╛рдирдВрддрд░ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдИрд▓, рдЬреЗ рдирдХреНрдХреАрдЪ рдирд╡реАрди рдкрд░реАрдХреНрд╖рдХ рдЖрдгрд┐ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдирд╛ рд░реВрдХрдордзреНрдпреЗ рдЖрдгреЗрд▓.

PS

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

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

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