Kubernetes Basics
Kubernetes Basics
The original author of this page is Jorge (read his original post here)
Architecture & Basics
What does Kubernetes do?
рдХрдВрдЯреЗрдирд░/рдХреЛ рдХрдВрдЯреЗрдирд░ рдЗрдВрдЬрди рдореЗрдВ рдЪрд▓рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рд╢реЗрдбреНрдпреВрд▓ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рдорд┐рд╢рди рдХреБрд╢рд▓ рдмрдирд╛рддрд╛ рд╣реИред
рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рдЬреАрд╡рд┐рдд рд░рдЦрддрд╛ рд╣реИред
рдХрдВрдЯреЗрдирд░ рд╕рдВрдЪрд╛рд░ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рддреИрдирд╛рддреА рддрдХрдиреАрдХреЛрдВ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдЬрд╛рдирдХрд╛рд░реА рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИред
Architecture
Node: рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдЬрд┐рд╕рдореЗрдВ рдкреЙрдб рдпрд╛ рдкреЙрдбреНрд╕ рд╣реЛрддреЗ рд╣реИрдВред
Pod: рдПрдХ рдХрдВрдЯреЗрдирд░ рдпрд╛ рдХрдИ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рд▓рдкреЗрдЯрдиреЗ рд╡рд╛рд▓рд╛ред рдПрдХ рдкреЙрдб рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдЗрд╕рд▓рд┐рдП рдЖрдорддреМрд░ рдкрд░, рдПрдХ рдкреЙрдб рдХреЗрд╡рд▓ 1 рдХрдВрдЯреЗрдирд░ рдЪрд▓рд╛рддрд╛ рд╣реИ)ред рдкреЙрдб рд╡рд╣ рддрд░реАрдХрд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдЪрд▓ рд░рд╣реЗ рдХрдВрдЯреЗрдирд░ рддрдХрдиреАрдХ рдХреЛ рдЕрдореВрд░реНрдд рдХрд░рддрд╛ рд╣реИред
Service: рдкреНрд░рддреНрдпреЗрдХ рдкреЙрдб рдХрд╛ 1 рдЖрдВрддрд░рд┐рдХ IP рдкрддрд╛ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдиреЛрдб рдХреЗ рдЖрдВрддрд░рд┐рдХ рд░реЗрдВрдЬ рд╕реЗ рд╣реЛрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕реЗ рдПрдХ рд╕реЗрд╡рд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреА рдЙрдЬрд╛рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕реЗрд╡рд╛ рдХрд╛ рднреА рдПрдХ IP рдкрддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рд▓рдХреНрд╖реНрдп рдкреЙрдбреНрд╕ рдХреЗ рдмреАрдЪ рд╕рдВрдЪрд╛рд░ рдмрдирд╛рдП рд░рдЦрдирд╛ рд╣реИ рддрд╛рдХрд┐ рдпрджрд┐ рдПрдХ рдорд░ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдирдпрд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди (рдПрдХ рдЕрд▓рдЧ рдЖрдВрддрд░рд┐рдХ IP рдХреЗ рд╕рд╛рде) рдЙрд╕реА рд╕реЗрд╡рд╛ рдХреЗ IP рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛ред рдЗрд╕реЗ рдЖрдВрддрд░рд┐рдХ рдпрд╛ рдмрд╛рд╣рд░реА рдХреЗ рд░реВрдк рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕реЗрд╡рд╛ рддрдм рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддреА рд╣реИ рдЬрдм 2 рдкреЙрдбреНрд╕ рдПрдХ рд╣реА рд╕реЗрд╡рд╛ рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВред рдЬрдм рдПрдХ рд╕реЗрд╡рд╛ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ рддреЛ рдЖрдк рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрд╡рд╛ рдХреЗ рдЕрдВрдд рдмрд┐рдВрджреБрдУрдВ рдХреЛ
kubectl get endpoints
рдЪрд▓рд╛рдХрд░ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВредKubelet: рдкреНрд░рд╛рдердорд┐рдХ рдиреЛрдб рдПрдЬреЗрдВрдЯред рд╡рд╣ рдШрдЯрдХ рдЬреЛ рдиреЛрдб рдФрд░ рдХреБрдмectl рдХреЗ рдмреАрдЪ рд╕рдВрдЪрд╛рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдХреЗрд╡рд▓ рдкреЙрдбреНрд╕ рдЪрд▓рд╛ рд╕рдХрддрд╛ рд╣реИ (API рд╕рд░реНрд╡рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ)ред рдХреБрдмрд▓реЗрдЯ рдЙрди рдХрдВрдЯреЗрдирд░реЛрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рджреНрд╡рд╛рд░рд╛ рдирд╣реАрдВ рдмрдирд╛рдП рдЧрдП рдереЗред
Kube-proxy: рд╡рд╣ рд╕реЗрд╡рд╛ рд╣реИ рдЬреЛ apiserver рдФрд░ рдиреЛрдб рдХреЗ рдмреАрдЪ рд╕рдВрдЪрд╛рд░ (рд╕реЗрд╡рд╛рдУрдВ) рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рдЖрдзрд╛рд░ рдиреЛрдбреНрд╕ рдХреЗ рд▓рд┐рдП IPtables рд╣реИред рд╕рдмрд╕реЗ рдЕрдиреБрднрд╡реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреНрдп рд╡рд┐рдХреНрд░реЗрддрд╛рдУрдВ рд╕реЗ рдЕрдиреНрдп kube-proxies рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
Sidecar container: рд╕рд╛рдЗрдбрдХрд╛рд░ рдХрдВрдЯреЗрдирд░ рд╡реЗ рдХрдВрдЯреЗрдирд░ рд╣реИрдВ рдЬреЛ рдкреЙрдб рдореЗрдВ рдореБрдЦреНрдп рдХрдВрдЯреЗрдирд░ рдХреЗ рд╕рд╛рде рдЪрд▓рдиреЗ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рд╕рд╛рдЗрдбрдХрд╛рд░ рдкреИрдЯрд░реНрди рдореМрдЬреВрджрд╛ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдмрдврд╝рд╛рддрд╛ рдФрд░ рдмрдврд╝рд╛рддрд╛ рд╣реИ рдмрд┐рдирд╛ рдЙрдиреНрд╣реЗрдВ рдмрджрд▓реЗред рдЖрдЬрдХрд▓, рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдХрдВрдЯреЗрдирд░ рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рд▓рдкреЗрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╣реАрдВ рднреА рдЪрд▓ рд╕рдХреЗред рдПрдХ рдХрдВрдЯреЗрдирд░ рдХреЗрд╡рд▓ рдПрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╡рд╣ рдХрд╛рдо рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд░рддрд╛ рд╣реИред
Master process:
Api Server: рдпрд╣ рд╡рд╣ рддрд░реАрдХрд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдФрд░ рдкреЙрдб рдорд╛рд╕реНрдЯрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░рддреЗ рд╣реИрдВред рдХреЗрд╡рд▓ рдкреНрд░рдорд╛рдгрд┐рдд рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рдЕрдиреБрдорддрд┐ рджреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред
Scheduler: рд╢реЗрдбреНрдпреВрд▓рд┐рдВрдЧ рдХрд╛ рддрд╛рддреНрдкрд░реНрдп рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рд╕реЗ рд╣реИ рдХрд┐ рдкреЙрдбреНрд╕ рдХреЛ рдиреЛрдбреНрд╕ рд╕реЗ рдорд┐рд▓рд╛рдпрд╛ рдЬрд╛рдП рддрд╛рдХрд┐ рдХреБрдмрд▓реЗрдЯ рдЙрдиреНрд╣реЗрдВ рдЪрд▓рд╛ рд╕рдХреЗред рдЗрд╕рдореЗрдВ рдпрд╣ рддрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдмреБрджреНрдзрд┐рдорддреНрддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕рд╛ рдиреЛрдб рдЕрдзрд┐рдХ рдЙрдкрд▓рдмреНрдз рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд╕рд╛рде рд╣реИ рдФрд░ рдирдП рдкреЙрдб рдХреЛ рдЙрд╕реЗ рд╕реМрдВрдкрддрд╛ рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╢реЗрдбреНрдпреВрд▓рд░ рдирдП рдкреЙрдбреНрд╕ рд╢реБрд░реВ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдХреЗрд╡рд▓ рдиреЛрдб рдХреЗ рдЕрдВрджрд░ рдЪрд▓ рд░рд╣реЗ рдХреБрдмрд▓реЗрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдирдП рдкреЙрдб рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░реЗрдЧрд╛ред
Kube Controller manager: рдпрд╣ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рд░рд┐рдкреНрд▓рд┐рдХрд╛ рд╕реЗрдЯ рдпрд╛ рддреИрдирд╛рддреА рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рд╣реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкреЙрдбреНрд╕ рдпрд╛ рдиреЛрдбреНрд╕ рдЪрд▓ рд░рд╣реЗ рд╣реИрдВред рдпрджрд┐ рдХреЛрдИ рдкреЙрдб рдЧрд╛рдпрдм рд╣реИ, рддреЛ рдпрд╣ рдПрдХ рдирдпрд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реЗрдбреНрдпреВрд▓рд░ рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░реЗрдЧрд╛ред рдпрд╣ API рдХреЗ рд▓рд┐рдП рдкреБрдирд░реБрддреНрдкрд╛рджрди, рдЯреЛрдХрди рдФрд░ рдЦрд╛рддрд╛ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред
etcd: рдбреЗрдЯрд╛ рднрдВрдбрд╛рд░рдг, рд╕реНрдерд╛рдпреА, рд╕реБрд╕рдВрдЧрдд, рдФрд░ рд╡рд┐рддрд░рд┐рддред рдпрд╣ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рд╣реИ рдФрд░ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреНрд▓рд╕реНрдЯрд░ рдХреА рдкреВрд░реА рд╕реНрдерд┐рддрд┐ рдХреЛ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдВрдЬреА-рдореВрд▓реНрдп рднрдВрдбрд╛рд░рдг рд╣реИ (рдпрд╣рд╛рдБ рдкреНрд░рддреНрдпреЗрдХ рдкрд░рд┐рд╡рд░реНрддрди рд▓реЙрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рд╢реЗрдбреНрдпреВрд▓рд░ рдпрд╛ рдХрдВрдЯреНрд░реЛрд▓рд░ рдкреНрд░рдмрдВрдзрдХ рдЬреИрд╕реЗ рдШрдЯрдХ рдЗрд╕ рдбреЗрдЯрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреЗ рд╣реИрдВ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреМрди рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдП рд╣реИрдВ (рдиреЛрдбреНрд╕ рдХреЗ рдЙрдкрд▓рдмреНрдз рд╕рдВрд╕рд╛рдзрди, рдЪрд▓ рд░рд╣реЗ рдкреЙрдбреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛...)ред
Cloud controller manager: рдпрд╣ рдкреНрд░рд╡рд╛рд╣ рдирд┐рдпрдВрддреНрд░рдг рдФрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд┐рдпрдВрддреНрд░рдХ рд╣реИ, рдпрд╛рдиреА: рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ AWS рдпрд╛ OpenStack рдореЗрдВ рдХреНрд▓рд╕реНрдЯрд░ рд╣реИрдВред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЪреВрдВрдХрд┐ рдХрдИ рдиреЛрдбреНрд╕ (рдХрдИ рдкреЙрдбреНрд╕ рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ) рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдХрдИ рдорд╛рд╕реНрдЯрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдБ рднреА рд╣реЛ рд╕рдХрддреА рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдПрдкреАрдЖрдИ рд╕рд░реНрд╡рд░ рддрдХ рдкрд╣реБрдВрдЪ рд▓реЛрдб рд╕рдВрддреБрд▓рд┐рдд рд╣реЛрддреА рд╣реИ рдФрд░ рдЙрдирдХрд╛ etcd рд╕рдордиреНрд╡рдпрд┐рдд рд╣реЛрддрд╛ рд╣реИред
Volumes:
рдЬрдм рдПрдХ рдкреЙрдб рдбреЗрдЯрд╛ рдмрдирд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдкреЙрдб рдХреЗ рдЧрд╛рдпрдм рд╣реЛрдиреЗ рдкрд░ рдЦреЛрдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рд┐рдП, рддреЛ рдЗрд╕реЗ рдПрдХ рднреМрддрд┐рдХ рд╡реЙрд▓реНрдпреВрдо рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдПрдХ рдкреЙрдб рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рд╕реНрдерд╛рдпреА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реЙрд▓реНрдпреВрдо рд╕рдВрд▓рдЧреНрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╡реЙрд▓реНрдпреВрдо рд╕реНрдерд╛рдиреАрдп рдорд╢реАрди рдореЗрдВ рдпрд╛ рджреВрд░рд╕реНрде рднрдВрдбрд╛рд░рдг рдореЗрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рд╡рд┐рднрд┐рдиреНрди рднреМрддрд┐рдХ рдиреЛрдбреНрд╕ рдореЗрдВ рдкреЙрдбреНрд╕ рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдПрдХ рджреВрд░рд╕реНрде рднрдВрдбрд╛рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рд╕рднреА рдкреЙрдбреНрд╕ рдЗрд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░ рд╕рдХреЗрдВред
Other configurations:
ConfigMap: рдЖрдк рд╕реЗрд╡рд╛рдУрдВ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП URLs рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдкреЙрдб рдпрд╣рд╛рдБ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧрд╛ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдмрд╛рдХреА рд╕реЗрд╡рд╛рдУрдВ (рдкреЙрдбреНрд╕) рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рд╕рдВрд╡рд╛рдж рдХрд░рдирд╛ рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдХреЛ рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд╢рдВрд╕рд┐рдд рд╕реНрдерд╛рди рдирд╣реАрдВ рд╣реИ!
Secret: рдпрд╣ рдЧреБрдкреНрдд рдбреЗрдЯрд╛ рдЬреИрд╕реЗ рдкрд╛рд╕рд╡рд░реНрдб, API рдХреБрдВрдЬреА... рдХреЛ B64 рдореЗрдВ рдПрдиреНрдХреЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХрд╛ рд╕реНрдерд╛рди рд╣реИред рдкреЙрдб рдЗрд╕ рдбреЗрдЯрд╛ рдХреЛ рдЖрд╡рд╢реНрдпрдХ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕реЗрд╕ рдХрд░ рд╕рдХреЗрдЧрд╛ред
Deployments: рдпрд╣ рд╡рд╣ рд╕реНрдерд╛рди рд╣реИ рдЬрд╣рд╛рдБ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рджреНрд╡рд╛рд░рд╛ рдЪрд▓рд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдШрдЯрдХреЛрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЖрдорддреМрд░ рдкрд░ рдкреЙрдбреНрд╕ рдХреЗ рд╕рд╛рде рд╕реАрдзреЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдкреЙрдбреНрд╕ рдХреЛ ReplicaSets (рдПрдХ рд╕рдорд╛рди рдкреЙрдбреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЬреЛ рджреЛрд╣рд░рд╛рдИ рдЬрд╛рддреА рд╣реИ) рдореЗрдВ рдЕрдореВрд░реНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рддреИрдирд╛рддрд┐рдпреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рддреИрдирд╛рддрд┐рдпрд╛рдБ stateless рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реЛрддреА рд╣реИрдВред рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП рдиреНрдпреВрдирддрдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдирд╛рдо рдФрд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЫрд╡рд┐ рд╣реИред
StatefulSet: рдпрд╣ рдШрдЯрдХ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдЬреИрд╕реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдПрдХ рд╣реА рднрдВрдбрд╛рд░рдг рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
Ingress: рдпрд╣ рд╡рд╣ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ URL рдХреЗ рд╕рд╛рде рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣ рдмрд╛рд╣рд░реА рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХрд╛ рд╕рд╣реА рддрд░реАрдХрд╛ рд╣реИред
рдпрджрд┐ рдЖрдк рдПрдХ рдЗрдирдЧреНрд░реЗрд╕ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ Ingress Controllers рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдЗрдирдЧреНрд░реЗрд╕ рдХрдВрдЯреНрд░реЛрд▓рд░ рдПрдХ рдкреЙрдб рд╣реИ рдЬреЛ рд╡рд╣ рдЕрдВрдд рдмрд┐рдВрджреБ рд╣реЛрдЧрд╛ рдЬреЛ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧрд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕реЗрд╡рд╛рдУрдВ рдореЗрдВ рд▓реЛрдб рд╕рдВрддреБрд▓рд┐рдд рдХрд░реЗрдЧрд╛ред рдЗрдирдЧреНрд░реЗрд╕ рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рдЗрдирдЧреНрд░реЗрд╕ рдирд┐рдпрдореЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрдиреБрд░реЛрдз рднреЗрдЬреЗрдЧрд╛ред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЗрдирдЧреНрд░реЗрд╕ рдирд┐рдпрдо рд╡рд┐рднрд┐рдиреНрди рдкрдереЛрдВ рдпрд╛ рдпрд╣рд╛рдВ рддрдХ рдХрд┐ рд╡рд┐рднрд┐рдиреНрди рдЖрдВрддрд░рд┐рдХ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдбреЛрдореЗрди рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдПрдХ рдмреЗрд╣рддрд░ рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд░рдерд╛ рдпрд╣ рд╣реЛрдЧреА рдХрд┐ рдХрд┐рд╕реА рднреА рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рднрд╛рдЧ рдХреЛ рдЙрдЬрд╛рдЧрд░ рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреНрд▓рд╛рдЙрдб рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рдпрд╛ рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПред
рдЬрдм рдХреЛрдИ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдХрд┐рд╕реА рднреА рдЗрдирдЧреНрд░реЗрд╕ рдирд┐рдпрдо рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрдирдЧреНрд░реЗрд╕ рдХрдВрдЯреНрд░реЛрд▓рд░ рдЗрд╕реЗ "рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдмреИрдХрдПрдВрдб" рдХреА рдУрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░реЗрдЧрд╛ред рдЖрдк рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдкрддреЗ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдирдЧреНрд░реЗрд╕ рдХрдВрдЯреНрд░реЛрд▓рд░ рдХрд╛
describe
рдХрд░ рд╕рдХрддреЗ рд╣реИрдВредminikube addons enable ingress
PKI infrastructure - Certificate Authority CA:
CA рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рднреАрддрд░ рд╕рднреА рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдЯ рд╣реИред
рдШрдЯрдХреЛрдВ рдХреЛ рдПрдХ-рджреВрд╕рд░реЗ рдХреЛ рдорд╛рдиреНрдп рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рд╕рднреА рдХреНрд▓рд╕реНрдЯрд░ рдкреНрд░рдорд╛рдгрдкрддреНрд░ CA рджреНрд╡рд╛рд░рд╛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рд╣реЛрддреЗ рд╣реИрдВред
ETCd рдХрд╛ рдЕрдкрдирд╛ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╣реИред
рдкреНрд░рдХрд╛рд░:
apiserver cert.
kubelet cert.
scheduler cert.
Basic Actions
Minikube
Minikube рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреБрдЫ рддреНрд╡рд░рд┐рдд рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдкрд░ рдмрд┐рдирд╛ рдкреВрд░реЗ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЛ рддреИрдирд╛рдд рдХрд┐рдПред рдпрд╣ рдПрдХ рдорд╢реАрди рдореЗрдВ рдорд╛рд╕реНрдЯрд░ рдФрд░ рдиреЛрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдЪрд▓рд╛рдПрдЧрд╛ред Minikube рдиреЛрдб рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд░реНрдЪреБрдЕрд▓ рдмреЙрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред рдпрд╣рд╛рдБ рджреЗрдЦреЗрдВ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ.
Kubectl Basics
Kubectl
рдХреНрдпреВрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЯреВрд▓ рд╣реИред рдпрд╣ рдХреНрдпреВрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рдХреНрд░рд┐рдпрд╛рдПрдБ рдХрд░рдиреЗ рдпрд╛ рдбреЗрдЯрд╛ рдорд╛рдВрдЧрдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рд╕реНрдЯрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдПрдкреАрдЖрдИ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░рддрд╛ рд╣реИред
Minikube Dashboard
рдбреИрд╢рдмреЛрд░реНрдб рдЖрдкрдХреЛ рдпрд╣ рджреЗрдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдорд┐рдиреАрдХреНрдпреВрдм рдХреНрдпрд╛ рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реИ, рдЖрдк рдЗрд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП URL рдпрд╣рд╛рдБ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ:
YAML configuration files examples
рдкреНрд░рддреНрдпреЗрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ 3 рднрд╛рдЧ рд╣реЛрддреЗ рд╣реИрдВ: metadata, specification (рдХреНрдпрд╛ рд▓реЙрдиреНрдЪ рдХрд░рдирд╛ рд╣реИ), status (рдЗрдЪреНрдЫрд┐рдд рд╕реНрдерд┐рддрд┐)ред рдбрд┐рдкреНрд▓реЙрдпрдореЗрдВрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреА рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХреЗрд╢рди рдХреЗ рдЕрдВрджрд░ рдЖрдк рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдореЗрдЬ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рдПрдХ рдирдИ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╕рд╛рде рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИ:
Example of Deployment + Service declared in the same configuration file (from here)
рдЪреВрдВрдХрд┐ рдПрдХ рд╕реЗрд╡рд╛ рдЖрдорддреМрд░ рдкрд░ рдПрдХ рдбрд┐рдкреНрд▓реЙрдпрдореЗрдВрдЯ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рджреЛрдиреЛрдВ рдХреЛ рдПрдХ рд╣реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ (рдЗрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдШреЛрд╖рд┐рдд рд╕реЗрд╡рд╛ рдХреЗрд╡рд▓ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рд╕реБрд▓рдн рд╣реИ):
рдмрд╛рд╣рд░реА рд╕реЗрд╡рд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЙрджрд╛рд╣рд░рдг
рдпрд╣ рд╕реЗрд╡рд╛ рдмрд╛рд╣рд░реА рд░реВрдк рд╕реЗ рд╕реБрд▓рдн рд╣реЛрдЧреА (рдЪреЗрдХ рдХрд░реЗрдВ nodePort
рдФрд░ type: LoadBlancer
рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ):
рдпрд╣ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИ рд▓реЗрдХрд┐рди рдЙрддреНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдЖрдВрддрд░рд┐рдХ рд╕реЗрд╡рд╛рдПрдБ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ Ingress рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
Ingress рдХреЙрдиреНрдлрд╝рд┐рдЧ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрджрд╛рд╣рд░рдг
рдпрд╣ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ http://dashboard.com
рдкрд░ рдЙрдЬрд╛рдЧрд░ рдХрд░реЗрдЧрд╛ред
Example of secrets config file
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдкрд╛рд╕рд╡рд░реНрдб B64 рдореЗрдВ рдПрдиреНрдХреЛрдбреЗрдб рд╣реИрдВ (рдЬреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рд╣реИ!)
ConfigMap рдХрд╛ рдЙрджрд╛рд╣рд░рдг
рдПрдХ ConfigMap рд╡рд╣ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реИ рдЬреЛ рдкреЙрдбреНрд╕ рдХреЛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╡реЗ рдЬрд╛рди рд╕рдХреЗрдВ рдХрд┐ рдЕрдиреНрдп рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдХреИрд╕реЗ рдвреВрдВрдврдирд╛ рдФрд░ рдЙрди рддрдХ рдкрд╣реБрдВрдЪрдирд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдкреЙрдб рдХреЛ рдкрддрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдирд╛рдо mongodb-service
рдПрдХ рдкреЙрдб рдХрд╛ рдкрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╡реЗ рд╕рдВрд╡рд╛рдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдпрд╣ рдкреЙрдб рдПрдХ mongodb рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдЧрд╛):
рдлрд┐рд░, рдПрдХ deployment config рдХреЗ рдЕрдВрджрд░, рдЗрд╕ рдкрддреЗ рдХреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рдкреЛрдб рдХреЗ env рдХреЗ рдЕрдВрджрд░ рд▓реЛрдб рд╣реЛ рдЬрд╛рдП:
рдЙрджрд╛рд╣рд░рдг рд╡реЙрд▓реНрдпреВрдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди
рдЖрдк рд╡рд┐рднрд┐рдиреНрди рд╕реНрдЯреЛрд░реЗрдЬ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди yaml рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг https://gitlab.com/nanuchi/youtube-tutorial-series/-/tree/master/kubernetes-volumes рдкрд░ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╡реЙрд▓реНрдпреВрдо рдирд╛рдорд╕реНрдкреЗрд╕ рдХреЗ рдЕрдВрджрд░ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ
рдирд╛рдорд╕реНрдкреЗрд╕
Kubernetes рдПрдХ рд╣реА рднреМрддрд┐рдХ рдХреНрд▓рд╕реНрдЯрд░ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдХрдИ рдЖрднрд╛рд╕реА рдХреНрд▓рд╕реНрдЯрд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдЗрди рдЖрднрд╛рд╕реА рдХреНрд▓рд╕реНрдЯрд░реЛрдВ рдХреЛ рдирд╛рдорд╕реНрдкреЗрд╕ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпреЗ рдЙрди рд╡рд╛рддрд╛рд╡рд░рдгреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдП рдЧрдП рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рдХрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрдИ рдЯреАрдореЛрдВ рдпрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдлреИрд▓реЗ рд╣реБрдП рд╣реИрдВред рдХреБрдЫ рд╕реЗ рд▓реЗрдХрд░ рджрд░реНрдЬрдиреЛрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рд╡рд╛рд▓реЗ рдХреНрд▓рд╕реНрдЯрд░реЛрдВ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдирд╛рдорд╕реНрдкреЗрд╕ рдмрдирд╛рдиреЗ рдпрд╛ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдирд╛рдорд╕реНрдкреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдЖрдк kubernetes рдореЗрдВ рддреИрдирд╛рдд рдкреНрд░рддреНрдпреЗрдХ рднрд╛рдЧ рдХреЗ рдмреЗрд╣рддрд░ рдирд┐рдпрдВрддреНрд░рдг рдФрд░ рд╕рдВрдЧрдарди рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХреЗрдВред
рдирд╛рдорд╕реНрдкреЗрд╕ рдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рджрд╛рдпрд░рд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рдирд╛рдо рдХреЛ рдПрдХ рдирд╛рдорд╕реНрдкреЗрд╕ рдХреЗ рднреАрддрд░ рдЕрджреНрд╡рд┐рддреАрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдирд╛рдорд╕реНрдкреЗрд╕ рдХреЗ рдмреАрдЪ рдирд╣реАрдВред рдирд╛рдорд╕реНрдкреЗрд╕ рдПрдХ-рджреВрд╕рд░реЗ рдХреЗ рдЕрдВрджрд░ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ Kubernetes рд╕рдВрд╕рд╛рдзрди рдХреЗрд╡рд▓ рдПрдХ рдирд╛рдорд╕реНрдкреЗрд╕ рдореЗрдВ рд╣реА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдпрджрд┐ рдЖрдк minikube рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ 4 рдирд╛рдорд╕реНрдкреЗрд╕ рд╣реИрдВ:
kube-system: рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдЗрд╕реЗ рдЫреВрдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдорд╛рд╕реНрдЯрд░ рдФрд░ kubectl рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╣реИред
kube-public: рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рд╕реБрд▓рдн рдбреЗрдЯрд╛ред рдЗрд╕рдореЗрдВ рдПрдХ configmap рд╣реИ рдЬреЛ рдХреНрд▓рд╕реНрдЯрд░ рдХреА рдЬрд╛рдирдХрд╛рд░реА рд░рдЦрддрд╛ рд╣реИред
kube-node-lease: рдПрдХ рдиреЛрдб рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред
default: рд╡рд╣ рдирд╛рдорд╕реНрдерд╛рди рдЬрд┐рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдВрд╕рд╛рдзрди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ Kubernetes рд╕рдВрд╕рд╛рдзрди (рдЬреИрд╕реЗ pods, services, replication controllers, рдФрд░ рдЕрдиреНрдп) рдХреБрдЫ namespaces рдореЗрдВ рд╣реЛрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЕрдиреНрдп рд╕рдВрд╕рд╛рдзрди рдЬреИрд╕реЗ namespace рд╕рдВрд╕рд╛рдзрди рдФрд░ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рд╕рдВрд╕рд╛рдзрди, рдЬреИрд╕реЗ nodes рдФрд░ persistentVolumes рдХрд┐рд╕реА namespace рдореЗрдВ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреМрди рд╕реЗ Kubernetes рд╕рдВрд╕рд╛рдзрди namespace рдореЗрдВ рд╣реИрдВ рдФрд░ рдХреМрди рд╕реЗ рдирд╣реАрдВ:
рдЖрдк рдЙрд╕ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╕рднреА рдмрд╛рдж рдХреЗ kubectl рдХрдорд╛рдВрдб рдХреЗ рд▓рд┐рдП рдирд╛рдорд╕реНрдерд╛рди рдХреЛ рд╕рд╣реЗрдЬ рд╕рдХрддреЗ рд╣реИрдВред
Helm
Helm Kubernetes рдХреЗ рд▓рд┐рдП рдкреИрдХреЗрдЬ рдкреНрд░рдмрдВрдзрдХ рд╣реИред рдпрд╣ YAML рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкреИрдХреЗрдЬ рдХрд░рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдФрд░ рдирд┐рдЬреА рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрди рдкреИрдХреЗрдЬреЛрдВ рдХреЛ Helm Charts рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
Helm рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рднреА рд╣реИ рдЬреЛ рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЗ рд╕рд╛рде рдХреЙрдиреНрдлрд╝рд┐рдЧ рдлрд╝рд╛рдЗрд▓реЗрдВ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:
Kubernetes secrets
рдПрдХ Secret рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИ рдЬреЛ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдбреЗрдЯрд╛ рдЬреИрд╕реЗ рдкрд╛рд╕рд╡рд░реНрдб, рдЯреЛрдХрди рдпрд╛ рдХреБрдВрдЬреА рдХреЛ рдзрд╛рд░рдг рдХрд░рддрд╛ рд╣реИред рдРрд╕реА рдЬрд╛рдирдХрд╛рд░реА рдЕрдиреНрдпрдерд╛ рдПрдХ Pod рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХреЗрд╢рди рдпрд╛ рдПрдХ рдЗрдореЗрдЬ рдореЗрдВ рд░рдЦреА рдЬрд╛ рд╕рдХрддреА рд╣реИред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ Secrets рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕рд┐рд╕реНрдЯрдо рднреА Secrets рдмрдирд╛рддрд╛ рд╣реИред рдПрдХ Secret рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдирд╛рдо рдПрдХ рдорд╛рдиреНрдп DNS рдЙрдкрдбреЛрдореЗрди рдирд╛рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣рд╛рдБ рдкрдврд╝реЗрдВ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ред
Secrets рдХреБрдЫ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ:
API, SSH Keys.
OAuth tokens.
Credentials, Passwords (plain text рдпрд╛ b64 + encryption)ред
рдЬрд╛рдирдХрд╛рд░реА рдпрд╛ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБред
рдбреЗрдЯрд╛рдмреЗрд╕ рдХрдиреЗрдХреНрд╢рди рдХреЛрдб, рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕тАжред
Kubernetes рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ secrets рд╣реЛрддреЗ рд╣реИрдВ
Opaque рдкреНрд░рдХрд╛рд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реИ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕рд╛рдорд╛рдиреНрдп рдХреБрдВрдЬреА-рдореВрд▓реНрдп рдЬреЛрдбрд╝реАред
Secrets рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ:
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдПрдХ secret рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреА рд╣реИ рдЬрд┐рд╕реЗ mysecret
рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ 2 рдХреБрдВрдЬреА-рдореВрд▓реНрдп рдЬреЛрдбрд╝реЗ username: YWRtaW4=
рдФрд░ password: MWYyZDFlMmU2N2Rm
рд╣реЛрддреЗ рд╣реИрдВред рдпрд╣ рдПрдХ pod рдХреЛ рднреА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ secretpod
рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ mysecret
рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд username
рдФрд░ password
рдХреЛ environment variables SECRET_USERNAME
__ рдФрд░ __ SECRET_PASSWOR
рдореЗрдВ рдЙрдЬрд╛рдЧрд░ рдХрд░реЗрдЧрд╛ред рдпрд╣ 0640
рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде /etc/foo/my-group/my-username
рдкрде рдореЗрдВ mysecret
рдХреЗ рдЕрдВрджрд░ username
secret рдХреЛ рднреА mount рдХрд░реЗрдЧрд╛ред
Secrets in etcd
etcd рдПрдХ рд╕реБрд╕рдВрдЧрдд рдФрд░ рдЙрдЪреНрдЪ рдЙрдкрд▓рдмреНрдзрддрд╛ рд╡рд╛рд▓рд╛ рдХреА-рд╡реИрд▓реНрдпреВ рд╕реНрдЯреЛрд░ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ Kubernetes рджреНрд╡рд╛рд░рд╛ рд╕рднреА рдХреНрд▓рд╕реНрдЯрд░ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдмреИрдХрд┐рдВрдЧ рд╕реНрдЯреЛрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЪрд▓рд┐рдП etcd рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд░рд╣рд╕реНрдпреЛрдВ рддрдХ рдкрд╣реБрдБрдЪрддреЗ рд╣реИрдВ:
рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рд╕рд░реНрдЯреНрд╕, рдХреАрдЬрд╝ рдФрд░ рдпреВрдЖрд░рдПрд▓ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдХрд╣рд╛рдВ рд╕реНрдерд┐рдд рд╣реИрдВред рдПрдХ рдмрд╛рд░ рдЬрдм рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк etcd рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗред
рдПрдХ рдмрд╛рд░ рдЬрдм рдЖрдк рд╕рдВрдЪрд╛рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд░рд╣рд╕реНрдпреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗ:
ETCD рдореЗрдВ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдЬреЛрдбрд╝рдирд╛
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рднреА рд░рд╣рд╕реНрдп рд╕рд╛рджрд╛ рдкрд╛рда рдореЗрдВ etcd рдХреЗ рдЕрдВрджрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддреЗ рд╣реИрдВ рдЬрдм рддрдХ рдХрд┐ рдЖрдк рдПрдХ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдкрд░рдд рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░рддреЗред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред
рдЗрд╕рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ kube-apiserver
рдкрд░ --encryption-provider-config
рдзреНрд╡рдЬ рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ рдпрд╣ рдмрдирд╛рдП рдЧрдП рдХреЙрдиреНрдлрд╝рд┐рдЧ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕реНрдерд╛рди рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░реЗред рдЖрдк /etc/kubernetes/manifest/kube-apiserver.yaml
рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ:
рдиреАрдЪреЗ рд╕реНрдХреНрд░реЙрд▓ рдХрд░реЗрдВ volumeMounts рдореЗрдВ:
рдиреАрдЪреЗ volumeMounts рдореЗрдВ hostPath рдкрд░ рд╕реНрдХреНрд░реЙрд▓ рдХрд░реЗрдВ:
рдбреЗрдЯрд╛ рдХреЗ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рд╣реЛрдиреЗ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдирд╛
рдбреЗрдЯрд╛ рдХреЛ etcd рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╕рдордп рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдкрдиреЗ kube-apiserver
рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдХреЛрдИ рднреА рдирдпрд╛ рдпрд╛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕реАрдХреНрд░реЗрдЯ рд╕реНрдЯреЛрд░ рдХрд░рддреЗ рд╕рдордп рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЕрдкрдиреЗ рд╕реАрдХреНрд░реЗрдЯ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП etcdctl
рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
default
рдирд╛рдорд╕реНрдерд╛рди рдореЗрдВsecret1
рдирд╛рдордХ рдПрдХ рдирдпрд╛ рд╕реАрдХреНрд░реЗрдЯ рдмрдирд╛рдПрдВ:
etcdctl рдХрдорд╛рдВрдбрд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЙрд╕ рд╕реАрдХреНрд░реЗрдЯ рдХреЛ etcd рд╕реЗ рдкрдврд╝реЗрдВ:
ETCDCTL_API=3 etcdctl get /registry/secrets/default/secret1 [...] | hexdump -C
рдЬрд╣рд╛рдВ [...]
рдЖрджрд┐ рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рддрд░реНрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред 3. рдкреБрд╖реНрдЯрд┐ рдХрд░реЗрдВ рдХрд┐ рд╕реНрдЯреЛрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕реАрдХреНрд░реЗрдЯ k8s:enc:aescbc:v1:
рд╕реЗ рдкреНрд░рд╛рд░рдВрдн рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ aescbc
рдкреНрд░рджрд╛рддрд╛ рдиреЗ рдкрд░рд┐рдгрд╛рдореА рдбреЗрдЯрд╛ рдХреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд┐рдпрд╛ рд╣реИред 4. рдкреБрд╖реНрдЯрд┐ рдХрд░реЗрдВ рдХрд┐ API рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╕рдордп рд╕реАрдХреНрд░реЗрдЯ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
рдХреЛ mykey: bXlkYXRh
рд╕реЗ рдореЗрд▓ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, mydata рдХреЛ рдПрдиреНрдХреЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реАрдХреНрд░реЗрдЯ рдХреЛ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реАрдХреНрд░реЗрдЯ рдХреЛ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд░рдирд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВред
рдЪреВрдВрдХрд┐ рд╕реАрдХреНрд░реЗрдЯ рд▓рд┐рдЦрдиреЗ рдкрд░ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рд╣реЛрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдПрдХ рд╕реАрдХреНрд░реЗрдЯ рдкрд░ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдЙрд╕ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░реЗрдЧрд╛:
рдЕрдВрддрд┐рдо рд╕реБрдЭрд╛рд╡:
FS рдореЗрдВ рд░рд╣рд╕реНрдп рд░рдЦрдиреЗ рд╕реЗ рдмрдЪреЗрдВ, рдЙрдиреНрд╣реЗрдВ рдЕрдиреНрдп рд╕реНрдерд╛рдиреЛрдВ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред
рдЕрдкрдиреЗ рд░рд╣рд╕реНрдпреЛрдВ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рд╕реБрд░рдХреНрд╖рд╛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП https://www.vaultproject.io/ рдкрд░ рдЬрд╛рдПрдВред
рд╕рдВрджрд░реНрдн
Last updated