рднрдгреНрдбрд╛рд░рдг рдХреНрд╖рдорддрд╛ рдЯреНрд░реНрдпрд╛рдХрд┐рдЩрдХреЛ рд╕рд╛рде рдЕрд▓реНрдкрдХрд╛рд▓реАрди рднреЛрд▓реНрдпреБрдорд╣рд░реВ: рд╕реНрдЯреЗрд░реЛрдЗрдбрд╣рд░реВрдорд╛ EmptyDir

рднрдгреНрдбрд╛рд░рдг рдХреНрд╖рдорддрд╛ рдЯреНрд░реНрдпрд╛рдХрд┐рдЩрдХреЛ рд╕рд╛рде рдЕрд▓реНрдкрдХрд╛рд▓реАрди рднреЛрд▓реНрдпреБрдорд╣рд░реВ: рд╕реНрдЯреЗрд░реЛрдЗрдбрд╣рд░реВрдорд╛ EmptyDir

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

рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдХреНрдпрд╛рд╕рд┐рдЩ рд╕реЗрд╡рд╛рд╣рд░реВ RAM рджреНрд╡рд╛рд░рд╛ рд╕реАрдорд┐рдд рдЫрдиреН, рддрд░ рдпрд╕рд▓реЗ рд╕рдордЧреНрд░ рдХрд╛рд░реНрдпрд╕рдореНрдкрд╛рджрдирдорд╛ рдереЛрд░реИ рдкреНрд░рднрд╛рд╡ рдкрд╛рд░реЗрд░ RAM рднрдиреНрджрд╛ рдврд┐рд▓реЛ рднрдПрдХреЛ рднрдгреНрдбрд╛рд░рдгрдорд╛ рджреБрд░реНрд▓рдн рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рд╣реБрдиреЗ рдбрд╛рдЯрд╛ рд╕рд╛рд░реНрди рд╕рдХреНрдЫред рдЕрдиреНрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрд▓рд╛рдИ рд╕рдЪреЗрдд рд╣реБрди рдЖрд╡рд╢реНрдпрдХ рдЫ рдХрд┐ рдлрд╛рдЗрд▓рд╣рд░реВрдорд╛ рдХреЗрд╣реА рдкрдвреНрдиреЗ-рдорд╛рддреНрд░ рдЗрдирдкреБрдЯ рд╣реБрди рд╕рдХреНрдЫ, рдЬрд╕реНрддреИ рд╕реЗрдЯрд┐рдЩрд╣рд░реВ рд╡рд╛ рдЧреЛрдкреНрдп рдХреБрдЮреНрдЬреАрд╣рд░реВред

Kubernetes рдкрд╣рд┐рд▓реЗ рдиреИ рдзреЗрд░реИ рдкреНрд░рдХрд╛рд░рд╣рд░реВ рдЫрдиреН рдХреНрд╖рдгрд┐рдХ рдорд╛рддреНрд░рд╛, рддрд░ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ K8s рдорд╛ рд▓рд╛рдЧреВ рдЧрд░рд┐рдПрдХреЛ рдХреБрд░рд╛рдорд╛ рд╕реАрдорд┐рдд рдЫред

рдХреНрд╖рдгрд┐рдХ CSI рднреЛрд▓реНрдпреБрдорд╣рд░реВ Kubernetes рд▓рд╛рдИ CSI рдбреНрд░рд╛рдЗрднрд░рд╣рд░реВрд╕рдБрдЧ рд╡рд┐рд╕реНрддрд╛рд░ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдИрдпреЛ рд╣рд▓реНрдХрд╛ рд╕реНрдерд╛рдиреАрдп рднреЛрд▓реНрдпреБрдорд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдкреНрд░рджрд╛рди рдЧрд░реНрдиред рдпрд╕рд░реА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдореНрднрд╡ рдЫ рдордирдорд╛рдиреА рд╕рдВрд░рдЪрдирд╛рд╣рд░реВ: рд╕реЗрдЯрд┐рдЩрд╣рд░реВ, рдЧреЛрдкреНрдпрд╣рд░реВ, рдкрд╣рд┐рдЪрд╛рди рдбрд╛рдЯрд╛, рдЪрд░, рд░ рдпрддрд┐ред CSI рдбреНрд░рд╛рдЗрднрд░рд╣рд░реВ рдпреЛ Kubernetes рд╕реБрд╡рд┐рдзрд╛рд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрди рдкрд░рд┐рдорд╛рд░реНрдЬрди рдЧрд░реНрдиреБрдкрд░реНрдЫ, рдХрд┐рдирдХрд┐ рдпреЛ рдорд╛рдирд┐рдиреНрдЫ рдХрд┐ рдирд┐рдпрдорд┐рдд рдорд╛рдирдХреАрдХреГрдд рдбреНрд░рд╛рдЗрднрд░рд╣рд░реВрд▓реЗ рдХрд╛рдо рдЧрд░реНрджреИрдирдиреН - рддрд░ рдпреЛ рдорд╛рдирд┐рдиреНрдЫ рдХрд┐ рддреНрдпрд╕реНрддрд╛ рднреЛрд▓реНрдпреБрдорд╣рд░реВ рдкреЛрдбрдХреЛ рд▓рд╛рдЧрд┐ рдЪрдпрди рдЧрд░рд┐рдПрдХреЛ рдХреБрдиреИ рдкрдирд┐ рдиреЛрдбрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред

рдпреЛ рднреЛрд▓реНрдпреБрдорд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд╕реНрдпрд╛ рд╣реБрди рд╕рдХреНрдЫ рдЬрд╕рд▓реЗ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рд╣реЛрд╕реНрдЯ рд╕реНрд░реЛрддрд╣рд░реВ рдЦрдкрдд рдЧрд░реНрджрдЫ рд╡рд╛ рднрдгреНрдбрд╛рд░рдгрдХреЛ рд▓рд╛рдЧрд┐ рдЬреБрди рдХреЗрд╣реА рд╣реЛрд╕реНрдЯрд╣рд░реВрдорд╛ рдорд╛рддреНрд░ рдЙрдкрд▓рдмреНрдз рдЫред рдпрд╕реИрд▓реЗ Kubernetes 1.19 рд▓реЗ рджреБрдИ рдирдпрд╛рдБ рдЕрд▓реНрдлрд╛ рдкрд░реАрдХреНрд╖рдг рднреЛрд▓реНрдпреБрдо рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ рдкреНрд░рд╕реНрддреБрдд рдЧрд░реНрджрдЫ рдЬреБрди рдЕрд╡рдзрд╛рд░рдгрд╛рддреНрдордХ рд░реВрдкрдорд╛ EmptyDir рднреЛрд▓реНрдпреБрдорд╣рд░реВрд╕рдБрдЧ рдорд┐рд▓реНрджреЛрдЬреБрд▓реНрджреЛ рдЫ:

  • рд╕рд╛рдорд╛рдиреНрдп рдЙрджреНрджреЗрд╢реНрдп рдЕрд▓реНрдкрдХрд╛рд▓рд┐рдХ рдорд╛рддреНрд░рд╛;

  • CSI рднрдгреНрдбрд╛рд░рдг рдХреНрд╖рдорддрд╛ рдЯреНрд░реНрдпрд╛рдХрд┐рдЩред

рдирдпрд╛рдБ рджреГрд╖реНрдЯрд┐рдХреЛрдгрдХрд╛ рдлрд╛рдЗрджрд╛рд╣рд░реВ:

  • рднрдгреНрдбрд╛рд░рдг рд╕реНрдерд╛рдиреАрдп рд╡рд╛ рдиреЗрдЯрд╡рд░реНрдХ рдорд╛рд░реНрдлрдд рдЬрдбрд╛рди рд╣реБрди рд╕рдХреНрдЫ;

  • рднреЛрд▓реНрдпреБрдорд╣рд░реВрдорд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЖрдХрд╛рд░ рд╣реБрди рд╕рдХреНрдЫ рдЬреБрди рдЕрдиреБрдкреНрд░рдпреЛрдЧрд▓реЗ рдкрд╛рд░ рдЧрд░реНрди рд╕рдХреНрджреИрди;

  • рдХреБрдиреИ рдкрдирд┐ CSI рдбреНрд░рд╛рдЗрднрд░рд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджрдЫ рдЬрд╕рд▓реЗ рдирд┐рд░рдиреНрддрд░ рднреЛрд▓реНрдпреБрдорд╣рд░реВрдХреЛ рдкреНрд░рд╛рд╡рдзрд╛рдирд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫ рд░ (рдХреНрд╖рдорддрд╛ рдЯреНрд░реНрдпрд╛рдХрд┐рдЩрд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрди) рдХрд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрджрдЫред GetCapacity;

  • рднреЛрд▓реНрдпреБрдорд╣рд░реВрдорд╛ рдбреНрд░рд╛рдЗрднрд░ рд░ рд╕реЗрдЯрд┐рдЩрд╣рд░реВрдХреЛ рдЖрдзрд╛рд░рдорд╛ рдХреЗрд╣реА рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рдбрд╛рдЯрд╛ рд╣реБрди рд╕рдХреНрдЫ;

  • рднреЛрд▓реНрдпреБрдордХрд╛ рд╕рд╛рде рд╕рдмреИ рдорд╛рдирдХ рдЕрдкрд░реЗрд╢рдирд╣рд░реВ (рд╕реНрдиреНрдпрд╛рдкрд╕рдЯ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗ, рд░рд┐рд╕рд╛рдЗрдЬ рдЧрд░реНрдиреЗ, рдЖрджрд┐) рд╕рдорд░реНрдерд┐рдд рдЫрдиреН;

  • рднреЛрд▓реНрдпреБрдорд╣рд░реВ рдХреБрдиреИ рдкрдирд┐ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдирд┐рдпрдиреНрддреНрд░рдХрд╕рдБрдЧ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ рдЬрд╕рд▓реЗ рдореЛрдбреНрдпреБрд▓ рд╡рд╛ рднреЛрд▓реНрдпреБрдо рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрджрдЫ;

  • Kubernetes рдЕрдиреБрд╕реВрдЪрдХ рдЖрдлреИрд▓реЗ рдЙрдкрдпреБрдХреНрдд рдиреЛрдбрд╣рд░реВ рдЪрдпрди рдЧрд░реНрджрдЫ, рддреНрдпрд╕реИрд▓реЗ рдЕрдм рдЕрдиреБрд╕реВрдЪрдХ рд╡рд┐рд╕реНрддрд╛рд░рд╣рд░реВ рдкреНрд░рд╛рд╡рдзрд╛рди рд░ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрди рд╡рд╛ рд╡реЗрдмрд╣реБрдХрд╣рд░реВ рдкрд░рд┐рдорд╛рд░реНрдЬрди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫреИрдиред

рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ

рддрд╕рд░реНрде, рд╕рд╛рдорд╛рдиреНрдп рдЙрджреНрджреЗрд╢реНрдп рдЕрд▓реНрдкрдХрд╛рд▓рд┐рдХ рднреЛрд▓реНрдпреБрдорд╣рд░реВ рдирд┐рдореНрди рдкреНрд░рдпреЛрдЧ рдХреЗрд╕рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрдпреБрдХреНрдд рдЫрдиреН:

memcached рдХреЛ рд▓рд╛рдЧрд┐ RAM рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрдирдХреЛ рд░реВрдкрдорд╛ рд╕реНрдерд╛рдпреА рдореЗрдореЛрд░реА

Memcached рдХреЛ рдирд╡реАрдирддрдо рд░рд┐рд▓реАрдЬ рд╕рдорд░реНрдерди рдердкрд┐рдпреЛ рд▓рдЧрд╛рддрд╛рд░ рдореЗрдореЛрд░реА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ (Intel Optane, рдЖрджрд┐, рд▓рдЧрднрдЧред рдЕрдиреБрд╡рд╛рджрдХ) рдирд┐рдпрдорд┐рдд RAM рдХреЛ рд╕рдЯреНрдЯрд╛ред рдПрдкреНрд▓рд┐рдХреЗрд╕рди рдХрдиреНрдЯреНрд░реЛрд▓рд░ рдорд╛рд░реНрдлрдд рдореЗрдордХреНрдпрд╛рдЪ рдбрд┐рдкреНрд▓реЛрдЗ рдЧрд░реНрджрд╛, рддрдкрд╛рдИрдВрд▓реЗ CSI рдбреНрд░рд╛рдЗрднрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ PMEM рдмрд╛рдЯ рджрд┐рдЗрдПрдХреЛ рд╕рд╛рдЗрдЬрдХреЛ рднреЛрд▓реНрдпреБрдо рдЖрд╡рдВрдЯрд┐рдд рдЧрд░реНрди рдЕрдиреБрд░реЛрдз рдЧрд░реНрди рд╕рд╛рдорд╛рдиреНрдп рдЙрджреНрджреЗрд╢реНрдпрдХрд╛ рдХреНрд╖рдгрд┐рдХ рднреЛрд▓реНрдпреБрдорд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐ред PMEM-CSI.

LVM рд╕реНрдерд╛рдиреАрдп рднрдгреНрдбрд╛рд░рдг рдХрд╛рд░реНрдпрд╕реНрдерд╛рдирдХреЛ рд░реВрдкрдорд╛

RAM рднрдиреНрджрд╛ рдареБрд▓реЛ рдбрд╛рдЯрд╛рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдиреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрд▓рд╛рдИ рдЖрдХрд╛рд░ рд╡рд╛ рдХрд╛рд░реНрдпрд╕рдореНрдкрд╛рджрди рдореЗрдЯреНрд░рд┐рдХреНрд╕рдХреЛ рд╕рд╛рде рд╕реНрдерд╛рдиреАрдп рднрдгреНрдбрд╛рд░рдг рдЪрд╛рд╣рд┐рдиреНрдЫ рдЬреБрди Kubernetes рдмрд╛рдЯ рдирд┐рдпрдорд┐рдд EmptyDir рднреЛрд▓реНрдпреБрдорд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНрди рд╕рдХреНрджреИрдиред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдпреЛ рдЙрджреНрджреЗрд╢реНрдпрдХрд╛ рд▓рд╛рдЧрд┐ рд▓реЗрдЦрд┐рдПрдХреЛ рдерд┐рдпреЛ TopoLVM.

рдбреЗрдЯрд╛ рднреЛрд▓реНрдпреБрдорд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдорд╛рддреНрд░ рдкрдвреНрдиреЗ рдкрд╣реБрдБрдЪ

рднреЛрд▓реНрдпреБрдордХреЛ рдЖрд╡рдВрдЯрдирд▓реЗ рдкреВрд░реНрдг рднреЛрд▓реНрдпреБрдо рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рд╕рдХреНрдЫ рдЬрдм:

рдпреА рднреЛрд▓реНрдпреБрдорд╣рд░реВ рдкрдвреНрдиреЗ рдорд╛рддреНрд░ рдореЛрдбрдорд╛ рдорд╛рдЙрдиреНрдЯ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред

рдпреЛ рдХрд╕рд░реА рдХрд╛рдо рдЧрд░реНрдЫ

рд╕рд╛рдорд╛рдиреНрдп рдЙрджреНрджреЗрд╢реНрдп рдЕрд▓реНрдкрдХрд╛рд▓рд┐рдХ рднреЛрд▓реНрдпреБрдорд╣рд░реВ

рд╕рд╛рдорд╛рдиреНрдп рдЙрджреНрджреЗрд╢реНрдп рдЕрд▓реНрдкрдХрд╛рд▓рд┐рдХ рднреЛрд▓реНрдпреБрдорд╣рд░реВрдХреЛ рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛ рдирдпрд╛рдБ рднреЛрд▓реНрдпреБрдо рд╕реНрд░реЛрдд рд╣реЛ, EphemeralVolumeSource, рднреЛрд▓реНрдпреБрдо рдЕрдиреБрд░реЛрдз рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рд╕рдмреИ рдХреНрд╖реЗрддреНрд░рд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджреИ (рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рд░реВрдкрдорд╛ рдирд┐рд░рдиреНрддрд░ рднреЛрд▓реНрдпреБрдо рдЕрдиреБрд░реЛрдз, PVC рднрдирд┐рдиреНрдЫ)ред рдирдпрд╛рдБ рдирд┐рдпрдиреНрддреНрд░рдХ рдорд╛ kube-controller-manager рдпрд╕реНрддреЛ рднреЛрд▓реНрдпреБрдо рд╕реНрд░реЛрдд рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗ рдкреЛрдбрд╣рд░реВ рд╣реЗрд░реНрдЫ, рд░ рддреНрдпрд╕рдкрдЫрд┐ рддреА рдкреЛрдбрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ PVC рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрдЫред CSI рдбреНрд░рд╛рдЗрднрд░рдХреЛ рд▓рд╛рдЧрд┐, рдпреЛ рдЕрдиреБрд░реЛрдз рдЕрд░реВрд╣рд░реВ рдЬрд╕реНрддреИ рджреЗрдЦрд┐рдиреНрдЫ, рддреНрдпрд╕реИрд▓реЗ рдпрд╣рд╛рдБ рдХреБрдиреИ рд╡рд┐рд╢реЗрд╖ рд╕рдорд░реНрдерди рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджреИрдиред

рдЬрдмрд╕рдореНрдо рдпрд╕реНрддрд╛ PVC рд╣рд░реВ рдЕрд╡рд╕реНрдерд┐рдд рдЫрдиреН, рддрд┐рдиреАрд╣рд░реВ рднреЛрд▓реНрдпреБрдордорд╛ рдЕрдиреНрдп рдЕрдиреБрд░реЛрдзрд╣рд░реВ рдЬрд╕реНрддреИ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рд╡рд┐рд╢реЗрд╖ рдЧрд░реА, рднреЛрд▓реНрдпреБрдо рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдЧрд░реНрджрд╛ рд╡рд╛ рднреЛрд▓реНрдпреБрдордмрд╛рдЯ рд╕реНрдиреНрдпрд╛рдкрд╕рдЯ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрд╛ рддрд┐рдиреАрд╣рд░реВ рдбреЗрдЯрд╛ рд╕реНрд░реЛрддрдХреЛ рд░реВрдкрдорд╛ рд╕рдиреНрджрд░реНрдн рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред PVC рд╡рд╕реНрддреБрд▓реЗ рднреЛрд▓реНрдпреБрдордХреЛ рд╣рд╛рд▓рдХреЛ рдЕрд╡рд╕реНрдерд╛ рдкрдирд┐ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫред

рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХрд╛ PVC рд╣рд░реВрдХрд╛ рдирд╛рдорд╣рд░реВ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдЫрдиреН: рддрд┐рдиреАрд╣рд░реВ рдкреЛрдб рдирд╛рдо рд░ рднреЛрд▓реНрдпреБрдо рдирд╛рдордХреЛ рд╕рдВрдпреЛрдЬрди рд╣реБрдиреН, рд╣рд╛рдЗрдлрдирджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ рдЧрд░рд┐рдПрдХреЛред рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд╛рдорд╣рд░реВрд▓реЗ PVC рд╕рдБрдЧ рдЕрдиреНрддрд░реНрдХреНрд░рд┐рдпрд╛ рдЧрд░реНрди рд╕рдЬрд┐рд▓реЛ рдмрдирд╛рдЙрдБрджрдЫ рдХрд┐рдирднрдиреЗ рдпрджрд┐ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдкреЛрдб рдирд╛рдо рд░ рднреЛрд▓реНрдпреБрдо рдирд╛рдо рдерд╛рд╣рд╛ рдЫ рднрдиреЗ рддрдкрд╛рдИрдВрд▓реЗ рдпрд╕рд▓рд╛рдИ рдЦреЛрдЬреНрдиреБ рдкрд░реНрджреИрдиред рдирдХрд╛рд░рд╛рддреНрдордХ рдкрдХреНрд╖ рдпреЛ рд╣реЛ рдХрд┐ рдирд╛рдо рдкрд╣рд┐рд▓реЗ рдиреИ рдкреНрд░рдпреЛрдЧрдорд╛ рд╣реБрди рд╕рдХреНрдЫ, рдЬреБрди Kubernetes рджреНрд╡рд╛рд░рд╛ рдкрддреНрддрд╛ рд▓рдЧрд╛рдЗрдПрдХреЛ рдЫ рд░ рдлрд▓рд╕реНрд╡рд░реВрдк рдкреЛрдб рд╕реБрд░реБ рд╣реБрдирдмрд╛рдЯ рд░реЛрдХрд┐рдПрдХреЛ рдЫред

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

рдЕрдиреБрд░реЛрдзрд╣рд░реВ рднрдгреНрдбрд╛рд░рдг рдХрдХреНрд╖рд╛рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд╕рдВрдпрдиреНрддреНрд░ рдорд╛рд░реНрдлрдд рднрдгреНрдбрд╛рд░рдг рдбреНрд░рд╛рдЗрднрд░рджреНрд╡рд╛рд░рд╛ рдореЗрд▓ рдЦрд╛рдиреНрдЫред рдпрджреНрдпрдкрд┐ рддрддреНрдХрд╛рд▓ рд░ рдврд┐рд▓реЛ рдмрдиреНрдзрдирдХрд╛ рд╕рд╛рде рдХрдХреНрд╖рд╛рд╣рд░реВ (рдЙрд░реНрдл WaitForFirstConsumer) рд╕рдорд░реНрдерд┐рдд рдЫрдиреН, рдЕрд▓реНрдкрдХрд╛рд▓рд┐рдХ рднреЛрд▓реНрдпреБрдорд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдпреЛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЕрд░реНрде рдмрдирд╛рдЙрдБрдЫ WaitForFirstConsumer, рддреНрдпрд╕рдкрдЫрд┐ рдЕрдиреБрд╕реВрдЪрдХрд▓реЗ рдиреЛрдб рдЪрдпрди рдЧрд░реНрджрд╛ рдиреЛрдб рдкреНрд░рдпреЛрдЧ рд░ рднрдгреНрдбрд╛рд░рдг рдЙрдкрд▓рдмреНрдзрддрд╛ рджреБрд╡реИрд▓рд╛рдИ рд╡рд┐рдЪрд╛рд░ рдЧрд░реНрди рд╕рдХреНрдЫред рдПрдЙрдЯрд╛ рдирдпрд╛рдБ рд╕реБрд╡рд┐рдзрд╛ рдпрд╣рд╛рдБ рджреЗрдЦрд┐рдиреНрдЫред

рднрдгреНрдбрд╛рд░рдг рдХреНрд╖рдорддрд╛ рдЯреНрд░реНрдпрд╛рдХрд┐рдЩ

рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдЕрдиреБрд╕реВрдЪрдХрд▓рд╛рдИ CSI рдбреНрд░рд╛рдЗрднрд░рд▓реЗ рднреЛрд▓реНрдпреБрдо рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗ рдард╛рдЙрдБрдХреЛ рдХреБрдиреИ рдЬреНрдЮрд╛рди рд╣реБрдБрджреИрдиред рдпреЛ рдЬрд╛рдирдХрд╛рд░реА рдЕрдиреБрд░реЛрдз рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдбреНрд░рд╛рдЗрднрд░рд▓рд╛рдИ рд╕реАрдзреИ рд╕рдореНрдкрд░реНрдХ рдЧрд░реНрдиреЗ рд╕рдордп рддрд╛рд▓рд┐рдХрд╛рдХреЛ рд▓рд╛рдЧрд┐ рдХреБрдиреИ рддрд░рд┐рдХрд╛ рдкрдирд┐ рдЫреИрдиред рддреНрдпрд╕рдХрд╛рд░рдг, рдЕрдиреБрд╕реВрдЪрдХрд▓реЗ рднреЛрд▓реНрдпреБрдорд╣рд░реВ рдкрд╣реБрдБрдЪ рдЧрд░реНрди рд╕рдХрд┐рдиреЗ (рдврд┐рд▓реЛ рдмрд╛рдЗрдиреНрдбрд┐рдЩ) рд╡рд╛ рд╕реНрдерд╛рдирдХреЛ рдЫрдиреЛрдЯ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдбреНрд░рд╛рдЗрднрд░рдорд╛ рдЫреЛрдбреЗрд╕рдореНрдо рдиреЛрдбрд╣рд░реВ рдкреЛрд▓ рдЧрд░реНрдЫ (рддрддреНрдХрд╛рд▓ рдмрд╛рдзреНрдпрдХрд╛рд░реА)ред

рдирдпрд╛рдБ рдПрдкреАрдЖрдИ CSIStorageCapacity, рдЬреБрди рдЕрд▓реНрдлрд╛ рдЪрд░рдгрдорд╛ рдЫ, рдЖрд╡рд╢реНрдпрдХ рдбрд╛рдЯрд╛ etcd рдорд╛ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ рддрд╛рдХрд┐ рдпреЛ рдЕрдиреБрд╕реВрдЪрдХрдорд╛ рдЙрдкрд▓рдмреНрдз рдЫред рд╕рд╛рдорд╛рдиреНрдп рдЙрджреНрджреЗрд╢реНрдп рдЕрд▓реНрдкрдХрд╛рд▓рд┐рдХ рднреЛрд▓реНрдпреБрдорд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдердирдХреЛ рд╡рд┐рдкрд░реАрдд, рдЬрдм рддрдкрд╛рдЗрдБ рдбреНрд░рд╛рдЗрднрд░ рддреИрдирд╛рдд рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ, рддрдкрд╛рдЗрдБрд▓реЗ рднрдгреНрдбрд╛рд░рдг рдХреНрд╖рдорддрд╛ рдЯреНрд░реНрдпрд╛рдХрд┐рдЩ рд╕рдХреНрд╖рдо рдЧрд░реНрдиреБрдкрд░реНрдЫ: external-provisioner рд╕рд╛рдорд╛рдиреНрдп рдорд╛рд░реНрдлрдд рдЪрд╛рд▓рдХрдмрд╛рдЯ рдкреНрд░рд╛рдкреНрдд рдХреНрд╖рдорддрд╛ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рдХрд╛рд╢рд┐рдд рдЧрд░реНрдиреБрдкрд░реНрдЫ GetCapacity.

рдпрджрд┐ рдЕрдиреБрд╕реВрдЪрдХрд▓реЗ рдврд┐рд▓реЛ рдмрд╛рдЗрдиреНрдбрд┐рдЩ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдЕрдирдмрд╛рдЙрдиреНрдб рднреЛрд▓реНрдпреБрдордХреЛ рд╕рд╛рде рдкреЛрдбрдХреЛ рд▓рд╛рдЧрд┐ рдиреЛрдб рдЪрдпрди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ рднрдиреЗ, рд░ рдбреНрд░рд╛рдЗрднрд░рд▓реЗ рдЭрдгреНрдбрд╛ рд╕реЗрдЯ рдЧрд░реЗрд░ рдбрд┐рдкреНрд▓реЛрдпрдореЗрдиреНрдЯрдХреЛ рд╕рдордпрдорд╛ рдпреЛ рд╕реБрд╡рд┐рдзрд╛ рд╕рдХреНрд╖рдо рдЧрд░реЗрдХреЛ рдЫред CSIDriver.storageCapacity, рддреНрдпрд╕рдкрдЫрд┐ рдкрд░реНрдпрд╛рдкреНрдд рднрдгреНрдбрд╛рд░рдг рдХреНрд╖рдорддрд╛ рдирднрдПрдХрд╛ рдиреЛрдбрд╣рд░реВ рд╕реНрд╡рддрдГ рдЦрд╛рд░реЗрдЬ рд╣реБрдиреЗрдЫрдиреНред рдпрд╕рд▓реЗ рд╕рд╛рдорд╛рдиреНрдп рдЙрджреНрджреЗрд╢реНрдпрдХрд╛ рдХреНрд╖рдгрд┐рдХ рд░ рдирд┐рд░рдиреНрддрд░ рднреЛрд▓реНрдпреБрдорд╣рд░реВ рджреБрд╡реИрдХрд╛ рд▓рд╛рдЧрд┐ рдХрд╛рдо рдЧрд░реНрдЫ, рддрд░ CSI рдЕрд▓реНрдкрдХрд╛рд▓рд┐рдХ рднреЛрд▓реНрдпреБрдорд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╣реЛрдЗрди рдХрд┐рдирднрдиреЗ рддрд┐рдиреАрд╣рд░реВрдХрд╛ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ Kubernetes рджреНрд╡рд╛рд░рд╛ рдкрдвреНрди рд╕рдХрд┐рдБрджреИрдиред

рд╕рд╛рдорд╛рдиреНрдп рд░реВрдкрдорд╛, рдкреЛрдбрд╣рд░реВ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реБрдиреБ рдЕрдШрд┐ рддреБрд░реБрдиреНрддреИ рд▓рд┐рдЩреНрдХ рдЧрд░рд┐рдПрдХреЛ рднреЛрд▓реНрдпреБрдорд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдиреНрдЫ, рд░ рддрд┐рдиреАрд╣рд░реВрдХреЛ рд╕реНрдерд╛рди рднрдгреНрдбрд╛рд░рдг рдбреНрд░рд╛рдЗрднрд░рджреНрд╡рд╛рд░рд╛ рдЫрдиреЛрдЯ рдЧрд░рд┐рдиреНрдЫ, рддреНрдпрд╕реИрд▓реЗ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрджрд╛ external-provisioner рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛, рддрддреНрдХрд╛рд▓ рдмрд╛рдЗрдиреНрдбрд┐рдЩрдХрд╛ рд╕рд╛рде рднрдгреНрдбрд╛рд░рдг рдХрдХреНрд╖рд╛рд╣рд░реВ рдЫреЛрдбрд┐рдПрдХрд╛ рдЫрдиреН, рдХрд┐рдирдХрд┐ рдпреЛ рдбреЗрдЯрд╛ рдЬрд╕рд░реА рдкрдирд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреЗ рдЫреИрдиред

kubernetes рдЕрдиреБрд╕реВрдЪрдХрд▓рд╛рдИ рд╕рдореНрднрд╛рд╡рд┐рдд рд░реВрдкрдорд╛ рдкреБрд░рд╛рдиреЛ рдЬрд╛рдирдХрд╛рд░реАрдХреЛ рд╕рд╛рде рдХрд╛рдо рдЧрд░реНрди рдмрд╛рдзреНрдп рдкрд╛рд░рд┐рдПрдХреЛ рд╣реБрдирд╛рд▓реЗ, рднреЛрд▓реНрдпреБрдо рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрд╛ рдкреНрд░рддреНрдпреЗрдХ рдЕрд╡рд╕реНрдерд╛рдорд╛ рдХреНрд╖рдорддрд╛ рдЙрдкрд▓рдмреНрдз рд╣реБрдиреЗрдЫ рднрдиреНрдиреЗ рдХреБрдиреИ рдЧреНрдпрд╛рд░реЗрдиреНрдЯреА рдЫреИрди, рддрд░ рдкреБрди: рдкреНрд░рдпрд╛рд╕ рдирдЧрд░реА рд╕рд┐рд░реНрдЬрдирд╛ рд╣реБрдиреЗ рд╕рдореНрднрд╛рд╡рдирд╛рд╣рд░реВ рдЕрдЭреИ рдмрдвреЗрдХрд╛ рдЫрдиреНред

рдПрдирдмреА рддрдкрд╛рдИрдВ рдердк рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рд╕рд╛рдереИ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдкрдорд╛ "рдмрд┐рд░рд╛рд▓рд╛рд╣рд░реВрдХреЛ рд╕реНрдЯреНрдпрд╛рдиреНрдбрдорд╛ рдЕрднреНрдпрд╛рд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реН", рд░ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдмреБрдЭреНрди рдирд╕рдХрд┐рдиреЗ рд╕реНрдерд┐рддрд┐рдорд╛, рдЧрд╣рди рдкрд╛рдареНрдпрдХреНрд░рдорд╣рд░реВрдорд╛ рдпреЛрдЧреНрдп рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рд╕рдорд░реНрдерди рд╕рд╣рд╛рдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреБрд╣реЛрд╕реН - Kubernetes рдЖрдзрд╛рд░ рд╕реЗрдкреНрдЯреЗрдореНрдмрд░ 28-30 рдорд╛ рдЖрдпреЛрдЬрд┐рдд рд╣реБрдиреЗрдЫ, рд░ рдердк рдЙрдиреНрдирдд рд╡рд┐рд╢реЗрд╖рдЬреНрдЮрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ Kubernetes рдореЗрдЧрд╛ рдЕрдХреНрдЯреЛрдмрд░ 14-16ред

рд╕реБрд░рдХреНрд╖рд╛

CSISstorage рдХреНрд╖рдорддрд╛

CSIStorageCapacity рд╡рд╕реНрддреБрд╣рд░реВ рдиреЗрдорд╕реНрдкреЗрд╕рд╣рд░реВрдорд╛ рд░рд╣рдиреНрдЫрдиреН; рдкреНрд░рддреНрдпреЗрдХ CSI рдбреНрд░рд╛рдЗрднрд░рд▓рд╛рдИ рдпрд╕рдХреЛ рдЖрдлреНрдиреИ рдиреЗрдорд╕реНрдкреЗрд╕рдорд╛ рд░реЛрд▓ рдЖрдЙрдЯ рдЧрд░реНрджрд╛, рдбрд╛рдЯрд╛ рдХрд╣рд╛рдБрдмрд╛рдЯ рдЖрдЙрдБрджреИрдЫ рднрдиреНрдиреЗ рд╕реНрдкрд╖реНрдЯ рднрдПрдХреЛрд▓реЗ рддреНрдпреЛ рдард╛рдЙрдБрдорд╛ CSIStorageCapacity рдорд╛ RBAC рдЕрдзрд┐рдХрд╛рд░рд╣рд░реВ рдкреНрд░рддрд┐рдмрдиреНрдзрд┐рдд рдЧрд░реНрди рд╕рд┐рдлрд╛рд░рд┐рд╕ рдЧрд░рд┐рдиреНрдЫред Kubernetes рд▓реЗ рдЬрд╕рд░реА рдкрдирд┐ рдпрд╕рдХреЛ рд▓рд╛рдЧрд┐ рдЬрд╛рдБрдЪ рдЧрд░реНрджреИрди, рд░ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдбреНрд░рд╛рдЗрднрд░рд╣рд░реВ рдПрдЙрдЯреИ рдиреЗрдорд╕реНрдкреЗрд╕рдорд╛ рд░рд╛рдЦрд┐рдиреНрдЫрдиреН, рддреНрдпрд╕реИрд▓реЗ рдЕрдиреНрддрддрдГ рдбреНрд░рд╛рдЗрднрд░рд╣рд░реВрд▓реЗ рдХрд╛рдо рдЧрд░реНрдиреЗ рд░ рдЧрд▓рдд рдбрд╛рдЯрд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдирдЧрд░реНрдиреЗ рдЕрдкреЗрдХреНрд╖рд╛ рдЧрд░рд┐рдиреНрдЫ (рд░ рдпреЛ рдЬрд╣рд╛рдБ рдореЗрд░реЛ рдХрд╛рд░реНрдб рдЕрд╕рдлрд▓ рднрдпреЛ, рд▓рдЧрднрдЧред рдПрдХ рджрд╛рд╣реНрд░реА рдордЬрд╛рдХ рдорд╛ рдЖрдзрд╛рд░рд┐рдд рдЕрдиреБрд╡рд╛рджрдХ)

рд╕рд╛рдорд╛рдиреНрдп рдЙрджреНрджреЗрд╢реНрдп рдЕрд▓реНрдкрдХрд╛рд▓рд┐рдХ рднреЛрд▓реНрдпреБрдорд╣рд░реВ

рдпрджрд┐ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрд╕рдБрдЧ рдкреЛрдб (рдкреНрд░рддреНрдпрдХреНрд╖ рд╡рд╛ рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рд░реВрдкрдорд╛) рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗ рдЕрдзрд┐рдХрд╛рд░ рдЫ рднрдиреЗ, рддрд┐рдиреАрд╣рд░реВрд╕рдБрдЧ рднреЛрд▓реНрдпреБрдордорд╛ рдЕрдиреБрд░реЛрдз рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗ рдЕрдзрд┐рдХрд╛рд░ рдирднрдП рддрд╛рдкрдирд┐ рддрд┐рдиреАрд╣рд░реВрд▓реЗ рд╕рд╛рдорд╛рдиреНрдп рдЙрджреНрджреЗрд╢реНрдпрдХрд╛ рдХреНрд╖рдгрд┐рдХ рднреЛрд▓реНрдпреБрдорд╣рд░реВ рдкрдирд┐ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рд╕рдХреНрд╖рдо рд╣реБрдиреЗрдЫрдиреНред рдпреЛ рдХрд┐рдирднрдиреЗ RBAC рдЕрдиреБрдорддрд┐ рдЬрд╛рдБрдЪрд╣рд░реВ PVC рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗ рдирд┐рдпрдиреНрддреНрд░рдХрдорд╛ рд▓рд╛рдЧреВ рдЧрд░рд┐рдиреНрдЫ, рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд▓рд╛рдИ рд╣реЛрдЗрдиред рдпреЛ рдердкреНрдирдХреЛ рд▓рд╛рдЧрд┐ рдореБрдЦреНрдп рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛ рдЖрдлреНрдиреЛ рдЦрд╛рддрд╛рдорд╛, рдХреНрд▓рд╕реНрдЯрд░рд╣рд░реВрдорд╛ рдпреЛ рд╕реБрд╡рд┐рдзрд╛ рд╕рдХреНрд╖рдо рдЧрд░реНрдиреБ рдЕрдШрд┐ рдЬрд╣рд╛рдБ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрд╕рдБрдЧ рднреЛрд▓реНрдпреБрдорд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗ рдЕрдзрд┐рдХрд╛рд░ рд╣реБрдБрджреИрдиред

рдЙрджрд╛рд╣рд░рдг:

рдЕрд▓рдЧ рд╕рд╛рдЦрд╛ PMEM-CSI рд▓реЗ QEMU рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рдирд╣рд░реВ рднрд┐рддреНрд░ рдЕрд▓реНрдлрд╛ рдЪрд░рдгрдорд╛ рд░рд╣реЗрдХрд╛ рд╕рдмреИ рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВрд╕рд╣рд┐рдд Kubernetes 1.19 рдХреНрд▓рд╕реНрдЯрд░ рдЪрд▓рд╛рдЙрдирдХрд╛ рд▓рд╛рдЧрд┐ рдЖрд╡рд╢реНрдпрдХ рд╕рдмреИ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫред рдЪрд╛рд▓рдХ рдХреЛрдб рдкрд░рд┐рд╡рд░реНрддрди рднрдПрдХреЛ рдЫреИрди, рдХреЗрд╡рд▓ рддреИрдирд╛рддреА рдкрд░рд┐рд╡рд░реНрддрди рднрдПрдХреЛ рдЫред

рдЙрдкрдпреБрдХреНрдд рдореЗрд╕рд┐рдирдорд╛ (рд▓рд┐рдирдХреНрд╕, рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд▓реЗ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдЫ рдбрдХрд░, рд╣реЗрд░ рдпрд╣рд╛рдБ рд╡рд┐рд╡рд░рдгрд╣рд░реВ) рдпреА рдЖрджреЗрд╢рд╣рд░реВрд▓реЗ рдХреНрд▓рд╕реНрдЯрд░ рд▓реНрдпрд╛рдЙрдиреЗрдЫрдиреН рд░ PMEM-CSI рдбреНрд░рд╛рдЗрднрд░ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреЗрдЫрдиреН:

git clone --branch=kubernetes-1-19-blog-post https://github.com/intel/pmem-csi.git
cd pmem-csi
export TEST_KUBERNETES_VERSION=1.19 TEST_FEATURE_GATES=CSIStorageCapacity=true,GenericEphemeralVolume=true TEST_PMEM_REGISTRY=intel
make start && echo && test/setup-deployment.sh

рд╕рдмреИ рдХрд╛рдо рдЧрд░реЗрдкрдЫрд┐, рдЖрдЙрдЯрдкреБрдЯрд▓реЗ рдкреНрд░рдпреЛрдЧрдХреЛ рд▓рд╛рдЧрд┐ рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫ:

The test cluster is ready. Log in with [...]/pmem-csi/_work/pmem-govm/ssh.0, run
kubectl once logged in.  Alternatively, use kubectl directly with the
following env variable:
   KUBECONFIG=[...]/pmem-csi/_work/pmem-govm/kube.config

secret/pmem-csi-registry-secrets created
secret/pmem-csi-node-secrets created
serviceaccount/pmem-csi-controller created
...
To try out the pmem-csi driver ephemeral volumes:
   cat deploy/kubernetes-1.19/pmem-app-ephemeral.yaml |
   [...]/pmem-csi/_work/pmem-govm/ssh.0 kubectl create -f -

CSISstorageCapacity рд╡рд╕реНрддреБрд╣рд░реВ рдорд╛рдирд┐рд╕рд▓реЗ рдкрдвреНрдирдХреЛ рд▓рд╛рдЧрд┐ рд╣реЛрдЗрди, рддреНрдпрд╕реИрд▓реЗ рдХреЗрд╣реА рдкреНрд░рд╢реЛрдзрди рдЖрд╡рд╢реНрдпрдХ рдЫред Golang рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдлрд┐рд▓реНрдЯрд░рд▓реЗ рднрдгреНрдбрд╛рд░рдг рд╡рд░реНрдЧрд╣рд░реВ рджреЗрдЦрд╛рдЙрдиреЗрдЫ, рдпреЛ рдЙрджрд╛рд╣рд░рдгрд▓реЗ рдирд╛рдо, рдЯреЛрдкреЛрд▓реЛрдЬреА рд░ рдХреНрд╖рдорддрд╛ рджреЗрдЦрд╛рдЙрдиреЗрдЫ:

$ kubectl get 
        -o go-template='{{range .items}}{{if eq .storageClassName "pmem-csi-sc-late-binding"}}{{.metadata.name}} {{.nodeTopology.matchLabels}} {{.capacity}}
{{end}}{{end}}' 
        csistoragecapacities
csisc-2js6n map[pmem-csi.intel.com/node:pmem-csi-pmem-govm-worker2] 30716Mi
csisc-sqdnt map[pmem-csi.intel.com/node:pmem-csi-pmem-govm-worker1] 30716Mi
csisc-ws4bv map[pmem-csi.intel.com/node:pmem-csi-pmem-govm-worker3] 30716Mi

рдПрдХрд▓ рд╡рд╕реНрддреБрдорд╛ рдирд┐рдореНрди рд╕рд╛рдордЧреНрд░реА рдЫ:

$ kubectl describe csistoragecapacities/csisc-6cw8j
Name:         csisc-sqdnt
Namespace:    default
Labels:       <none>
Annotations:  <none>
API Version:  storage.k8s.io/v1alpha1
Capacity:     30716Mi
Kind:         CSIStorageCapacity
Metadata:
  Creation Timestamp:  2020-08-11T15:41:03Z
  Generate Name:       csisc-
  Managed Fields:
    ...
  Owner References:
    API Version:     apps/v1
    Controller:      true
    Kind:            StatefulSet
    Name:            pmem-csi-controller
    UID:             590237f9-1eb4-4208-b37b-5f7eab4597d1
  Resource Version:  2994
  Self Link:         /apis/storage.k8s.io/v1alpha1/namespaces/default/csistoragecapacities/csisc-sqdnt
  UID:               da36215b-3b9d-404a-a4c7-3f1c3502ab13
Node Topology:
  Match Labels:
    pmem-csi.intel.com/node:  pmem-csi-pmem-govm-worker1
Storage Class Name:           pmem-csi-sc-late-binding
Events:                       <none>

рдПрдХрд▓ рд╕рд╛рдорд╛рдиреНрдп рдЙрджреНрджреЗрд╢реНрдп рдЕрд▓реНрдкрдХрд╛рд▓рд┐рдХ рднреЛрд▓реНрдпреБрдордХреЛ рд╕рд╛рде рдбреЗрдореЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реМрдВред рдлрд╛рдЗрд▓ рд╕рд╛рдордЧреНрд░реА pmem-app-ephemeral.yaml:

# This example Pod definition demonstrates
# how to use generic ephemeral inline volumes
# with a PMEM-CSI storage class.
kind: Pod
apiVersion: v1
metadata:
  name: my-csi-app-inline-volume
spec:
  containers:
    - name: my-frontend
      image: intel/pmem-csi-driver-test:v0.7.14
      command: [ "sleep", "100000" ]
      volumeMounts:
      - mountPath: "/data"
        name: my-csi-volume
  volumes:
  - name: my-csi-volume
    ephemeral:
      volumeClaimTemplate:
        spec:
          accessModes:
          - ReadWriteOnce
          resources:
            requests:
              storage: 4Gi
          storageClassName: pmem-csi-sc-late-binding

рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реЗрдкрдЫрд┐, рдорд╛рдерд┐рдХрд╛ рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВрдорд╛ рджреЗрдЦрд╛рдЗрдП рдЕрдиреБрд╕рд╛рд░, рд╣рд╛рдореАрд╕рдБрдЧ рдЕрдм рдердк рдкреЛрдб рд░ PVC рдЫ:

$ kubectl get pods/my-csi-app-inline-volume -o wide
NAME                       READY   STATUS    RESTARTS   AGE     IP          NODE                         NOMINATED NODE   READINESS GATES
my-csi-app-inline-volume   1/1     Running   0          6m58s   10.36.0.2   pmem-csi-pmem-govm-worker1   <none>           <none>
$ kubectl get pvc/my-csi-app-inline-volume-my-csi-volume
NAME                                     STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS               AGE
my-csi-app-inline-volume-my-csi-volume   Bound    pvc-c11eb7ab-a4fa-46fe-b515-b366be908823   4Gi        RWO            pmem-csi-sc-late-binding   9m21s

PVC рдорд╛рд▓рд┐рдХ - рдЕрдиреНрддрд░реНрдЧрдд:

$ kubectl get -o yaml pvc/my-csi-app-inline-volume-my-csi-volume
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  annotations:
    pv.kubernetes.io/bind-completed: "yes"
    pv.kubernetes.io/bound-by-controller: "yes"
    volume.beta.kubernetes.io/storage-provisioner: pmem-csi.intel.com
    volume.kubernetes.io/selected-node: pmem-csi-pmem-govm-worker1
  creationTimestamp: "2020-08-11T15:44:57Z"
  finalizers:
  - kubernetes.io/pvc-protection
  managedFields:
    ...
  name: my-csi-app-inline-volume-my-csi-volume
  namespace: default
  ownerReferences:
  - apiVersion: v1
    blockOwnerDeletion: true
    controller: true
    kind: Pod
    name: my-csi-app-inline-volume
    uid: 75c925bf-ca8e-441a-ac67-f190b7a2265f
...

рдХреЛ рд▓рд╛рдЧреА рдЕрдкреЗрдХреНрд╖рд┐рдд рдЕрдкрдбреЗрдЯ рдЧрд░рд┐рдПрдХреЛ рдЬрд╛рдирдХрд╛рд░реА pmem-csi-pmem-govm-worker1:

csisc-2js6n map[pmem-csi.intel.com/node:pmem-csi-pmem-govm-worker2] 30716Mi
csisc-sqdnt map[pmem-csi.intel.com/node:pmem-csi-pmem-govm-worker1] 26620Mi
csisc-ws4bv map[pmem-csi.intel.com/node:pmem-csi-pmem-govm-worker3] 30716Mi

рдпрджрд┐ рдЕрд░реНрдХреЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд▓рд╛рдИ 26620Mi рднрдиреНрджрд╛ рдмрдвреА рдЪрд╛рд╣рд┐рдиреНрдЫ рднрдиреЗ, рдЕрдиреБрд╕реВрдЪрдХрд▓реЗ рдЦрд╛рддрд╛рдорд╛ рд▓рд┐рдиреЗ рдЫреИрди pmem-csi-pmem-govm-worker1 рдХреБрдиреИ рдкрдирд┐ рдЕрд╡рд╕реНрдерд╛рдорд╛ред

рдХреЗ рдЕрд░реНрдХреЛ рдЫ?

рджреБрдмреИ рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ рдЕрдЭреИ рд╡рд┐рдХрд╛рд╕рдорд╛ рдЫрдиреНред рдЕрд▓реНрдлрд╛ рдкрд░реАрдХреНрд╖рдгрдХреЛ рдХреНрд░рдордорд╛ рдзреЗрд░реИ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВ рдЦреЛрд▓рд┐рдПрдХрд╛ рдерд┐рдПред рд╕реБрдзрд╛рд░ рдкреНрд░рд╕реНрддрд╛рд╡ рд▓рд┐рдЩреНрдХрд▓реЗ рдмрд┐рдЯрд╛ рдЪрд░рдгрдорд╛ рд╕рд╛рд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдЧрд░реНрдиреБ рдкрд░реНрдиреЗ рдХрд╛рдо, рд╕рд╛рдереИ рдХреБрди рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рдкрд╣рд┐рд▓реЗ рдиреИ рд╡рд┐рдЪрд╛рд░ рдЧрд░реА рдЕрд╕реНрд╡реАрдХреГрдд рднрдЗрд╕рдХреЗрдХрд╛ рдЫрдиреН рднрдиреЗрд░ рджрд╕реНрддрд╛рд╡реЗрдЬ рдЧрд░реНрджрдЫ:

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди