рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕: рд╕рд┐рд╕реНрдЯрдо рд╕рдВрд╕рд╛рдзрди рдкреНрд░рдмрдВрдзрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЗрддрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреНрдпреЛрдВ рд╣реИ?

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

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕: рд╕рд┐рд╕реНрдЯрдо рд╕рдВрд╕рд╛рдзрди рдкреНрд░рдмрдВрдзрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЗрддрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреНрдпреЛрдВ рд╣реИ?

рдЖрдкрдХреЛ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдореМрдЬреВрдж рдореБрдЦреНрдп рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рд╕реЗ рд╢реБрд░реБрдЖрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдпрд╣, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдкреНрд░реЛрд╕реЗрд╕рд░ рдХрд╛ рд╕рдордп рдФрд░ рд░реИрдо рд╣реИред K8s рдореЗрдирд┐рдлрд╝реЗрд╕реНрдЯ рдореЗрдВ рдЗрди рд╕рдВрд╕рд╛рдзрди рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЗрдХрд╛рдЗрдпреЛрдВ рдореЗрдВ рдорд╛рдкрд╛ рдЬрд╛рддрд╛ рд╣реИ:

  • рд╕реАрдкреАрдпреВ - рдХреЛрд░ рдореЗрдВ
  • рд░реИрдо - рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ

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

рдпрд╣ рд╕рдордЭрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдореЗрдирд┐рдлреЗрд╕реНрдЯ рдореЗрдВ рджреЛрдиреЛрдВ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╡реНрдпрд╡рд╣рд╛рд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реЛрдЧрд╛:

  • рдпрджрд┐ рдХреЗрд╡рд▓ рдХрд┐рд╕реА рд╕рдВрд╕рд╛рдзрди рдХреА рд╕реАрдорд╛рдПрдБ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИрдВ, рддреЛ рдЗрд╕ рд╕рдВрд╕рд╛рдзрди рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕реАрдорд╛ рдХреЗ рдмрд░рд╛рдмрд░ рдорд╛рди рд▓реЗрддреЗ рд╣реИрдВ (рдЖрдк рд╡рд░реНрдгрди рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдЗрд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред рд╡реЗред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХрдВрдЯреЗрдирд░ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рд╕рдорд╛рди рдорд╛рддреНрд░рд╛ рддрдХ рд╣реА рд╕реАрдорд┐рдд рд╣реЛрдЧрд╛ред
  • рдпрджрд┐ рдХрд┐рд╕реА рд╕рдВрд╕рд╛рдзрди рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдЕрдиреБрд░реЛрдз рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИрдВ, рддреЛ рдЗрд╕ рд╕рдВрд╕рд╛рдзрди рдкрд░ рдХреЛрдИ рдКрдкрд░реА рдкреНрд░рддрд┐рдмрдВрдз рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рд╣реИрдВ - рдпрд╛рдиреАред рдХрдВрдЯреЗрдирд░ рдХреЗрд╡рд▓ рдиреЛрдб рдХреЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╣реА рд╕реАрдорд┐рдд рд╣реИред

рди рдХреЗрд╡рд▓ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрдВрдЯреЗрдирд░ рдХреЗ рд╕реНрддрд░ рдкрд░, рдмрд▓реНрдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдВрд╕реНрдерд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдиреЗрдорд╕реНрдкреЗрд╕ рд╕реНрддрд░ рдкрд░ рднреА рд╕рдВрд╕рд╛рдзрди рдкреНрд░рдмрдВрдзрди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ:

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

рд╕рдВрд╕рд╛рдзрди рд╕реАрдорд╛рдПрдБ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдореИрдирд┐рдлрд╝реЗрд╕реНрдЯ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИрдВ:

  • рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрдВрдЯреЗрдирд░ рд╕реНрддрд░ рдкрд░:

    containers:
    - name: app-nginx
      image: nginx
      resources:
        requests:
          memory: 1Gi
        limits:
          cpu: 200m

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

  • рдкреВрд░реНрдгрд╛рдВрдХ рд╕реНрддрд░ рдкрд░ рдПрдирдПрд╕:

    apiVersion: v1
    kind: ResourceQuota
    metadata:
      name: nxs-test
    spec:
      hard:
        requests.cpu: 300m
        requests.memory: 1Gi
        limits.cpu: 700m
        limits.memory: 2Gi

    рд╡реЗред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдПрдирдПрд╕ рдореЗрдВ рд╕рднреА рдЕрдиреБрд░реЛрдз рдХрдВрдЯреЗрдирд░реЛрдВ рдХрд╛ рдпреЛрдЧ рд╕реАрдкреАрдпреВ рдХреЗ рд▓рд┐рдП 300 рдореАрдЯрд░ рдФрд░ рдУрдкреА рдХреЗ рд▓рд┐рдП 1 рдЬреА рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рд╕рднреА рд╕реАрдорд╛рдУрдВ рдХрд╛ рдпреЛрдЧ рд╕реАрдкреАрдпреВ рдХреЗ рд▓рд┐рдП 700 рдореАрдЯрд░ рдФрд░ рдУрдкреА рдХреЗ рд▓рд┐рдП 2 рдЬреА рд╣реИред

  • рдПрдирдПрд╕ рдореЗрдВ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реАрдорд╛рдПрдБ:

    apiVersion: v1
    kind: LimitRange
    metadata:
      name: nxs-limit-per-container
    spec:
     limits:
       - type: Container
         defaultRequest:
           cpu: 100m
           memory: 1Gi
         default:
           cpu: 1
           memory: 2Gi
         min:
           cpu: 50m
           memory: 500Mi
         max:
           cpu: 2
           memory: 4Gi

    рд╡реЗред рд╕рднреА рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдиреЗрдорд╕реНрдкреЗрд╕ рдореЗрдВ, рдЕрдиреБрд░реЛрдз CPU рдХреЗ рд▓рд┐рдП 100m рдФрд░ OP рдХреЗ рд▓рд┐рдП 1G, рд╕реАрдорд╛ - 1 CPU рдФрд░ 2G рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╕рд╛рде рд╣реА, CPU (50m < x < 2) рдФрд░ RAM (500M < x < 4G) рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз/рд╕реАрдорд╛ рдореЗрдВ рд╕рдВрднрд╛рд╡рд┐рдд рдорд╛рдиреЛрдВ рдкрд░ рднреА рдПрдХ рд╕реАрдорд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЧрдИ рд╣реИред

  • рдкреЙрдб-рд╕реНрддрд░ рдкреНрд░рддрд┐рдмрдВрдз рдПрдирдПрд╕:

    apiVersion: v1
    kind: LimitRange
    metadata:
     name: nxs-limit-pod
    spec:
     limits:
     - type: Pod
       max:
         cpu: 4
         memory: 1Gi

    рд╡реЗред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдПрдирдПрд╕ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдкреЙрдб рдХреЗ рд▓рд┐рдП 4 рд╡реАрд╕реАрдкреАрдпреВ рдФрд░ 1рдЬреА рдХреА рд╕реАрдорд╛ рд╣реЛрдЧреАред

рдЕрдм рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдЗрди рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреЛ рд▓рдЧрд╛рдиреЗ рд╕реЗ рд╣рдореЗрдВ рдХреНрдпрд╛ рдлрд╛рдпрджреЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

рдиреЛрдбреНрд╕ рдХреЗ рдмреАрдЪ рд▓реЛрдб рд╕рдВрддреБрд▓рди рддрдВрддреНрд░

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

  1. рдЫрд╛рдирдиреЗ
  2. рд▓реЗрдХрд░

рд╡реЗред рд╡рд░реНрдгрд┐рдд рдиреАрддрд┐ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ рдиреЛрдбреНрд╕ рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕ рдкрд░ рд╕реЗрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкреЙрдб рд▓реЙрдиреНрдЪ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ рд╡рд┐рдзреЗрдп (рдпрд╣ рдЬрд╛рдБрдЪрдиреЗ рд╕рд╣рд┐рдд рдХрд┐ рдиреЛрдб рдХреЗ рдкрд╛рд╕ рдкреЙрдб рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╕рдВрд╕рд╛рдзрди рд╣реИрдВ - PodFitsResources), рдФрд░ рдлрд┐рд░ рдЗрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рдХреЗ рд▓рд┐рдП, рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдУрдВ рдЕрдВрдХ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ (рдЗрд╕рдореЗрдВ, рдПрдХ рдиреЛрдб рдХреЗ рдкрд╛рд╕ рдЬрд┐рддрдиреЗ рдЕрдзрд┐рдХ рдореБрдХреНрдд рд╕рдВрд╕рд╛рдзрди рд╣реЛрддреЗ рд╣реИрдВ, рдЙрд╕реЗ рдЙрддрдиреЗ рд╣реА рдЕрдзрд┐рдХ рдЕрдВрдХ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ - LeastResourceAllocation/LeastRequestedPriority/BalancedResourceAllocation) рдФрд░ рдкреЙрдб рдХреЛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЕрдВрдХреЛрдВ рдХреЗ рд╕рд╛рде рдиреЛрдб рдкрд░ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдпрджрд┐ рдХрдИ рдиреЛрдб рдПрдХ рд╕рд╛рде рдЗрд╕ рд╢рд░реНрдд рдХреЛ рдкреВрд░рд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ) рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЪрдпрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред

рдЙрд╕реА рд╕рдордп, рдЖрдкрдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рд╢реЗрдбреНрдпреВрд▓рд░, рдХрд┐рд╕реА рдиреЛрдб рдХреЗ рдЙрдкрд▓рдмреНрдз рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЖрдХрд▓рди рдХрд░рддреЗ рд╕рдордп, рдЙрд╕ рдбреЗрдЯрд╛ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдЖрджрд┐ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддрд╛ рд╣реИ - рдпрд╛рдиреАред рдЗрд╕ рдиреЛрдб рдкрд░ рдЪрд▓ рд░рд╣реЗ рдкреНрд░рддреНрдпреЗрдХ рдкреЙрдб рдХреЗ рдЕрдиреБрд░реЛрдзрд┐рдд/рд╕реАрдорд╛ рд╕рдВрд╕рд╛рдзрди рдХреА рдорд╛рддреНрд░рд╛ рдХреЗ рд▓рд┐рдП, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрд╕рд╛рдзрди рдЦрдкрдд рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рдХрдорд╛рдВрдб рдЖрдЙрдЯрдкреБрдЯ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ kubectl describe node $NODE, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

# kubectl describe nodes nxs-k8s-s1
..
Non-terminated Pods:         (9 in total)
  Namespace                  Name                                         CPU Requests  CPU Limits  Memory Requests  Memory Limits  AGE
  ---------                  ----                                         ------------  ----------  ---------------  -------------  ---
  ingress-nginx              nginx-ingress-controller-754b85bf44-qkt2t    0 (0%)        0 (0%)      0 (0%)           0 (0%)         233d
  kube-system                kube-flannel-26bl4                           150m (0%)     300m (1%)   64M (0%)         500M (1%)      233d
  kube-system                kube-proxy-exporter-cb629                    0 (0%)        0 (0%)      0 (0%)           0 (0%)         233d
  kube-system                kube-proxy-x9fsc                             0 (0%)        0 (0%)      0 (0%)           0 (0%)         233d
  kube-system                nginx-proxy-k8s-worker-s1                    25m (0%)      300m (1%)   32M (0%)         512M (1%)      233d
  nxs-monitoring             alertmanager-main-1                          100m (0%)     100m (0%)   425Mi (1%)       25Mi (0%)      233d
  nxs-logging                filebeat-lmsmp                               100m (0%)     0 (0%)      100Mi (0%)       200Mi (0%)     233d
  nxs-monitoring             node-exporter-v4gdq                          112m (0%)     122m (0%)   200Mi (0%)       220Mi (0%)     233d
Allocated resources:
  (Total limits may be over 100 percent, i.e., overcommitted.)
  Resource           Requests           Limits
  --------           --------           ------
  cpu                487m (3%)          822m (5%)
  memory             15856217600 (2%)  749976320 (3%)
  ephemeral-storage  0 (0%)             0 (0%)

рдпрд╣рд╛рдВ рд╣рдо рд╕рднреА рдкреЙрдбреНрд╕ рдХреЛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдиреЛрдб рдкрд░ рдЪрд▓рддреЗ рд╣реБрдП рджреЗрдЦрддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рд╡реЗ рд╕рдВрд╕рд╛рдзрди рднреА рджреЗрдЦрддреЗ рд╣реИрдВ рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдкреЙрдб рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИред рдФрд░ рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдЬрдм cronjob-cron-events-1573793820-xt6q9 рдкреЙрдб рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рд╢реЗрдбреНрдпреВрд▓рд░ рд▓реЙрдЧ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ (рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рд╢реЗрдбреНрдпреВрд▓рд░ рд▓реЙрдЧ рдореЗрдВ рддрдм рджрд┐рдЦрд╛рдИ рджреЗрдЧреА рдЬрдм рдЖрдк рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдХрдорд╛рдВрдб рддрд░реНрдХ -v=10 рдореЗрдВ 10рд╡рд╛рдВ рд▓реЙрдЧрд┐рдВрдЧ рд╕реНрддрд░ рд╕реЗрдЯ рдХрд░реЗрдВрдЧреЗ):

рд▓реЙрдЧ

I1115 07:57:21.637791       1 scheduling_queue.go:908] About to try and schedule pod nxs-stage/cronjob-cron-events-1573793820-xt6q9                                                                                                                                           
I1115 07:57:21.637804       1 scheduler.go:453] Attempting to schedule pod: nxs-stage/cronjob-cron-events-1573793820-xt6q9                                                                                                                                                    
I1115 07:57:21.638285       1 predicates.go:829] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s5 is allowed, Node is running only 16 out of 110 Pods.                                                                               
I1115 07:57:21.638300       1 predicates.go:829] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s6 is allowed, Node is running only 20 out of 110 Pods.                                                                               
I1115 07:57:21.638322       1 predicates.go:829] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s3 is allowed, Node is running only 20 out of 110 Pods.                                                                               
I1115 07:57:21.638322       1 predicates.go:829] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s4 is allowed, Node is running only 17 out of 110 Pods.                                                                               
I1115 07:57:21.638334       1 predicates.go:829] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s10 is allowed, Node is running only 16 out of 110 Pods.                                                                              
I1115 07:57:21.638365       1 predicates.go:829] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s12 is allowed, Node is running only 9 out of 110 Pods.                                                                               
I1115 07:57:21.638334       1 predicates.go:829] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s11 is allowed, Node is running only 11 out of 110 Pods.                                                                              
I1115 07:57:21.638385       1 predicates.go:829] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s1 is allowed, Node is running only 19 out of 110 Pods.                                                                               
I1115 07:57:21.638402       1 predicates.go:829] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s2 is allowed, Node is running only 21 out of 110 Pods.                                                                               
I1115 07:57:21.638383       1 predicates.go:829] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s9 is allowed, Node is running only 16 out of 110 Pods.                                                                               
I1115 07:57:21.638335       1 predicates.go:829] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s8 is allowed, Node is running only 18 out of 110 Pods.                                                                               
I1115 07:57:21.638408       1 predicates.go:829] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s13 is allowed, Node is running only 8 out of 110 Pods.                                                                               
I1115 07:57:21.638478       1 predicates.go:1369] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s10 is allowed, existing pods anti-affinity terms satisfied.                                                                         
I1115 07:57:21.638505       1 predicates.go:1369] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s8 is allowed, existing pods anti-affinity terms satisfied.                                                                          
I1115 07:57:21.638577       1 predicates.go:1369] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s9 is allowed, existing pods anti-affinity terms satisfied.                                                                          
I1115 07:57:21.638583       1 predicates.go:829] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s7 is allowed, Node is running only 25 out of 110 Pods.                                                                               
I1115 07:57:21.638932       1 resource_allocation.go:78] cronjob-cron-events-1573793820-xt6q9 -> nxs-k8s-s10: BalancedResourceAllocation, capacity 39900 millicores 66620178432 memory bytes, total request 2343 millicores 9640186880 memory bytes, score 9        
I1115 07:57:21.638946       1 resource_allocation.go:78] cronjob-cron-events-1573793820-xt6q9 -> nxs-k8s-s10: LeastResourceAllocation, capacity 39900 millicores 66620178432 memory bytes, total request 2343 millicores 9640186880 memory bytes, score 8           
I1115 07:57:21.638961       1 resource_allocation.go:78] cronjob-cron-events-1573793820-xt6q9 -> nxs-k8s-s9: BalancedResourceAllocation, capacity 39900 millicores 66620170240 memory bytes, total request 4107 millicores 11307422720 memory bytes, score 9        
I1115 07:57:21.638971       1 resource_allocation.go:78] cronjob-cron-events-1573793820-xt6q9 -> nxs-k8s-s8: BalancedResourceAllocation, capacity 39900 millicores 66620178432 memory bytes, total request 5847 millicores 24333637120 memory bytes, score 7        
I1115 07:57:21.638975       1 resource_allocation.go:78] cronjob-cron-events-1573793820-xt6q9 -> nxs-k8s-s9: LeastResourceAllocation, capacity 39900 millicores 66620170240 memory bytes, total request 4107 millicores 11307422720 memory bytes, score 8           
I1115 07:57:21.638990       1 resource_allocation.go:78] cronjob-cron-events-1573793820-xt6q9 -> nxs-k8s-s8: LeastResourceAllocation, capacity 39900 millicores 66620178432 memory bytes, total request 5847 millicores 24333637120 memory bytes, score 7           
I1115 07:57:21.639022       1 generic_scheduler.go:726] cronjob-cron-events-1573793820-xt6q9_nxs-stage -> nxs-k8s-s10: TaintTolerationPriority, Score: (10)                                                                                                        
I1115 07:57:21.639030       1 generic_scheduler.go:726] cronjob-cron-events-1573793820-xt6q9_nxs-stage -> nxs-k8s-s8: TaintTolerationPriority, Score: (10)                                                                                                         
I1115 07:57:21.639034       1 generic_scheduler.go:726] cronjob-cron-events-1573793820-xt6q9_nxs-stage -> nxs-k8s-s9: TaintTolerationPriority, Score: (10)                                                                                                         
I1115 07:57:21.639041       1 generic_scheduler.go:726] cronjob-cron-events-1573793820-xt6q9_nxs-stage -> nxs-k8s-s10: NodeAffinityPriority, Score: (0)                                                                                                            
I1115 07:57:21.639053       1 generic_scheduler.go:726] cronjob-cron-events-1573793820-xt6q9_nxs-stage -> nxs-k8s-s8: NodeAffinityPriority, Score: (0)                                                                                                             
I1115 07:57:21.639059       1 generic_scheduler.go:726] cronjob-cron-events-1573793820-xt6q9_nxs-stage -> nxs-k8s-s9: NodeAffinityPriority, Score: (0)                                                                                                             
I1115 07:57:21.639061       1 interpod_affinity.go:237] cronjob-cron-events-1573793820-xt6q9 -> nxs-k8s-s10: InterPodAffinityPriority, Score: (0)                                                                                                                   
I1115 07:57:21.639063       1 selector_spreading.go:146] cronjob-cron-events-1573793820-xt6q9 -> nxs-k8s-s10: SelectorSpreadPriority, Score: (10)                                                                                                                   
I1115 07:57:21.639073       1 interpod_affinity.go:237] cronjob-cron-events-1573793820-xt6q9 -> nxs-k8s-s8: InterPodAffinityPriority, Score: (0)                                                                                                                    
I1115 07:57:21.639077       1 selector_spreading.go:146] cronjob-cron-events-1573793820-xt6q9 -> nxs-k8s-s8: SelectorSpreadPriority, Score: (10)                                                                                                                    
I1115 07:57:21.639085       1 interpod_affinity.go:237] cronjob-cron-events-1573793820-xt6q9 -> nxs-k8s-s9: InterPodAffinityPriority, Score: (0)                                                                                                                    
I1115 07:57:21.639088       1 selector_spreading.go:146] cronjob-cron-events-1573793820-xt6q9 -> nxs-k8s-s9: SelectorSpreadPriority, Score: (10)                                                                                                                    
I1115 07:57:21.639103       1 generic_scheduler.go:726] cronjob-cron-events-1573793820-xt6q9_nxs-stage -> nxs-k8s-s10: SelectorSpreadPriority, Score: (10)                                                                                                         
I1115 07:57:21.639109       1 generic_scheduler.go:726] cronjob-cron-events-1573793820-xt6q9_nxs-stage -> nxs-k8s-s8: SelectorSpreadPriority, Score: (10)                                                                                                          
I1115 07:57:21.639114       1 generic_scheduler.go:726] cronjob-cron-events-1573793820-xt6q9_nxs-stage -> nxs-k8s-s9: SelectorSpreadPriority, Score: (10)                                                                                                          
I1115 07:57:21.639127       1 generic_scheduler.go:781] Host nxs-k8s-s10 => Score 100037                                                                                                                                                                            
I1115 07:57:21.639150       1 generic_scheduler.go:781] Host nxs-k8s-s8 => Score 100034                                                                                                                                                                             
I1115 07:57:21.639154       1 generic_scheduler.go:781] Host nxs-k8s-s9 => Score 100037                                                                                                                                                                             
I1115 07:57:21.639267       1 scheduler_binder.go:269] AssumePodVolumes for pod "nxs-stage/cronjob-cron-events-1573793820-xt6q9", node "nxs-k8s-s10"                                                                                                               
I1115 07:57:21.639286       1 scheduler_binder.go:279] AssumePodVolumes for pod "nxs-stage/cronjob-cron-events-1573793820-xt6q9", node "nxs-k8s-s10": all PVCs bound and nothing to do                                                                             
I1115 07:57:21.639333       1 factory.go:733] Attempting to bind cronjob-cron-events-1573793820-xt6q9 to nxs-k8s-s10

рдпрд╣рд╛рдВ рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ рд╢реЗрдбреНрдпреВрд▓рд░ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ 3 рдиреЛрдбреНрд╕ рдХреА рдПрдХ рд╕реВрдЪреА рдмрдирд╛рддрд╛ рд╣реИ рдЬрд┐рд╕ рдкрд░ рдЗрд╕реЗ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (nxs-k8s-s8, nxs-k8s-s9, nxs-k8s-s10)ред рдлрд┐рд░ рдпрд╣ рд╕рдмрд╕реЗ рдЙрдкрдпреБрдХреНрдд рдиреЛрдб рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рдХреЗ рд▓рд┐рдП рдХрдИ рдорд╛рдкрджрдВрдбреЛрдВ (рдмреИрд▓реЗрдВрд╕реНрдб рд░рд┐рд╕реЛрд░реНрд╕ рдПрд▓реЛрдХреЗрд╢рди, рд▓реАрд╕реНрдЯ рд░рд┐рд╕реЛрд░реНрд╕ рдПрд▓реЛрдХреЗрд╢рди рд╕рд╣рд┐рдд) рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реНрдХреЛрд░ рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИред рдЕрдВрддрддрдГ, рдкреЙрдб рдХреЛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЕрдВрдХреЛрдВ рд╡рд╛рд▓реЗ рдиреЛрдб рдкрд░ рд╢реЗрдбреНрдпреВрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдпрд╣рд╛рдВ рджреЛ рдиреЛрдбреНрд╕ рдореЗрдВ рдПрдХ рд╕рд╛рде рдЕрдВрдХреЛрдВ рдХреА рд╕рдорд╛рди рд╕рдВрдЦреНрдпрд╛ 100037 рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИ - nxs-k8s-s10)ред

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

рдкреЙрдб рдХрд╛ рдирд┐рд╖реНрдХрд╛рд╕рди

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рдкреНрд░рддреНрдпреЗрдХ рдкреЙрдб рдХреЛ 3 QoS рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИ:

  1. рдЧрд╛рд░рдВрдЯреАрд╢реБрджрд╛ - рддрдм рдЕрд╕рд╛рдЗрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдкреЙрдб рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдХрдВрдЯреЗрдирд░ рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рдФрд░ рд╕реАрдкреАрдпреВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрд░реЛрдз рдФрд░ рд╕реАрдорд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреА рдЬрд╛рддреА рд╣реИ, рдФрд░ рдпреЗ рдорд╛рди рдореЗрд▓ рдЦрд╛рдиреЗ рдЪрд╛рд╣рд┐рдП
  2. рдлрдЯрдиреЗ рдпреЛрдЧреНрдп - рдкреЙрдб рдореЗрдВ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдПрдХ рдЕрдиреБрд░реЛрдз рдФрд░ рдПрдХ рд╕реАрдорд╛ рд╣реЛрддреА рд╣реИ, рдЕрдиреБрд░реЛрдз <рд╕реАрдорд╛ рдХреЗ рд╕рд╛рде
  3. рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдкреНрд░рдпрд╛рд╕ - рдЬрдм рдкреЙрдб рдореЗрдВ рдПрдХ рднреА рдХрдВрдЯреЗрдирд░ рд╕рдВрд╕рд╛рдзрди рд╕реАрдорд┐рдд рди рд╣реЛ

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

  • рдЧрд╛рд░рдВрдЯреАрдХреГрдд: -998
  • рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рдкреНрд░рдпрд╛рд╕: 1000
  • рдлрдЯрдиреЗ рдпреЛрдЧреНрдп: рдиреНрдпреВрдирддрдо(рдЕрдзрд┐рдХрддрдо(2, 1000 - (1000 * рдореЗрдореЛрд░реА рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ рдмрд╛рдЗрдЯреНрд╕) / рдорд╢реАрди рдореЗрдореЛрд░реА рдХреИрдкреЗрд╕рд┐рдЯреА рдмрд╛рдЗрдЯреНрд╕), 999)

рд╡реЗред рдЙрд╕реА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреЗ рд╕рд╛рде, рдХреНрдпреВрдмрд▓реЗрдЯ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдиреЛрдб рд╕реЗ рд╕рд░реНрд╡реЛрддреНрддрдо рдкреНрд░рдпрд╛рд╕ QoS рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рде рдкреЙрдбреНрд╕ рдХреЛ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓ рджреЗрдЧрд╛ред

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

рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреЙрдбреНрд╕ рдХреА рдХреНрд╖реИрддрд┐рдЬ рдСрдЯреЛрд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рддрдВрддреНрд░ (рдПрдЪрдкреАрдП)

рдЬрдм рдХрд╛рд░реНрдп рд╕рдВрд╕рд╛рдзрдиреЛрдВ (рд╕рд┐рд╕реНрдЯрдо - рд╕реАрдкреАрдпреВ/рд░реИрдо рдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ - рдЖрд░рдкреАрдПрд╕) рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкреЙрдбреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмрдврд╝рд╛рдирд╛ рдФрд░ рдШрдЯрд╛рдирд╛ рд╣реИ, рддреЛ рдРрд╕реА k8s рдЗрдХрд╛рдИ рдПрдЪрдкреАрдП (рдХреНрд╖реИрддрд┐рдЬ рдкреЙрдб рдСрдЯреЛрд╕реНрдХреЗрд▓рд░)ред рдЬрд┐рд╕рдХрд╛ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

  1. рдкреНрд░реЗрдХреНрд╖рд┐рдд рд╕рдВрд╕рд╛рдзрди рдХреА рд╡рд░реНрддрдорд╛рди рд░реАрдбрд┐рдВрдЧ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ (currentMetricValue)
  2. рд╕рдВрд╕рд╛рдзрди рдХреЗ рд▓рд┐рдП рд╡рд╛рдВрдЫрд┐рдд рдорд╛рди рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ (desiredMetricValue), рдЬреЛ рд╕рд┐рд╕реНрдЯрдо рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ
  3. рдкреНрд░рддрд┐рдХреГрддрд┐рдпреЛрдВ рдХреА рд╡рд░реНрддрдорд╛рди рд╕рдВрдЦреНрдпрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ (рд╡рд░реНрддрдорд╛рдирдкреНрд░рддрд┐рдХреГрддрд┐рдпрд╛рдБ)
  4. рдирд┐рдореНрди рд╕реВрддреНрд░ рдкреНрд░рддрд┐рдХреГрддрд┐рдпреЛрдВ рдХреА рд╡рд╛рдВрдЫрд┐рдд рд╕рдВрдЦреНрдпрд╛ рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ (рд╡рд╛рдВрдЫрд┐рддрдкреНрд░рддрд┐рдХреГрддрд┐рдпрд╛рдВ)
    рд╡рд╛рдВрдЫрд┐рддрдкреНрд░рддрд┐рдХреГрддрд┐рдпрд╛рдВ = [рд╡рд░реНрддрдорд╛рдирдкреНрд░рддрд┐рдХреГрддрд┐рдпрд╛рдВ* (рд╡рд░реНрддрдорд╛рдирдореЗрдЯреНрд░рд┐рдХрд╡реИрд▓реНрдпреВ/рд╡рд╛рдВрдЫрд┐рддрдореЗрдЯреНрд░рд┐рдХрд╡реИрд▓реНрдпреВ)]

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕реНрдХреЗрд▓рд┐рдВрдЧ рддрдм рдирд╣реАрдВ рд╣реЛрдЧреА рдЬрдм рдЧреБрдгрд╛рдВрдХ (currentMetricValue / DesiredMetricValue) 1 рдХреЗ рдХрд░реАрдм рд╣реЛ (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдЕрдиреБрдореЗрдп рддреНрд░реБрдЯрд┐ рд╕реНрд╡рдпрдВ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ; рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдпрд╣ 0.1 рд╣реИ)ред

рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдРрдк-рдЯреЗрд╕реНрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди (рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдгрд┐рдд) рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдЪрдкреАрдП рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рд╕реАрдкреАрдпреВ рдЦрдкрдд рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкреНрд░рддрд┐рдХреГрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдмрджрд▓рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ:

  • рдЖрд╡реЗрджрди рдкреНрд░рдХрдЯ

    kind: Deployment
    apiVersion: apps/v1beta2
    metadata:
    name: app-test
    spec:
    selector:
    matchLabels:
    app: app-test
    replicas: 2
    template:
    metadata:
    labels:
    app: app-test
    spec:
    containers:
    - name: nginx
    image: registry.nixys.ru/generic-images/nginx
    imagePullPolicy: Always
    resources:
    requests:
    cpu: 60m
    ports:
    - name: http
    containerPort: 80
    - name: nginx-exporter
    image: nginx/nginx-prometheus-exporter
    resources:
    requests:
    cpu: 30m
    ports:
    - name: nginx-exporter
    containerPort: 9113
    args:
    - -nginx.scrape-uri
    - http://127.0.0.1:80/nginx-status

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

  • рдПрдЪрдкреАрдП рдШреЛрд╖рдгрд╛рдкрддреНрд░

    apiVersion: autoscaling/v2beta2
    kind: HorizontalPodAutoscaler
    metadata:
    name: app-test-hpa
    spec:
    maxReplicas: 10
    minReplicas: 2
    scaleTargetRef:
    apiVersion: extensions/v1beta1
    kind: Deployment
    name: app-test
    metrics:
    - type: Resource
    resource:
    name: cpu
    target:
    type: Utilization
    averageUtilization: 30

    рд╡реЗред рд╣рдордиреЗ рдПрдХ рдПрдЪрдкреАрдП рдмрдирд╛рдпрд╛ рдЬреЛ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдРрдк-рдкрд░реАрдХреНрд╖рдг рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░реЗрдЧрд╛ рдФрд░ рд╕реАрдкреАрдпреВ рд╕рдВрдХреЗрддрдХ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рдкреЙрдб рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░реЗрдЧрд╛ (рд╣рдо рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдкреЙрдб рдХреЛ рдЕрдиреБрд░реЛрдзрд┐рдд рд╕реАрдкреАрдпреВ рдХрд╛ 30% рдЙрдкрднреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП), рдкреНрд░рддрд┐рдХреГрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде 2-10 рдХреА рд░реЗрдВрдЬ.

    рдЕрдм, рдЖрдЗрдП рдПрдЪрдкреАрдП рдСрдкрд░реЗрд╢рди рдХреЗ рддрдВрддреНрд░ рдХреЛ рджреЗрдЦреЗрдВ рдпрджрд┐ рд╣рдо рдХрд┐рд╕реА рдПрдХ рдЪреВрд▓реНрд╣реЗ рдкрд░ рд▓реЛрдб рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ:

     # kubectl top pod
    NAME                                                   CPU(cores)   MEMORY(bytes)
    app-test-78559f8f44-pgs58            101m         243Mi
    app-test-78559f8f44-cj4jz            4m           240Mi

рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИрдВ:

  • рд╡рд╛рдВрдЫрд┐рдд рдорд╛рди (desiredMetricValue) - рдПрдЪрдкреАрдП рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 30% рд╣реИ
  • рд╡рд░реНрддрдорд╛рди рдореВрд▓реНрдп (currentMetricValue) - рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП, рдирд┐рдпрдВрддреНрд░рдХ-рдкреНрд░рдмрдВрдзрдХ % рдореЗрдВ рд╕рдВрд╕рд╛рдзрди рдЦрдкрдд рдХреЗ рдФрд╕рдд рдореВрд▓реНрдп рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддред рд╕рд╢рд░реНрдд рд░реВрдк рд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд░рддрд╛ рд╣реИ:
    1. рдореАрдЯреНрд░рд┐рдХ рд╕рд░реНрд╡рд░ рд╕реЗ рдкреЙрдб рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдкреВрд░реНрдг рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддред 101рдореА рдФрд░ 4рдореА
    2. рдФрд╕рдд рдирд┐рд░рдкреЗрдХреНрд╖ рдорд╛рди рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддред (101 рдореА + 4 рдореА) / 2 = 53 рдореА
    3. рд╡рд╛рдВрдЫрд┐рдд рд╕рдВрд╕рд╛рдзрди рдЦрдкрдд рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рдореВрд▓реНрдп рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ (рдЗрд╕рдХреЗ рд▓рд┐рдП, рд╕рднреА рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ) 60m + 30m = 90m
    4. рдЕрдиреБрд░реЛрдз рдкреЙрдб рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╕реАрдкреАрдпреВ рдЦрдкрдд рдХреЗ рдФрд╕рдд рдкреНрд░рддрд┐рд╢рдд рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддред 53 рдореА / 90 рдореА * 100% = 59%

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

ratio = 59% / 30% = 1.96

рд╡реЗред рдкреНрд░рддрд┐рдХреГрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ ~2 рдЧреБрдирд╛ рдФрд░ рд░рд╛рд╢рд┐ [2 * 1.96] = 4 рддрдХ рдмрдврд╝рд╛рдИ рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред

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

рдиреЛрдбреНрд╕ рдХреЗ рдХреНрд╖реИрддрд┐рдЬ рдСрдЯреЛрд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рддрдВрддреНрд░ (рдХреНрд▓рд╕реНрдЯрд░ рдСрдЯреЛрд╕реНрдХреЗрд▓рд░)

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

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрджрд┐ рдкреНрд░рджрд╛рддрд╛ рдХреЗ рдкрд╛рд╕ рд╕рдВрдмрдВрдзрд┐рдд IaaS/PaaS (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, GKE/GCE, AKS, EKS, рдЖрджрд┐) рд╣реИ, рддреЛ рдПрдХ рдЙрдкрдХрд░рдг рдЬреИрд╕реЗ рдиреЛрдб рдСрдЯреЛрд╕реНрдХреЗрд▓рд░. рдпрд╣ рдЖрдкрдХреЛ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдЕрдзрд┐рдХрддрдо рдФрд░ рдиреНрдпреВрдирддрдо рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдиреЛрдбреНрд╕ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдФрд░ рдХреНрд▓рд╕реНрдЯрд░ рдФрд░ рдкреЙрдбреНрд╕ рдореЗрдВ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдХрдореА рд╣реЛрдиреЗ рдкрд░ рдиреЛрдбреНрд╕ рдХреА рд╡рд░реНрддрдорд╛рди рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ (рдиреЛрдб рдХреЛ рдСрд░реНрдбрд░ рдХрд░рдиреЗ/рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЙрдб рдкреНрд░рджрд╛рддрд╛ рдПрдкреАрдЖрдИ рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ) рд╢реЗрдбреНрдпреВрд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ (рд▓рдВрдмрд┐рдд рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реИрдВ)ред

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

рдирд┐рд╖реНрдХрд░реНрд╖

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

  1. K8s рдиреЛрдбреНрд╕ рдХреЗ рдмреАрдЪ рд▓реЛрдб рд╕рдВрддреБрд▓рди рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╢реЗрдбреНрдпреВрд▓рд░ рдХреЗ рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП
  2. "рдкреЙрдб рдирд┐рд╖реНрдХрд╛рд╕рди" рдШрдЯрдирд╛ рдШрдЯрд┐рдд рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
  3. рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреЙрдбреНрд╕ (рдПрдЪрдкреАрдП) рдХреА рдХреНрд╖реИрддрд┐рдЬ рдСрдЯреЛрд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдирд╛
  4. рдХреНрд▓рд╛рдЙрдб рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдиреЛрдбреНрд╕ рдХреА рдХреНрд╖реИрддрд┐рдЬ рдСрдЯреЛрд╕реНрдХреЗрд▓рд┐рдВрдЧ (рдХреНрд▓рд╕реНрдЯрд░ рдСрдЯреЛрд╕реНрдХреЗрд▓рд┐рдВрдЧ) рдХреЗ рд▓рд┐рдП

рд╣рдорд╛рд░реЗ рдмреНрд▓реЙрдЧ рдкрд░ рдЕрдиреНрдп рд▓реЗрдЦ рднреА рдкрдврд╝реЗрдВ:

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ