рдиреЛрдВрдж. рдЕрдиреБрд╡рд╛рдж: рд▓реЗрдЦрд╛рдЪреЗ рд▓реЗрдЦрдХ, рд░реЗрдЙрд╡реЗрди рд╣реЕрд░рд┐рд╕рди, рдпрд╛рдВрдирд╛ рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ рдбреЗрд╡реНрд╣рд▓рдкрдореЗрдВрдЯрдЪрд╛ 20 рд╡рд░реНрд╖рд╛рдВрдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рдЕрдиреБрднрд╡ рдЖрд╣реЗ рдЖрдгрд┐ рдЖрдЬ рддреЗ рд╕реБрд░рдХреНрд╖рд╛ рдзреЛрд░рдг рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЙрдкрд╛рдп рддрдпрд╛рд░ рдХрд░рдгрд╛рд▒реНрдпрд╛ Tufin рдпрд╛ рдХрдВрдкрдиреАрдЪреЗ CTO рдЖрдгрд┐ рд╕рд╣-рд╕рдВрд╕реНрдерд╛рдкрдХ рдЖрд╣реЗрдд. рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдкреЙрд▓рд┐рд╕реАрдВрдирд╛ рдХреНрд▓рд╕реНрдЯрд░рдордзреНрдпреЗ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗрдЧрдореЗрдВрдЯреЗрд╢рдирд╕рд╛рдареА рдПрдХ рдмрд▒реНрдпрд╛рдкреИрдХреА рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╕рд╛рдзрди рдореНрд╣рдгреВрди рддреЗ рдкрд╛рд╣рддрд╛рдд, рдкрд░рдВрддреБ рддреНрдпрд╛рдВрдЪрд╛ рдЕрд╕рд╛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдЖрд╣реЗ рдХреА рддреЗ рд╡реНрдпрд╡рд╣рд╛рд░рд╛рдд рд▓рд╛рдЧреВ рдХрд░рдгреЗ рдЗрддрдХреЗ рд╕реЛрдкреЗ рдирд╛рд╣реА. рд╣реА рд╕рд╛рдордЧреНрд░реА (рдЕрдЧрджреА рд╡рд┐рдкреБрд▓) рддрдЬреНрдЮрд╛рдВрдЪреА рдпрд╛ рд╕рдорд╕реНрдпреЗрдмрджреНрджрд▓ рдЬрд╛рдЧрд░реВрдХрддрд╛ рд╕реБрдзрд╛рд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рддреНрдпрд╛рдВрдирд╛ рдЖрд╡рд╢реНрдпрдХ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдд рдорджрдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрд╣реЗ.
рдЖрдЬ, рдмрд▒реНрдпрд╛рдЪ рдХрдВрдкрдиреНрдпрд╛ рддреНрдпрд╛рдВрдЪреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЪрд╛рд▓рд╡рд┐рдгреНрдпрд╛рд╕рд╛рдареА рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдЪреА рдирд┐рд╡рдб рдХрд░рдд рдЖрд╣реЗрдд. рдпрд╛ рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░рдордзреНрдпреЗ рд╕реНрд╡рд╛рд░рд╕реНрдп рдЗрддрдХреЗ рдЬрд╛рд╕реНрдд рдЖрд╣реЗ рдХреА рдХрд╛рд╣реА рдЬрдг Kubernetes "рдбреЗрдЯрд╛ рд╕реЗрдВрдЯрд░рд╕рд╛рдареА рдирд╡реАрди рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо" рдореНрд╣рдгрдд рдЖрд╣реЗрдд. рд╣рд│реВрд╣рд│реВ, Kubernetes (рдХрд┐рдВрд╡рд╛ k8s) рд╣рд╛ рд╡реНрдпрд╡рд╕рд╛рдпрд╛рдЪрд╛ рдПрдХ рдорд╣рддреНрддреНрд╡рд╛рдЪрд╛ рднрд╛рдЧ рдореНрд╣рдгреВрди рдУрд│рдЦрд▓рд╛ рдЬрд╛рдК рд▓рд╛рдЧрд▓рд╛ рдЖрд╣реЗ, рдЬреНрдпрд╛рд╕рд╛рдареА рдиреЗрдЯрд╡рд░реНрдХ рд╕реБрд░рдХреНрд╖реЗрд╕рд╣ рдкрд░рд┐рдкрдХреНрд╡ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдВрдЪреЗ рдЖрдпреЛрдЬрди рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.
рд╕реБрд░рдХреНрд╖рд╛ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХрд╛рдВрд╕рд╛рдареА рдЬреЗ рдХреБрдмрд░рдиреЗрдЯрд╕рд╣ рдХрд╛рдо рдХрд░реВрди рдЧреЛрдВрдзрд│рд▓реЗрд▓реЗ рдЖрд╣реЗрдд, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░рдХрдЯреАрдХрд░рдг рд╣реЗ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдордЪреЗ рдбреАрдлреЙрд▓реНрдЯ рдзреЛрд░рдг рдЕрд╕реВ рд╢рдХрддреЗ: рд╕рд░реНрд╡рдХрд╛рд╣реА рдкрд░рд╡рд╛рдирдЧреА рджреНрдпрд╛.
рд╣реЗ рдорд╛рд░реНрдЧрджрд░реНрд╢рдХ рддреБрдореНрд╣рд╛рд▓рд╛ рдиреЗрдЯрд╡рд░реНрдХ рдзреЛрд░рдгрд╛рдВрдЪреА рдЕрдВрддрд░реНрдЧрдд рд░рдЪрдирд╛ рд╕рдордЬрдгреНрдпрд╛рд╕ рдорджрдд рдХрд░реЗрд▓; рддреЗ рдирд┐рдпрдорд┐рдд рдлрд╛рдпрд░рд╡реЙрд▓рдЪреНрдпрд╛ рдирд┐рдпрдорд╛рдВрдкреЗрдХреНрд╖рд╛ рдХрд╕реЗ рд╡реЗрдЧрд│реЗ рдЖрд╣реЗрдд рддреЗ рд╕рдордЬреВрди рдШреНрдпрд╛. рд╣реЗ рдХрд╛рд╣реА рддреЛрдЯреЗ рджреЗрдЦреАрд▓ рдХрд╡реНрд╣рд░ рдХрд░реЗрд▓ рдЖрдгрд┐ Kubernetes рд╡рд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдВрдирд╛ рдорджрдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╢рд┐рдлрд╛рд░рд╕реА рдкреНрд░рджрд╛рди рдХрд░реЗрд▓.
Kubernetes рдиреЗрдЯрд╡рд░реНрдХ рдзреЛрд░рдгреЗ
Kubernetes рдиреЗрдЯрд╡рд░реНрдХ рдкреЙрд▓рд┐рд╕реА рдореЗрдХреЕрдирд┐рдЭрдо рддреБрдореНрд╣рд╛рд▓рд╛ рдиреЗрдЯрд╡рд░реНрдХ рд╕реНрддрд░рд╛рд╡рд░ (OSI рдореЙрдбреЗрд▓рдордзреАрд▓ рддрд┐рд╕рд░реЗ) рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╡рд░ рдЙрдкрдпреЛрдЬрд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдВрдЪреЗ рдкрд░рд╕реНрдкрд░рд╕рдВрд╡рд╛рдж рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ. рдиреЗрдЯрд╡рд░реНрдХ рдзреЛрд░рдгрд╛рдВрдордзреНрдпреЗ рдЖрдзреБрдирд┐рдХ рдлрд╛рдпрд░рд╡реЙрд▓рдЪреНрдпрд╛ рдХрд╛рд╣реА рдкреНрд░рдЧрдд рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрдЪрд╛ рдЕрднрд╛рд╡ рдЖрд╣реЗ, рдЬрд╕реЗ рдХреА OSI рд╕реНрддрд░ 7 рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдЖрдгрд┐ рдзреЛрдХрд╛ рд╢реЛрдзрдгреЗ, рдкрд░рдВрддреБ рддреЗ рдиреЗрдЯрд╡рд░реНрдХ рд╕реБрд░рдХреНрд╖рд┐рддрддреЗрдЪреЗ рдореВрд▓рднреВрдд рд╕реНрддрд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛рдд рдЬреЗ рдПрдХ рдЪрд╛рдВрдЧрд▓рд╛ рдкреНрд░рд╛рд░рдВрдн рдмрд┐рдВрджреВ рдЖрд╣реЗ.
рдиреЗрдЯрд╡рд░реНрдХ рдзреЛрд░рдгреЗ рдкреЙрдбреНрд╕рдордзреАрд▓ рд╕рдВрдкреНрд░реЗрд╖рдг рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛рдд
рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдордзреАрд▓ рд╡рд░реНрдХрд▓реЛрдбреНрд╕ рдкреЙрдбреНрд╕рдордзреНрдпреЗ рд╡рд┐рддрд░реАрдд рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд, рдЬреНрдпрд╛рдордзреНрдпреЗ рдПрдХ рдХрд┐рдВрд╡рд╛ рдЕрдзрд┐рдХ рдХрдВрдЯреЗрдирд░ рдПрдХрддреНрд░ рддреИрдирд╛рдд рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд. Kubernetes рдкреНрд░рддреНрдпреЗрдХ рдкреЙрдбрд▓рд╛ рдЗрддрд░ рдкреЙрдбреНрд╕рдордзреВрди рдкреНрд░рд╡реЗрд╢ рдХрд░рдгреНрдпрд╛рдпреЛрдЧреНрдп рдЕрд╕рд▓реЗрд▓рд╛ IP рдкрддреНрддрд╛ рдирд┐рдпреБрдХреНрдд рдХрд░рддреЗ. 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 create -f policy.yaml
рдиреЗрдЯрд╡рд░реНрдХ рдзреЛрд░рдг рддрдкрд╢реАрд▓
рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдкреЙрд▓рд┐рд╕реА рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХреЗрд╢рдирдордзреНрдпреЗ рдЪрд╛рд░ рдШрдЯрдХ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗрдд:
-
podSelector
: рдпрд╛ рдзреЛрд░рдгрд╛рдореБрд│реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рд╢реЗрдВрдЧрд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ (рд▓рдХреНрд╖реНрдпреЗ) - рдЖрд╡рд╢реНрдпрдХ; -
policyTypes
: рдпрд╛рдордзреНрдпреЗ рдХреЛрдгрддреНрдпрд╛ рдкреНрд░рдХрд╛рд░рдЪреНрдпрд╛ рдзреЛрд░рдгрд╛рдВрдЪрд╛ рд╕рдорд╛рд╡реЗрд╢ рдЖрд╣реЗ рд╣реЗ рд╕реВрдЪрд┐рдд рдХрд░рддреЗ: рдкреНрд░рд╡реЗрд╢ рдЖрдгрд┐/рдХрд┐рдВрд╡рд╛ рдмрд╛рд╣реЗрд░ рдкрдбрдгреЗ - рдкрд░реНрдпрд╛рдпреА, рдкрд░рдВрддреБ рдореА рд╕рд░реНрд╡ рдкреНрд░рдХрд░рдгрд╛рдВрдордзреНрдпреЗ рддреЗ рд╕реНрдкрд╖реНрдЯрдкрдгреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдгреНрдпрд╛рдЪреА рд╢рд┐рдлрд╛рд░рд╕ рдХрд░рддреЛ; -
ingress
: рдкрд░рд╡рд╛рдирдЧреА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рдпреЗрдгрд╛рд░реА рдЯрд╛рд░реНрдЧреЗрдЯ рдкреЙрдбреНрд╕рд╡рд░ рд░рд╣рджрд╛рд░реА - рдкрд░реНрдпрд╛рдпреА; -
egress
: рдкрд░рд╡рд╛рдирдЧреА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ рдЯрд╛рд░реНрдЧреЗрдЯ рдкреЙрдбреНрд╕рдордзреВрди рд╡рд╛рд╣рддреВрдХ рдРрдЪреНрдЫрд┐рдХ рдЖрд╣реЗ.
Kubernetes рд╡реЗрдмрд╕рд╛рдЗрдЯрд╡рд░реВрди рдШреЗрддрд▓реЗрд▓реЗ рдЙрджрд╛рд╣рд░рдг (рдореА рдмрджрд▓рд▓реЗ 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
рд╡рдЧрд│рд▓реЗ, рдзреЛрд░рдг рд╕рд░реНрд╡ рд░рд╣рджрд╛рд░реА рдирд╛рдХрд╛рд░реЗрд▓ (рдЦрд╛рд▓реА "рд╕реНрдЯреНрд░рд┐рдкрд┐рдВрдЧ рдирд┐рдпрдо" рдкрд╣рд╛).
рдбреАрдлреЙрд▓реНрдЯ рдзреЛрд░рдг рдкрд░рд╡рд╛рдирдЧреА рдЖрд╣реЗ
рдХреЛрдгрддреАрд╣реА рдзреЛрд░рдгреЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╕рд▓реНрдпрд╛рд╕, Kubernetes рд╕рд░реНрд╡ рд░рд╣рджрд╛рд░реАрд▓рд╛ рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░ рдЕрдиреБрдорддреА рджреЗрддреЗ. рд╕рд░реНрд╡ рд╢реЗрдВрдЧрд╛ рдЖрдкрд╛рдкрд╕рд╛рдд рдорд╛рд╣рд┐рддреАрдЪреА рдореБрдХреНрддрдкрдгреЗ рджреЗрд╡рд╛рдгрдШреЗрд╡рд╛рдг рдХрд░реВ рд╢рдХрддрд╛рдд. рд╣реЗ рд╕реБрд░рдХреНрд╖реЗрдЪреНрдпрд╛ рджреГрд╖реНрдЯреАрдХреЛрдирд╛рддреВрди рд╡рд┐рд░реЛрдзрд╛рднрд╛рд╕реА рд╡рд╛рдЯреВ рд╢рдХрддреЗ, рдкрд░рдВрддреБ рд▓рдХреНрд╖рд╛рдд рдареЗрд╡рд╛ рдХреА Kubernetes рдЪреА рд░рдЪрдирд╛ рдореВрд│рдд: рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдВрдЯрд░рдСрдкрд░реЗрдмрд┐рд▓рд┐рдЯреА рд╕рдХреНрд╖рдо рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд┐рдХрд╕рдХрд╛рдВрдиреА рдХреЗрд▓реА рд╣реЛрддреА. рдиреЗрдЯрд╡рд░реНрдХ рдзреЛрд░рдгреЗ рдирдВрддрд░ рдЬреЛрдбрд▓реА рдЧреЗрд▓реА.
рдиреЗрдорд╕реНрдкреЗрд╕реЗрд╕
рдиреЗрдорд╕реНрдкреЗрд╕ рд╣реА рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рд╕рд╣рдпреЛрдЧ рдпрдВрддреНрд░рдгрд╛ рдЖрд╣реЗ. рддреЗ рдПрдХрдореЗрдХрд╛рдВрдкрд╛рд╕реВрди рддрд╛рд░реНрдХрд┐рдХ рд╡рд╛рддрд╛рд╡рд░рдг рд╡реЗрдЧрд│реЗ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдбрд┐рдЭрд╛рдЗрди рдХреЗрд▓реЗрд▓реЗ рдЖрд╣реЗрдд, рддрд░ рд╕реНрдкреЗрд╕рдордзреАрд▓ рд╕рдВрд╡рд╛рджрд╛рд╕ рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░ рдкрд░рд╡рд╛рдирдЧреА рдЖрд╣реЗ.
рдмрд╣реБрддреЗрдХ Kubernetes рдШрдЯрдХрд╛рдВрдкреНрд░рдорд╛рдгреЗ, рдиреЗрдЯрд╡рд░реНрдХ рдзреЛрд░рдгреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдиреЗрдорд╕реНрдкреЗрд╕рдордзреНрдпреЗ рд░рд╛рд╣рддрд╛рдд. рдмреНрд▓реЙрдХ рдордзреНрдпреЗ 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
рд▓реЗрдмрд▓реНрд╕
рддреБрдореНрд╣реА рдкреЙрдбреНрд╕ рдЖрдгрд┐ рдиреЗрдорд╕реНрдкреЗрд╕ рдпрд╛рдВрд╕рд╛рд░рдЦреНрдпрд╛ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕рдирд╛ рд╕рд╛рдиреБрдХреВрд▓ рд▓реЗрдмрд▓ рд╕рдВрд▓рдЧреНрди рдХрд░реВ рд╢рдХрддрд╛. рд▓реЗрдмрд▓реНрд╕ (рд▓реЗрдмрд▓ - рдЯреЕрдЧ) рд╣реЗ рдореЗрдШрдордзреАрд▓ рдЯреЕрдЧрдЪреЗ рд╕рдорддреБрд▓реНрдп рдЖрд╣реЗрдд. Kubernetes рдиреЗрдЯрд╡рд░реНрдХ рдзреЛрд░рдгреЗ рдирд┐рд╡рдбрдгреНрдпрд╛рд╕рд╛рдареА рд▓реЗрдмрд▓реЗ рд╡рд╛рдкрд░рддрд╛рдд рд╢реЗрдВрдЧрд╛рдЬреНрдпрд╛рд╡рд░ рддреЗ рд▓рд╛рдЧреВ рд╣реЛрддрд╛рдд:
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:
...
рд╕реНрд░реЛрдд рдЖрдгрд┐ рдЧрдВрддрд╡реНрдпрд╕реНрдерд╛рди
рдлрд╛рдпрд░рд╡реЙрд▓ рдзреЛрд░рдгрд╛рдВрдордзреНрдпреЗ рд╕реНрддреНрд░реЛрдд рдЖрдгрд┐ рдЧрдВрддрд╡реНрдпрд╕реНрдерд╛рдирд╛рдВрд╕рд╣ рдирд┐рдпрдо рдЕрд╕рддрд╛рдд. Kubernetes рдиреЗрдЯрд╡рд░реНрдХ рдзреЛрд░рдгреЗ рд▓рдХреНрд╖реНрдпрд╛рд╕рд╛рдареА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЗрд▓реА рдЬрд╛рддрд╛рдд - рдкреЙрдбреНрд╕рдЪрд╛ рдПрдХ рд╕рдВрдЪ рдЬреНрдпрд╛рд╡рд░ рддреЗ рд▓рд╛рдЧреВ рдХрд░рддрд╛рдд - рдЖрдгрд┐ рдирдВрддрд░ рдкреНрд░рд╡реЗрд╢ рдЖрдгрд┐/рдХрд┐рдВрд╡рд╛ рдмрд╛рд╣реЗрд░ рдЬрд╛рдгреНрдпрд╛рд╕рд╛рдареА рдирд┐рдпрдо рд╕реЗрдЯ рдХрд░рддрд╛рдд. рдЖрдордЪреНрдпрд╛ рдЙрджрд╛рд╣рд░рдгрд╛рдд, рдкреЙрд▓рд┐рд╕реАрдЪреЗ рд▓рдХреНрд╖реНрдп рдиреЗрдорд╕реНрдкреЗрд╕рдордзреАрд▓ рд╕рд░реНрд╡ рдкреЙрдбреНрд╕ рдЕрд╕рддреАрд▓ 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
рдпрд╛ рдзреЛрд░рдгрд╛рдордзреНрдпреЗ, рд▓рдХреНрд╖реНрдп рдкреЙрдбреНрд╕рд╡рд░ рдпреЗрдгрд╛рд░реА рд░рд╣рджрд╛рд░реА рдЙрдШрдбрддреЗ. рджреБрд╕рд▒реНрдпрд╛ рд╢рдмреНрджрд╛рдВрдд, рдкреНрд░рд╡реЗрд╢ рд╣рд╛ рд╕реНрддреНрд░реЛрдд рдЖрд╣реЗ рдЖрдгрд┐ рд▓рдХреНрд╖реНрдп рд╣реЗ рд╕рдВрдмрдВрдзрд┐рдд рдЧрдВрддрд╡реНрдпрд╕реНрдерд╛рди рдЖрд╣реЗ. рддреНрдпрд╛рдЪрдкреНрд░рдорд╛рдгреЗ, рдирд┐рд░реНрдЧрдорди рд╣реЗ рдЧрдВрддрд╡реНрдпрд╕реНрдерд╛рди рдЖрд╣реЗ рдЖрдгрд┐ рд▓рдХреНрд╖реНрдп рд╣реЗ рддреНрдпрд╛рдЪреЗ рд╕реНрддреНрд░реЛрдд рдЖрд╣реЗ.
рд╣реЗ рджреЛрди рдлрд╛рдпрд░рд╡реЙрд▓ рдирд┐рдпрдорд╛рдВрдЪреНрдпрд╛ рд╕рдорддреБрд▓реНрдп рдЖрд╣реЗ: рдкреНрд░рд╡реЗрд╢ тЖТ рд▓рдХреНрд╖реНрдп; рдзреНрдпреЗрдп тЖТ рдЙрддреНрд╕рд░реНрдЬрди.
Egress рдЖрдгрд┐ DNS (рдорд╣рддреНрддреНрд╡рд╛рдЪреЗ!)
рдмрд╛рд╣реЗрд░ рдЬрд╛рдгрд╛рд░реА рд░рд╣рджрд╛рд░реА рдорд░реНрдпрд╛рджрд┐рдд рдХрд░реВрди, DNS рд╡рд░ рд╡рд┐рд╢реЗрд╖ рд▓рдХреНрд╖ рджреНрдпрд╛ - Kubernetes рд╣реА рд╕реЗрд╡рд╛ IP рдкрддреНрддреНрдпрд╛рдВрд╡рд░ рд╕реЗрд╡рд╛рдВрдЪрд╛ рдирдХрд╛рд╢рд╛ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рддреЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЦрд╛рд▓реАрд▓ рдзреЛрд░рдг рдХрд╛рд░реНрдп рдХрд░рдгрд╛рд░ рдирд╛рд╣реА рдХрд╛рд░рдг рддреБрдореНрд╣реА рдЕрд░реНрдЬрд╛рд▓рд╛ рдкрд░рд╡рд╛рдирдЧреА рджрд┐рд▓реА рдирд╛рд╣реА balance
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
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 рдХреНрд╡реЗрд░реА рдпреЛрдЧреНрдп Kubernetes рд╕реЗрд╡реЗрдХрдбреЗ рдкрд╛рдард╡рд╛ (рд╕рд╛рдорд╛рдиреНрдпрддрдГ рд╕реНрдкреЗрд╕рдордзреНрдпреЗ рдЪрд╛рд▓реВ 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
рдиреЗрдорд╕реНрдкреЗрд╕рдордзреАрд▓ рд╕рд░реНрд╡ рдкреЙрдбреНрд╕ рдирд┐рд╡рдбрддреЗ.
рдкрд╣рд┐рд▓рд╛ рд╕рд╛рдордирд╛ рдЖрдгрд┐ рдирд┐рдпрдо рдХреНрд░рдо
рдкрд╛рд░рдВрдкрд╛рд░рд┐рдХ рдлрд╛рдпрд░рд╡реЙрд▓рдордзреНрдпреЗ, рдкреЕрдХреЗрдЯрд╡рд░реАрд▓ рдХреНрд░рд┐рдпрд╛ (рдЕрдиреБрдорддреА рджреНрдпрд╛ рдХрд┐рдВрд╡рд╛ рдирдХрд╛рд░ рджреНрдпрд╛) рдкрд╣рд┐рд▓реНрдпрд╛ рдирд┐рдпрдорд╛рджреНрд╡рд╛рд░реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреЗрд▓реА рдЬрд╛рддреЗ рдЬреНрдпрд╛рдЪреЗ рд╕рдорд╛рдзрд╛рди рд╣реЛрддреЗ. рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдордзреНрдпреЗ, рдзреЛрд░рдгрд╛рдВрдЪрд╛ рдХреНрд░рдо рдХрд╛рд╣реА рдлрд░рдХ рдкрдбрдд рдирд╛рд╣реА.
рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░, рдЬреЗрд╡реНрд╣рд╛ рдХреЛрдгрддреАрд╣реА рдзреЛрд░рдгреЗ рд╕реЗрдЯ рдХреЗрд▓реЗрд▓реА рдирд╕рддрд╛рдд, рддреЗрд╡реНрд╣рд╛ рдкреЙрдбрдордзреАрд▓ рд╕рдВрдкреНрд░реЗрд╖рдгрд╛рдВрдирд╛ рдкрд░рд╡рд╛рдирдЧреА рдЕрд╕рддреЗ рдЖрдгрд┐ рддреЗ рдорд╛рд╣рд┐рддреАрдЪреА рдореБрдХреНрддрдкрдгреЗ рджреЗрд╡рд╛рдгрдШреЗрд╡рд╛рдг рдХрд░реВ рд╢рдХрддрд╛рдд. рдПрдХрджрд╛ рддреБрдореНрд╣реА рдкреЙрд▓рд┐рд╕реА рдмрдирд╡рд╛рдпрд▓рд╛ рд╕реБрд░реБрд╡рд╛рдд рдХреЗрд▓реА рдХреА, рддреНрдпрд╛рдкреИрдХреА рдХрд┐рдорд╛рди рдПрдХрд╛рдиреЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдкреНрд░рддреНрдпреЗрдХ рдкреЙрдб рдирд┐рд╡рдбрд▓реЗрд▓реНрдпрд╛ рд╕рд░реНрд╡ рдкреЙрд▓рд┐рд╕реАрдВрдЪреНрдпрд╛ рд╡рд┐рдШрдЯрди (рддрд╛рд░реНрдХрд┐рдХ 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
) рдиреЗрдорд╕реНрдкреЗрд╕рдордзреНрдпреЗ 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
?
рдиреЗрдорд╕реНрдкреЗрд╕реЗрд╕ рдЖрдгрд┐ рдкреЙрдбреНрд╕рдиреБрд╕рд╛рд░ рдлрд┐рд▓реНрдЯрд░ рдХрд░рд╛
Kubernetes рдЖрд╡реГрддреНрддреА 1.11 рдЖрдгрд┐ рдЙрдЪреНрдЪ рддреБрдореНрд╣рд╛рд▓рд╛ рдСрдкрд░реЗрдЯрд░ рдПрдХрддреНрд░ рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ namespaceSelector
╨╕ podSelector
рддрд╛рд░реНрдХрд┐рдХ рдЖрдгрд┐ рд╡рд╛рдкрд░рдгреЗ. рд╣реЗ рдЕрд╕реЗ рджрд┐рд╕рддреЗ:
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
рд╣реЗрдЪ рддрд░реНрдХ рд╕рд░реНрд╡ рдкреНрд░рдХрд╛рд░рдЪреНрдпрд╛ рдСрдкрд░реЗрдЯрд░рдирд╛ рд▓рд╛рдЧреВ рд╣реЛрддреЗ: рдзреЛрд░рдг рд▓рдХреНрд╖реНрдп рдирд┐рд╡рдбрдХ, рдкреЙрдб рдирд┐рд╡рдбрдХ рдЖрдгрд┐ рдиреЗрдорд╕реНрдкреЗрд╕ рдирд┐рд╡рдбрдХ.
рд╕рдмрдиреЗрдЯ рдЖрдгрд┐ IP рдкрддреНрддреЗ (IPBlocks)
рдлрд╛рдпрд░рд╡реЙрд▓ рдиреЗрдЯрд╡рд░реНрдХрдЪреЗ рд╡рд┐рднрд╛рдЬрди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА VLAN, IP рдкрддреНрддреЗ рдЖрдгрд┐ рд╕рдмрдиреЗрдЯ рд╡рд╛рдкрд░рддрд╛рдд.
Kubernetes рдордзреНрдпреЗ, IP рдкрддреНрддреЗ рдкреЙрдбреНрд╕рдирд╛ рдЖрдкреЛрдЖрдк рдирд┐рдпреБрдХреНрдд рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд рдЖрдгрд┐ рддреЗ рд╡рд╛рд░рдВрд╡рд╛рд░ рдмрджрд▓реВ рд╢рдХрддрд╛рдд, рдореНрд╣рдгреВрди рд▓реЗрдмрд▓реЗ рдиреЗрдЯрд╡рд░реНрдХ рдзреЛрд░рдгрд╛рдВрдордзреНрдпреЗ рдкреЙрдбреНрд╕ рдЖрдгрд┐ рдиреЗрдорд╕реНрдкреЗрд╕ рдирд┐рд╡рдбрдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реА рдЬрд╛рддрд╛рдд.
рд╕рдмрдиреЗрдЯ (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 рдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢рд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ; рдЗрддрд░ рдХреЛрдгрддреНрдпрд╛рд╣реА IP рд╡рд░ рдкреНрд░рд╡реЗрд╢ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдЖрд╣реЗ. рддрд░, рдереЛрдбрдХреНрдпрд╛рдд, рддреБрдореНрд╣реА рдЕрдВрддрд░реНрдЧрдд Kubernetes DNS рд╕реЗрд╡реЗрдЪрд╛ рдкреНрд░рд╡реЗрд╢ рдЕрд╡рд░реЛрдзрд┐рдд рдХреЗрд▓рд╛ рдЖрд╣реЗ. рддреБрдореНрд╣рд╛рд▓рд╛ рдЕрдЬреВрдирд╣реА рддреЗ рдЙрдШрдбрд╛рдпрдЪреЗ рдЕрд╕рд▓реНрдпрд╛рд╕, рд╣реЗ рд╕реНрдкрд╖реНрдЯрдкрдгреЗ рд╕реВрдЪрд┐рдд рдХрд░рд╛.
рд╕рд╣рд╕рд╛ ipBlocks
╨╕ podSelectors
рдкрд░рд╕реНрдкрд░ рдЕрдирдиреНрдп рдЖрд╣реЗрдд, рдХрд╛рд░рдг рдкреЙрдбреНрд╕рдЪреЗ рдЕрдВрддрд░реНрдЧрдд IP рдкрддреНрддреЗ рдпрд╛рдордзреНрдпреЗ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рдд рдирд╛рд╣реАрдд ipBlocks
. рд╕реВрдЪрд┐рдд рдХрд░реВрди рдЕрдВрддрд░реНрдЧрдд рдЖрдпрдкреА рдкреЙрдбреНрд╕, рддреБрдореНрд╣реА рдпрд╛ рдкрддреНрддреНрдпрд╛рдВрд╕рд╣ рдкреЙрдбреНрд╕рд╢реА/рд╡рд░реВрди рдХрдиреЗрдХреНрд╢рдирд▓рд╛ рдЕрдиреБрдорддреА рджреНрдпрд╛рд▓. рд╕рд░рд╛рд╡ рдордзреНрдпреЗ, рдХреЛрдгрддрд╛ IP рдкрддреНрддрд╛ рд╡рд╛рдкрд░рд╛рдпрдЪрд╛ рд╣реЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдХрд│рдгрд╛рд░ рдирд╛рд╣реА, рдореНрд╣рдгреВрдирдЪ рддреЗ рдкреЙрдбреНрд╕ рдирд┐рд╡рдбрдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рдК рдирдпреЗрдд.
рдкреНрд░рддрд┐-рдЙрджрд╛рд╣рд░рдг рдореНрд╣рдгреВрди, рдЦрд╛рд▓реАрд▓ рдзреЛрд░рдгрд╛рдордзреНрдпреЗ рд╕рд░реНрд╡ IP рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗрдд рдЖрдгрд┐ рддреНрдпрд╛рдореБрд│реЗ рдЗрддрд░ рд╕рд░реНрд╡ рдкреЙрдбреНрд╕рдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ:
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
рдмреНрд▓реЙрдХрдордзреАрд▓ рд╕рд░реНрд╡ рдШрдЯрдХрд╛рдВрдирд╛ рд▓рд╛рдЧреВ рд╣реЛрддреЗ 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
), рдпрд╛рдЪрд╛ рдЕрд░реНрде TCP; - рдЖрдкрдг рдкреЛрд░реНрдЯ рд╡реНрдпрд╛рдЦреНрдпрд╛ рд╡рдЧрд│рд▓реНрдпрд╛рд╕ (
port
), рдпрд╛рдЪрд╛ рдЕрд░реНрде рд╕рд░реНрд╡ рдкреЛрд░реНрдЯ.
рд╕рд░реНрд╡реЛрддреНрддрдо рд╕рд░рд╛рд╡: рдбреАрдлреЙрд▓реНрдЯ рдореВрд▓реНрдпрд╛рдВрд╡рд░ рдЕрд╡рд▓рдВрдмреВрди рд░рд╛рд╣реВ рдирдХрд╛, рддреБрдореНрд╣рд╛рд▓рд╛ рдХрд╛рдп рд╣рд╡реЗ рдЖрд╣реЗ рддреЗ рд╕реНрдкрд╖реНрдЯрдкрдгреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рд╛.
рдХреГрдкрдпрд╛ рд▓рдХреНрд╖рд╛рдд рдШреНрдпрд╛ рдХреА рддреБрдореНрд╣реА рдкреЙрдб рдкреЛрд░реНрдЯ рд╡рд╛рдкрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ, рд╕рд░реНрд╡реНрд╣рд┐рд╕ рдкреЛрд░реНрдЯ рдирд╛рд╣реА (рдпрд╛рд╡рд┐рд╖рдпреА рдкреБрдвреАрд▓ рдкрд░рд┐рдЪреНрдЫреЗрджрд╛рдд рдЕрдзрд┐рдХ).
рдкреЙрдбреНрд╕ рдХрд┐рдВрд╡рд╛ рд╕реЗрд╡рд╛рдВрд╕рд╛рдареА рдзреЛрд░рдгреЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЖрд╣реЗрдд рдХрд╛?
рд╕рд╛рдорд╛рдиреНрдпрддрдГ, рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдордзреАрд▓ рдкреЙрдбреНрд╕ рд╕реЗрд╡реЗрджреНрд╡рд╛рд░реЗ рдПрдХрдореЗрдХрд╛рдВрдирд╛ рдкреНрд░рд╡реЗрд╢ рджреЗрддрд╛рдд - рдПрдХ рдЖрднрд╛рд╕реА рд▓реЛрдб рдмреЕрд▓рдиреНрд╕рд░ рдЬреЛ рд╕реЗрд╡рд╛ рд▓рд╛рдЧреВ рдХрд░рдгрд╛рд▒реНрдпрд╛ рдкреЙрдбреНрд╕рд╡рд░ рд░рд╣рджрд╛рд░реА рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рддреЛ. рддреБрдореНрд╣рд╛рд▓рд╛ рд╡рд╛рдЯреЗрд▓ рдХреА рдиреЗрдЯрд╡рд░реНрдХ рдзреЛрд░рдгреЗ рд╕реЗрд╡рд╛рдВрдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛рдд, рдкрд░рдВрддреБ рдЕрд╕реЗ рдирд╛рд╣реА. Kubernetes рдиреЗрдЯрд╡рд░реНрдХ рдкреЙрд▓рд┐рд╕реА рдкреЙрдб рдкреЛрд░реНрдЯрд╡рд░ рдХрд╛рдо рдХрд░рддрд╛рдд, рд╕рд░реНрд╡реНрд╣рд┐рд╕ рдкреЛрд░реНрдЯрд╡рд░ рдирд╛рд╣реА.
рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЬрд░ рдПрдЦрд╛рджреА рд╕реЗрд╡рд╛ рдкреЛрд░реНрдЯ 80 рдРрдХрдд рдЕрд╕реЗрд▓, рдкрд░рдВрддреБ рддреНрдпрд╛рдЪреНрдпрд╛ рдкреЙрдбреНрд╕рдЪреНрдпрд╛ рдкреЛрд░реНрдЯ 8080 рд╡рд░ рд░рд╣рджрд╛рд░реА рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рдд рдЕрд╕реЗрд▓, рддрд░ рддреБрдореНрд╣реА рдиреЗрдЯрд╡рд░реНрдХ рдкреЙрд▓рд┐рд╕реАрдордзреНрдпреЗ рдирдХреНрдХреА 8080 рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.
рдЕрд╢реА рдпрдВрддреНрд░рдгрд╛ рд╕рдмрдСрдкреНрдЯрд┐рдорд▓ рдорд╛рдирд▓реА рдкрд╛рд╣рд┐рдЬреЗ: рдЬрд░ рд╕реЗрд╡реЗрдЪреА рдЕрдВрддрд░реНрдЧрдд рд░рдЪрдирд╛ (рдЬреНрдпрд╛ рдкреЛрд░реНрдЯрдЪреЗ рдкреЙрдб рдРрдХрддрд╛рдд) рдмрджрд▓рд▓реНрдпрд╛рд╕, рдиреЗрдЯрд╡рд░реНрдХ рдзреЛрд░рдгреЗ рдЕрджреНрдпрддрдирд┐рдд рдХрд░рд╛рд╡реА рд▓рд╛рдЧрддреАрд▓.
рд╕реЗрд╡рд╛ рдЬрд╛рд│реА рд╡рд╛рдкрд░реВрди рдирд╡реАрди рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд▓ рджреГрд╖реНрдЯреАрдХреЛрди (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЦрд╛рд▓реА Istio рдмрджреНрджрд▓ рдкрд╣рд╛ - рдЕрдВрджрд╛рдЬреЗ рднрд╛рд╖рд╛рдВрддрд░.) рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдпрд╛ рд╕рдорд╕реНрдпреЗрдЪрд╛ рд╕рд╛рдордирд╛ рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ.
рдкреНрд░рд╡реЗрд╢ рдЖрдгрд┐ рдирд┐рд░реНрдЧрдорди рдпрд╛ рджреЛрдиреНрд╣реАрдВрдЪреА рдиреЛрдВрджрдгреА рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдХрд╛?
рд▓рд╣рд╛рди рдЙрддреНрддрд░ рд╣реЛрдп рдЖрд╣реЗ, рдкреЙрдб рдП рд▓рд╛ рдкреЙрдб рдмреА рд╢реА рд╕рдВрд╡рд╛рдж рд╕рд╛рдзрдгреНрдпрд╛рд╕рд╛рдареА, рддреНрдпрд╛рд▓рд╛ рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ рдХрдиреЗрдХреНрд╢рди рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ (рдпрд╛рд╕рд╛рдареА рддреБрдореНрд╣рд╛рд▓рд╛ рдПрдЧреНрд░реЗрд╕ рдкреЙрд▓рд┐рд╕реА рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ), рдЖрдгрд┐ рдкреЙрдб рдмреА рдЗрдирдХрдорд┐рдВрдЧ рдХрдиреЗрдХреНрд╢рди рд╕реНрд╡реАрдХрд╛рд░рдгреНрдпрд╛рд╕ рд╕рдХреНрд╖рдо рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ ( рдпрд╛рд╕рд╛рдареА, рддреНрдпрд╛рдиреБрд╕рд╛рд░, рддреБрдореНрд╣рд╛рд▓рд╛ рдкреНрд░рд╡реЗрд╢ рдзреЛрд░рдг рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдзреЛрд░рдг).
рддрдерд╛рдкрд┐, рд╡реНрдпрд╡рд╣рд╛рд░рд╛рдд, рдЖрдкрдг рдПрдХ рдХрд┐рдВрд╡рд╛ рджреЛрдиреНрд╣реА рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢рд╛рдВрдордзреНрдпреЗ рдХрдиреЗрдХреНрд╢рдирд▓рд╛ рдЕрдиреБрдорддреА рджреЗрдгреНрдпрд╛рд╕рд╛рдареА рдбреАрдлреЙрд▓реНрдЯ рдзреЛрд░рдгрд╛рд╡рд░ рдЕрд╡рд▓рдВрдмреВрди рд░рд╛рд╣реВ рд╢рдХрддрд╛.
рдЬрд░ рдХрд╛рд╣реА рд╢реЗрдВрдЧрд╛-рд╕реНрддреНрд░реЛрдд рдПрдХ рдХрд┐рдВрд╡рд╛ рдЕрдзрд┐рдХ рджреНрд╡рд╛рд░реЗ рдирд┐рд╡рдбрд▓реЗ рдЬрд╛рдИрд▓ рдкрддреНрддрд╛-рд░рд╛рдЬрдХрд╛рд░рдгреА, рддреНрдпрд╛рд╡рд░ рд▓рд╛рджрд▓реЗрд▓реЗ рдирд┐рд░реНрдмрдВрдз рддреНрдпрд╛рдВрдЪреНрдпрд╛ рд╡рд┐рдпреЛрдЧрд╛рд╡рд░реВрди рдард░рд╡рд▓реЗ рдЬрд╛рддреАрд▓. рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдкреЙрдбрд╢реА рдХрдиреЗрдХреНрд╢рдирдЪреА рд╕реНрдкрд╖реНрдЯрдкрдгреЗ рдкрд░рд╡рд╛рдирдЧреА рджреНрдпрд╛рд╡реА рд▓рд╛рдЧреЗрд▓ -рдкрддреНрддреНрдпрд╛рдХрдбреЗ. рдкреЙрдб рдХреЛрдгрддреНрдпрд╛рд╣реА рдкреЙрд▓рд┐рд╕реАрджреНрд╡рд╛рд░реЗ рдирд┐рд╡рдбрд▓реЗ рдирд╕рд▓реНрдпрд╛рд╕, рддреНрдпрд╛рдЪреНрдпрд╛ рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ (рдПрдЧреНрд░реЗрд╕) рд░рд╣рджрд╛рд░реАрд▓рд╛ рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░ рдкрд░рд╡рд╛рдирдЧреА рджрд┐рд▓реА рдЬрд╛рддреЗ.
рддрд╕рдВрдЪ рдкреЙрдбрдЪрдВ рдирд╢реАрдм рдЕрд╕рддрдВрдкрддреНрддрд╛, рдПрдХ рдХрд┐рдВрд╡рд╛ рдЕрдзрд┐рдХ рджреНрд╡рд╛рд░реЗ рдирд┐рд╡рдбрд▓реЗ рдкреНрд░рд╡реЗрд╢ рдХрд░рдгреЗ-рд░рд╛рдЬрдХрд╛рд░рдгреА, рддреНрдпрд╛рдВрдЪреНрдпрд╛ рд╡рд┐рдпреЛрдЧрд╛рдиреЗ рдард░рд╡рд▓реЗ рдЬрд╛рддреАрд▓. рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рдЖрдкрдг рддреНрдпрд╛рд╕ рд╕реНрддреНрд░реЛрдд рдкреЙрдбрдордзреВрди рд░рд╣рджрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдгреНрдпрд╛рд╕ рд╕реНрдкрд╖реНрдЯрдкрдгреЗ рдЕрдиреБрдорддреА рджрд┐рд▓реА рдкрд╛рд╣рд┐рдЬреЗ. рдЬрд░ рдкреЙрдб рдХреЛрдгрддреНрдпрд╛рд╣реА рдкреЙрд▓рд┐рд╕реАрджреНрд╡рд╛рд░реЗ рдирд┐рд╡рдбрд▓рд╛ рдирд╕реЗрд▓, рддрд░ рддреНрдпрд╛рдЪреНрдпрд╛рд╕рд╛рдареА рд╕рд░реНрд╡ рдкреНрд░рд╡реЗрд╢ рдЯреНрд░реЕрдлрд┐рдХ рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░ рдЕрдиреБрдордд рдЖрд╣реЗ.
рдЦрд╛рд▓реА рд╕реНрдЯреЗрдЯрдлреБрд▓ рдХрд┐рдВрд╡рд╛ рд╕реНрдЯреЗрдЯрд▓реЗрд╕ рдкрд╣рд╛.
рдиреЛрдВрджреА
Kubernetes рдиреЗрдЯрд╡рд░реНрдХ рдзреЛрд░рдгреЗ рд░рд╣рджрд╛рд░реА рд▓реЙрдЧ рдХрд░реВ рд╢рдХрдд рдирд╛рд╣реАрдд. рд╣реЗ рдзреЛрд░рдг рдЙрджреНрджрд┐рд╖реНрдЯрд╛рдиреБрд╕рд╛рд░ рдХрд╛рд░реНрдп рдХрд░рдд рдЖрд╣реЗ рдХреА рдирд╛рд╣реА рд╣реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдгреЗ рдХрдареАрдг рдХрд░рддреЗ рдЖрдгрд┐ рд╕реБрд░рдХреНрд╖рд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рд╕ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдЧреБрдВрддрд╛рдЧреБрдВрдд рдХрд░рддреЗ.
рдмрд╛рд╣реНрдп рд╕реЗрд╡рд╛рдВрд╡рд░реАрд▓ рд░рд╣рджрд╛рд░реАрдЪреЗ рдирд┐рдпрдВрддреНрд░рдг
Kubernetes рдиреЗрдЯрд╡рд░реНрдХ рдзреЛрд░рдгреЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдПрдЧреНрд░реЗрд╕ рд╡рд┐рднрд╛рдЧрд╛рдВрдордзреНрдпреЗ рдкреВрд░реНрдг рдкрд╛рддреНрд░ рдбреЛрдореЗрди рдирд╛рд╡ (DNS) рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрдд тАЛтАЛрдирд╛рд╣реАрдд. рдирд┐рд╢реНрдЪрд┐рдд IP рдкрддреНрддрд╛ рдирд╕рд▓реЗрд▓реНрдпрд╛ рдмрд╛рд╣реНрдп рдЧрдВрддрд╡реНрдпрд╕реНрдерд╛рдирд╛рдВрд╡рд░ рд░рд╣рджрд╛рд░реА рдорд░реНрдпрд╛рджрд┐рдд рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░рддрд╛рдирд╛ рдпрд╛ рд╡рд╕реНрддреБрд╕реНрдерд┐рддреАрдореБрд│реЗ рд▓рдХреНрд╖рдгреАрдп рдЧреИрд░рд╕реЛрдп рд╣реЛрддреЗ (рдЬрд╕реЗ рдХреА aws.com).
рдкреЙрд▓рд┐рд╕реА рдЪреЗрдХ
рдлрд╛рдпрд░рд╡реЙрд▓ рддреБрдореНрд╣рд╛рд▓рд╛ рдЪреЗрддрд╛рд╡рдгреА рджреЗрддреАрд▓ рдХрд┐рдВрд╡рд╛ рдЪреБрдХреАрдЪреЗ рдзреЛрд░рдг рд╕реНрд╡реАрдХрд╛рд░рдгреНрдпрд╛рд╕ рдирдХрд╛рд░рд╣реА рджреЗрддреАрд▓. рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдХрд╛рд╣реА рдкрдбрддрд╛рд│рдгреА рджреЗрдЦреАрд▓ рдХрд░рддрд╛рдд. kubectl рджреНрд╡рд╛рд░реЗ рдиреЗрдЯрд╡рд░реНрдХ рдзреЛрд░рдг рд╕реЗрдЯ рдХрд░рддрд╛рдирд╛, Kubernetes рддреЗ рдЪреБрдХреАрдЪреЗ рдЕрд╕рд▓реНрдпрд╛рдЪреЗ рдШреЛрд╖рд┐рдд рдХрд░реВ рд╢рдХрддрд╛рдд рдЖрдгрд┐ рддреЗ рд╕реНрд╡реАрдХрд╛рд░рдгреНрдпрд╛рд╕ рдирдХрд╛рд░ рджреЗрдК рд╢рдХрддрд╛рдд. рдЗрддрд░ рдкреНрд░рдХрд░рдгрд╛рдВрдордзреНрдпреЗ, Kubernetes рдкреЙрд▓рд┐рд╕реА рдШреЗрддреАрд▓ рдЖрдгрд┐ рдЧрд╣рд╛рд│ рддрдкрд╢реАрд▓рд╛рдВрд╕рд╣ рддреЗ рднрд░рддреАрд▓. рддреЗ рдХрдорд╛рдВрдб рд╡рд╛рдкрд░реВрди рдкрд╛рд╣рд┐рд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд:
kubernetes get networkpolicy <policy-name> -o yaml
рд▓рдХреНрд╖рд╛рдд рдареЗрд╡рд╛ рдХреА рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреНрд░рдгрд╛рд▓реА рдЕрдЪреВрдХ рдирд╛рд╣реА рдЖрдгрд┐ рдХрд╛рд╣реА рдкреНрд░рдХрд╛рд░рдЪреНрдпрд╛ рддреНрд░реБрдЯреА рдЪреБрдХрд╡реВ рд╢рдХрддрд╛рдд.
рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА
Kubernetes рд╕реНрд╡рддрдГ рдиреЗрдЯрд╡рд░реНрдХ рдзреЛрд░рдгрд╛рдВрдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдХрд░рдд рдирд╛рд╣реА, рдкрд░рдВрддреБ рдХреЗрд╡рд│ рдПрдХ API рдЧреЗрдЯрд╡реЗ рдЖрд╣реЗ рдЬреЛ рдХрдВрдЯреЗрдирд░ рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧ рдЗрдВрдЯрд░рдлреЗрд╕ (CNI) рдирд╛рд╡рд╛рдЪреНрдпрд╛ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкреНрд░рдгрд╛рд▓реАрд╡рд░ рдирд┐рдпрдВрддреНрд░рдгрд╛рдЪрд╛ рднрд╛рд░ рд╕реЛрдкрд╡рддреЛ. рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдХреНрд▓рд╕реНрдЯрд░рд╡рд░ рдпреЛрдЧреНрдп CNI рдирд┐рдпреБрдХреНрдд рди рдХрд░рддрд╛ рдзреЛрд░рдгреЗ рд╕реЗрдЯ рдХрд░рдгреЗ рд╣реЗ рдлрд╛рдпрд░рд╡реЙрд▓ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рдлрд╛рдпрд░рд╡реЙрд▓рд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рди рдХрд░рддрд╛ рдкреЙрд▓рд┐рд╕реА рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рд░рдЦреЗрдЪ рдЖрд╣реЗ. рддреБрдордЪреНрдпрд╛рдХрдбреЗ рд╕рднреНрдп CNI рдЕрд╕рд▓реНрдпрд╛рдЪреА рдЦрд╛рддреНрд░реА рдХрд░рдгреЗ рдХрд┐рдВрд╡рд╛, рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдордЪреНрдпрд╛ рдмрд╛рдмрддреАрдд, рдХреНрд▓рд╛рдЙрдбрдордзреНрдпреЗ рд╣реЛрд╕реНрдЯ рдХреЗрд▓реЗрд▓реЗ рдЖрд╣реЗ. (рдЖрдкрдг рдкреНрд░рджрд╛рддреНрдпрд╛рдВрдЪреА рдпрд╛рджреА рдкрд╛рд╣реВ рд╢рдХрддрд╛
рд▓рдХреНрд╖рд╛рдд рдШреНрдпрд╛ рдХреА рддреБрдореНрд╣реА рдпреЛрдЧреНрдп рдорджрддрдиреАрд╕ CNI рд╢рд┐рд╡рд╛рдп рдиреЗрдЯрд╡рд░реНрдХ рдзреЛрд░рдг рд╕реЗрдЯ рдХреЗрд▓реНрдпрд╛рд╕ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рддреБрдореНрд╣рд╛рд▓рд╛ рдЪреЗрддрд╛рд╡рдгреА рджреЗрдгрд╛рд░ рдирд╛рд╣реАрдд.
рд╕реНрдЯреЗрдЯрдлреБрд▓ рдХреА рд╕реНрдЯреЗрдЯрд▓реЗрд╕?
рдорд▓рд╛ рдЖрдврд│рд▓реЗрд▓реЗ рд╕рд░реНрд╡ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рд╕реАрдПрдирдЖрдп рд╕реНрдЯреЗрдЯрдлреБрд▓ рдЖрд╣реЗрдд (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдХреЕрд▓рд┐рдХреЛ рд▓рд┐рдирдХреНрд╕ рдХреЙрдиреНрдЯреНрд░реЕрдХ рд╡рд╛рдкрд░рддреЗ). рд╣реЗ рдкреЙрдбрд▓рд╛ рддреЗ рдкреБрдиреНрд╣рд╛ рд╕реНрдерд╛рдкрд┐рдд рди рдХрд░рддрд╛ рд╕реБрд░реВ рдХреЗрд▓реЗрд▓реНрдпрд╛ TCP рдХрдиреЗрдХреНрд╢рдирд╡рд░ рдкреНрд░рддрд┐рд╕рд╛рдж рдкреНрд░рд╛рдкреНрдд рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ. рддрдерд╛рдкрд┐, рдорд▓рд╛ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдорд╛рдирдХрд╛рдВрдмрджреНрджрд▓ рдорд╛рд╣рд┐рддреА рдирд╛рд╣реА рдЬреЗ рд╕реНрдЯреЗрдЯрдлреБрд▓рдиреЗрд╕рдЪреА рд╣рдореА рджреЗрдИрд▓.
рдкреНрд░рдЧрдд рд╕реБрд░рдХреНрд╖рд╛ рдзреЛрд░рдг рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди
рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдордзреНрдпреЗ рд╕реБрд░рдХреНрд╖рд╛ рдзреЛрд░рдгрд╛рдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рд╕реБрдзрд╛рд░рдгреНрдпрд╛рдЪреЗ рдХрд╛рд╣реА рдорд╛рд░реНрдЧ рдпреЗрдереЗ рдЖрд╣реЗрдд:
- рд╕рд░реНрд╡реНрд╣рд┐рд╕ рдореЗрд╢ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд▓ рдкреЕрдЯрд░реНрди рд╕реЗрд╡рд╛ рд╕реНрддрд░рд╛рд╡рд░ рддрдкрд╢реАрд▓рд╡рд╛рд░ рдЯреЗрд▓реАрдореЗрдЯреНрд░реА рдЖрдгрд┐ рд░рд╣рджрд╛рд░реА рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рджрд╛рди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕рд╛рдЗрдбрдХрд╛рд░ рдХрдВрдЯреЗрдирд░рдЪрд╛ рд╡рд╛рдкрд░ рдХрд░рддреЗ. рдЙрджрд╛рд╣рд░рдг рдореНрд╣рдгреВрди рдЖрдкрдг рдШреЗрдК рд╢рдХрддреЛ
рдЗрд╕реНрдЯрд┐рдУ . - рдХрд╛рд╣реА CNI рд╡рд┐рдХреНрд░реЗрддреНрдпрд╛рдВрдиреА Kubernetes рдиреЗрдЯрд╡рд░реНрдХ рдзреЛрд░рдгрд╛рдВрдЪреНрдпрд╛ рдкрд▓реАрдХрдбреЗ рдЬрд╛рдгреНрдпрд╛рд╕рд╛рдареА рддреНрдпрд╛рдВрдЪреА рд╕рд╛рдзрдиреЗ рд╡рд╛рдврд╡рд▓реА рдЖрд╣реЗрдд.
-
рддреБрдлрд┐рди рдУрд░рдХрд╛ Kubernetes рдиреЗрдЯрд╡рд░реНрдХ рдзреЛрд░рдгрд╛рдВрдЪреА рджреГрд╢реНрдпрдорд╛рдирддрд╛ рдЖрдгрд┐ рдСрдЯреЛрдореЗрд╢рди рдкреНрд░рджрд╛рди рдХрд░рддреЗ.
Tufin Orca рдкреЕрдХреЗрдЬ Kubernetes рдиреЗрдЯрд╡рд░реНрдХ рдзреЛрд░рдгреЗ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ (рдЖрдгрд┐ рд╡рд░реАрд▓ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯрдЪрд╛ рд╕реНрд░реЛрдд рдЖрд╣реЗ).
рдЕрддрд┐рд░рд┐рдХреНрдд рдорд╛рд╣рд┐рддреА
-
GKE рдХрдбреВрди рдЕрд╣рдордж рдЕрд▓реНрдк рдмрд╛рд▓реНрдХрди рдпрд╛рдВрдиреА рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдзреЛрд░рдгрд╛рдВрдЪреА рдЙрджрд╛рд╣рд░рдгреЗ ; -
рдЕрдзрд┐рдХреГрдд Kubernetes рд╡реЗрдмрд╕рд╛рдЗрдЯрд╡рд░реВрди рджрд╕реНрддрдРрд╡рдЬ ; -
рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧ рдореЙрдбреЗрд▓рд╕рд╛рдареА рдорд╛рд░реНрдЧрджрд░реНрд╢рдХ ; -
рдиреЗрдЯрд╡рд░реНрдХ рдзреЛрд░рдгреЗ рддрдкрд╛рд╕рдгреНрдпрд╛рд╕рд╛рдареА рд╕реНрдХреНрд░рд┐рдкреНрдЯ .
рдирд┐рд╖реНрдХрд░реНрд╖
Kubernetes рдиреЗрдЯрд╡рд░реНрдХ рдзреЛрд░рдгреЗ рдХреНрд▓рд╕реНрдЯрд░реНрд╕рдЪреЗ рд╡рд┐рднрд╛рдЬрди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕рд╛рдзрдирд╛рдВрдЪрд╛ рдЪрд╛рдВрдЧрд▓рд╛ рд╕рдВрдЪ рджреЗрддрд╛рдд, рдкрд░рдВрддреБ рддреЗ рдЕрдВрддрд░реНрдЬреНрдЮрд╛рдиреА рдирд╕рддрд╛рдд рдЖрдгрд┐ рддреНрдпрд╛рдд рдЕрдиреЗрдХ рд╕реВрдХреНрд╖реНрдорддрд╛ рдЕрд╕рддрд╛рдд. рдпрд╛ рдЧреБрдВрддрд╛рдЧреБрдВрддреАрдореБрд│реЗ, рдорд▓рд╛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдЖрд╣реЗ рдХреА рдЕрдиреЗрдХ рд╡рд┐рджреНрдпрдорд╛рди рдХреНрд▓рд╕реНрдЯрд░ рдзреЛрд░рдгреЗ рдмрдЧреНрдЧреА рдЖрд╣реЗрдд. рдпрд╛ рд╕рдорд╕реНрдпреЗрдЪреНрдпрд╛ рд╕рдВрднрд╛рд╡реНрдп рдЙрдкрд╛рдпрд╛рдВрдордзреНрдпреЗ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдзреЛрд░рдг рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд┐рдВрд╡рд╛ рдЗрддрд░ рд╡рд┐рднрд╛рдЬрди рд╕рд╛рдзрдиреЗ рд╡рд╛рдкрд░рдгреЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ.
рдорд▓рд╛ рдЖрд╢рд╛ рдЖрд╣реЗ рдХреА рд╣реЗ рдорд╛рд░реНрдЧрджрд░реНрд╢рдХ рдХрд╛рд╣реА рдкреНрд░рд╢реНрдирд╛рдВрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рдгреНрдпрд╛рдд рдЖрдгрд┐ рддреБрдореНрд╣рд╛рд▓рд╛ рднреЗрдбрд╕рд╛рд╡рдгрд╛рд▒реНрдпрд╛ рд╕рдорд╕реНрдпрд╛рдВрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рдгреНрдпрд╛рдд рдорджрдд рдХрд░реЗрд▓.
рдЕрдиреБрд╡рд╛рджрдХрд╛рдХрдбреВрди рдкреБрдирд╢реНрдЪ
рдЖрдордЪреНрдпрд╛ рдмреНрд▓реЙрдЧрд╡рд░ рджреЗрдЦреАрд▓ рд╡рд╛рдЪрд╛:
- "рдЗрд╕реНрдЯрд┐рдУрд╕рд╣ рдорд╛рдпрдХреНрд░реЛ рд╕рд░реНрд╡реНрд╣рд┐рд╕реЗрд╕рдХрдбреЗ рдкрд░рдд рдЬрд╛":
рднрд╛рдЧ рез (рдореБрдЦреНрдп рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрдЪрд╛ рдкрд░рд┐рдЪрдп) ,рднрд╛рдЧ реи (рдорд╛рд░реНрдЧ, рд╡рд╛рд╣рддреВрдХ рдирд┐рдпрдВрддреНрд░рдг) ,рднрд╛рдЧ 3 (рд╕реБрд░рдХреНрд╖рд╛) ; - "рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдордзреАрд▓ рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧрд╕рд╛рдареА рд╕рдЪрд┐рддреНрд░ рдорд╛рд░реНрдЧрджрд░реНрд╢рдХ":
рднрд╛рдЧ рез рдЖрдгрд┐ реи (рдиреЗрдЯрд╡рд░реНрдХ рдореЙрдбреЗрд▓, рдЖрдЪреНрдЫрд╛рджрди рдиреЗрдЯрд╡рд░реНрдХ) ,рднрд╛рдЧ 3 (рд╕реЗрд╡рд╛ рдЖрдгрд┐ рд╡рд╛рд╣рддреВрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛) ; - ┬л
рд╕реБрд░рдХреНрд╖рд╛-рдорд╛рдЧрдгреА рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдд рдбреЙрдХрд░ рдЖрдгрд┐ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ "; - ┬л
рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рд╕реБрд░рдХреНрд╖рд┐рддрддреЗрд╕рд╛рдареА 9 рд╕рд░реНрд╡реЛрддреНрддрдо рдкрджреНрдзрддреА "; - ┬л
рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рд╣реЕрдХрдЪрд╛ рдмрд│реА рдмрдирдгреНрдпрд╛рдЪреЗ (рдирд╛рд╣реА) 11 рдорд╛рд░реНрдЧ ┬╗.
рд╕реНрддреНрд░реЛрдд: www.habr.com