рдбреЗрд╕реНрдХрдЯреЙрдк рдкрд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рдЦрд╛рдирд╛рдмрджреЛрд╢ рдЖрд░реНрдХреЗрд╕реНрдЯреНрд░рд╛

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

рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЖрдо рддреМрд░ рдкрд░ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕рднреА рдХреЗ рдкрд╛рд╕ рдореВрд▓ рдкрд╣реБрдВрдЪ рдХреЗ рд╕рд╛рде рдХрдИ рд╕рд░реНрд╡рд░реЛрдВ рд╕реЗ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рддрдХ рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП, рдкрд┐рдЫрд▓реЗ рдкреЛрд╕реНрдЯ рдореЗрдВ
рд╣рдо рдорд╛рдЗрдХреНрд░реЛрдХреЗ 8 рдХреЗ рд╕рд╛рде рдХреБрдЫ рдорд┐рдирдЯреЛрдВ рдореЗрдВ рдбреЗрд╕реНрдХрдЯреЙрдк рдкрд░ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЛ рддреИрдирд╛рдд рдХрд░рддреЗ рд╣реИрдВ рд╣рдордиреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ Django рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдбреЗрд╕реНрдХрдЯреЙрдк рдкрд░ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ред рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдореИрдВрдиреЗ MicroK8s рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рд╢реЛрд╖рдг рдХрд╛ рд╡рд░реНрдгрди рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИред рд▓реЗрдХрд┐рди рдлрд┐рд░ рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЦрд╛рдирд╛рдмрджреЛрд╢ рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрд╢рди рдЯреВрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛ред рдореИрдВ рдПрдХ рдЬрд░реНрдорди рдХреЛ рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрд╢рди рдХреА рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдирд╣реАрдВ рджреВрдВрдЧрд╛ред рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬреЛ рдореИрдВ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдиреЛрдЯрд┐рд╕ рдХрд░рддрд╛ рд╣реВрдВ, рдЬреЛ рд╕рдВрджреЗрд╣ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЦрд╛рдирд╛рдмрджреЛрд╢ MicroK8s рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдбреЗрд╡рд▓рдкрд░ рдХреА рд╕рд░реНрд╡рд░ рд╕реЗ рджреЛ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ (рдЦрд╛рдирд╛рдмрджреЛрд╢ рдФрд░ рд╡рд╛рдгрд┐рдЬреНрдп) рдХреЛ рдХреЙрдкреА рдХрд░реЗрдВред

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

рдФрд░, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдбреЙрдХрдЯрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрджрд┐ рдХреЗрд╡рд▓ рдЖрдк рдбреЙрдХ рдХрдВрдЯреЗрдирд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред рд╡реИрд╕реЗ, рдЦрд╛рдирд╛рдмрджреЛрд╢ рди рдХреЗрд╡рд▓ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рдирд┐рдпрдорд┐рдд рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рднреА рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо рдЬрд▓реНрдж рд╣реА рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред

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

bind_addr = "127.0.0.1" data_dir = "/tmp/nomad" advertise { http = "127.0.0.1" rpc = "127.0.0.1" serf = "127.0.0.1" } server { enabled = true bootstrap_expect = 1 } client { enabled = true options = { "driver.raw_exec.enable" = "1" } } consul { address = "127.0.0.1:8500" } 

рдЦрд╛рдирд╛рдмрджреЛрд╢ рдПрдХ рдХрдорд╛рдВрдб рджреНрд╡рд╛рд░рд╛ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдмрдирд╛рдИ рдЧрдИ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдкрде рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ:

 nomad agent --config nomad/nomad.conf 

рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдЕрдВрддрд┐рдо рдЦрдВрдб рдореЗрдВ, рдкрддрд╛ рдЬрд┐рд╕ рдкрд░ рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИред рдХрдВрд╕реБрд▓ рд╕рд░реНрд╡рд░ рдореЛрдб рдореЗрдВ, рдХреНрд▓рд╛рдЗрдВрдЯ рдореЛрдб рдореЗрдВ рдФрд░ рд╕рд░реНрд╡рд░ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдореЛрдб рджреЛрдиреЛрдВ рдореЗрдВ рднреА рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ:

 consul agent -server -client 127.0.0.1 -advertise 127.0.0.1 -data-dir /tmp/consul -ui -bootstrap 

рдЗрди рдЖрджреЗрд╢реЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдмреНрд░рд╛рдЙрдЬрд╝рд░ (http: // localhost: 4646) рдореЗрдВ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ - рдпрд╣ рдпреВрдЖрдИ рдЦрд╛рдирд╛рдмрджреЛрд╢ рд╣реИ, рдФрд░ (http: // localhost: 8500) - рдпрд╣ рдпреВрдЖрдИ рд╡рд╛рдгрд┐рдЬреНрдп рджреВрддрд╛рд╡рд╛рд╕ рд╣реИред

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

 FROM python:3-slim LABEL maintainer="apapacy@gmail.com" WORKDIR /app COPY requirements.txt . RUN pip install -r requirements.txt RUN django-admin startproject mysite /app \ && echo "\nALLOWED_HOSTS = ['*']\n" >> /app/mysite/settings.py EXPOSE 8000 STOPSIGNAL SIGINT ENTRYPOINT ["python", "manage.py"] CMD ["runserver", "0.0.0.0:8000"] 

рдХрдВрдЯреЗрдирд░ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рдж:

 docker build django/ -t apapacy/tut-django:1.0.1 

рдЖрдкрдХреЛ рдПрдХ рдХрд╛рд░реНрдп рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ Django рдХрдВрдЯреЗрдирд░реЛрдВ рдХреА рдкреНрд░рддрд┐рдХреГрддрд┐рдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХ рд╕рдВрдЦреНрдпрд╛ рдмрдирд╛рдИ рдЬрд╛рдПрдЧреА (рдЦрд╛рдирд╛рдмрджреЛрд╢ / django.conf):

 job "django-job" { datacenters = ["dc1"] type = "service" group "django-group" { count = 3 restart { attempts = 2 interval = "30m" delay = "15s" mode = "fail" } ephemeral_disk { size = 300 } task "django-job" { driver = "docker" config { image = "apapacy/tut-django:1.0.1" port_map { lb = 8000 } } resources { network { mbits = 10 port "lb" {} } } service { name = "django" tags = ["urlprefix-/"] port = "lb" check { name = "alive" type = "http" path = "/" interval = "10s" timeout = "2s" } } } } } 

рдЗрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рднреА рдкреИрд░рд╛рдореАрдЯрд░ рдЙрдирдХреЗ рдирд╛рдореЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрд╛рдлреА рд╕рдордЭ рдореЗрдВ рдЖрддреЗ рд╣реИрдВред рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬрд┐рд╕реЗ рдореИрдВ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рд╡рд╣ рд╣реИ рдПрдХ рд▓рд╛рдЗрди: port "lb" {} , рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдкреЛрд░реНрдЯреНрд╕ рдХреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдкрд░реНрдпрд╛рд╡рд░рдг рджреНрд╡рд╛рд░рд╛ рд╕реМрдВрдкрд╛ рдЬрд╛рдПрдЧрд╛ (рдЖрдк рдЙрдиреНрд╣реЗрдВ рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рд░реВрдк рд╕реЗ рднреА рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред

рдХрд╛рд░реНрдп рдХрдорд╛рдВрдб рджреНрд╡рд╛рд░рд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

 nomad job run nomad/django.conf 

рдЕрдм, рдпреВрдЖрдИ рдШреБрдордВрддреВ (http: // localhost: 4646) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдЖрдк django-job рдиреМрдХрд░реА рдХреА рд╕реНрдерд┐рддрд┐ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ UI consul (http: // localhost: 8500) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдЖрдк django рд╕реЗрд╡рд╛ рдХреА рд╕реНрдерд┐рддрд┐ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рднреА рдкрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕ IP рдкрддреЗ рдФрд░ рдкреЛрд░реНрдЯ рдкрд░ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ django рд╕реЗрд╡рд╛ рдХреА рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рддрд┐рдХреГрддрд┐ред рдЕрдм рд╕реЗрд╡рд╛рдПрдВ рдЗрди рдЖрдИрдкреА-рдкрддреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЦрд╛рдирд╛рдмрджреЛрд╢ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдЕрдВрджрд░, рдФрд░ рдмрд╛рд╣рд░ рд╕реЗ рдкрд╣реБрдВрдЪ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИрдВред рдмрд╛рд╣рд░реА рдкрд╣реБрдВрдЪ рдХреЗ рд▓рд┐рдП рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдХрдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣реИрдкреНрд░реЛрдХреНрд╕реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИ рд╣рд╛рд╢рд┐рдХреЛрд░реНрдк - рдлреЗрдмрд┐рдпреЛ рд╕реЗ рджреВрд╕рд░реЗ (рдШреБрдордВрддреВ рдФрд░ рдХреМрдВрд╕реБрд▓ рдХреЗ рдмрд╛рдж рддреАрд╕рд░рд╛) рдореЙрдбреНрдпреВрд▓ред

рдЖрдкрдХреЛ рдЗрд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ - рдЖрдк рдЗрд╕реЗ рдЦрд╛рдирд╛рдмрджреЛрд╢ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рд╕рдВрджреЗрд╢ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдмрддрд╛рдпрд╛ рдерд╛, рди рдХреЗрд╡рд▓ рдбреЙрдХрдЯрд░ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд╕рд╛рде, рдмрд▓реНрдХрд┐ рдХрд┐рд╕реА рднреА рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рднреА рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рджреВрд╕рд░рд╛ рдХрд╛рд░реНрдп рдмрдирд╛рдПрдВ (рдЦрд╛рдирд╛рдмрджреЛрд╢ / fabio.conf):

 job "fabio-job" { datacenters = ["dc1"] type = "system" update { stagger = "60s" max_parallel = 1 } group "fabio-group" { count = 1 task "fabio-task" { driver = "raw_exec" artifact { source = "https://github.com/fabiolb/fabio/releases/download/v1.5.4/fabio-1.5.4-go1.9.2-linux_amd64" } config { command = "fabio-1.5.4-go1.9.2-linux_amd64" } resources { cpu = 100 # 500 MHz memory = 128 # 256MB network { mbits = 10 port "lb" { static = 9999 } port "admin" { static = 9998 } } } } } } 

рдЗрд╕ рдХрд╛рд░реНрдп рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреНрд░рд╛рдЗрд╡рд░ driver = "raw_exec" рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рднреА рдбреНрд░рд╛рдЗрд╡рд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд▓реЛрдб рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЦрд╛рдирд╛рдмрджреЛрд╢ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рд╣рдордиреЗ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдкреНрд░рджрд╛рди рдХреА рд╣реИ:

 client { enabled = true options = { "driver.raw_exec.enable" = "1" } } 

рд╡реИрд╕реЗ, рдЦрд╛рдирд╛рдмрджреЛрд╢ рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ, рд▓реЛрдбрд┐рдВрдЧ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдФрд░ рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рдХрд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдЗрд╕ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдЬрд▓реНрдж рд╣реА рдЕрдВрддрд┐рдо рд░реВрдк рджреЗрдирд╛ рд╣реЛрдЧрд╛ред

рдХрд╛рд░реНрдп рдХрдорд╛рдВрдб рджреНрд╡рд╛рд░рд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

 nomad job run nomad/fabio.conf 

рдЙрд╕рдХреЗ рдмрд╛рдж, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдкрддрд╛ (http: // localhost: 9998) рдкрд░ рдпреВрдЖрдИ рдлреИрдмрд┐рдпреЛ рдЙрдкрд▓рдмреНрдз рд╣реИред рдФрд░ рдкрддреЗ рдкрд░ (http: // localhost: 9999) django рд╕реЗрд╡рд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХреА рдЬрд╛рдПрдЧреАред

рдкреНрд░рдХрд╛рд╢рди рдореЗрдВ рджрд┐рдЦрд╛рдП рдЧрдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдХреЛрдб рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред

рдЙрдкрдпреЛрдЧреА рд▓рд┐рдВрдХ

1. dvps.blog/minimalnoie-sravnieniie-swarm-kubernetes-mesos-nomad-rancher

papacy@gmail.com
20 рдлрд░рд╡рд░реА, 2019

Source: https://habr.com/ru/post/hi440956/


All Articles