ááľáłááť. áľáááá¨á˝áá á°áŤá˛ - áŹáá¨á ááŞá°á - á áśááľáá áááľ ááľáĽ ᨠ20 áááłáľ á áá áááľ áŤáá á˛áá áᏠCTO áĽá á¨áąáá á¨á°á
áááľ ááᲠá áľá°áłá°á áááľááá˝ áŠáŁá፠ááľáŤá˝ ááᢠá¨áŠá áááľáľ á¨ááľááá ááá˛áá˝ ááľáááŠá á áááľá°á ááľáĽ ááá¨ááá áááá áĽáá°áá á˘ááĽááᣠá á°ááŁá áá á°ááŁáŤá áááľá¨á ááá áĽááłááá áŤáááᢠáá
ááłááľ (áááá áĽáŤá) á áá
ááłá áá á¨áአáŁáááŤáá˝á áááᤠáááťáťá áĽá á áľááááá áá
á¨áľ áááá á áĽáá˛á¨áłá¸á á¨áłá°á ááá˘
áᏠáĽá áŠáŁááŤáá˝ áá°áá áŞáŤááťá¸áá áááŤááľ Kubernetes áĽá¨áá¨áĄ ááᢠá¨áá áśááľáá ááááľ á áŁá á¨áá°á á¨ááá á¨á°ááł á ááłááśá˝ Kubernetes "á á˛áą áľááá° ááá ááłáł ááĽá¨áá˝" áĽáá áá áŠáłá. ááľ á ááľ áŠá áááľáľ (ááá k8s) á¨ááľááá á°á áááľá á¨áᎠá¨ááááą á¨áááľ áá°áśá˝á áá°áŤááľ á¨ááŤáľáááá á¨áááľ áĽáŤ ááłá á áŤá áĽáá°áá ááłáá ááááŤáá˘
á¨áŠá áááľáľ áá á ááĽáŤáľ á፠á¨ááŁá¸á á¨á°á áááľ áŁáááŤáá˝ á¨áá ááľá¨á ááŁáŞ ááᲠáĽááá°á áááľ ááá áá˝ááᥠáááá ááá áááľá˘
áá áááŞáŤ á¨ááľááá ááá˛áá˝á ááľáŁá á á áŤá ááá¨áłáľ áá¨áłááłá; á¨áá°á á áá¨ááá á°ááŚá˝ áĽáá´áľ áĽáá°áááŤáŠ áá¨áąá˘ áĽáá˛áá áľá á ááłááľ ááĽááśá˝ ááááŤá áĽá á Kubernetes ááľáĽ áá°áá áŞáŤáá˝á ááá á á á¨áá¨áą áááŽá˝á áá°áŁáá˘
Kubernetes á ááłá¨ áá¨áĽ ááá˛áá˝
ᨠKubernetes á ááłá¨ áá¨áĽ ááᲠââáá´ á á ááłá¨ áá¨áĄ ááĽááĽá (á OSI áá´á ááľáĽ áŚáľá°áá) á ááľá¨áŠ áá á¨á°áá¨ááľá á¨áá°áá áŞáŤáá˝ ááľá°ááĽá áĽáá˛áŤáľá°áłáľáŠ ááá áľáááłáᢠá¨á ááłá¨ áá¨áĽ ááá˛áá˝ áĽáá° OSI Layer 7 ááĽáĽá áĽá áľááľá ááá¨áľ áŤá á ááłááľ á¨áááá áá¨ááá áŁá áŞáŤáľ á¨áá¸áá ááá áá áĽáŠ áááť á¨áá áá°á¨áłá á¨á ááłá¨ áá¨áĽ á°á áááľ á˝áá áá°áŁáá˘
á¨á ááłá¨ áá¨áĽ ááá˛áá˝ á ááľ ááŤá¨á áááááśá˝á áááŁá áŤáá˘
á áŠá áááľáľ ááľáĽ áŤá á¨áĽáŤ áŤááá˝ á á ááľ áá á°áááá°á á ááľ ááá á¨á፠á áá áŽáá´áááŽá˝á áŤáá á ááłáá˝ áá áá°áŤáŤáᢠáŠá áááľáľ ááĽáŤááłááą ááľ á¨áá ááľ á¨ááá IP á áľáŤáť áááľáŁáᢠá¨áŠá áááľáľ á ááłá¨ áá¨áĽ ááá˛áá˝ á á°áá ááľáĽ áŤá á¨á°á áááľ áĄáľáá˝ á¨á¨áášáá áá˝á á ááŁááá˝á ááááŁá á á áá ááá áľ ááááľ áááľ áĄáľáá˝ á¨ááłá¨áť áááśá˝á áŤááááá˘
á¨á ááłá¨ áá¨áĽ ááá˛áá˝á áááá˝
áá áĽáá°ááá˝ á¨áŠá áááľáľ áááŽá˝áŁ á¨á ááłá¨ áá¨áĽ ááá˛áá˝ á 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
(ááľáłááť. áľááááá
á
á˝á áłá áá˝ áĽá᳠ᣠáá áĽáá° ááá á°á¨áłá á°ááłáłá á
á˝á áłá áá˝ áĽááłáὠᣠá¨á°áá ᨠá¨áŠá áááľáľ ááłáŞáŤáá˝á á áá áá á áá°áá ᣠáá ᨠTufin Orca ááŁáŞáŤá á áá áá ᣠá ááá ááŁáĽá á°áŤá˛ áŠáŁá፠á¨á°ááᣠáĽá á áĽáá áá¨á¨áť áá á¨á°á áá°áá˘)
á¨áŤáľáá á¨á ááłá¨ áá¨áĽ ááᲠââáááá°á ᨠYAML áá°á¨áłá áĽáááľ áŤáľááááᢠáá ááá á ááá˘áŤá áá á¨á°áá°á¨á° áá (á ááá°áľ á¨á°ááḠáĽáá á áľáŽá˝ á áá°áá)ᢠá¨ááŁá á¤ááááľ á¨áą á áá ááá á¨á áᥠáἠá áŤá ááᢠá¨áááአá á˛áľ á áŤá á á°á¨á ááááŤáᣠááá ááá˝ á áŤááľ á á áš áá¸áᢠááá-áĽá´áľ.
á YAML ááľáĽ áŤááá ááᲠá¨áááš á áá áá áá
kubectl create -f policy.yaml
á¨á ááłá¨ áá¨áĽ ááᲠââáááá
á¨áŠá áááľáľ á ááłá¨ áá¨áĽ ááᲠââáááá á áŤáľ á áŤááľá áŤáŤáľáłááĄ-
-
podSelector
á áá ááᲠ(ááááá˝) á¨á°ááąáľá ááľáá˝ ááááťá - áŤáľáááá; -
policyTypes
á áá ááľáĽ áá ááááľ á¨ááᲠááááśá˝ áĽáá°ááŤá°áą áá áááᥠáááŁáľ áĽá/ááá áááŁáľ - á ááŤá ááᣠáá á ááá ááłáŽá˝ áá á ááá áĽáá˛ááá˝ áĽáááŤááᢠ-
ingress
: á¨áááá°á ááááťá áᢠáľáŤáá áá° ááá ááśá˝ - á ááŤá; -
egress
: á¨áááá°á ááááťá á¨á᪠á¨áłáá ááľáá˝ á¨ááᣠáľáŤáá á ááŤá ááá˘
á¨áŠá áááľáľ áŁá˘áŤ á¨á°á á°á¨á ááłá (áĽá á°ááťáá role
áá app
), á áŤáąá á áŤááľ áĽáá´áľ áĽá
á áá áĽáá°ááá áŤáłáŤááĄ-
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: test-network-policy
namespace: default
spec:
podSelector: # <<<
matchLabels:
app: db
policyTypes: # <<<
- Ingress
- Egress
ingress: # <<<
- from:
- ipBlock:
cidr: 172.17.0.0/16
except:
- 172.17.1.0/24
- namespaceSelector:
matchLabels:
project: myproject
- podSelector:
matchLabels:
role: frontend
ports:
- protocol: TCP
port: 6379
egress: # <<<
- to:
- ipBlock:
cidr: 10.0.0.0/24
ports:
- protocol: TCP
port: 5978
áááá á áŤáľ á áŤááľ ááŤá°áľ á áľááá áĽááłááá áἠáá á. áĽáť áá á¨ááááá podSelector
, á¨á°ááŠáľ áááŞáŤáá˝ áĽáá°ááááľ áĽá
á áá ááá áá˝áá.
áĽáá°á policyTypes
ᣠááá˛á áĽáá°áá¨á°áá áá°á¨áááá˘
- á¨ááá˘áŤáá áá áááá°á á ááŁáŞááľ ááááłá. áááŞáŤá áá áá á ááá áŤááłá¨áŁ áľáááą ááá áľáŤáá á¨á°á¨áá¨á áá áĽá áŤáľáŁáá˘
- á áááŁáľ áá áŤáá áŁá ᪠á¨ááá°áá á á°ááá á¨áááŞáŤ áááŞáŤ ááá ááá á áááá áá.
áľá
á°áśá˝á áááľáááľ, áĽáááŤáá áá áá ááá
ááá policyTypes
.
á¨áá áŁáá á áááᎠáá°á¨áľ, áá¤áśá˝á á á°ááá¨á° ingress
áĽá / ááá egress
á°áľáˇáᣠáááŞáŤá áááá áľáŤáá áá¨áááá (á¨áá
á áłá˝ áŤááá "á¨áĽá¨á á
á" áááá¨áą)á˘
ááŁáŞ ááᲠ- áááľ
ááá ááá˛áá˝ áŤáá°áááš áŠá áááľáľ áááá áľáŤáá á ááŁáŞááľ ááá áłáᢠááá ááľáá˝ á ááááľ áĽááľ á ááľ áá¨á ááááἠáá˝áá. á¨á°á áááľ áĽááł á ááťá áá á°ááŤá áááľá áá˝ááᣠááá áá áŠá áááľáľ á ááááŞáŤ á¨á°áá á¨á á áááŹá˝áá˝á áĽááľá ááľ áĽáá˛á°áŠ áááľá¨á á áááľ á ááá˘áá˝ áĽáá°á°áá ᨠáŤáľáłááąá˘ á¨á ááłá¨ áá¨áĽ áááŞáŤáá˝ á áá áá áłááááá˘
á¨áľá áŚáłáá˝
á¨áľá áŚáłáá˝ á¨áŠá áááľáľ á¨áľáĽáĽá áá´ áá¸áᢠá ááŁáŞááľ á ááá°áśá˝ ááŤá¨á áááááľ áĽáá˛áá á˛áá áą á ááááŽá á á áŤáŁá˘áá˝á áĽááľ á áĽááľ áááá á á¨á°áá°á áá¸áá˘
áá áĽáá° á áĽááááš á¨áŠá áááľáľ á áŤááľáŁ á¨á ááłá¨ áá¨áĽ ááá˛áá˝ á á ááľ á¨á°áá°á á¨áľá áŚáł ááľáĽ áááŤáᢠá áĽáá ááľáĽ metadata
áááŞáŤá á¨á¨áľáá áŚáł áĽáá°áá áááá˝ áá˝áááĄ-
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: test-network-policy
namespace: my-namespace # <<<
spec:
...
á¨áľá áŚáłá á ááłáłáłá ááľáĽ á ááá
áŤáá°ááá¸áŁ áľáááą á kubectl (ááŁáŞ) á¨á°ááá¸áá á¨áľá áŚáł áá áááᢠnamespace=default
):
kubectl apply -n my-namespace -f namespace.yaml
á áłáľáŁáá á¨áľá áŚáłá á ááá áááášáĽá á¨áľá áŚáłáá˝á á á ááľ áá á¨ááŤááŁáĽá ááᲠáŤááťá á áľá°ááá˘
ááá ááĽá¨ ááá podSelector
á áááŞáŤá ááľáĽ ááá˛á áŤáá áľ á¨áľá áŚáł (á¨áá á¨áľá áŚáł á¨ááľáá˝ ááłá¨áť á¨ááá) ááśá˝á ááááŁáá˘
á á°ááłáłá, podSelectors á ááá˘áŤ áĽá á áááŁáľ áĽááŽá˝ ááľáĽ ááľášá á¨áŤáłá¸á á¨áľá áŚáł áĽáť ááá¨áĽ áá˝ááᣠá áĽááἠáŤááááąáľ á áľá°áá namespaceSelector
(áá
"á áľá áŚáłáá˝ áĽá á ááłáá˝ á áŁáŤ" á ááá ááá ááľáĽ ááĽáŤáŤá).
á¨ááᲠáľá á á°áŁáĽ á°ááŚá˝
á¨áááŞáŤ áľáá˝ á á°ááłáłáŠ á¨áľá áŚáł ááľáĽ áአáá¸áᢠá á ááľ áŚáł áá á°ááłáłá áľá áŤáá¸á áááľ ááá˛áá˝ ááአá áá˝ááᣠáá á á°ááŤáŠ áŚáłáá˝ áá á°ááłáłá áľá áŤáá¸á ááá˛áá˝ ááአáá˝ááᢠá°ááłáłáŠá áááŞáŤ á á ááŤáł áŚáłáá˝ áá áĽáá°áá áá°áá á á˛ááá áá á áá ááá˘
á á°áá á¨áľáŤáá áá´áá˝ á ááąá ááľááááᢠá¨áľá áŚáłá áľá á¨áłáááá¸á ááľáá˝ áá ááŤáŤáá áŤáŤáľáłáᢠáááłá:
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: default.postgres # <<<
namespace: default
spec:
podSelector:
matchLabels:
app: postgres
ingress:
- from:
- podSelector:
matchLabels:
app: admin
policyTypes:
- Ingress
áááŤáá˝
áĽá áááŤáá˝ áĽáá° ááľ áĽá á¨áľá áŚáłáá˝ áŤá á¨áŠá áááľáľ áááŽá˝ áá ááŤáŤá áá˝ááᢠáááŤáá˝ (áááŤáá˝ áááŤáá˝) á á°áá ááľáĽ áŤá áááŤáá˝ áá áĽáŠá áá¸áᢠá¨áŠá áááľáľ á ááłá¨ áá¨áĽ ááá˛áá˝ áááá¨áĽ áááŤáá˝á áá ááá áĽáááĽáá˝á¨ááŤááááąá áľáĄ-
podSelector:
matchLabels:
role: db
⌠ááá á¨áľá áŚáłáá˝á¨ááŤááááąá áľ. áá ááłá á á°ááá áááŤáá˝ á áľá áŚáłáá˝ ááľáĽ áŤááľá áááá ááśá˝ ááááŁááĄ
namespaceSelector:
matchLabels:
project: myproject
á ááľ ááłá°á˘áŤ: á˛á áá namespaceSelector
á¨áá¨á§á¸á á¨áľá áŚáłáá˝ áľáááááá áá፠ááŤáá¸áá áŤá¨áááĄ. áĽáá° á áĽáŽ á¨á°á°áŠ á¨áľá áŚáłáá˝ áĽááłá ááá default
и kube-system
ᣠá ááŁáŞ áááŤáá˝á á ááŤááá˘
áĽáá°áá áŁá áŚáł áá áá፠áá¨á áá˝áááĄ-
kubectl label namespace default namespace=default
á áá
áááł, á ááá ááľáĽ áŤáá á¨áľá áŚáł metadata
áááŤáá áłááá á¨áŚáłáá áľáááá áľá ááĽááľ á áá áľáĄ-
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: test-network-policy
namespace: default # <<<
spec:
...
ááá áĽá ááľá¨áť
á¨áá¨ááá ááá˛áá˝ á¨ááá áĽá ááľá¨áť á°ááŚá˝á áŤáá áá¸áᢠá¨áŠá áááľáľ á ááłá¨ áá¨áĽ ááá˛áá˝ á á ááľ ááá áááááᣠá¨áá°áá áŠáŁá¸á á¨ááľ áľáĽáľáĽ áĽá á¨á፠á¨ááá˘áŤ áĽá/ááá áá፠áľáŤáá á
áá˝á áŤááááᢠá áĽá ááłáᣠá¨áááŞáŤá á˘áá á áľá áŚáł ááľáĽ áŤá ááá ááśá˝ áááá default
á¨ááá áá፠áá app
áĽá áľááá db
:
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: test-network-policy
namespace: default
spec:
podSelector:
matchLabels:
app: db # <<<
policyTypes:
- Ingress
- Egress
ingress:
- from:
- ipBlock:
cidr: 172.17.0.0/16
except:
- 172.17.1.0/24
- namespaceSelector:
matchLabels:
project: myproject
- podSelector:
matchLabels:
role: frontend
ports:
- protocol: TCP
port: 6379
egress:
- to:
- ipBlock:
cidr: 10.0.0.0/24
ports:
- protocol: TCP
port: 5978
áááľ ááá ingress
á áá
áááŞáŤ ááľáĽ áááá ááľáá˝ áᢠáľáŤáá áá¨ááłá. á áá á áááá˝ ááá˘áŤá ááአá˛áá ááááá á°ááłá ááľá¨áťá ááᢠá á°ááłáłá, á˘áá¨áľ ááľá¨áťá áá, áĽá á˘ááá á¨áĽáą ááá áá.
áá
á¨áááľ á¨áá¨ááá á
áá˝ áá áĽáŠá ááᥠIngress â Target; ááá â áááŁáľá˘
Egress áĽá 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
á¨á˛ á¤á á¤áľ á áááááľ ááłá¨áťá á ááááľ ááľá°áŤá¨á áá˝áááĄ-
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
á¨á˛ á¤á á¤áľ áĽáŤááá˝á áá° á°áá˘á ᨠKubernetes á áááááľ ááአ(áĽááá áá á áŚáł ááľáĽ áá°áŤá kube-system
).
áá á áŤááľ áá áá°áŤá á¨áá á á áá ááá°á áĽá á áľá°ááá áŤáááá¨á˛ á¤á á¤áľ áá ááá˝á á¨áĽá á áá áĽáá˛áአáľáááŤá°áá ááá˘
á áśáľáľ á°á¨áłáłá á°á¨ááá˝ ááťáťá áá˝áá.
1. á¨á˛á¤áá¤áľ áĽáŤááá˝á áĽáť áááľ ááľáĽ á áá¨á áááľá°á 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. á¨á˛á¤áá¤áľ áá ááá˝á á áľá áŚáł áĽáť áááľ 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. ááŤáááľ á°áá˝ á¨áá
á á áá á áááľ á¨á˛á¤áá¤áľ áĽáŤááá˝á áá ááľ á¨á°áá°á á¨á˛ á¤á á¤áľ á áááááľ ááá°áĽ áá˝ááᢠkube-system
. "á áľá áŚáł áĽá á ááľ á áŁáŤ" ááá áá
áá áĽáá´áľ ááłáŤáľ áĽáá°áá˝á áŤáłá¨ááłáá˘
ááá á ááŤá Რá¤á á¤áľ á áľá áŚáł á°á¨á áááłáľ ááᢠá áá á ááŁá ááĽáŤááłááą á áááááľ ááááľ á áŤáľáááááĄ-
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
á ááŤáł ááá˛áá˝á á ááŁáá
ááá˛áá˝ á áŚáľáľ á°á¨ááá˝ ááááŤáłá áá¸á. á¨áĽáŤááłááą ááľ áááśá˝ á¨áááááľ á áááŠáľ ááá ááá˛áá˝ áĽááááľ áá°á¨áľ áááĄ
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
ááááľáá á¨á°ááá°á ááá áĽáá° AND á°áĽá áá°á¨ááá?
á áľáłááľ á áľááł podSelector
á á°á¨á á áááááᢠá YAML áá
áááľ ááᢠpodSelector
áĽá á ááą ááá namespaceSelector
á°ááłáłáŠá á¨áááá á áŤá áááá¨áąá˘ áľááá
ᣠá¨ááá áĽá á´á áá áá°áŁáááá˘
á¨áá
á ááľ á°á¨á áá¨á 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
á ááŤáł áááŤáὠᨠAND áá ááŁááŤáá˘
á¨á ááŤáł á áŤááľ (á áľá°áááá˝áŁ ááľáááŽá˝áŁ áĄáľáá˝) áá á¨áá¨ááá á
áá˝ á ááááŽá á OR á áá áá ááŁááŤáᢠá¨ááŹáą ááá á¨á°ááá° á¨áá¨á°áá á
á ááá ááᢠHost_1
ááá Host_2
:
| Source | Destination | Service | Action |
| ----------------------------------------|
| Host_1 | Subnet_A | HTTPS | Allow |
| Host_2 | | | |
| ----------------------------------------|
á á°ááŤááᣠá áŠá áááľáľ ááľáĽ á¨á°ááŤáŠ áááŤáá˝ á ááľáĽ podSelector
ááá namespaceSelector
á¨á ááááŽá á áĽá áá ááŁááŤá áááłáᣠá¨áá¨á°áá á
á áááąá áááŤáá˝ áŤáá¸áá ááľ ááááŁáᢠrole=db
Đ version=v2
:
podSelector:
matchLabels:
role: db
version: v2
á°ááłáłá á áááᎠá ááá á áááľ ááááŤáá˝ áá á°ááŁáŤá ááááᥠá¨ááᲠá˘áá ááŤáŽá˝áŁ ááľ ááŤáŽá˝ áĽá á¨áľá áŚáł ááŤáŽá˝á˘
áááľ á ááłá¨ áá¨áŚá˝ áĽá á áá á áľáŤáťáá˝ (IPBlocks)
áá¨ááá ááľáááá ááá¨ááá VLANsáᣠIP á áľáŤáťáá˝á áĽá áááľ áá¨áŚá˝á áá áááá˘
á Kubernetes ááľáĽ á¨á áá á áľáŤáťáá˝ á áŤáľ á°á áá° ááľ ááá°áŁá áĽá áĽá áá áááᥠáá˝áá, áľááá áááŤáá˝ á ááľááá ááá˛áá˝ ááľáĽ ááľ áĽá á¨áľá áŚáłáá˝á áááá¨áĽ áŤááááá.
áááľ áá¨áŚá˝ (ipBlocks
) áᢠ(ááá˘áŤ) ááá á᪠(ááŞ) ááŤá (á°áá-á°áĄáĽ) áááááśá˝á á˛áŤáááĽáŠ áĽá
á áá ááááᢠáááłáᣠáá
áááŞáŤ áááá ááśá˝ á¨áľá áŚáł áá¨ááłáᢠdefault
á¨ááá Რá¤á á¤áľ á áááááľ ááłá¨áťáĄ-
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: egress-dns
namespace: default
spec:
podSelector: {}
policyTypes:
- Egress
egress:
- to:
- ipBlock:
cidr: 8.8.8.8/32
ports:
- protocol: UDP
port: 53
á áá
ááłá ááľáĽ áŤáá áŁáś ááľ ááŤá áááľ "á áľá áŚáł ááľáĽ áŤááľá áááá ááśá˝ áá¨áĽ" áááľ áá.
áá áááŞáŤ áá° 8.8.8.8 ááłá¨áť áĽáť ááá áłá; áá° áá á áá ááľá¨áľ á¨á°á¨áá¨á ááᢠáľááá ᣠá áá á¨áąáŁ á¨ááľáŁááá á¨áŠá áááľáľ Რá¤á á¤áľ á áááááľ ááłá¨áťá á áá°ááᢠá ááá ááááľ á¨ááá á ááá˝ áááášá˘
á áĽáááá áá ipBlocks
и podSelectors
á¨ááłááš ááľáŁá á áá á áľáŤáťáá˝ áĽá
á áá á¨áááá áľááá áĽááľ á ááľ á¨ááŁá¨áą áá¸á ipBlocks
. áá áá ááľáŁá á¨á áá ááśá˝á áĽááἠá¨áá á áľáŤáťáá˝ áá á¨ááľáľ áá áááááľ áĽáá˛ááá
áľáá
áłáá
ᢠá á°ááŁá ᣠá¨áľááá á¨á áá á áľáŤáť áá áá áĽááłááŚáľ á áłááá ᣠááá
á áá ááľáá˝á áááá¨áĽ áĽááąá áá áá á¨ááĽááľáá˘
áĽáá° á á¸áá ááłáᣠá¨áá¨á°áá áááŞáŤ áááá á áááá˝ áŤáŤáľáłá áĽá áľááá áááá ááá˝ ááľáá˝ ááłá¨áť ááá áłáá˘
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: egress-any
namespace: default
spec:
podSelector: {}
policyTypes:
- Egress
egress:
- to:
- ipBlock:
cidr: 0.0.0.0/0
á¨áá˛áśášá á¨ááľáĽ á áá á áľáŤáťáá˝ áłáá¨áá á¨ááŤá á áááá˝á áĽáť ááłá¨áť ááááľ áá˝ááᢠáááłáᣠá¨áĽááľá ááľ áłáĽááľ 10.16.0.0/14 á¨áááĄ-
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: egress-any
namespace: default
spec:
podSelector: {}
policyTypes:
- Egress
egress:
- to:
- ipBlock:
cidr: 0.0.0.0/0
except:
- 10.16.0.0/14
áá°áŚá˝ áĽá ááŽáśáŽáá˝
áĽááá áá ááľáá˝ á á ááľ áá°áĽ áá áŤáłááŁá. áá áááľ á ááá˛á ááľáĽ áŤááľá á¨áá°áĽ ááĽáŽá˝ á ááá áá°á áĽá áááá ááá áĽáá° ááŁáŞ áá°á áá˝ááᢠááá ááá˛áá˝á á á°áťá áá á ááłá˘ áááľá¨á ááá¨áŤáᣠáľááá á á ááłááľ áááłáá˝ á ááá áá°áŚá˝á áááá˝ áá˝áááĄ-
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: default.postgres
namespace: default
spec:
ingress:
- from:
- podSelector:
matchLabels:
app: indexer
- podSelector:
matchLabels:
app: admin
ports: # <<<
- port: 443 # <<<
protocol: TCP # <<<
- port: 80 # <<<
protocol: TCP # <<<
podSelector:
matchLabels:
app: postgres
policyTypes:
- Ingress
ááŤáŠ áááá áἠáá á ports
á áĽááłá ááľáĽ áŤááľá áááá ááĽá¨ áááŽá˝ áááá¨áłá to
ááá from
, á ááľáĄ á¨áŤáá. áá°ááŤáŠ á¨ááĽá áľáĽáľáŚá˝ á¨á°ááŤáŠ áá°áŚá˝á áááá¨áľ, á°á á ingress
ááá egress
áá° á ááŤáł áááľ áááá˝ to
ááá from
á áĽáŤááłááąá áá°áŚá˝á
á áťááĄ-
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: default.postgres
namespace: default
spec:
ingress:
- from:
- podSelector:
matchLabels:
app: indexer
ports: # <<<
- port: 443 # <<<
protocol: TCP # <<<
- from:
- podSelector:
matchLabels:
app: admin
ports: # <<<
- port: 80 # <<<
protocol: TCP # <<<
podSelector:
matchLabels:
app: postgres
policyTypes:
- Ingress
ááŁáŞ áá°áŚá˝ áá°áŤá
- á¨áá°áŚá˝á áľááá áá á áá áŤáľáአ(
ports
), áá á áááľ ááá ááŽáśáŽáá˝ áĽá ááá áá°áŚá˝; - á¨ááŽáśáŽáá ááş áŤáľáአ(
protocol
), áááľá TCP; - á¨áá°áĽ áľáááá áŤáľáአ(
port
), áá á áááľ ááá áá°áŚá˝ áááľ áá.
ááἠááááľáĄ á ááŁáŞ áĽá´áśá˝ áá á áľá°áááᣠá¨áááááľá á ááá áááášá˘
á áááááśá˝á áłááá á¨ááľ áá°áŚá˝á áá áá áĽáá°ááŤáľáááá áἠáá á (á áááĽáá á ááá˝ á áá áá á°á¨ááŞ)á˘
áááľ ááá á áááááśá˝ á¨á°áááš áááŞáŤáá˝?
á áĽáááá áá á áŠá áááľáľ ááľáĽ áŤá ááľáá˝ á á áááááľ á áŠá áĽááľ á ááľ ááááá - á áááááąá áá°áá°áá አááľáśá˝ á¨áá፠áááŁá áááľ áááᢠá¨á ááłá¨ áá¨áĽ ááá˛áá˝ á¨á áááááśá˝á á°á°áŤá˝ááľ áááŁá áŤá áĽáá ááŤáľáĄ áá˝ááᣠáá áĽáá°á á áá°ááᢠá¨áŠá áááľáľ á¨á ááłá¨ áá¨áĽ ááá˛áá˝ á¨á áááááśá˝ áá áłááá á¨ááľ áá°áŚá˝ áá áá°áŤáá˘
áááłá á ááľ á áááááľ á áááľ 80 áá á¨ááŤáłáἠá¨áá ááá áá áľáŤááá áá° 8080 ááľáśá˝ áŤáááᨠá ááľááá ááᲠááľáĽ 8080 á áááá˝ á ááĽááľá˘
áĽáá˛á ááááą áá´ áááľ-ááἠáĽáá°áá ááłáá á áá áľ-á¨á áááááą ááľáŁá ááŁáŞáŤ (ááľ á¨ááŤáłáᥠáá°áŚá˝) á¨á°áá¨á¨ á¨á ááłá¨ áá¨áĽ ááá˛áá˝ áááá á ááŁá¸áá˘
á¨á áááááľ áá˝á á áá áá á á˛áľ á¨áľá-á áá á ááŤá¨áĽ (áááłáᣠáľá á˘áľá˛áŽ á¨áłá˝ áááá¨áą - approx. transl.) áá áá á˝áá ááááá áŤáľá˝áááłá.
áááąáá Ingress áĽá Egress ááťá á áľááá áá?
á áá áááą á á áááŁááľ A á¨áᾠᢠáá ááááááľ á¨á᪠áááááľ áĽáá˛ááĽá ááááľ á ááŚáľ (ááá á á¨á˘áá¨áľ ááá˛á áááá áŤáľáááááłá) áĽá ááľ B áᢠáááááľá ááá á ááťá á áá áľá˘ (ááá , á áá áá á¨áľ, á¨ááá˘áŤ ááᲠáŤáľáááááłá).
ááá ááᣠá á°ááŁáᣠáááááśá˝á á á ááľ ááá á áááąá á á áŁáŤáá˝ áááááľ á ááŁáŞ ááᲠáá áá°ááá áá˝ááá˘
á ááłááľ ááľ á¨áá -ááአá á ááľ ááá á áĽá ááá¨áŁá áááłá- ááá˛á¨áá˝, á áĽáą áá á¨á°áŁááľ áĽááłáá˝ á¨ááá°ááľ á áĽááą ááŠááľ áá. á áá áááł á¨ááľ áá áŤááá áááááľ á ááá ááááľ áŤáľáááááłáaddressee. ááľ á ááá¸áá ááᲠáŤáá°áá¨á ᣠá¨á᪠(áááŁáľ) áľáŤáá á ááŁáŞááľ ááááłáá˘
á á°ááłáłáá á¨ááłá áᣠáááłá áľáŤáť á°ááŁáá á ááľ ááá á¨á፠á áá á¨á°áá¨á áĽáľááľ- ááá˛áá˝ á á ááŤáááłá¸á ááá°ááᢠá áá á ááŁá á¨ááአááľ áľáŤáá áĽáá˛áá á á ááá ááááľ á ááĽááľá˘ ááľ á ááááá ááᲠáŤáá°áá¨á ᣠáá° áĽáą á¨áááĄáľ ááá áľáŤáá á ááŁáŞááľ ááááłáá˘
á¨áłá˝ áŤááá "ááááľáłá ááá ááá á¨áá˝" áááá¨áąá˘
ááááŚá˝
á¨áŠá áááľáľ ááľááá ááá˛áá˝ áľáŤáá áĽáá´áľ áĽáá°ááᥠá áŤáááᢠáá ááᲠáĽáá°á°á á áá áĽá¨á°áŤ áááá áááá°á á áľá¸á᪠áŤá°áááá áĽá á¨á°á áááľ áľáá°á á áŁá á áľá¸á᪠áŤá°áááá.
á¨áľáŤáá ááĽáĽá áá° ááŤá á áááááśá˝
ᨠKubernetes á ááłá¨ áá¨áĽ ááá˛áá˝ á áááŁáľ áááá˝ ááľáĽ áá áĽááľ áŤáá á¨á፠áľá (Რá¤á á¤áľ) áĽáá˛áááš á ááá áąáᢠáá áĽáááł áá á¨á áá á áľáŤáť áá°ááá¸á ááŤá ááłá¨áťáá˝ (áĽáá° aws.com) áľáŤááá áááá°áĽ á ááá¨áá áľ áá áá° á¨áá°á á˝áá áŤááŤáá˘
á¨ááᲠáá¨áááŤ
áá¨ááá áŤáľá áá áááłá ááá á¨á°áłáłá° ááá˛á áááá á á áťáá¨á áááᢠáŠá áááľáľ á ááłááľ áá¨áááŤáá˝á áŤá°áááᢠá¨ááľááá ááá˛á á kubectl á˛áŤáááĽáŠ áŠá áááľáľ ááá˛á áľááá áĽááłááá ááŤáá áĽá ááá áá ááááá áá˝ááᢠá ááá˝ áááłáá˝, Kubernetes ááá˛áá ááľáś á¨áá°ááľá ááááŽá˝ áááá. á áľáĽáá ááłáŤá¸á áľá˝ááá áĄ-
kubernetes get networkpolicy <policy-name> -o yaml
áŤáľáłááą á¨áŠá áááľáľ áá¨áá፠áľáááľ á¨áááłáłáľ áĽá á ááłááľ á áááľ áľá á°áśá˝á ááŤááἠáá˝ááá˘
á áááá
áŠá áááľáľ á¨ááľááá ááá˛áá˝á á áŤáą á áŤáľáá˝áá ááá áá á¨ááĽáĽá á¸ááá áŽáá´ááá ááľááá á˘áá°áááľ (á˛á¤áá á) á ááŁáá áľá áľáááľ áá á¨ááŤáľááἠá¨á¤áá á ááá˘áŤ á á áĽáť ááᢠá°áá˘áá CNI áłáááľáĄ á áŠá áááľáľ áááľá°á áá ááá˛áá˝á áááá á á áá¨ááá á áľá°áłá°á á áááá áá ááá˛áá˝á á¨áááááľ áá á°ááłáłá ááᢠáĽáŠ CNI áĽááłáááľ áá¨ááἠááá á Kubernetes ááľá¨áŽá˝ áá á á°áá ááľáĽ ááľá°áááąá áá¨ááἠá¨áĽááľá áá፠ááᢠ(áá á
áŤá˘áá˝ áááá áááá¨áą
áŤá á°áá˘á á¨áłáľ CNI á¨á ááłá¨ áá¨áĽ ááᲠââáŤááá Kubernetes áĽáá°ááŤáľá áá á áἠáá áá˘
á áá áŤáá áááľ á áá á ááŁ?
áŤáá áá ááá á¨áŠá áááľáľ á˛á¤áá áá¤áá˝ áááłá áá¸á (áááłá áŤáᎠá¨ááááľ áŽááľáŤáá°á áá ááá)ᢠáá ááľ áĽáá°áá áááá áłáŤáľáááá á ááá¨á á¨TCP áááááľ áá ááážá˝á áĽáá˛áá á áŤáľá˝áááᢠáááᣠááááľááľ ááľáľá á¨áá°áĽ á¨áŠá áááľáľ ááľáááľ á ááá áá˘
á¨áá á¨á°á áááľ ááᲠá áľá°áłá°á
á Kubernetes ááľáĽ á¨á°á áááľ ááᲠááľáá¸á፠á ááĽááá áááťáťá á ááłááľ ááááśá˝ áĽáá á áá˘
- á¨á°ááŞáľ áá˝ á ááá´áá¸á áĽááľ á á áááááľ á˝áá áá áááá á´áááľáŞ áĽá á¨áľáŤáá ááĽáĽáá ááá
á¨áĽ á¨áá ááŞááá˝á áá áááᢠáĽáá° ááłá, á ááľ á°á ááá°áľ áá˝áá
Istio . - á ááłááľ á¨CNI á á áŤá˘áá˝ á¨áŠá áááľáľ á ááłá¨ áá¨áĽ ááá˛áá˝ á áá ááááľ ááłáŞáŤá¸áá á áŤááááá˘
-
áąáá áŚá፠ᨠKubernetes á ááłá¨ áá¨áĽ ááá˛áá˝á ááá ááľ áĽá á ááśáá˛áá áá°áŁáá˘
ᨠTufin Orca áĽá á á¨áŠá áááľáľ á ááłá¨ áá¨áĽ ááá˛áá˝á áŤáľá°áłáľáŤá (áĽá á¨áá áŤááľ á¨á á˝á áłá áá˝ áĽááłáá˝ ááá áá)á˘
á°á¨á᪠áá¨á
-
á á á ááľ á áá áŁááŤá á GKE á¨á°ááá á¨á ááłá¨ áá¨áĽ ááᲠââááłááá˝ ; -
á¨áŚáá´ááá á¨áŠá áááľáľ áľá ᨠáá˝ á¨á°áá á°ááľ ; -
Kubernetes á ááłá¨ áá¨áĽ áá´á áááŞáŤ ; -
á¨á ááłá¨ áá¨áĽ áááŞáŤáá˝á áááá°á˝ áľááŞááľ .
áá°áá°ááŤ
á¨áŠá áááľáľ á ááłá¨ áá¨áĽ ááá˛áá˝ ááááá˝á ááá¨ááá áĽáŠ á¨ááłáŞáŤáá˝ áľáĽáľáĽ áá°áŁááŁááá áá ááłáá á¨áá˝á á áá°áá áĽá áĽá áľáá áá´áá˝ á áá¸áᢠá áá ááľáĽáľáĽááľ ááááŤáľ á¨áĽá ááŁá ááááá˝ ááá˛áá˝ á áľá¸á᪠áá¸á áĽáŹ á ááááᢠááá á˝áá ááá á¨áá˝á áááľááá˝ á¨ááᲠáľááááá˝á á áŤáľ-á°á ááľá¨á ááá ááá˝ á¨áá¨áá፠ááłáŞáŤáá˝á áá áá áá¸áá˘
áá áááŞáŤ á ááłááľ áĽáŤááá˝á áááĽáŤáľ áĽá ááŤááĽá á¨áá˝á á˝ááŽá˝á ááááłáľ áĽáá°áá¨áł á°áľá á á°ááááá˘
PS á¨á°ááá
á áĽááá˝á áá áŤááĽáĄáĄ-
- "á¨á˘áľá˛áŽ áá áá° áááᎠá áááááśá˝ á°áááľ"áĄ-
ááá 1 (á¨áá áá áŁá áŞáŤáľ ááá˘áŤ) ,ááá 2 (ááááá ᣠá¨áľáŤáá ááĽáĽá) ,ááá 3 (á°á áááľ) ; - "á áŠá áááľáľ ááľáĽ áá ááłá¨áá¨áĽ á¨á°áĽáŤáŤ áááŞáŤ"áĄ-
ááá 1 áĽá 2 (á¨ááľááá áá´á ᣠá°á°áŤá˘ á ááłá¨ áá¨áŚá˝) ,ááá 3 (á áááááľ áĽá á¨áľáŤáá áá°áľ) ; - ÂŤ
áśá¨á áĽá áŠá áááľáľ á á°á áááľ-á áŤá á áŤáŁá˘áá˝ "; - ÂŤ
9 Kubernetes á°á áááľ ááἠáááśá˝ "; - ÂŤ
á áŠá áááľáľ ááľáĽ áááĽáá (á áá°áá) 11 ááááśá˝ Âť.
ááá: hab.com