рд╕реБрд░рдХреНрд╖рд╛ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпреЛрдВ рдХрд╛ рдкрд░рд┐рдЪрдп

рд╕реБрд░рдХреНрд╖рд╛ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпреЛрдВ рдХрд╛ рдкрд░рд┐рдЪрдп

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

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

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

рдпрд╣ рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ рдЖрдкрдХреЛ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпреЛрдВ рдХреА рдЖрдВрддрд░рд┐рдХ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧреА; рд╕рдордЭреЗрдВ рдХрд┐ рд╡реЗ рдирд┐рдпрдорд┐рдд рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдХреЗ рдирд┐рдпрдореЛрдВ рд╕реЗ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рднрд┐рдиреНрди рд╣реИрдВред рдпрд╣ рдХреБрдЫ рдХрдорд┐рдпреЛрдВ рдХреЛ рднреА рдХрд╡рд░ рдХрд░реЗрдЧрд╛ рдФрд░ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдкрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рд╕рд┐рдлрд╛рд░рд┐рд╢реЗрдВ рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛ред

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпрд╛рдВ

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

рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпрд╛рдВ рдкреЙрдбреНрд╕ рдХреЗ рдмреАрдЪ рд╕рдВрдЪрд╛рд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреА рд╣реИрдВ

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

рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛

рдЕрдиреНрдп рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рддрд░рд╣, рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпрд╛рдВ YAML рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИрдВред рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди balance рддрдХ рдкрд╣реБрдВрдЪ postgres:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default.postgres
  namespace: default
spec:
  podSelector:
    matchLabels:
      app: postgres
  ingress:
  - from:
    - podSelector:
        matchLabels:
          app: balance
  policyTypes:
  - Ingress

рд╕реБрд░рдХреНрд╖рд╛ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпреЛрдВ рдХрд╛ рдкрд░рд┐рдЪрдп

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

рдЕрдкрдиреА рд╕реНрд╡рдпрдВ рдХреА рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ YAML рдХреЗ рдмреБрдирд┐рдпрд╛рджреА рдЬреНрдЮрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдпрд╣ рднрд╛рд╖рд╛ рдЗрдВрдбреЗрдВрдЯреЗрд╢рди (рдЯреИрдм рдХреЗ рдмрдЬрд╛рдп рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ) рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рдПрдХ рдЗрдВрдбреЗрдВрдЯреЗрдб рддрддреНрд╡ рдЙрд╕рдХреЗ рдКрдкрд░ рдирд┐рдХрдЯрддрдо рдЗрдВрдбреЗрдВрдЯреЗрдб рддрддреНрд╡ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛрддрд╛ рд╣реИред рдПрдХ рдирдпрд╛ рд╕реВрдЪреА рддрддреНрд╡ рдПрдХ рд╣рд╛рдЗрдлрд╝рди рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдЕрдиреНрдп рд╕рднреА рддрддреНрд╡реЛрдВ рдХрд╛ рд░реВрдк рд╣реЛрддрд╛ рд╣реИ рдореМрд▓рд┐рдХ рдореВрд▓реНрдп.

YAML рдореЗрдВ рдиреАрддрд┐ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ KubectlрдЗрд╕реЗ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП:

kubectl create -f policy.yaml

рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐ рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдореЗрдВ рдЪрд╛рд░ рддрддреНрд╡ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

  1. podSelector: рдЗрд╕ рдиреАрддрд┐ (рд▓рдХреНрд╖реНрдп) рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдкреЙрдбреНрд╕ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ - рдЖрд╡рд╢реНрдпрдХ;
  2. policyTypes: рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреА рдиреАрддрд┐рдпрд╛рдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ: рдкреНрд░рд╡реЗрд╢ рдФрд░/рдпрд╛ рдирд┐рдХрд╛рд╕ - рд╡реИрдХрд▓реНрдкрд┐рдХ, рд▓реЗрдХрд┐рди рдореИрдВ рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЗрд╕реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВ;
  3. ingress: рдЕрдиреБрдорддрд┐ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЖрдиреЗ рд╡рд╛рд▓реА рд▓рдХреНрд╖реНрдп рдкреЙрдбреНрд╕ рдкрд░ рдЯреНрд░реИрдлрд╝рд┐рдХ - рд╡реИрдХрд▓реНрдкрд┐рдХ;
  4. egress: рдЕрдиреБрдорддрд┐ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд╛рд╡рдХ рд▓рдХреНрд╖реНрдп рдкреЙрдбреНрд╕ рд╕реЗ рдЯреНрд░реИрдлрд╝рд┐рдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдореИрдВрдиреЗ рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИ)ред role рдкрд░ app), рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рд╕рднреА рдЪрд╛рд░ рддрддреНрд╡реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: test-network-policy
  namespace: default
spec:
  podSelector:    # <<<
    matchLabels:
      app: db
  policyTypes:    # <<<
  - Ingress
  - Egress
  ingress:        # <<<
  - from:
    - ipBlock:
        cidr: 172.17.0.0/16
        except:
        - 172.17.1.0/24
    - namespaceSelector:
        matchLabels:
          project: myproject
    - podSelector:
        matchLabels:
          role: frontend
    ports:
    - protocol: TCP
      port: 6379
  egress:         # <<<
  - to:
    - ipBlock:
        cidr: 10.0.0.0/24
    ports:
    - protocol: TCP
      port: 5978

рд╕реБрд░рдХреНрд╖рд╛ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпреЛрдВ рдХрд╛ рдкрд░рд┐рдЪрдп
рд╕реБрд░рдХреНрд╖рд╛ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпреЛрдВ рдХрд╛ рдкрд░рд┐рдЪрдп

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

рдпрджрд┐ рдЖрдк рдЫреЛрдбрд╝ рджреЗрдВ policyTypes, рдиреАрддрд┐ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдПрдЧреА:

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

рдЧрд▓рддрд┐рдпреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдБ рдЗрд╕реЗ рд╣рдореЗрд╢рд╛ рд╕реНрдкрд╖реНрдЯ рд░рдЦреЗрдВ policyTypes.

рдЙрдкрд░реЛрдХреНрдд рддрд░реНрдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдпрджрд┐ рдкреИрд░рд╛рдореАрдЯрд░ ingress рдФрд░ / рдпрд╛ egress рдЫреЛрдбрд╝реЗ рдЬрд╛рдиреЗ рдкрд░, рдиреАрддрд┐ рд╕рднреА рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рджреЗрдЧреА (рдиреАрдЪреЗ "рд╕реНрдЯреНрд░рд┐рдкрд┐рдВрдЧ рдирд┐рдпрдо" рджреЗрдЦреЗрдВ)ред

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдиреАрддрд┐ рдЕрдиреБрдорддрд┐ рд╣реИ

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

рдиреЗрдорд╕реНрдкреЗрд╕

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

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

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: test-network-policy
  namespace: my-namespace  # <<<
spec:
...

рдпрджрд┐ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдореЗрдВ рдирд╛рдорд╕реНрдерд╛рди рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╕рд┐рд╕реНрдЯрдо kubectl рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╛рдорд╕реНрдерд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ) namespace=default):

kubectl apply -n my-namespace -f namespace.yaml

рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдирд╛рдорд╕реНрдерд╛рди рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ, рдЬрдм рддрдХ рдХрд┐ рдЖрдк рдРрд╕реА рдиреАрддрд┐ рдирд╣реАрдВ рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдПрдХ рд╕рд╛рде рдХрдИ рдирд╛рдорд╕реНрдерд╛рдиреЛрдВ рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░рддреА рд╣реИред

рдкреНрд░рд╛рдердорд┐рдХ рддрддреНрддреНрд╡ podSelector рдкреЙрд▓рд┐рд╕реА рдореЗрдВ рдЙрд╕ рдиреЗрдорд╕реНрдкреЗрд╕ рд╕реЗ рдкреЙрдбреНрд╕ рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЬрд┐рд╕рд╕реЗ рдкреЙрд▓рд┐рд╕реА рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ (рдЗрд╕реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рдиреЗрдорд╕реНрдкреЗрд╕ рд╕реЗ рдкреЙрдбреНрд╕ рддрдХ рдкрд╣реБрдВрдЪ рд╕реЗ рд╡рдВрдЪрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред

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

рдиреАрддрд┐ рдирд╛рдордХрд░рдг рдирд┐рдпрдо

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

рдореБрдЭреЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдирд╛рдордХрд░рдг рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдкрд╕рдВрдж рд╣реИред рдЗрд╕рдореЗрдВ рдиреЗрдорд╕реНрдкреЗрд╕ рдирд╛рдо рдХреЛ рд▓рдХреНрд╖реНрдп рдкреЙрдбреНрд╕ рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default.postgres  # <<<
  namespace: default
spec:
  podSelector:
    matchLabels:
      app: postgres
  ingress:
  - from:
    - podSelector:
        matchLabels:
          app: admin
  policyTypes:
  - Ingress

рд╕реБрд░рдХреНрд╖рд╛ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпреЛрдВ рдХрд╛ рдкрд░рд┐рдЪрдп

рд▓реЗрдмрд▓

рдЖрдк рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕, рдЬреИрд╕реЗ рдкреЙрдбреНрд╕ рдФрд░ рдиреЗрдорд╕реНрдкреЗрд╕ рдореЗрдВ рдХрд╕реНрдЯрдо рд▓реЗрдмрд▓ рд╕рдВрд▓рдЧреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдмрд▓ (рд▓реЗрдмрд▓реЛрдВ - рдЯреИрдЧ) рдХреНрд▓рд╛рдЙрдб рдореЗрдВ рдЯреИрдЧ рдХреЗ рд╕рдорддреБрд▓реНрдп рд╣реИрдВред рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпрд╛рдВ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЗрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИрдВ рдлрд▓реАрдЬрд┐рд╕ рдкрд░ рд╡реЗ рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВ:

podSelector:
  matchLabels:
    role: db

тАж рдпрд╛ рдирд╛рдорд╕реНрдерд╛рдирдЬрд┐рд╕ рдкрд░ рд╡реЗ рдЖрд╡реЗрджрди рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдЙрджрд╛рд╣рд░рдг рд╕рдВрдмрдВрдзрд┐рдд рд▓реЗрдмрд▓ рдХреЗ рд╕рд╛рде рдиреЗрдорд╕реНрдкреЗрд╕ рдореЗрдВ рд╕рднреА рдкреЙрдбреНрд╕ рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ:

namespaceSelector:
  matchLabels:
    project: myproject

рдПрдХ рд╕рд╛рд╡рдзрд╛рдиреА: рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп namespaceSelector рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЪреБрдиреЗ рдЧрдП рдирд╛рдорд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рд╕рд╣реА рд▓реЗрдмрд▓ рд╣реИ. рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдирд╛рдорд╕реНрдерд╛рди рдЬреИрд╕реЗ default ╨╕ kube-system, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд▓реЗрдмрд▓ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИрдВред

рдЖрдк рдХрд┐рд╕реА рд╕реНрдерд╛рди рдкрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдПрдХ рд▓реЗрдмрд▓ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ:

kubectl label namespace default namespace=default

рдЙрд╕реА рд╕рдордп, рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдирд╛рдорд╕реНрдерд╛рди metadata рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрдерд╛рди рдирд╛рдо рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдмрд▓ рдХрд╛ рдирд╣реАрдВ:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: test-network-policy
  namespace: default   # <<<
spec:
...

рд╕реНрд░реЛрдд рдФрд░ рдЧрдВрддрд╡реНрдп

рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдиреАрддрд┐рдпреЛрдВ рдореЗрдВ рд╕реНрд░реЛрддреЛрдВ рдФрд░ рдЧрдВрддрд╡реНрдпреЛрдВ рд╡рд╛рд▓реЗ рдирд┐рдпрдо рд╢рд╛рдорд┐рд▓ рд╣реЛрддреЗ рд╣реИрдВред рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпреЛрдВ рдХреЛ рдПрдХ рд▓рдХреНрд╖реНрдп рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - рдкреЙрдбреНрд╕ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдЬрд┐рд╕ рдкрд░ рд╡реЗ рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВ - рдФрд░ рдлрд┐рд░ рдкреНрд░рд╡реЗрд╢ рдФрд░/рдпрд╛ рдирд┐рдХрд╛рд╕ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдо рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдиреАрддрд┐ рдХрд╛ рд▓рдХреНрд╖реНрдп рдиреЗрдорд╕реНрдкреЗрд╕ рдХреЗ рд╕рднреА рдкреЙрдб рд╣реЛрдВрдЧреЗ default рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рд▓реЗрдмрд▓ рдХреЗ рд╕рд╛рде app рдФрд░ рдЕрд░реНрде db:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: test-network-policy
  namespace: default
spec:
  podSelector:
    matchLabels:
      app: db   # <<<
  policyTypes:
  - Ingress
  - Egress
  ingress:
  - from:
    - ipBlock:
        cidr: 172.17.0.0/16
        except:
        - 172.17.1.0/24
    - namespaceSelector:
        matchLabels:
          project: myproject
    - podSelector:
        matchLabels:
          role: frontend
    ports:
    - protocol: TCP
      port: 6379
  egress:
  - to:
    - ipBlock:
        cidr: 10.0.0.0/24
    ports:
    - protocol: TCP
      port: 5978

рд╕реБрд░рдХреНрд╖рд╛ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпреЛрдВ рдХрд╛ рдкрд░рд┐рдЪрдп
рд╕реБрд░рдХреНрд╖рд╛ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпреЛрдВ рдХрд╛ рдкрд░рд┐рдЪрдп

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

рд╕реБрд░рдХреНрд╖рд╛ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпреЛрдВ рдХрд╛ рдкрд░рд┐рдЪрдп

рдпрд╣ рджреЛ рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдирд┐рдпрдореЛрдВ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ: рдкреНрд░рд╡реЗрд╢ тЖТ рд▓рдХреНрд╖реНрдп; рд▓рдХреНрд╖реНрдп тЖТ рдирд┐рдХрд╛рд╕.

рдирд┐рдХрд╛рд╕ рдФрд░ рдбреАрдПрдирдПрд╕ (рдорд╣рддреНрд╡рдкреВрд░реНрдг!)

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

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default.balance
  namespace: default
spec:
  podSelector:
    matchLabels:
      app: balance
  egress:
  - to:
    - podSelector:
        matchLabels:
          app: postgres
  policyTypes:
  - Egress

рд╕реБрд░рдХреНрд╖рд╛ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпреЛрдВ рдХрд╛ рдкрд░рд┐рдЪрдп

рдЖрдк DNS рд╕реЗрд╡рд╛ рддрдХ рдкрд╣реБрдВрдЪ рдЦреЛрд▓рдХрд░ рдЗрд╕реЗ рдареАрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default.balance
  namespace: default
spec:
  podSelector:
    matchLabels:
      app: balance
  egress:
  - to:
    - podSelector:
        matchLabels:
          app: postgres
  - to:               # <<<
    ports:            # <<<
    - protocol: UDP   # <<<
      port: 53        # <<<
  policyTypes:
  - Egress

рд╕реБрд░рдХреНрд╖рд╛ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпреЛрдВ рдХрд╛ рдкрд░рд┐рдЪрдп

рдЕрдВрддрд┐рдо рддрддреНрд╡ to рдЦрд╛рд▓реА рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рд░реВрдк рд╕реЗ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ рд╕рднреА рдирд╛рдорд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рд╕рднреА рдкреЙрдбреНрд╕, рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ balance DNS рдХреНрд╡реЗрд░реАрдЬрд╝ рдХреЛ рдЙрдкрдпреБрдХреНрдд рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕реЗрд╡рд╛ рдкрд░ рднреЗрдЬреЗрдВ (рдЖрдорддреМрд░ рдкрд░ рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рдЪрд▓ рд░рд╣реА рд╣реИ kube-system).

рд╣рд╛рд▓рд╛рдБрдХрд┐ рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЕрддреНрдпрдзрд┐рдХ рдЕрдиреБрдорддрд┐рдкреВрд░реНрдг рдФрд░ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ DNS рдХреНрд╡реЗрд░реАрдЬрд╝ рдХреЛ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рдмрд╛рд╣рд░ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдЖрдк рдЗрд╕реЗ рд▓рдЧрд╛рддрд╛рд░ рддреАрди рдЪрд░рдгреЛрдВ рдореЗрдВ рд╕реБрдзрд╛рд░ рд╕рдХрддреЗ рд╣реИрдВред

1. рдХреЗрд╡рд▓ DNS рдХреНрд╡реЗрд░реАрдЬрд╝ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВ рдЕрдВрджрд░ рдЬреЛрдбрд╝рдХрд░ рдХреНрд▓рд╕реНрдЯрд░ рдХрд░реЗрдВ namespaceSelector:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default.balance
  namespace: default
spec:
  podSelector:
    matchLabels:
      app: balance
  egress:
  - to:
    - podSelector:
        matchLabels:
          app: postgres
  - to:
    - namespaceSelector: {} # <<<
    ports:
    - protocol: UDP
      port: 53
  policyTypes:
  - Egress

рд╕реБрд░рдХреНрд╖рд╛ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпреЛрдВ рдХрд╛ рдкрд░рд┐рдЪрдп

2. DNS рдХреНрд╡реЗрд░реАрдЬрд╝ рдХреЛ рдХреЗрд╡рд▓ рдиреЗрдорд╕реНрдкреЗрд╕ рдореЗрдВ рд╣реА рдЕрдиреБрдорддрд┐ рджреЗрдВ kube-system.

рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдиреЗрдорд╕реНрдкреЗрд╕ рдореЗрдВ рдПрдХ рд▓реЗрдмрд▓ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ kube-system: kubectl label namespace kube-system namespace=kube-system - рдФрд░ рдЗрд╕реЗ рдкреЙрд▓рд┐рд╕реА рдореЗрдВ рд▓рд┐рдЦ рд▓реЗрдВ namespaceSelector:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default.balance
  namespace: default
spec:
  podSelector:
    matchLabels:
      app: balance
  egress:
  - to:
    - podSelector:
        matchLabels:
          app: postgres
  - to:
    - namespaceSelector:         # <<<
        matchLabels:             # <<<
          namespace: kube-system # <<<
    ports:
    - protocol: UDP
      port: 53
  policyTypes:
  - Egress

рд╕реБрд░рдХреНрд╖рд╛ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпреЛрдВ рдХрд╛ рдкрд░рд┐рдЪрдп

3. рдкрд╛рдЧрд▓ рд▓реЛрдЧ рдЗрд╕рд╕реЗ рднреА рдЖрдЧреЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ DNS рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ DNS рд╕реЗрд╡рд╛ рддрдХ рд╕реАрдорд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ kube-system. рдЕрдиреБрднрд╛рдЧ "рдиреЗрдорд╕реНрдкреЗрд╕ рдФрд░ рдкреЙрдбреНрд╕ рджреНрд╡рд╛рд░рд╛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░реЗрдВ" рдЖрдкрдХреЛ рдмрддрд╛рдПрдЧрд╛ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рдПред

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

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default.dns
  namespace: default
spec:
  podSelector: {} # <<<
  egress:
  - to:
    - namespaceSelector: {}
    ports:
    - protocol: UDP
      port: 53
  policyTypes:
  - Egress

рдЕрд╢рдХреНрдд podSelector рдиреЗрдорд╕реНрдкреЗрд╕ рдореЗрдВ рд╕рднреА рдкреЙрдбреНрд╕ рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИред

рд╕реБрд░рдХреНрд╖рд╛ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпреЛрдВ рдХрд╛ рдкрд░рд┐рдЪрдп

рдкрд╣рд▓рд╛ рдореИрдЪ рдФрд░ рдирд┐рдпрдо рдХреНрд░рдо

рдкрд╛рд░рдВрдкрд░рд┐рдХ рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдореЗрдВ, рдХрд┐рд╕реА рдкреИрдХреЗрдЯ рдкрд░ рдХрд╛рд░реНрд░рд╡рд╛рдИ (рдЕрдиреБрдорддрд┐ рджреЗрдВ рдпрд╛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВ) рдкрд╣рд▓реЗ рдирд┐рдпрдо рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ рдЬрд┐рд╕реЗ рд╡рд╣ рд╕рдВрддреБрд╖реНрдЯ рдХрд░рддрд╛ рд╣реИред рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ, рдиреАрддрд┐рдпреЛрдВ рдХрд╛ рдХреНрд░рдо рдХреЛрдИ рдорд╛рдпрдиреЗ рдирд╣реАрдВ рд░рдЦрддрд╛ред

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

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

рд╕реНрдЯреНрд░рд┐рдкрд┐рдВрдЧ рдирд┐рдпрдо ("рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВ")

рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдиреАрддрд┐рдпрд╛рдВ рдЖрдо рддреМрд░ рдкрд░ рдРрд╕реЗ рдХрд┐рд╕реА рднреА рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреА рд╣реИрдВ рдЬрд┐рд╕рдХреА рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИред

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

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: deny-all
  namespace: default
spec:
  podSelector: {}
  policyTypes:
  - Ingress

рд╕реБрд░рдХреНрд╖рд╛ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпреЛрдВ рдХрд╛ рдкрд░рд┐рдЪрдп

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

рдЗрд╕реА рддрд░рд╣, рдЖрдк рдХрд┐рд╕реА рдирд╛рдорд╕реНрдерд╛рди рд╕реЗ рд╕рднреА рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: deny-all-egress
  namespace: default
spec:
  podSelector: {}
  policyTypes:
  - Egress

рд╕реБрд░рдХреНрд╖рд╛ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпреЛрдВ рдХрд╛ рдкрд░рд┐рдЪрдп

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдиреЗрдорд╕реНрдкреЗрд╕ рдореЗрдВ рдкреЙрдбреНрд╕ рдкрд░ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рд╡рд╛рд▓реА рдХреЛрдИ рднреА рдЕрддрд┐рд░рд┐рдХреНрдд рдиреАрддрд┐ рдЗрд╕ рдирд┐рдпрдо рдкрд░ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд▓реЗрдЧреА (рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдЗрдирдХрд╛рд░ рдирд┐рдпрдо рд╕реЗ рдкрд╣рд▓реЗ рдЕрдиреБрдорддрд┐ рдирд┐рдпрдо рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд╕рдорд╛рди)ред

рд╣рд░ рдЪреАрдЬрд╝ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВ (рдХреЛрдИ рднреА-рдХреЛрдИ рднреА-рдЕрдиреБрдорддрд┐ рджреЗрдВ)

рд╕рднреА рдХреЛ рдЕрдиреБрдорддрд┐ рджреЗрдВ рдиреАрддрд┐ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЙрдкрд░реЛрдХреНрдд рдЕрд╕реНрд╡реАрдХрд╛рд░ рдиреАрддрд┐ рдХреЛ рдПрдХ рдЦрд╛рд▓реА рддрддреНрд╡ рдХреЗ рд╕рд╛рде рдкреВрд░рдХ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ ingress:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-all
  namespace: default
spec:
  podSelector: {}
  ingress: # <<<
  - {}     # <<<
  policyTypes:
  - Ingress

рд╕реБрд░рдХреНрд╖рд╛ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпреЛрдВ рдХрд╛ рдкрд░рд┐рдЪрдп

рдпрд╣ рд╕реЗ рдкреНрд░рд╡реЗрд╢ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рд╕рднреА рдиреЗрдорд╕реНрдкреЗрд╕ рдореЗрдВ рд╕рднреА рдкреЙрдб (рдФрд░ рд╕рднреА рдЖрдИрдкреА) рдиреЗрдорд╕реНрдкреЗрд╕ рдореЗрдВ рдХрд┐рд╕реА рднреА рдкреЙрдб рдореЗрдВ default. рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдЖрдорддреМрд░ рдкрд░ рдЖрдЧреЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдХрднреА-рдХрднреА рдЖрдкрдХреЛ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдирд┐рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЛ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред

рдХреЗрд╡рд▓ рдкрд╣реБрдВрдЪ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдо рдХреЛ рдЫреЛрдЯрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдлрд▓рд┐рдпреЛрдВ рдХрд╛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реЗрдЯ (app:balance) рдиреЗрдорд╕реНрдкреЗрд╕ рдореЗрдВ default:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-all-to-balance
  namespace: default
spec:
  podSelector:
    matchLabels:
      app: balance
  ingress: 
  - {}
  policyTypes:
  - Ingress

рд╕реБрд░рдХреНрд╖рд╛ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпреЛрдВ рдХрд╛ рдкрд░рд┐рдЪрдп

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдиреАрддрд┐ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рдмрд╛рд╣рд░ рдХрд┐рд╕реА рднреА рдЖрдИрдкреА рддрдХ рдкрд╣реБрдВрдЪ рд╕рд╣рд┐рдд рд╕рднреА рдкреНрд░рд╡реЗрд╢ рдФрд░ рдирд┐рдХрд╛рд╕ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-all
spec:
  podSelector: {}
  ingress:
  - {}
  egress:
  - {}
  policyTypes:
  - Ingress
  - Egress

рд╕реБрд░рдХреНрд╖рд╛ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпреЛрдВ рдХрд╛ рдкрд░рд┐рдЪрдп
рд╕реБрд░рдХреНрд╖рд╛ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпреЛрдВ рдХрд╛ рдкрд░рд┐рдЪрдп

рдЕрдиреЗрдХ рдиреАрддрд┐рдпреЛрдВ рдХрд╛ рд╕рдВрдпреЛрдЬрди

рдиреАрддрд┐рдпреЛрдВ рдХреЛ рддрд╛рд░реНрдХрд┐рдХ OR рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддреАрди рд╕реНрддрд░реЛрдВ рдкрд░ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ; рдкреНрд░рддреНрдпреЗрдХ рдкреЙрдб рдХреА рдЕрдиреБрдорддрд┐рдпрд╛рдБ рдЙрд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╕рднреА рдиреАрддрд┐рдпреЛрдВ рдХреЗ рд╡рд┐рдЪреНрдЫреЗрджрди рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИрдВ:

1. рдЦреЗрддреЛрдВ рдореЗрдВ from ╨╕ to рддреАрди рдкреНрд░рдХрд╛рд░ рдХреЗ рддрддреНрд╡реЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЬрд┐рдирдореЗрдВ рд╕реЗ рд╕рднреА рдХреЛ OR рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ):

  • namespaceSelector - рд╕рдВрдкреВрд░реНрдг рдирд╛рдорд╕реНрдерд╛рди рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ;
  • podSelector - рдлрд▓реА рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ;
  • ipBlock - рдПрдХ рд╕рдмрдиреЗрдЯ рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЙрдкрдЦрдВрдбреЛрдВ рдореЗрдВ рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ (рд╕рдорд╛рди рд╡рд╛рд▓реЗ рднреА)ред from/to рд╕реАрдорд┐рдд рдирд╣реАрдВред рдЙрди рд╕рднреА рдХреЛ рддрд╛рд░реНрдХрд┐рдХ OR рджреНрд╡рд╛рд░рд╛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default.postgres
  namespace: default
spec:
  ingress:
  - from:
    - podSelector:
        matchLabels:
          app: indexer
    - podSelector:
        matchLabels:
          app: admin
  podSelector:
    matchLabels:
      app: postgres
  policyTypes:
  - Ingress

рд╕реБрд░рдХреНрд╖рд╛ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпреЛрдВ рдХрд╛ рдкрд░рд┐рдЪрдп

2. рдиреАрддрд┐ рдЕрдиреБрднрд╛рдЧ рдХреЗ рдЕрдВрджрд░ ingress рдХрдИ рддрддреНрд╡ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ from (рддрд╛рд░реНрдХрд┐рдХ OR рджреНрд╡рд╛рд░рд╛ рд╕рдВрдпреБрдХреНрдд)ред рдЗрд╕реА рдкреНрд░рдХрд╛рд░, рдЕрдиреБрднрд╛рдЧ egress рдХрдИ рддрддреНрд╡ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ to (рд╡рд┐рдЪреНрдЫреЗрдж рджреНрд╡рд╛рд░рд╛ рднреА рд╕рдВрдпреБрдХреНрдд):

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default.postgres
  namespace: default
spec:
  ingress:
  - from:
    - podSelector:
        matchLabels:
          app: indexer
  - from:
    - podSelector:
        matchLabels:
          app: admin
  podSelector:
    matchLabels:
      app: postgres
  policyTypes:
  - Ingress

рд╕реБрд░рдХреНрд╖рд╛ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпреЛрдВ рдХрд╛ рдкрд░рд┐рдЪрдп

3. рд╡рд┐рднрд┐рдиреНрди рдиреАрддрд┐рдпреЛрдВ рдХреЛ рддрд╛рд░реНрдХрд┐рдХ OR рдХреЗ рд╕рд╛рде рднреА рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ

рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рддреЗ рд╕рдордп, рдЬрд┐рд╕ рдкрд░ рдПрдХ рд╕реАрдорд╛ рд╣реЛрддреА рд╣реИ рдореЗрд░реЗ рдкрд╛рд╕ рд╣реИ рдХреНрд░рд┐рд╕ рдХреВрдиреА: рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗрд╡рд▓ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдиреАрддрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ policyTypes (Ingress рдпрд╛ Egress). рдкреНрд░рд╡реЗрд╢ (рдпрд╛ рдирд┐рдХрд╛рд╕) рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рдиреАрддрд┐рдпрд╛рдВ рдПрдХ-рджреВрд╕рд░реЗ рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░ рджреЗрдВрдЧреАред

рдирд╛рдорд╕реНрдерд╛рдиреЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдирд╛рдорд╕реНрдерд╛рдиреЛрдВ рдХреЗ рдмреАрдЪ рдЬрд╛рдирдХрд╛рд░реА рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИред рдЗрд╕реЗ рдЗрдирдХрд╛рд░ рдиреАрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдирд╛рдорд╕реНрдерд╛рди рдореЗрдВ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдФрд░/рдпрд╛ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░реЗрдЧрд╛ (рдКрдкрд░ "рд╕реНрдЯреНрд░рд┐рдкрд┐рдВрдЧ рдирд┐рдпрдо" рджреЗрдЦреЗрдВ)ред

рдПрдХ рдмрд╛рд░ рдЬрдм рдЖрдк рдХрд┐рд╕реА рдиреЗрдорд╕реНрдкреЗрд╕ рддрдХ рдкрд╣реБрдВрдЪ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░ рджреЗрддреЗ рд╣реИрдВ (рдЙрдкрд░реЛрдХреНрдд "рд╕реНрдЯреНрд░рд┐рдкрд┐рдВрдЧ рдирд┐рдпрдо" рджреЗрдЦреЗрдВ), рддреЛ рдЖрдк рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдиреЗрдорд╕реНрдкреЗрд╕ рд╕реЗ рдХрдиреЗрдХреНрд╢рди рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдХрд░ рдЗрдирдХрд╛рд░ рдХрд░рдиреЗ рдХреА рдиреАрддрд┐ рдореЗрдВ рдЕрдкрд╡рд╛рдж рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ namespaceSelector:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: database.postgres
  namespace: database
spec:
  podSelector:
    matchLabels:
      app: postgres
  ingress:
  - from:
    - namespaceSelector: # <<<
        matchLabels:
          namespace: default
  policyTypes:
  - Ingress

рд╕реБрд░рдХреНрд╖рд╛ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпреЛрдВ рдХрд╛ рдкрд░рд┐рдЪрдп

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдиреЗрдорд╕реНрдкреЗрд╕ рдореЗрдВ рд╕рднреА рдкреЙрдбреНрд╕ default рдкреЙрдбреНрд╕ рддрдХ рдкрд╣реБрдВрдЪ рд╣реЛрдЧреА postgres рдиреЗрдорд╕реНрдкреЗрд╕ рдореЗрдВ database. рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдк рдкрд╣реБрдВрдЪ рдЦреЛрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ postgres рдиреЗрдорд╕реНрдкреЗрд╕ рдореЗрдВ рдХреЗрд╡рд▓ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреЙрдбреНрд╕ default?

рдиреЗрдорд╕реНрдкреЗрд╕ рдФрд░ рдкреЙрдбреНрд╕ рджреНрд╡рд╛рд░рд╛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░реЗрдВ

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕рдВрд╕реНрдХрд░рдг 1.11 рдФрд░ рдЙрдЪреНрдЪрддрд░ рдЖрдкрдХреЛ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ namespaceSelector ╨╕ podSelector рддрд╛рд░реНрдХрд┐рдХ AND рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: database.postgres
  namespace: database
spec:
  podSelector:
    matchLabels:
      app: postgres
  ingress:
  - from:
    - namespaceSelector:
        matchLabels:
          namespace: default
      podSelector: # <<<
        matchLabels:
          app: admin
  policyTypes:
  - Ingress

рд╕реБрд░рдХреНрд╖рд╛ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпреЛрдВ рдХрд╛ рдкрд░рд┐рдЪрдп

рдЗрд╕рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рд╕рд╛рдорд╛рдиреНрдп OR рдХреЗ рдмрдЬрд╛рдп AND рдХреЗ рд░реВрдк рдореЗрдВ рдХреНрдпреЛрдВ рдХреА рдЬрд╛рддреА рд╣реИ?

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ podSelector рд╣рд╛рдЗрдлрд╝рди рд╕реЗ рдкреНрд░рд╛рд░рдВрдн рдирд╣реАрдВ рд╣реЛрддрд╛. YAML рдореЗрдВ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ podSelector рдФрд░ рдЙрд╕рдХреЗ рд╕рд╛рдордиреЗ рдЦрдбрд╝рд╛ рд╣реИ namespaceSelector рдЙрд╕реА рд╕реВрдЪреА рддрддреНрд╡ рдХреЛ рджреЗрдЦреЗрдВред рдЗрд╕рд▓рд┐рдП, рд╡реЗ рддрд╛рд░реНрдХрд┐рдХ AND рдХреЗ рд╕рд╛рде рд╕рдВрдпреБрдХреНрдд рд╣реИрдВред

рдкрд╣рд▓реЗ рдПрдХ рд╣рд╛рдЗрдлрд╝рди рдЬреЛрдбрд╝рдирд╛ podSelector рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдПрдХ рдирдпрд╛ рд╕реВрдЪреА рддрддреНрд╡ рд╕рд╛рдордиреЗ рдЖрдПрдЧрд╛, рдЬрд┐рд╕реЗ рдкрд┐рдЫрд▓реЗ рд╡рд╛рд▓реЗ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ namespaceSelector рддрд╛рд░реНрдХрд┐рдХ OR рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред

рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд▓реЗрдмрд▓ рдХреЗ рд╕рд╛рде рдкреЙрдбреНрд╕ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рд╕рднреА рдирд╛рдорд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ, рд░рд┐рдХреНрдд рджрд░реНрдЬ рдХрд░реЗрдВ namespaceSelector:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: database.postgres
  namespace: database
spec:
  podSelector:
    matchLabels:
      app: postgres
  ingress:
  - from:
    - namespaceSelector: {}
      podSelector:
        matchLabels:
          app: admin
  policyTypes:
  - Ingress

рд╕реБрд░рдХреНрд╖рд╛ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпреЛрдВ рдХрд╛ рдкрд░рд┐рдЪрдп

рдПрдХрд╛рдзрд┐рдХ рд▓реЗрдмрд▓ I рдХреЗ рд╕рд╛рде рдорд┐рд▓рдХрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ

рдПрдХрд╛рдзрд┐рдХ рдСрдмреНрдЬреЗрдХреНрдЯ (рд╣реЛрд╕реНрдЯ, рдиреЗрдЯрд╡рд░реНрдХ, рд╕рдореВрд╣) рд╡рд╛рд▓реЗ рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдХреЗ рдирд┐рдпрдореЛрдВ рдХреЛ рддрд╛рд░реНрдХрд┐рдХ OR рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдкреИрдХреЗрдЯ рд╕реНрд░реЛрдд рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ рддреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рдпрдо рдХрд╛рдо рдХрд░реЗрдЧрд╛ Host_1 рдпрд╛ Host_2:

| Source | Destination | Service | Action |
| ----------------------------------------|
| Host_1 | Subnet_A    | HTTPS   | Allow  |
| Host_2 |             |         |        |
| ----------------------------------------|

рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рд▓реЗрдмрд▓ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ podSelector рдпрд╛ namespaceSelector рддрд╛рд░реНрдХрд┐рдХ AND рдХреЗ рд╕рд╛рде рд╕рдВрдпреБрдХреНрдд рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рдпрдо рдЙрди рдкреЙрдбреНрд╕ рдХрд╛ рдЪрдпрди рдХрд░реЗрдЧрд╛ рдЬрд┐рдирдореЗрдВ рджреЛрдиреЛрдВ рд▓реЗрдмрд▓ рд╣реИрдВ, role=db ╨Ш version=v2:

podSelector:
  matchLabels:
    role: db
    version: v2

рдпрд╣реА рддрд░реНрдХ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдСрдкрд░реЗрдЯрд░реЛрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ: рдиреАрддрд┐ рд▓рдХреНрд╖реНрдп рдЪрдпрдирдХрд░реНрддрд╛, рдкреЙрдб рдЪрдпрдирдХрд░реНрддрд╛ рдФрд░ рдиреЗрдорд╕реНрдкреЗрд╕ рдЪрдпрдирдХрд░реНрддрд╛ред

рд╕рдмрдиреЗрдЯ рдФрд░ рдЖрдИрдкреА рдкрддреЗ (рдЖрдИрдкреАрдмреНрд▓реЙрдХ)

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

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ, рдЖрдИрдкреА рдкрддреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреЙрдбреНрд╕ рдХреЛ рд╕реМрдВрдкреЗ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдмрд╛рд░-рдмрд╛рд░ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпреЛрдВ рдореЗрдВ рдкреЙрдбреНрд╕ рдФрд░ рдиреЗрдорд╕реНрдкреЗрд╕ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЗрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╕рдмрдиреЗрдЯ (ipBlocks) рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрдирдХрдорд┐рдВрдЧ (рдкреНрд░рд╡реЗрд╢) рдпрд╛ рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ (рдирд┐рдХрд╛рд╕) рдмрд╛рд╣рд░реА (рдЙрддреНрддрд░-рджрдХреНрд╖рд┐рдг) рдХрдиреЗрдХреНрд╢рди рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рддреЗ рд╕рдордп рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдиреАрддрд┐ рдиреЗрдорд╕реНрдкреЗрд╕ рд╕реЗ рд╕рднреА рдкреЙрдбреНрд╕ рдХреЗ рд▓рд┐рдП рдЦреБрд▓рддреА рд╣реИ default Google DNS рд╕реЗрд╡рд╛ рддрдХ рдкрд╣реБрдВрдЪ:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: egress-dns
  namespace: default
spec:
  podSelector: {}
  policyTypes:
  - Egress
  egress:
  - to:
    - ipBlock:
        cidr: 8.8.8.8/32
    ports:
    - protocol: UDP
      port: 53

рд╕реБрд░рдХреНрд╖рд╛ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпреЛрдВ рдХрд╛ рдкрд░рд┐рдЪрдп

рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдЦрд╛рд▓реА рдкреЙрдб рдЪрдпрдирдХрд░реНрддрд╛ рдХрд╛ рдЕрд░реНрде рд╣реИ "рдиреЗрдорд╕реНрдкреЗрд╕ рдореЗрдВ рд╕рднреА рдкреЙрдб рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред"

рдпрд╣ рдиреАрддрд┐ рдХреЗрд╡рд▓ 8.8.8.8 рддрдХ рдкрд╣реБрдВрдЪ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ; рдХрд┐рд╕реА рдЕрдиреНрдп рдЖрдИрдкреА рддрдХ рдкрд╣реБрдВрдЪ рдирд┐рд╖рд┐рджреНрдз рд╣реИред рддреЛ, рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдЖрдкрдиреЗ рдЖрдВрддрд░рд┐рдХ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдбреАрдПрдирдПрд╕ рд╕реЗрд╡рд╛ рддрдХ рдкрд╣реБрдВрдЪ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░ рджрд┐рдпрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЕрднреА рднреА рдЗрд╕реЗ рдЦреЛрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВред

рдЖрдорддреМрд░ рдкрд░ ipBlocks ╨╕ podSelectors рдкрд░рд╕реНрдкрд░ рдЕрдирдиреНрдп рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдкреЙрдбреНрд╕ рдХреЗ рдЖрдВрддрд░рд┐рдХ рдЖрдИрдкреА рдкрддреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ipBlocks. рд╕рдВрдХреЗрдд рдХрд░рдХреЗ рдЖрдВрддрд░рд┐рдХ рдЖрдИрдкреА рдкреЙрдбреНрд╕, рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрди рдкрддреЛрдВ рдХреЗ рд╕рд╛рде рдкреЙрдбреНрд╕ рд╕реЗ/рд╕реЗ рдХрдиреЗрдХреНрд╢рди рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВрдЧреЗред рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдЖрдкрдХреЛ рдкрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдХрд┐ рдХрд┐рд╕ рдЖрдИрдкреА рдкрддреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдкреЙрдбреНрд╕ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдкреНрд░рддрд┐-рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдиреАрддрд┐ рдореЗрдВ рд╕рднреА рдЖрдИрдкреА рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдФрд░ рдЗрд╕рд▓рд┐рдП рдЕрдиреНрдп рд╕рднреА рдкреЙрдбреНрд╕ рддрдХ рдкрд╣реБрдВрдЪ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рддреА рд╣реИ:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: egress-any
  namespace: default
spec:
  podSelector: {}
  policyTypes:
  - Egress
  egress:
  - to:
    - ipBlock:
        cidr: 0.0.0.0/0

рд╕реБрд░рдХреНрд╖рд╛ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпреЛрдВ рдХрд╛ рдкрд░рд┐рдЪрдп

рдЖрдк рдкреЙрдбреНрд╕ рдХреЗ рдЖрдВрддрд░рд┐рдХ рдЖрдИрдкреА рдкрддреЗ рдХреЛ рдЫреЛрдбрд╝рдХрд░, рдХреЗрд╡рд▓ рдмрд╛рд╣рд░реА рдЖрдИрдкреА рддрдХ рдкрд╣реБрдВрдЪ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХреЗ рдкреЙрдб рдХрд╛ рд╕рдмрдиреЗрдЯ 10.16.0.0/14 рд╣реИ:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: egress-any
  namespace: default
spec:
  podSelector: {}
  policyTypes:
  - Egress
  egress:
  - to:
    - ipBlock:
        cidr: 0.0.0.0/0
        except:
        - 10.16.0.0/14

рд╕реБрд░рдХреНрд╖рд╛ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпреЛрдВ рдХрд╛ рдкрд░рд┐рдЪрдп

рдмрдВрджрд░рдЧрд╛рд╣ рдФрд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓

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

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default.postgres
  namespace: default
spec:
  ingress:
  - from:
    - podSelector:
        matchLabels:
          app: indexer
    - podSelector:
        matchLabels:
          app: admin
    ports:             # <<<
      - port: 443      # <<<
        protocol: TCP  # <<<
      - port: 80       # <<<
        protocol: TCP  # <<<
  podSelector:
    matchLabels:
      app: postgres
  policyTypes:
  - Ingress

рд╕реБрд░рдХреНрд╖рд╛ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпреЛрдВ рдХрд╛ рдкрд░рд┐рдЪрдп

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЪрдпрдирдХрд░реНрддрд╛ ports рдмреНрд▓реЙрдХ рдХреЗ рд╕рднреА рддрддреНрд╡реЛрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ to рдпрд╛ from, рдЬрд┐рд╕рдореЗрдВ рд╣реИред рддрддреНрд╡реЛрдВ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕реЗрдЯреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреЛрд░реНрдЯ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реНрдкреНрд▓рд┐рдЯ рдХрд░реЗрдВ ingress рдпрд╛ egress рдХреЗ рд╕рд╛рде рдХрдИ рдЙрдкрдзрд╛рд░рд╛рдУрдВ рдореЗрдВ to рдпрд╛ from рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ рдЕрдкрдиреЗ рдкреЛрд░реНрдЯ рдкрдВрдЬреАрдХреГрдд рдХрд░реЗрдВ:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default.postgres
  namespace: default
spec:
  ingress:
  - from:
    - podSelector:
        matchLabels:
          app: indexer
    ports:             # <<<
     - port: 443       # <<<
       protocol: TCP   # <<<
  - from:
    - podSelector:
        matchLabels:
          app: admin
    ports:             # <<<
     - port: 80        # <<<
       protocol: TCP   # <<<
  podSelector:
    matchLabels:
      app: postgres
  policyTypes:
  - Ingress

рд╕реБрд░рдХреНрд╖рд╛ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпреЛрдВ рдХрд╛ рдкрд░рд┐рдЪрдп

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреЛрд░реНрдЯ рдСрдкрд░реЗрд╢рди:

  • рдпрджрд┐ рдЖрдк рдкреЛрд░реНрдЯ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ (ports), рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рд╕рднреА рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдФрд░ рд╕рднреА рдкреЛрд░реНрдЯ;
  • рдпрджрд┐ рдЖрдк рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ (protocol), рдЗрд╕рдХрд╛ рдорддрд▓рдм рдЯреАрд╕реАрдкреА рд╣реИ;
  • рдпрджрд┐ рдЖрдк рдкреЛрд░реНрдЯ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ (port), рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╕рднреА рдмрдВрджрд░рдЧрд╛рд╣ рд╣реИрдВред

рд╕рд░реНрд╡реЛрддреНрддрдо рдЕрднреНрдпрд╛рд╕: рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдиреЛрдВ рдкрд░ рднрд░реЛрд╕рд╛ рди рдХрд░реЗрдВ, рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреЛ рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдПред

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЖрдкрдХреЛ рдкреЙрдб рдкреЛрд░реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд╕рд░реНрд╡рд┐рд╕ рдкреЛрд░реНрдЯ рдХрд╛ рдирд╣реАрдВ (рдЕрдЧрд▓реЗ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдореЗрдВ рдЗрд╕ рдкрд░ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА)ред

рдХреНрдпрд╛ рдиреАрддрд┐рдпрд╛рдВ рдкреЙрдб рдпрд╛ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИрдВ?

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

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдХреЛрдИ рд╕реЗрд╡рд╛ рдкреЛрд░реНрдЯ 80 рдХреЛ рд╕реБрдирддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рдЙрд╕рдХреЗ рдкреЙрдб рдХреЗ рдкреЛрд░реНрдЯ 8080 рдкрд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рддреА рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐ рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ 8080 рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдЗрд╕ рддрд░рд╣ рдХреЗ рддрдВрддреНрд░ рдХреЛ рдЙрдк-рдЗрд╖реНрдЯрддрдо рдорд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП: рдпрджрд┐ рд╕реЗрд╡рд╛ рдХреА рдЖрдВрддрд░рд┐рдХ рд╕рдВрд░рдЪрдирд╛ (рдЬрд┐рди рдкреЛрд░реНрдЯ рдХреЗ рдкреЙрдб рд╕реБрдирддреЗ рд╣реИрдВ) рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпреЛрдВ рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

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

рдХреНрдпрд╛ рдкреНрд░рд╡реЗрд╢ рдФрд░ рдирд┐рдХрд╛рд╕ рджреЛрдиреЛрдВ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ?

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

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

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

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

рдиреАрдЪреЗ рд╕реНрдЯреЗрдЯрдлреБрд▓ рдпрд╛ рд╕реНрдЯреЗрдЯрд▓реЗрд╕ рджреЗрдЦреЗрдВред

рд▓реЙрдЧ

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

рдмрд╛рд╣рд░реА рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдпрд╛рддрд╛рдпрд╛рдд рдХрд╛ рдирд┐рдпрдВрддреНрд░рдг

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпрд╛рдВ рдЖрдкрдХреЛ рдирд┐рдХрд╛рд╕ рдЕрдиреБрднрд╛рдЧреЛрдВ рдореЗрдВ рдкреВрд░реНрдгрддрдГ рдпреЛрдЧреНрдп рдбреЛрдореЗрди рдирд╛рдо (рдбреАрдПрдирдПрд╕) рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддреА рд╣реИрдВред рдпрд╣ рддрдереНрдп рдЙрди рдмрд╛рд╣рд░реА рдЧрдВрддрд╡реНрдпреЛрдВ рдкрд░ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╕рдордп рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЖрдИрдкреА рдкрддрд╛ рдирд╣реАрдВ рд╣реИ (рдЬреИрд╕реЗ рдХрд┐ aws.com)ред

рдиреАрддрд┐ рдЬрд╛рдВрдЪ

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

kubernetes get networkpolicy <policy-name> -o yaml

рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕рддреНрдпрд╛рдкрди рдкреНрд░рдгрд╛рд▓реА рдЕрдЪреВрдХ рдирд╣реАрдВ рд╣реИ рдФрд░ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреА рддреНрд░реБрдЯрд┐рдпрд╛рдБ рдЫреВрдЯ рд╕рдХрддреА рд╣реИрдВред

рдирд┐рд╖реНрдкрд╛рджрди

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

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрджрд┐ рдЖрдк рдЙрдкрдпреБрдХреНрдд рд╕рд╣рд╛рдпрдХ рд╕реАрдПрдирдЖрдИ рдХреЗ рдмрд┐рдирд╛ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдЖрдкрдХреЛ рдЪреЗрддрд╛рд╡рдиреА рдирд╣реАрдВ рджреЗрдЧрд╛ред

рд╕реНрдЯреЗрдЯрдлреБрд▓ рдпрд╛ рд╕реНрдЯреЗрдЯрд▓реЗрд╕?

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

рдЙрдиреНрдирдд рд╕реБрд░рдХреНрд╖рд╛ рдиреАрддрд┐ рдкреНрд░рдмрдВрдзрди

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рд╕реБрд░рдХреНрд╖рд╛ рдиреАрддрд┐ рдкреНрд░рд╡рд░реНрддрди рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рдХреБрдЫ рддрд░реАрдХреЗ рдпрд╣рд╛рдВ рджрд┐рдП рдЧрдП рд╣реИрдВ:

  1. рд╕рд░реНрд╡рд┐рд╕ рдореЗрд╢ рд╡рд╛рд╕реНрддреБрд╢рд┐рд▓реНрдк рдкреИрдЯрд░реНрди рд╕реЗрд╡рд╛ рд╕реНрддрд░ рдкрд░ рд╡рд┐рд╕реНрддреГрдд рдЯреЗрд▓реАрдореЗрдЯреНрд░реА рдФрд░ рдпрд╛рддрд╛рдпрд╛рдд рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдЗрдбрдХрд╛рд░ рдХрдВрдЯреЗрдирд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рддреМрд░ рдкрд░ рд╣рдо рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ Istio.
  2. рдХреБрдЫ рд╕реАрдПрдирдЖрдИ рд╡рд┐рдХреНрд░реЗрддрд╛рдУрдВ рдиреЗ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпреЛрдВ рд╕реЗ рдЖрдЧреЗ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдЯреВрд▓ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд┐рдпрд╛ рд╣реИред
  3. рдЯреБрдлрд╝рд┐рди рдУрд░реНрдХрд╛ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпреЛрдВ рдХреА рджреГрд╢реНрдпрддрд╛ рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

рдЯрдлрд┐рди рдУрд░реНрдХрд╛ рдкреИрдХреЗрдЬ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпреЛрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рддрд╛ рд╣реИ (рдФрд░ рдЙрдкрд░реЛрдХреНрдд рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдХрд╛ рд╕реНрд░реЛрдд рд╣реИ)ред

рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА

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

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

рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ рдХреБрдЫ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдФрд░ рдЖрдкрдХреЗ рд╕рд╛рдордиреЗ рдЖрдиреЗ рд╡рд╛рд▓реА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧреАред

рдЕрдиреБрд╡рд╛рджрдХ рд╕реЗ рдкреА.рдПрд╕

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

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

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