рдЯрд┐рдкреНрдкрдгреАред рдЕрдиреБрд╡рд╛рджред: рд▓реЗрдЦ рдХреЗ рд▓реЗрдЦрдХ, рд░реВрд╡реЗрди рд╣реИрд░рд┐рд╕рди рдХреЗ рдкрд╛рд╕ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ 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 create -f policy.yaml
рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐ рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛
рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдореЗрдВ рдЪрд╛рд░ рддрддреНрд╡ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
-
podSelector
: рдЗрд╕ рдиреАрддрд┐ (рд▓рдХреНрд╖реНрдп) рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдкреЙрдбреНрд╕ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ - рдЖрд╡рд╢реНрдпрдХ; -
policyTypes
: рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреА рдиреАрддрд┐рдпрд╛рдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ: рдкреНрд░рд╡реЗрд╢ рдФрд░/рдпрд╛ рдирд┐рдХрд╛рд╕ - рд╡реИрдХрд▓реНрдкрд┐рдХ, рд▓реЗрдХрд┐рди рдореИрдВ рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЗрд╕реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВ; -
ingress
: рдЕрдиреБрдорддрд┐ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЖрдиреЗ рд╡рд╛рд▓реА рд▓рдХреНрд╖реНрдп рдкреЙрдбреНрд╕ рдкрд░ рдЯреНрд░реИрдлрд╝рд┐рдХ - рд╡реИрдХрд▓реНрдкрд┐рдХ; -
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
рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕рддреНрдпрд╛рдкрди рдкреНрд░рдгрд╛рд▓реА рдЕрдЪреВрдХ рдирд╣реАрдВ рд╣реИ рдФрд░ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреА рддреНрд░реБрдЯрд┐рдпрд╛рдБ рдЫреВрдЯ рд╕рдХрддреА рд╣реИрдВред
рдирд┐рд╖реНрдкрд╛рджрди
рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕реНрд╡рдпрдВ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдХреЗрд╡рд▓ рдПрдХ рдПрдкреАрдЖрдИ рдЧреЗрдЯрд╡реЗ рд╣реИ рдЬреЛ рдирд┐рдпрдВрддреНрд░рдг рдХрд╛ рдмреЛрдЭ рдХрдВрдЯреЗрдирд░ рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧ рдЗрдВрдЯрд░рдлреЗрд╕ (рд╕реАрдПрдирдЖрдИ) рдирд╛рдордХ рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкреНрд░рдгрд╛рд▓реА рдХреЛ рд╕реМрдВрдкрддрд╛ рд╣реИред рдЙрдЪрд┐рдд рд╕реАрдПрдирдЖрдИ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдмрд┐рдирд╛ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреНрд▓рд╕реНрдЯрд░ рдкрд░ рдиреАрддрд┐рдпрд╛рдВ рд╕реЗрдЯ рдХрд░рдирд╛ рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдкреНрд░рдмрдВрдзрди рд╕рд░реНрд╡рд░ рдкрд░ рдиреАрддрд┐рдпреЛрдВ рдХреЛ рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдмрдирд╛рдиреЗ рдХреЗ рд╕рдорд╛рди рд╣реИред рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЖрдк рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕реАрдПрдирдЖрдИ рд╣реИ рдпрд╛, рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХреНрд▓рд╛рдЙрдб рдореЗрдВ рд╣реЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдЖрдк рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХреА рд╕реВрдЪреА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрджрд┐ рдЖрдк рдЙрдкрдпреБрдХреНрдд рд╕рд╣рд╛рдпрдХ рд╕реАрдПрдирдЖрдИ рдХреЗ рдмрд┐рдирд╛ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдЖрдкрдХреЛ рдЪреЗрддрд╛рд╡рдиреА рдирд╣реАрдВ рджреЗрдЧрд╛ред
рд╕реНрдЯреЗрдЯрдлреБрд▓ рдпрд╛ рд╕реНрдЯреЗрдЯрд▓реЗрд╕?
рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рджреЗрдЦреЗ рдЧрдП рд╕рднреА рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕реАрдПрдирдЖрдИ рд╕реНрдЯреЗрдЯрдлреБрд▓ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЗрд▓рд┐рдХреЛ рд▓рд┐рдирдХреНрд╕ рдХреЙрдирдЯреНрд░реИрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ)ред рдпрд╣ рдкреЙрдб рдХреЛ рдЙрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рд╢реБрд░реВ рдХрд┐рдП рдЧрдП рдЯреАрд╕реАрдкреА рдХрдиреЗрдХреНрд╢рди рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдПрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореБрдЭреЗ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдорд╛рдирдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реИ рдЬреЛ рд╕реНрдЯреЗрдЯрдлреБрд▓рдиреЗрд╕ рдХреА рдЧрд╛рд░рдВрдЯреА рджреЗрдЧрд╛ред
рдЙрдиреНрдирдд рд╕реБрд░рдХреНрд╖рд╛ рдиреАрддрд┐ рдкреНрд░рдмрдВрдзрди
рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рд╕реБрд░рдХреНрд╖рд╛ рдиреАрддрд┐ рдкреНрд░рд╡рд░реНрддрди рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рдХреБрдЫ рддрд░реАрдХреЗ рдпрд╣рд╛рдВ рджрд┐рдП рдЧрдП рд╣реИрдВ:
- рд╕рд░реНрд╡рд┐рд╕ рдореЗрд╢ рд╡рд╛рд╕реНрддреБрд╢рд┐рд▓реНрдк рдкреИрдЯрд░реНрди рд╕реЗрд╡рд╛ рд╕реНрддрд░ рдкрд░ рд╡рд┐рд╕реНрддреГрдд рдЯреЗрд▓реАрдореЗрдЯреНрд░реА рдФрд░ рдпрд╛рддрд╛рдпрд╛рдд рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдЗрдбрдХрд╛рд░ рдХрдВрдЯреЗрдирд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рддреМрд░ рдкрд░ рд╣рдо рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ
Istio . - рдХреБрдЫ рд╕реАрдПрдирдЖрдИ рд╡рд┐рдХреНрд░реЗрддрд╛рдУрдВ рдиреЗ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпреЛрдВ рд╕реЗ рдЖрдЧреЗ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдЯреВрд▓ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд┐рдпрд╛ рд╣реИред
-
рдЯреБрдлрд╝рд┐рди рдУрд░реНрдХрд╛ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпреЛрдВ рдХреА рджреГрд╢реНрдпрддрд╛ рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рдЯрдлрд┐рди рдУрд░реНрдХрд╛ рдкреИрдХреЗрдЬ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпреЛрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рддрд╛ рд╣реИ (рдФрд░ рдЙрдкрд░реЛрдХреНрдд рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдХрд╛ рд╕реНрд░реЛрдд рд╣реИ)ред
рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА
-
рдЬреАрдХреЗрдИ рд╕реЗ рдЕрд╣рдордд рдЕрд▓реНрдк рдмрд╛рд▓реНрдХрди рджреНрд╡рд╛рд░рд╛ рддреИрдпрд╛рд░ рдХреА рдЧрдИ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпреЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг ; -
рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг ; -
рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧ рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдЧрд╛рдЗрдб ; -
рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ .
рдирд┐рд╖реНрдХрд░реНрд╖
рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпрд╛рдВ рд╕рдореВрд╣реЛрдВ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕реЗрдЯ рдкреЗрд╢ рдХрд░рддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рд╕рд╣рдЬ рдирд╣реАрдВ рд╣реИрдВ рдФрд░ рдЙрдирдореЗрдВ рдХрдИ рд╕реВрдХреНрд╖реНрдорддрд╛рдПрдВ рд╣реИрдВред рдЗрд╕ рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рдХрд╛рд░рдг, рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдХрдИ рдореМрдЬреВрджрд╛ рдХреНрд▓рд╕реНрдЯрд░ рдиреАрддрд┐рдпрд╛рдВ рдЦрд╝рд░рд╛рдм рд╣реИрдВред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рдиреЛрдВ рдореЗрдВ рдиреАрддрд┐ рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдирд╛ рдпрд╛ рдЕрдиреНрдп рд╡рд┐рднрд╛рдЬрди рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред
рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ рдХреБрдЫ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдФрд░ рдЖрдкрдХреЗ рд╕рд╛рдордиреЗ рдЖрдиреЗ рд╡рд╛рд▓реА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧреАред
рдЕрдиреБрд╡рд╛рджрдХ рд╕реЗ рдкреА.рдПрд╕
рд╣рдорд╛рд░реЗ рдмреНрд▓реЙрдЧ рдкрд░ рднреА рдкрдврд╝реЗрдВ:
- "рдЗрд╕реНрдЯрд┐рдпреЛ рдХреЗ рд╕рд╛рде рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдкрд░ рд╡рд╛рдкрд╕":
рднрд╛рдЧ 1 (рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдкрд░рд┐рдЪрдп) ,рднрд╛рдЧ 2 (рд░реВрдЯрд┐рдВрдЧ, рдпрд╛рддрд╛рдпрд╛рдд рдирд┐рдпрдВрддреНрд░рдг) ,рднрд╛рдЧ 3 (рд╕реБрд░рдХреНрд╖рд╛) ; - "рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдЪрд┐рддреНрд░ рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛":
рднрд╛рдЧ 1 рдФрд░ 2 (рдиреЗрдЯрд╡рд░реНрдХ рдореЙрдбрд▓, рдУрд╡рд░рд▓реЗ рдиреЗрдЯрд╡рд░реНрдХ) ,рднрд╛рдЧ 3 (рд╕реЗрд╡рд╛рдПрдБ рдФрд░ рдпрд╛рддрд╛рдпрд╛рдд рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг) ; - ┬л
рд╕реБрд░рдХреНрд╖рд╛-рдорд╛рдВрдЧ рд╡рд╛рд▓реЗ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдбреЙрдХрд░ рдФрд░ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ "; - ┬л
рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП 9 рд╕рд░реНрд╡реЛрддреНрддрдо рдЕрднреНрдпрд╛рд╕ "; - ┬л
рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╣реИрдХ рдХрд╛ рд╢рд┐рдХрд╛рд░ рдмрдирдиреЗ (рдирд╣реАрдВ) рдХреЗ 11 рддрд░реАрдХреЗ '.
рд╕реНрд░реЛрдд: www.habr.com