рд▓рдЧрднрдЧред рдЯреНрд░рд╛рдВрд╕ред : рд▓реЗрдЦ рдХреЗ рд▓реЗрдЦрдХ - рд░рд┐рдпреБрд╡рди рд╣реИрд░рд┐рд╕рди - рдХреЗ рдкрд╛рд╕ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ 20 рд╡рд░реНрд╖реЛрдВ рдХрд╛ рдЕрдиреБрднрд╡ рд╣реИ, рдФрд░ рдЖрдЬ рддрдХрдиреАрдХреА рдирд┐рджреЗрд╢рдХ рдФрд░ рд╕реБрд░рдХреНрд╖рд╛ рдиреАрддрд┐ рдкреНрд░рдмрдВрдзрди рд╕рдорд╛рдзрд╛рди рдмрдирд╛рдиреЗ рд╡рд╛рд▓реА рдХрдВрдкрдиреА рдЯрдлрд┐рди рдХреЗ рд╕рд╣-рд╕рдВрд╕реНрдерд╛рдкрдХ рд╣реИрдВред рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпреЛрдВ рдХреЛ рдПрдХ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХ рд╡рд┐рднрд╛рдЬрди рдХреЗ рд▓рд┐рдП рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдкрд░реНрдпрд╛рдкреНрдд рдЙрдкрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦрддреЗ рд╣реБрдП, рдЙрдирдХрд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рд╡реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЗрддрдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИред рдпрд╣ рд╕рд╛рдордЧреНрд░реА (рдмрд▓реНрдХрд┐ рд╕реНрд╡реИрдЪреНрдЫрд┐рдХ) рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮреЛрдВ рдХреЗ рдЬреНрдЮрд╛рди рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрдирд╛рдиреЗ рдореЗрдВ рдЙрдирдХреА рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХреА рдЧрдИ рд╣реИред рдЖрдЬ, рдХрдИ рдХрдВрдкрдирд┐рдпрд╛рдВ рддреЗрдЬреА рд╕реЗ рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдмреЗрд░рдиреЗрдЯ рдХрд╛ рдЪрдпрди рдХрд░ рд░рд╣реА рд╣реИрдВред рдЗрд╕ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдореЗрдВ рд░реБрдЪрд┐ рдЗрддрдиреА рдЕрдзрд┐рдХ рд╣реИ рдХрд┐ рдХреБрдЫ рд▓реЛрдЧ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЛ "рдирдпрд╛ рдбреЗрдЯрд╛ рд╕реЗрдВрдЯрд░ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо" рдХрд╣рддреЗ рд╣реИрдВред рдзреАрд░реЗ-рдзреАрд░реЗ, рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ (рдпрд╛ k8s) рдХреЛ рд╡реНрдпрд╡рд╕рд╛рдп рдХрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕рд╛ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдиреЗрдЯрд╡рд░реНрдХ рд╕реБрд░рдХреНрд╖рд╛ рд╕рд╣рд┐рдд рдкрд░рд┐рдкрдХреНрд╡ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд╕рдВрдЧрдарди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕реБрд░рдХреНрд╖рд╛ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдиреАрддрд┐ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЦреЛрдЬ рд╣реЛ рд╕рдХрддреА рд╣реИ: рдЗрд╕реЗ рд╕рднреА рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВред
рдпрд╣ рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ рдЖрдкрдХреЛ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпреЛрдВ рдХреА рдЖрдВрддрд░рд┐рдХ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧреА; рд╕рдордЭреЗрдВ рдХрд┐ рд╡реЗ рд╕рд╛рдзрд╛рд░рдг рдлрд╛рдпрд░рд╡реЙрд▓ рдХреЗ рдирд┐рдпрдореЛрдВ рд╕реЗ рдХреИрд╕реЗ рднрд┐рдиреНрди рд╣реИрдВред рдХреБрдЫ рдиреБрдХрд╕рд╛рди рдХрд╛ рднреА рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рд╕рд┐рдлрд╛рд░рд┐рд╢реЗрдВ рджреА рдЬрд╛рдПрдВрдЧреА рдЬреЛ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рд░рдХреНрд╖рд╛ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдВрдЧреАред
рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпрд╛рдВ
рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐ рддрдВрддреНрд░ рдЖрдкрдХреЛ рдиреЗрдЯрд╡рд░реНрдХ рд╕реНрддрд░ рдкрд░ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкрд░ рддреИрдирд╛рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ (рдУрдПрд╕рдЖрдИ рдореЙрдбрд▓ рдореЗрдВ рддреАрд╕рд░рд╛) рдХреА рдмрд╛рддрдЪреАрдд рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпреЛрдВ рдореЗрдВ рдЖрдзреБрдирд┐рдХ рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдХреА рдХреБрдЫ рдЙрдиреНрдирдд рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреА рдХрдореА рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ OSI рд╕реНрддрд░ 7 рдХреА рдирд┐рдЧрд░рд╛рдиреА рдФрд░ рдзрдордХреА рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛, рд▓реЗрдХрд┐рди рд╡реЗ рдиреЗрдЯрд╡рд░реНрдХ рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛ рдПрдХ рдореВрд▓ рд╕реНрддрд░ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдмрд┐рдВрджреБ рд╣реИред
рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпрд╛рдВ рдкреЙрдбреНрд╕ рдХреЗ рдмреАрдЪ рд╕рдВрдЪрд╛рд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреА рд╣реИрдВ
Kubernetes рд╡рд░реНрдХрд▓реЛрдб рдХреЛ рдлрд▓реА рднрд░ рдореЗрдВ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдпрд╛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдХрдВрдЯреЗрдирд░ рд╣реЛрддреЗ рд╣реИрдВред рдХреБрдмреЗрд░рдиреЗрдЯ рдкреНрд░рддреНрдпреЗрдХ рдкреЙрдб рдХреЛ рдЕрдиреНрдп рдкреЙрдбреНрд╕ рд╕реЗ рд╕реБрд▓рдн рдПрдХ рдЖрдИрдкреА рдПрдбреНрд░реЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред Kubernetes рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпреЛрдВ рдиреЗ рдкреЙрдб рд╕рдореВрд╣реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐рдпрд╛рдБ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рд╕реЗрдЯ рдХреА рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐ рдХреНрд▓рд╛рдЙрдб рдореЗрдВ рд╕реБрд░рдХреНрд╖рд╛ рд╕рдореВрд╣реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдЗрдВрд╕реНрдЯреЗрдВрд╕реЗрд╕ рддрдХ рдкрд╣реБрдБрдЪ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛
рдХреБрдмреЗрд░рдиреЗрдЯ рдХреЗ рдЕрдиреНрдп рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рддрд░рд╣, рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпрд╛рдБ 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
рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐ рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛
рдХреБрдмреЗрд░рдиреЗрдЯ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдореЗрдВ рдЪрд╛рд░ рддрддреНрд╡ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
podSelector
: рдЗрд╕ рдиреАрддрд┐ (рд▓рдХреНрд╖реНрдпреЛрдВ) рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдлрд▓реА рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ - рдЕрдирд┐рд╡рд╛рд░реНрдп;policyTypes
: рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреА рдиреАрддрд┐рдпрд╛рдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ: policyTypes
рдФрд░ / рдпрд╛ рдкреНрд░рдЧрддрд┐ - рд╡реИрдХрд▓реНрдкрд┐рдХ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рдХрд░реЗрдВ;ingress
: рд▓рдХреНрд╖рд┐рдд рдкреЙрдбреНрд╕ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдордд рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ - рд╡реИрдХрд▓реНрдкрд┐рдХ;egress
: рд▓рдХреНрд╖рд┐рдд рдкреЙрдбреНрд╕ рд╕реЗ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ - рд╡реИрдХрд▓реНрдкрд┐рдХред
рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╕реЗ рдЙрдзрд╛рд░ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг (рдореИрдВрдиреЗ
app
рд╕рд╛рде
role
рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛) рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рд╕рднреА рдЪрд╛рд░ рддрддреНрд╡реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
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
рдХреА
podSelector
, рдЕрдиреНрдп рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╡рд╛рдВрдЫрд┐рдд рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдпрджрд┐ рдЖрдк рдкреЙрд▓рд┐рд╕реА рдХреЛ рдЫреЛрдбрд╝
policyTypes
, рддреЛ рдкреЙрд▓рд┐рд╕реА рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдПрдЧреА:
- рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдВрддрд░реНрд╡рд╕реНрддреНрд░ рдкрдХреНрд╖ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдиреАрддрд┐ рдЗрд╕реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрдВрдЧрд┐рдд рдирд╣реАрдВ рдХрд░рддреА рд╣реИ, рддреЛ рд╕рд┐рд╕реНрдЯрдо рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдЧрд╛ рдХрд┐ рд╕рднреА рдпрд╛рддрд╛рдпрд╛рдд рдирд┐рд╖рд┐рджреНрдз рд╣реИрдВред
- рдЗрдЧреНрд░реЗрд╢рди рдкрдХреНрд╖ рдкрд░ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕рдВрдмрдВрдзрд┐рдд рдЗрдЧреНрд░реЗрд╢рди рдкреИрд░рд╛рдореАрдЯрд░ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдпрд╛ рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ
рд╣рдореЗрд╢рд╛ 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
рддрддреНрд╡ рдиреЗрдорд╕реНрдкреЗрд╕ рд╕реЗ рдкреЙрдбреНрд╕ рдХрд╛ рдЪрдпрди рдХрд░реЗрдЧрд╛, рдЬреЛ рдкреЙрд▓рд┐рд╕реА рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдЖрддрд╛ рд╣реИ (рдЗрд╕реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рдирд╛рдо рд╕реНрдерд╛рди рд╕реЗ рдкреЙрдбреНрд╕ рддрдХ рдкрд╣реБрдВрдЪ рд╕реЗ рд╡рдВрдЪрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред
рдЗрд╕реА рддрд░рд╣, рдЗрдВрдЧреНрд░реЗрд╕
рдФрд░ рдЗрдЧреЛрд░
рдмреНрд▓реЙрдХ рдореЗрдВ рдкреЙрдбрд╕реЗрд▓реЗрдХреНрдЯрд░реНрд╕ рдХреЗрд╡рд▓ рдЕрдкрдиреЗ рдиреЗрдорд╕реНрдкреЗрд╕ рд╕реЗ рдкреЙрдбреНрд╕ рдХрд╛ рдЪрдпрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдм рддрдХ рдХрд┐ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЖрдк рдЙрдиреНрд╣реЗрдВ
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
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп
namespaceSelector
рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЪреБрдиреЗ рдЧрдП 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 рдкрд░ рд╡рд┐рд╢реЗрд╖ рдзреНрдпрд╛рди рджреЗрдВ - рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдЗрд╕ рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдИрдкреА рдкрддреЗ рдкрд░ рдореИрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрди рдиреАрддрд┐ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧреА рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ 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

рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдЕрдВрддрд┐рдо рдЦрд╛рд▓реА рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рд░реВрдк
рд╕реЗ рд╕рднреА рдирд╛рдорд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рд╕рднреА рдкреЙрдбреНрд╕ рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ DNS рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рд╕рдВрдмрдВрдзрд┐рдд рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕реЗрд╡рд╛
balance
рднреЗрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рддреА рд╣реИ (рдпрд╣ рдЖрдорддреМрд░ рдкрд░
kube-system
рд╕реНрдкреЗрд╕ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ)ред
рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣
рдЕрддреНрдпрдзрд┐рдХ рдЕрдиреБрдордд рдФрд░ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ , рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЖрдкрдХреЛ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рдмрд╛рд╣рд░ DNS рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдЖрдк рдЗрд╕реЗ рд▓рдЧрд╛рддрд╛рд░ рддреАрди рдЪрд░рдгреЛрдВ рдореЗрдВ рд╕реБрдзрд╛рд░ рд╕рдХрддреЗ рд╣реИрдВред
1. DNS рдореЗрдВ рдХреЗрд╡рд▓
namespaceSelector
рдЬреЛрдбрд╝рдХрд░ 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: - namespaceSelector: {} # <<< ports: - protocol: UDP port: 53 policyTypes: - Egress

2. рдбреАрдПрдирдПрд╕ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдХреЗрд╡рд▓
kube-system
рдиреЗрдорд╕реНрдкреЗрд╕ рдореЗрдВ рдЕрдиреБрдорддрд┐ рджреЗрдВред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
kube-system
kubectl label namespace kube-system namespace=kube-system
рдПрдХ рд▓реЗрдмрд▓ рдЬреЛрдбрд╝реЗрдВ:
kubectl label namespace kube-system namespace=kube-system
- рдФрд░ рдЗрд╕реЗ
kubectl label namespace kube-system namespace=kube-system
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреЙрд▓рд┐рд╕реА рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рдХрд░реЗрдВ:
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. Paranoids рдЖрдЧреЗ рднреА рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ DNS рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ
kube-system
рдореЗрдВ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ DNS рд╕реЗрд╡рд╛ рддрдХ рд╕реАрдорд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред "рдиреЗрдорд╕реНрдкреЗрд╕ рдФрд░ рдкреЙрдбреНрд╕ рджреНрд╡рд╛рд░рд╛ рдлрд╝рд┐рд▓реНрдЯрд░" рдЦрдВрдб рдореЗрдВ, рд╣рдо рдпрд╣ рдмрддрд╛рдПрдВрдЧреЗ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рдПред
рдПрдХ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк 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
рдиреЗ рдиреЗрдорд╕реНрдкреЗрд╕ рдореЗрдВ рд╕рднреА рдкреЙрдбреНрд╕ рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ред

рдкрд╣рд▓рд╛ рдореИрдЪ рдФрд░ рдирд┐рдпрдо рдХреНрд░рдо
рд╕рд╛рдзрд╛рд░рдг рдлрд╛рдпрд░рд╡реЙрд▓ рдореЗрдВ, рдкреИрдХреЗрдЯ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрд░рд╡рд╛рдИ ("рдЕрдиреБрдорддрд┐" рдпрд╛ "рдЗрдирдХрд╛рд░") рдкрд╣рд▓реЗ рдирд┐рдпрдо рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдВрддреБрд╖реНрдЯ рдХрд░рддрд╛ рд╣реИред
рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ, рдиреАрддрд┐рдпреЛрдВ рдХрд╛ рдХреНрд░рдо рдЕрдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИредрдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдЬрдм рдиреАрддрд┐рдпрд╛рдВ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рд╣реЛрддреА рд╣реИрдВ, рддреЛ рдлрд▓реА рдХреЗ рдмреАрдЪ рд╕рдВрдЪрд╛рд░ рдХреА рдЕрдиреБрдорддрд┐ рд╣реЛрддреА рд╣реИ рдФрд░ рд╡реЗ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЬреИрд╕реЗ рд╣реА рдЖрдк рдиреАрддрд┐рдпрд╛рдВ рдмрдирд╛рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдЙрдирдореЗрдВ рд╕реЗ рдХрдо рд╕реЗ рдХрдо рдПрдХ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдкреНрд░рддреНрдпреЗрдХ рдлрд▓реА рдиреЗ рдЙрди рд╕рднреА рдиреАрддрд┐рдпреЛрдВ рдХреЗ рд╡рд┐рдШрдЯрди (рддрд╛рд░реНрдХрд┐рдХ OR) рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЕрд▓рдЧ-рдерд▓рдЧ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЗрд╕реЗ рдЪреБрдирд╛ рд╣реИред рдХрд┐рд╕реА рднреА рдиреАрддрд┐ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдлрд▓реА рдЦреБрд▓реА рдирд╣реАрдВ рд░рд╣рддреА рд╣реИред
рдЖрдк рд╕реНрдЯреНрд░рд┐рдкрд┐рдВрдЧ рдирд┐рдпрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред
рд╕реНрдЯреНрд░рд┐рдкрд┐рдВрдЧ рдирд┐рдпрдо (рдЗрдирдХрд╛рд░)
рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдиреАрддрд┐рдпрд╛рдВ рдЖрдо рддреМрд░ рдкрд░ рдХрд┐рд╕реА рднреА рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдирдзрд┐рдХреГрдд рдпрд╛рддрд╛рдпрд╛рдд рдХреЛ рд░реЛрдХрддреА рд╣реИрдВред
рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рдкрд╛рд╕ рдЗрдирдХрд╛рд░ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдирд╣реАрдВ рд╣реИ , рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕реНрд░реЛрдд рдкреЙрдбреНрд╕ (рдЗрдВрдЧреНрд░реЗрд╕) рдХреЗ рдПрдХ рдЦрд╛рд▓реА рд╕рдореВрд╣ рдХрд╛ рдЪрдпрди рдХрд░рдХреЗ рдПрдХ рдирд┐рдпрдорд┐рдд (рдЕрдиреБрдорддрд┐) рдиреАрддрд┐ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╛рди рдкреНрд░рднрд╛рд╡ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
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
) рддрдХ рддрдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: allow-all-to-balance namespace: default spec: podSelector: matchLabels: app: balance ingress: - {} policyTypes: - Ingress

рдирд┐рдореНрди рдиреАрддрд┐ рд╕рднреА рдкреНрд░рд╡реЗрд╢ рдФрд░ рдирд┐рдХрд╛рд╕ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рдмрд╛рд╣рд░ рдХрд┐рд╕реА рднреА IP рддрдХ рдкрд╣реБрдБрдЪ рд╢рд╛рдорд┐рд▓ рд╣реИ:
apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: allow-all spec: podSelector: {} ingress: - {} egress: - {} policyTypes: - Ingress - Egress


рдХрдИ рдиреАрддрд┐рдпреЛрдВ рдХрд╛ рдореЗрд▓
рдиреАрддрд┐рдпрд╛рдВ рддрд╛рд░реНрдХрд┐рдХ рдпрд╛ рддреАрди рд╕реНрддрд░реЛрдВ рдкрд░ рд╕рдВрдпреБрдХреНрдд рд╣реИрдВ; рдкреНрд░рддреНрдпреЗрдХ рдкреЙрдб рдХреА рдЕрдиреБрдорддрд┐рдпрд╛рдБ рдЗрд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╕рднреА рдиреАрддрд┐рдпреЛрдВ рдХреЗ рдирд┐рдкрдЯрд╛рди рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИрдВ:
1. рдореЗрдВ рдФрд░ рдЦреЗрддреЛрдВ рд╕реЗ рдЖрдк рддреАрди рдкреНрд░рдХрд╛рд░ рдХреЗ рддрддреНрд╡реЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЙрди рд╕рднреА рдХреЛ OR рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ):
namespaceSelector
- рдкреВрд░реЗ рдирд╛рдорд╕реНрдерд╛рди рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ;podSelector
- рдлрд▓реА рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ;ipBlock
- рдПрдХ рд╕рдмрдиреЗрдЯ рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИред
рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ, рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ (рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐) / рд╕реЗ
to
рдЙрдк-рд╡рд░реНрдЧреЛрдВ рддрдХ рд╕реАрдорд┐рдд рдирд╣реАрдВ рд╣реИред рдЙрди рд╕рднреА рдХреЛ рддрд╛рд░реНрдХрд┐рдХ рдпрд╛ рджреНрд╡рд╛рд░рд╛ рд╕рдВрдпреБрдХреНрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
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
рд╕реЗрдХреНрд╢рди рдореЗрдВ рдХрдИ рддрддреНрд╡ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ (рддрд╛рд░реНрдХрд┐рдХ рдпрд╛ рд╕рдВрдпреБрдХреНрдд рджреНрд╡рд╛рд░рд╛)ред рдЗрд╕реА рддрд░рд╣,
egress
рд╕реЗрдХреНрд╢рди рдореЗрдВ рдХрдИ рддрддреНрд╡ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ (рдПрдХ рдХреНрд▓реЙрдЬ рд╕реЗ рднреА рдЬреБрдбрд╝реЗ):
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
(
policyTypes
рдпрд╛
policyTypes
) рдХреЗ рд╕рд╛рде рдиреАрддрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕реА рдиреАрддрд┐рдпрд╛рдВ рдЬреЛ рдЕрдВрддрд░реНрдЧреНрд░рд╣рдг (рдпрд╛ рдЧреНрд░рд╣рдг) рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреА рд╣реИрдВ рд╡реЗ рдПрдХ-рджреВрд╕рд░реЗ рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░реЗрдВрдЧреАред
рдирд╛рдорд╕реНрдерд╛рдиреЛрдВ рдХреЗ рдмреАрдЪ рдХрд╛ рд╕рдВрдмрдВрдз
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдирд╛рдорд╕реНрдерд╛рди рдХреЗ рдмреАрдЪ рд╕реВрдЪрдирд╛ рд╡рд┐рдирд┐рдордп рдХреА рдЕрдиреБрдорддрд┐ рд╣реИред рдпрд╣ рдПрдХ рдирд┐рд╖реЗрдзрд╛рддреНрдордХ рдиреАрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдирд╛рдорд╕реНрдерд╛рди рдореЗрдВ рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ рдФрд░ / рдпрд╛ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рддрд╛ рд╣реИ (рджреЗрдЦреЗрдВ "рдКрдкрд░ рд╕реНрдЯреНрд░рд┐рдкрд┐рдВрдЧ рд░реВрд▓")ред
рдиреЗрдорд╕реНрдкреЗрд╕ рддрдХ рдкрд╣реБрдБрдЪ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░рдХреЗ (рдКрдкрд░ "рд╕реНрдЯреНрд░рд┐рдкрд┐рдВрдЧ рд░реВрд▓ рджреЗрдЦреЗрдВ"), рдЖрдк рдиреЗрдорд╕реНрдкреЗрд╕ рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдиреЗрдорд╕реНрдкреЗрд╕ рд╕реЗ рдХрдиреЗрдХреНрд╢рди рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдХрд░ рдкреНрд░рддрд┐рдмрдВрдзрд╛рддреНрдордХ рдиреАрддрд┐ рдХреЛ рдЕрдкрд╡рд╛рдж рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ:
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
рдиреЗрдорд╕реНрдкреЗрд╕ рдореЗрдВ рд╕рднреА рдкреЙрдбреНрд╕
database
рдиреЗрдорд╕реНрдкреЗрд╕ рдореЗрдВ
postgres
рдкреЙрдбреНрд╕ рддрдХ рдкрд╣реБрдВрдЪ рд╣реЛрдЧреАред рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдк
default
рдирд╛рдо рд╕реНрдерд╛рди рдореЗрдВ рдХреЗрд╡рд▓ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреЙрдбреНрд╕ рдХреЗ рд▓рд┐рдП
postgres
рдХреЛ рдЦреЛрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?
рдиреЗрдорд╕реНрдкреЗрд╕ рдФрд░ рдкреЙрдбреНрд╕ рджреНрд╡рд╛рд░рд╛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░реЗрдВ
Kubernetes рд╕рдВрд╕реНрдХрд░рдг 1.11 рдФрд░ рдЙрдЪреНрдЪрддрд░ рдЖрдкрдХреЛ
podSelector
рдХрд╛
podSelector
рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
podSelector
рдФрд░
podSelector
рдСрдкрд░реЗрдЯрд░ рддрд╛рд░реНрдХрд┐рдХ I рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдПред рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
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

рдЗрд╕рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рд╕рд╛рдорд╛рдиреНрдп рдХреЗ рдмрдЬрд╛рдп рдФрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХреНрдпреЛрдВ рдХреА рдЬрд╛рддреА рд╣реИ?
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐
podSelector
рдПрдХ рд╣рд╛рдЗрдлрд╝рди рд╕реЗ рд╢реБрд░реВ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред
podSelector
, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐
podSelector
рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рдордиреЗ рдЦрдбрд╝реЗ
namespaceSelector
podSelector
рд╕рдорд╛рди рд╕реВрдЪреА рдЖрдЗрдЯрдо рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рд╡реЗ рддрд╛рд░реНрдХрд┐рдХ I рджреНрд╡рд╛рд░рд╛ рд╕рдВрдпреБрдХреНрдд рд╣реИрдВред
podSelector
рд╕рд╛рдордиреЗ рдПрдХ рд╣рд╛рдЗрдлрд╝рди рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдПрдХ рдирдИ рд╕реВрдЪреА рдЖрдЗрдЯрдо рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реЛрдЧрд╛ рдЬреЛ рдПрдХ рддрд╛рд░реНрдХрд┐рдХ OR рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд┐рдЫрд▓реЗ
namespaceSelector
рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ред
рд╕рднреА рдирд╛рдорд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд▓реЗрдмрд▓ рдХреЗ рд╕рд╛рде рдкреЙрдбреНрд╕ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдЦрд╛рд▓реА
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

рдПрдХрд╛рдзрд┐рдХ рд▓реЗрдмрд▓ AND рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрд┐рдд рд╣реЛрддреЗ рд╣реИрдВ
рдХрдИ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ (рд╣реЛрд╕реНрдЯ, рдиреЗрдЯрд╡рд░реНрдХ, рд╕рдореВрд╣) рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдо рдПрдХ рддрд╛рд░реНрдХрд┐рдХ OR рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрдпреБрдХреНрдд рд╣реИрдВред рдпрджрд┐ рдкреИрдХреЗрдЯ рдХрд╛ рд╕реНрд░реЛрдд
Host_1
рдпрд╛
Host_2
рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ рддреЛ рдирд┐рдореНрди рдирд┐рдпрдо рдХрд╛рдо рдХрд░реЗрдЧрд╛:
| Source | Destination | Service | Action | | ----------------------------------------| | Host_1 | Subnet_A | HTTPS | Allow | | Host_2 | | | | | ----------------------------------------|
рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ,
podSelector
рдпрд╛
namespaceSelector
podSelector
рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рд▓реЗрдмрд▓ рддрд╛рд░реНрдХрд┐рдХ I рджреНрд╡рд╛рд░рд╛ рд╕рдВрдпреБрдХреНрдд рд╣реЛрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рдпрдо рдЙрди рдкреЙрдбреНрд╕ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВрдЧреЗ рдЬрд┐рдирдореЗрдВ рд▓реЗрдмрд▓,
role=db
рдФрд░
version=v2
:
podSelector: matchLabels: role: db version: v2
рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдСрдкрд░реЗрдЯрд░реЛрдВ рдкрд░ рдПрдХ рд╣реА рддрд░реНрдХ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ: рдкреЙрд▓рд┐рд╕реА рд▓рдХреНрд╖реНрдп рдЪрдпрдирдХрд░реНрддрд╛, рдкреЙрдб рдЪрдпрдирдХрд░реНрддрд╛ рдФрд░ рдиреЗрдорд╕реНрдкреЗрд╕ рдЪрдпрдирдХрд░реНрддрд╛ред
рд╕рдмрдиреЗрдЯ рдФрд░ рдЖрдИрдкреА рдкрддреЗ (IPBlocks)
рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдПрдХ рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реАрдПрд▓рдПрдПрди, рдЖрдИрдкреА рдкрддреЗ рдФрд░ рд╕рдмрдиреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ, рдЖрдИрдкреА рдкрддреЗ рдХреЛ рдлрд▓реА рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЕрд╕рд╛рдЗрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЕрдХреНрд╕рд░ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпреЛрдВ рдореЗрдВ рдлрд▓реА рдФрд░ рдирд╛рдо рд╕реНрдерд╛рди рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЗрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
ipBlocks
(
ipBlocks
) рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрдирдмрд╛рдЙрдВрдб (
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 рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИ; рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдЖрдИрдкреА рддрдХ рдкрд╣реБрдВрдЪ рд╕реЗ рд╡рдВрдЪрд┐рдд рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдЖрдкрдиреЗ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдЖрдВрддрд░рд┐рдХ DNS рд╕реЗрд╡рд╛ рддрдХ рдкрд╣реБрдВрдЪ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░ рджрд┐рдпрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЕрднреА рднреА рдЗрд╕реЗ рдЦреЛрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВред
рдЖрдорддреМрд░ рдкрд░
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

рдЖрдк рдХреЗрд╡рд▓ рдмрд╛рд╣рд░реА IP рдкреЛрдбреНрд╕ рдХреЗ рдЖрдВрддрд░рд┐рдХ IP рдкрддреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдПрдХреНрд╕реЗрд╕ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХреЗ рдкреЙрдб рдХрд╛ рд╕рдмрдиреЗрдЯ 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
рдЪрдпрдирдХрд░реНрддрд╛ рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдпрд╛ рдмреНрд▓реЙрдХ рдХрд┐рдП рдЧрдП рд╕рднреА рддрддреНрд╡реЛрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред рддрддреНрд╡реЛрдВ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕реЗрдЯреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдкрдиреЗ рдкреЛрд░реНрдЯ рдореЗрдВ рдпрд╛ рдЙрд╕рдХреЗ рд╕рд╛рде рдХрдИ рдЙрдкрдЦрдВрдбреЛрдВ рдореЗрдВ
ingress
рдпрд╛
egress
рдХреЛ рддреЛрдбрд╝реЗрдВ:
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

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреЛрд░реНрдЯ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ:
- рдпрджрд┐ рдЖрдк рдкреЛрд░реНрдЯ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╕рднреА рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдФрд░ рд╕рднреА рдкреЛрд░реНрдЯ;
- рдпрджрд┐ рдЖрдк рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдкрд░рд┐рднрд╛рд╖рд╛ рдЫреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЯреАрд╕реАрдкреА;
- рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдкреЛрд░реНрдЯ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╕рднреА рдкреЛрд░реНрдЯ рд╣реИрдВред
рд╕рд░реНрд╡реЛрддреНрддрдо рдЕрднреНрдпрд╛рд╕: рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдиреЛрдВ рдкрд░ рднрд░реЛрд╕рд╛ рди рдХрд░реЗрдВ, рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдПред
рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдкреЙрдб рдкреЛрд░реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рди рдХрд┐ рд╕реЗрд╡рд╛рдУрдВ (рдЕрдЧрд▓реЗ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдореЗрдВ рдЗрд╕ рдкрд░ рдЕрдзрд┐рдХ)ред
рдХреНрдпрд╛ рдкреЙрдбреНрд╕ рдпрд╛ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдиреАрддрд┐рдпреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ?
рдЖрдорддреМрд░ рдкрд░ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рдлрд▓реА рдПрдХ рд╕реЗрд╡рд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░рддреА рд╣реИрдВ - рдПрдХ рдЖрднрд╛рд╕реА рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рдЬреЛ рдкреЙрдбреНрд╕ рдкрд░ рдпрд╛рддрд╛рдпрд╛рдд рдХреЛ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╕реЗрд╡рд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдЖрдк рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпрд╛рдВ рд╕реЗрд╡рд╛рдУрдВ рддрдХ рдкрд╣реБрдВрдЪ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред
рдХреБрдмреЗрд░рдиреЗрдЯ рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐рдпрд╛рдВ рдкреЙрдб рдкреЛрд░реНрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреА рд╣реИрдВ, рди рдХрд┐ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдПред, 80- , 8080 pod', 8080.
: ( pod') .
Service Mesh
(, . Istio тАФ . .) .
Ingress, Egress?
тАФ , pod pod' , ( egress-), pod ( , , ingress-).
, .
pod-
egress -, . pod'-
. pod - , (egress) .
pod'-
,
ingress -, . pod'-. pod - , (ingress) .
. ┬лStateful Stateless┬╗ .
Kubernetes . , , .
Kubernetes (DNS) egress. , IP- ( aws.com).
. Kubernetes . kubectl Kubernetes , , . Kubernetes . :
kubernetes get networkpolicy <policy-name> -o yaml
, Kubernetes .
Kubernetes , API-, , Container Networking Interface (CNI). Kubernetes CNI . CNI , Kubernetes,
( тАФ . .) , , CNI .
, Kubernetes , CNI.
Stateful Stateless?
CNI Kubernetes, , (, Calico Linux conntrack). pod' TCP- . Kubernetes, (statefulness).
Kubernetes:
- Service Mesh sidecar- . Istio .
- CNI , Kubernetes.
- Tufin Orca Kubernetes.
Tufin Orca Kubernetes ( , ).
рдирд┐рд╖реНрдХрд░реНрд╖
Kubernetes , . , - . .
, , .
рдЕрдиреБрд╡рд╛рджрдХ рд╕реЗ рдкреА.рдПрд╕.
рд╣рдорд╛рд░реЗ рдмреНрд▓реЙрдЧ рдореЗрдВ рднреА рдкрдврд╝реЗрдВ: