рд╣рдо рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рджреИрдирд┐рдХ рдХрд╛рдо рдореЗрдВ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдФрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЬреАрд╡рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдХреИрд╕реЗ-рдХреИрд╕реЗ рд▓реЗрдЦреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВред рдпреЗ рд╕рднреА рдЧреНрд░рд╛рд╣рдХреЛрдВ рд╕реЗ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╕реБрд▓рдЭрд╛рдиреЗ рдореЗрдВ рд╣рдорд╛рд░реЗ рдЕрдиреБрднрд╡ рд╕реЗ рдПрдХрддреНрд░ рд╣реБрдП рд╣реИрдВ рдФрд░ рд╕рдордп рдХреЗ рд╕рд╛рде рдмреЗрд╣рддрд░ рд╣реБрдП рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрднреА рднреА рдЖрджрд░реНрд╢ рд╣реЛрдиреЗ рдХрд╛ рджрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ - рдЙрдиреНрд╣реЗрдВ рд╡рд┐рдЪрд╛рд░реЛрдВ рдФрд░ рд░рд┐рдХреНрддрддрд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдзрд┐рдХ рдорд╛рдиреЗрдВ, рдЕрдкрдиреЗ рд╕рдорд╛рдзрд╛рди рдФрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрдВред

рдЗрд╕ рдмрд╛рд░, рджреЛ рд╡рд┐рд╖рдпреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд╕рд╢рд░реНрдд рд░реВрдк рд╕реЗ рдПрдХ рд╡рд┐рд╖рдп рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛрдЧрд╛: рджреЗрд╡ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдкрд╣реБрдВрдЪред
1. рд╣рдо рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рд╕реЗ рджреЗрд╡-рд╕рд░реНрдХрд┐рдЯ рдХреИрд╕реЗ рдмрдВрдж рдХрд░рддреЗ рд╣реИрдВ?
рд╣рдо рдЕрдХреНрд╕рд░ рдореВрд▓ рджреЗрд╡рддрд╛ рдпрд╛ рд╢реНрд╡реЗрдд рд╕реВрдЪреА рдХреЗ рдкреАрдЫреЗ рдкреВрд░реЗ рджреЗрд╡-рд╕рд░реНрдХрд┐рдЯ (рджрд╕рд┐рдпреЛрдВ / рд╕реИрдХрдбрд╝реЛрдВ рдЖрд╡реЗрджрди) рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░реНрдп рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддреЗ рд╣реИрдВ, рддрд╛рдХрд┐ рдЦреЛрдЬ рдмреЙрдЯ рдпрд╛ рдмрд╕ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рд▓реЛрдЧ рд╡рд╣рд╛рдВ рдирд╣реАрдВ рдкрд╣реБрдВрдЪ рд╕рдХреЗрдВред
рдЖрдорддреМрд░ рдкрд░, рдПрдХреНрд╕реЗрд╕ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░рддреНрдпреЗрдХ рдЗрдирдЧреНрд░реЗрд╢рди рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ
рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмреЗрд╕рд┐рдХ рд╕реАрдХреНрд░реЗрдЯ рд╕реАрдХреНрд░реЗрдЯреНрд╕ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдПрдХ рджрд░реНрдЬрди рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдкрд░ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдирд╛ рдмрд╣реБрдд рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рдХреЗрдВрджреНрд░реАрдХреГрдд рдЕрднрд┐рдЧрдо рдирд┐рдпрдВрддреНрд░рдг рдХрд╛ рдЖрдпреЛрдЬрди рдХрд┐рдпрд╛ред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рд╕рд╛рде nginx рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛:
location / { satisfy any; auth_basic "Authentication or whitelist!"; auth_basic_user_file /etc/nginx/htpasswd/htpasswd; allow 10.0.0.0/8; allow 175.28.12.2/32; deny all; try_files FAKE_NON_EXISTENT @return200; } location @return200 { return 200 Ok; }
рдЖрд╡реЗрджрди рдХреЗ рдЗрдирдЧреНрд░реЗрдб рдореЗрдВ рдЖрдЧреЗ, рд╣рдо рдХреЗрд╡рд▓ рдПрдиреЛрдЯреЗрд╢рди рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ:
ingress.kubernetes.io/auth-url: "http://dev-auth.dev-auth-infra.svc.cluster.local"
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд░рддреЗ рд╕рдордп, рдЕрдиреБрд░реЛрдз
dev-auth
рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдпрд╣ рдЬрд╛рдВрдЪрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╕рд╣реА рдмреЗрд╕рд┐рдХ рдСрд░реНрдЯ рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдХреНрд▓рд╛рдЗрдВрдЯ рд╡рд╛рдЗрдЯрд▓рд┐рд╕реНрдЯ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рд╢рд░реНрддреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдкреВрд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЕрдиреБрд░реЛрдз рдХреА рдкреБрд╖реНрдЯрд┐ рдХреА рдЬрд╛рддреА рд╣реИ рдФрд░ рдЖрд╡реЗрджрди рдореЗрдВ рдкрд╛рд╕ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдЗрд╕ рддрд░рд╣ рдХреА рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕рднреА рдПрдХреНрд╕реЗрд╕ рдХреА рдПрдХ рд╕реВрдЪреА рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИ рдФрд░ рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣рдо рдЕрдкрдиреЗ "рдПрдХрд▓ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗрдВрджреНрд░" рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдирдП рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдЗрд╕рдХрд╛ рд╡рд┐рддрд░рдг рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рдкреНрд░рд╛рдердорд┐рдХ рдЬреЛрдбрд╝ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
2. рд╣рдо рджреЗрд╡ рдкрд░рд┐рд╡реЗрд╢ рдореЗрдВ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рдЕрдВрджрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рддрдХ рдХреИрд╕реЗ рдкрд╣реБрдБрдЪ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ?
... рдпрд╣ Redis, RabbitMQ, PostgreSQL рдпрд╛ Xdebug рдХрд╛ рдкрд╕рдВрджреАрджрд╛ PHP рдбреЗрд╡рд▓рдкрд░ рд╣реЛредрдмрд╣реБрдд рдмрд╛рд░, рдЬрдм рдмреЗрд╣рддрд░ рд╕реБрд░рдХреНрд╖рд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдмрд╛рд╣рд░ рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрд╣реБрдВрдЪ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдФрд░ рдлрд┐рд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЬреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдпрд╛ Xdebug рдХреЗ рд▓рд┐рдП "рдЕрдкрдиреА IDE" рдЬрд╛рдиреЗ рдХреЗ рдЖрджреА рд╣реИрдВ, рдЧрдВрднреАрд░ рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдХрд╛ рдЕрдиреБрднрд╡ рдХрд░рддреЗ рд╣реИрдВред
рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рд╕реАрдзреЗ Kubernetes рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдПрдХ рд╡реАрдкреАрдПрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╕рд╛рдорд╛рдиреНрдп рдпреЛрдЬрдирд╛ рдРрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ рдХрд┐ K8s рдореЗрдВ рдЪрд▓ рд░рд╣реЗ рд╡реАрдкреАрдПрди рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрдиреЗ рдкрд░, рдУрдкрдирд╡реАрдкреАрдПрди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣рдо DNS рд╕рд░реНрд╡рд░ рдХреЗ рдкрддреЗ рдХреЛ рдзрдХреНрдХрд╛ рджреЗрддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ K8 рдореЗрдВ рднреА рд░рд╣рддрд╛ рд╣реИред рдУрдкрдирд╡реАрдкреАрдПрди рд╡реАрдкреАрдПрди рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЬрдм рдпрд╣ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рдЕрдВрджрд░ рдПрдХ рд╕рдВрд╕рд╛рдзрди рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдбреАрдПрдирдПрд╕ рд╕рд░реНрд╡рд░ рдкрд░ рдЬрд╛рддрд╛ рд╣реИ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
redis.production.svc.cluster.local
рд╕реЗрд╡рд╛ рдХреЗ рдкрддреЗ рдХреЗ рдкреАрдЫреЗред Kubernetes рдореЗрдВ DNS рдЗрд╕реЗ 10.244.1.15 рдкрд░ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕ IP рдкрддреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз OpenVPN рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реАрдзреЗ Kubernetes рдХреНрд▓рд╕реНрдЯрд░ рдкрд░ рдЬрд╛рддрд╛ рд╣реИред
рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рджреМрд░рд╛рди, рд╣рдо рдмрд╛рд░-рдмрд╛рд░ рдЗрд╕рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ:
- рдЪреВрдВрдХрд┐ рд╣рдореЗрдВ рд╡реАрдкреАрдПрди рддрдХ рдкрд╣реБрдВрдЪ рдХреЗ рд▓рд┐рдП рд▓реЗрдЦрд╛рдВрдХрди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдФрд░ рдкрд░реНрдпрд╛рдкреНрдд (рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП) рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкреИрдирд▓ рдирд╣реАрдВ рдорд┐рд▓рд╛ рдерд╛, рд╣рдореЗрдВ рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рд╕рд░рд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рдирд╛ рдерд╛ - рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЪрд╛рд░реНрдЯ рдХреЗрд╡рд▓ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдВрд╕реЛрд▓ рдХрдорд╛рдВрдб рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рдкрд░рд┐рдгрд╛рдореА рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкреИрдирд▓ ( рдбреЙрдХрд░ рд╣рдм рдкрд░ рднреА рджреЗрдЦреЗрдВ) рдмрд╣реБрдд рддрдкрд╕реНрд╡реА рджрд┐рдЦрддрд╛ рд╣реИ:

рдЖрдк рдирдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдкреБрд░рд╛рдиреЗ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд░рджреНрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

рдЖрдк рдЗрд╕ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд▓рд┐рдП рд╡рд┐рдиреНрдпрд╛рд╕ рднреА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:

- рд╣рдордиреЗ GitLab рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡реАрдкреАрдПрди рдореЗрдВ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдЬреЛрдбрд╝рд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдкрд╛рд╕рд╡рд░реНрдб рдХреА рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рддреА рд╣реИ рдФрд░ рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ GitLab рдореЗрдВ рд╕рдХреНрд░рд┐рдп рд╣реИред рдпрд╣ рдЙрди рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИ рдЬрдм рдЧреНрд░рд╛рд╣рдХ рдЙрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ рдЬреЛ рдХреЗрд╡рд▓ рдЬреАрдЯреАрд▓реИрдм рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рджреЗрд╡ рд╡реАрдкреАрдПрди рд╕реЗ рдЬреБрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рд╡реЗрд╢ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд┐рдирд╛ - рдПрдХ рдЕрд░реНрде рдореЗрдВ, рдпрд╣ "рдЧрд░реАрдмреЛрдВ рдХреЗ рд▓рд┐рдП рдПрд╕рдПрд╕рдУ" рд╣реИред рдПрдХ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдЙрдиреНрд╣реЛрдВрдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рддреИрдпрд╛рд░ рдЪрд╛рд░реНрдЯ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдПрдХ рдкрд╛рдпрдерди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦреА рд╣реИ, рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ OpenVPN рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╕рдордп, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, GitLab рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╣реИрд╢ рдХреА рддреБрд▓рдирд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреА рд╕реНрдерд┐рддрд┐ (рдЪрд╛рд╣реЗ рд╡рд╣ рд╕рдХреНрд░рд┐рдп рд╣реЛ) рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИред

рдпрд╣рд╛рдБ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реА рд╣реИ:
рдФрд░ OpenVPN рдХреЙрдиреНрдлрд┐рдЧ рдореЗрдВ рдХреЗрд╡рд▓ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ:
auth-user-pass-verify /etc/openvpn/auth-user.py via-env
script-security 3
client-cert-not-required
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдпрджрд┐ рдХреЛрдИ рдХрд░реНрдордЪрд╛рд░реА рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ, рддреЛ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЙрд╕реЗ GitLab рдореЗрдВ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░ рджрд┐рдпрд╛, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд╡рд╣ рд╡реАрдкреАрдПрди рд╕реЗ рдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рд╣реЛ рдкрд╛рдПрдЧрд╛ред
рдПрдХ рдирд┐рд╖реНрдХрд░реНрд╖ рдХреЗ рдмрдЬрд╛рдп
рдХреБрдмреЗрд░рдиреЗрдЯ рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдлрд╝реНрд▓реИрдВрдЯ рд╡реНрдпрдВрдЬрдиреЛрдВ рдХреЗ рд╕рд╛рде рд▓реЗрдЦреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реБрдП, рдореИрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпреЛрдВ (рдХреНрдпреЛрдВ рдФрд░ рдХреИрд╕реЗ?) рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдиреЛрдбреНрд╕ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдЬреИрд╕реЗ рд╡рд┐рд╖рдпреЛрдВ рдХреЛ рдХрд╡рд░ рдХрд░реВрдВрдЧрд╛ рдФрд░ рднрд╛рд░реА рд▓реЛрдб рдореЗрдВ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдЪрд▓рдиреЗ рд╡рд╛рд▓реА php-fpm / gunicorn рдЬреИрд╕реА рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ред рдЕрдкрдбреЗрдЯ рдХреЛ рдпрд╛рдж рди рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдмреНрд▓реЙрдЧ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдВ!
рдкреБрдирд╢реНрдЪ
K8s рдЯрд┐рдкреНрд╕ рдПрдВрдб рдЯреНрд░рд┐рдХреНрд╕ рдЪрдХреНрд░ рд╕реЗ рдЕрдиреНрдп:
рд╣рдорд╛рд░реЗ рдмреНрд▓реЙрдЧ рдореЗрдВ рднреА рдкрдврд╝реЗрдВ: