แฒจแแแแจแแแ. แแแ แแแแ: แกแขแแขแแแก แแแขแแ แก, แ แแฃแแแ แฐแแ แแกแแแก, แแฅแแก 20 แฌแแแแ แแแขแ แแแแแชแแแแแแ แแ แแแ แแแฃแแ แฃแแ แฃแแแแแงแแคแแก แจแแแฃแจแแแแแแจแ แแ แแฆแแก แแ แแก แขแฃแคแแแแก CTO แแ แแแแแแแแคแฃแซแแแแแแ, แแแแแแแแ, แ แแแแแแช แฅแแแแก แฃแกแแคแ แแฎแแแแแก แแแแแขแแแแก แแแ แแแแก แแแแแฌแงแแแขแแแแแแแก. แแแฃแฎแแแแแแ แแแแกแ, แ แแ แแแ แแแแแฎแแแแแก Kubernetes แฅแกแแแแก แแแแแขแแแแก, แ แแแแ แช แกแแแแแแ แแซแแแแ แแแกแขแ แฃแแแแขแก แแแแกแขแแ แจแ แฅแกแแแแก แกแแแแแแขแแชแแแกแแแแก, แแก แแกแแแ แแแแแก, แ แแ แแแแ แแแแแงแแแแแ แแ แช แแกแ แแแแแแแ แแ แแฅแขแแแแจแ. แแก แแแกแแแ (แกแแแแแแ แแแชแฃแแแแแแ) แแแแแแ แแกแแฎแแแก แแแแฃแแฏแแแแกแแก แกแแแชแแแแแกแขแแแแก แชแแแแแแ แแแ แแ แกแแแแแฎแแก แจแแกแแฎแแ แแ แแแแฎแแแ แแก แแแ แจแแฅแแแแ แกแแญแแ แ แแแแคแแแฃแ แแชแแแแ.
แแฆแแก แแแแ แ แแแแแแแแ แกแฃแ แฃแคแ แ แฎแจแแ แแ แแ แฉแแแก Kubernetes-แก แแแแ แแแแแแแชแแแแแก แแแกแแจแแแแแ. แแ แแ แแแ แแแฃแแ แฃแแ แฃแแแแแงแแคแแก แแแแแ แ แแแขแแ แแกแ แแแแแแแ แแแฆแแแแ, แ แแ แแแแแแ แแ แแฃแแแ แแแขแกแก โแแฎแแ แแแแ แแชแแฃแ แกแแกแขแแแแก แแแแแชแแแแ แชแแแขแ แแกแแแแกโ แฃแฌแแแแแก. แแแแแแแแแแแแ, Kubernetes (แแ k8s) แแฌแงแแแก แแฆแฅแแแก, แ แแแแ แช แแแแแแกแแก แแ แแขแแแฃแ แแแฌแแแแ, แ แแแแแแช แแแแแฎแแแก แกแแฅแกแฃแแแฃแ แแแแแแก แแ แแชแแกแแแแก แแ แแแแแแแแแก, แแแ แจแแ แแก แฅแกแแแแก แฃแกแแคแ แแฎแแแแแก.
แฃแกแแคแ แแฎแแแแแก แแ แแคแแกแแแแแแแแแกแแแแก, แ แแแแแแแช แแแแแแ แแแแฃแแแแ แแ แแแ Kubernetes-แแแ แแฃแจแแแแแ, แ แแแแฃแ แ แแฆแแแฉแแแ แจแแแซแแแแ แแงแแก แแแแขแคแแ แแแก แแแแฃแแแกแฎแแแแ แแแแแขแแแ: แงแแแแแคแ แแก แแแจแแแแ.
แแก แกแแฎแแแแซแฆแแแแแแ แแแแแฎแแแ แแแแ แแแแแแ แฅแกแแแแก แแแแแขแแแแก แจแแแ แกแขแ แฃแฅแขแฃแ แ; แแแแแแ, แแฃ แ แแแแ แแแแกแฎแแแแแแแแแ แแกแแแ แฉแแแฃแแแแ แแแ แคแแแแ แแแแแแแก แฌแแกแแแแกแแแ. แแก แแกแแแ แแแคแแ แแแก แแแแแแ แ แฎแแ แแแแก แแ แฃแแ แฃแแแแแงแแคแก แ แแแแแแแแแชแแแแก Kubernetes-แแ แแแแแแแชแแแแแก แฃแกแแคแ แแฎแแแแแจแ แแแกแแฎแแแ แแแแแ.
Kubernetes แฅแกแแแแก แแแแแขแแแ
Kubernetes แฅแกแแแแก แแแแแขแแแแก แแแฅแแแแแแ แกแแจแฃแแแแแแก แแแซแแแแ แแแ แแแ แแแแขแคแแ แแแแ แแแแแแแแแฃแแ แแแแแแแชแแแแแก แฃแ แแแแ แแฅแแแแแแ แฅแกแแแแก แคแแแแแ (แแแกแแแ OSI แแแแแแจแ). แฅแกแแแแก แแแแแขแแแแก แแแแแ แแแแแแแแ แแแ แคแแแแ แแแแแแแก แแแแแแ แแ แแแฌแแแแแ แแแฎแแกแแแแแแแแ, แ แแแแ แแชแแ OSI Layer 7 แแฆแกแ แฃแแแแ แแ แกแแคแ แแฎแแก แแแแชแแแแ, แแแแ แแ แแกแแแ แฃแแ แฃแแแแแงแแคแแ แฅแกแแแแก แฃแกแแคแ แแฎแแแแแก แกแแแแแแกแ แแแแแก, แ แแช แแแ แแ แกแแฌแงแแกแ แฌแแ แขแแแแ.
แฅแกแแแแก แแแแแขแแแ แแแแแขแ แแแแแก แแแแฃแแแแแชแแแแก แแแแแแก แจแแ แแก
Kubernetes-แจแ แแแขแแแ แแแแแ แแแฌแแแแแแ แแแแแแแ, แ แแแแแแแช แจแแแแแแ แแ แแ แแ แแแขแ แแแแขแแแแแ แแกแแแ, แ แแแแแแแช แแแแแแแแแฃแแแ แแ แแแ. 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
(แฒจแแแแจแแแ. แแแ แแแแ: แแก แกแแ แแแจแแขแ, แแกแแแ แ แแแแ แช แงแแแแ แจแแแแแแแ แแกแแแแกแ, แจแแแฅแแแ แแ แ แแจแแแแแฃแ แ Kubernetes แแแกแขแ แฃแแแแขแแแแก แแแแแงแแแแแแ, แแ แแแแ Tufin Orca แแแกแขแ แฃแแแแขแแก แแแแแงแแแแแแ, แ แแแแแแช แจแแแฅแแแ แแ แแแแแแแฃแ แ แกแขแแขแแแก แแแขแแ แแก แแแแแแแแแก แแแแ แแ แ แแแแแแช แแแฎแกแแแแแแ แแแกแแแแก แแแแแก.)
แกแแแฃแแแ แ แฅแกแแแแก แแแแแขแแแแก แแแกแแแแแแแ, แแแแญแแ แแแแแ YAML-แแก แกแแแแแแกแ แชแแแแ. แแก แแแ แแแคแฃแซแแแแฃแแแ แจแแฌแแแแแ (แแแแแแแแฃแแแ แแแขแแ แแแแแ แแ แแ แ แฉแแแแ แแแแแ). แฉแแฆแ แแแแแแฃแแ แแแแแแแขแ แแแแแฃแแแแแแ แแแก แแแแแ แแ แกแแแฃแ แฃแแฎแแแแก แแแแแแแขแก. แกแแแก แแฎแแแ แแแแแแแขแ แแฌแงแแแ แแแคแแกแแ, แงแแแแ แกแฎแแ แแแแแแแขแก แแฅแแก แคแแ แแ แแแกแแฆแแแ-แแแแจแแแแแแแ.
YAML-แจแ แแแแแขแแแแก แแฆแฌแแ แแก แจแแแแแ แแแแแแงแแแแ
kubectl create -f policy.yaml
แฅแกแแแแก แแแแแขแแแแก แกแแแชแแคแแแแชแแ
Kubernetes แฅแกแแแแก แแแแแขแแแแก แกแแแชแแคแแแแชแแ แแแแชแแแก แแแฎ แแแแแแแขแก:
-
podSelector
: แแแแกแแแฆแแ แแแก แแแแแแก, แ แแแแแแแช แแแแแแแแก แแฎแแแแก แแ แแแแแขแแแแแ (แแแแแแแ) - แกแแญแแ แแ; -
policyTypes
: แแแฃแแแแแแก, แแฃ แ แ แขแแแแก แแแแแขแแแ แจแแแแก แแแกแจแ: แจแแกแแแ แแ/แแ แแแกแแแ - แแ แฉแแแแแแ, แแแแ แแ แแแ แฉแแแ แงแแแแ แจแแแแฎแแแแแจแ แชแแแกแแฎแแ แแแฃแแแแแ แแแ; -
ingress
: แแแแกแแแฆแแ แแแก แแแจแแแแฃแแก แจแแแแแแแแแ แขแ แแคแแแ แกแแแแแแ แแแแแแจแ แแ แฉแแแแแแ; -
egress
: แแแแกแแแฆแแ แแแก แแแจแแแแฃแแก แแแแแแแแ แกแแแแแแ แแแแแแแแแ แขแ แแคแแแ แแ แฉแแแแแแ.
แแแแแแแแ แแฆแแแฃแแแ Kubernetes แแแแกแแแขแแแแ (แแ แจแแแชแแแแ role
on 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 แแแแแแจแ แแแแแแแก แแแฅแแแแแแ. แแกแแแ แจแแฅแแแแแแ แแแแแแฃแ แ แแแ แแแแก แแ แแแแแแแแกแแแ แแแแแแ แแแแกแแแแก, แฎแแแ แกแแแ แชแแแแก โโแจแแ แแก แแแแฃแแแแแชแแ แแแจแแแแฃแแแ แแแแฃแแแกแฎแแแแแ.
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-แแก แแแแแฅแขแแแก, แ แแแแ แแชแแ pods แแ namespaces. แแขแแแแขแแแ (แแขแแแแขแแแ - แขแแแแแ) แแ แแก แฆแ แฃแแแแจแ แแ แกแแแฃแแ แขแแแแแแก แแฅแแแแแแแแขแ. 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:
...
แฌแงแแ แ แแ แแแแแจแแฃแแแแ
Firewall-แแก แแแแแขแแแ แจแแแแแแ แฌแแกแแแแกแแแ แฌแงแแ แแแแแแ แแ แแแแแจแแฃแแแแแ. 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
แแ แแแแแขแแแแจแ, แฎแกแแแก แจแแแแแแแแ แขแ แแคแแแก แกแแแแแแ แแแแแแจแ. แกแฎแแ แกแแขแงแแแแแ แ แแ แแแฅแแแ, แจแแกแแแ แแ แแก แฌแงแแ แ แแ แกแแแแแแ แแ แแก แจแแกแแแแแแกแ แแแแแจแแฃแแแแ. แแแแแแแแฃแ แแ, แแแแแกแแแ แแ แแก แแแแแจแแฃแแแแ แแ แกแแแแแแ แแ แแก แแแกแ แฌแงแแ แ.
แแก แฃแแ แแก แแ แ firewall แฌแแกแแก: Ingress โ Target; แแแแแแ โ แแแแแกแแแ.
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
แแ แฉแแแก แกแแฎแแแแ แกแแแ แชแแจแ แแ แกแแแฃแ แงแแแแ แแแแก.
แแแ แแแแ แแแขแฉแ แแ แฌแแกแแแแก แแแแแแแแแแ แแแ
แฉแแแฃแแแแ แแ แคแแแแ แแแแแแจแ แแแฅแแแแแแ (แแแจแแแแ แแ แฃแแ แงแแคแ) แแแแแขแแ แแแแแกแแแฆแแ แแแ แแแ แแแแ แฌแแกแแ, แ แแแแแกแแช แแแ แแแแแงแแคแแแแแก. Kubernetes-แจแ แแแแแขแแแแก แแแแแแแแแแ แแแแก แแแแจแแแแแแแ แแ แแฅแแก.
แแแแฃแแแกแฎแแแแแ, แ แแแแกแแช แฌแแกแแแ แแ แแ แแก แแแงแแแแแฃแแ, แแแแแแก แจแแ แแก แแแแฃแแแแแชแแ แแแจแแแแฃแแแ แแ แแแ แจแแฃแซแแแแ แแแแแกแฃแคแแแ แแแชแแแแแ แแแคแแ แแแชแแ. แแแก แจแแแแแ แ แแช แแแแฌแงแแแ แแแแแขแแแแก แคแแ แแฃแแแ แแแแก, แแแแแแฃแแ แแแแ, แ แแแแแแช แแแแแแแแก แแฎแแแแก แแแแแแฃแ แแ แ-แแ แ แแแแแแแแ, แแแแแแ แแแฃแแแ แงแแแแ แแ แแแแแขแแแแก แแแแชแแแแแแแแแก (แแแแแแฃแ แ OR) แแแฎแแแแแ, แ แแแแแแแแช แแก แจแแแ แฉแแแก. แแแแแแแ, แ แแแแแแกแแช แแ แแฎแแแ แ แแแแ แแแแแขแแแ, แฆแแ แ แฉแแแ.
แแฅแแแ แจแแแแซแแแแ แจแแชแแแแแ แแก แฅแชแแแ แแแฎแกแแแก แฌแแกแแก แแแแแงแแแแแแ.
แแแฎแกแแแก แฌแแกแ ("แฃแแ แ")
Firewall-แแก แแแแแขแแแ แฉแแแฃแแแแ แแ แฃแแ แงแแคแก แแแแแกแแแแ แขแ แแคแแแก, แ แแแแแแช แแจแแแ แแ แแ แแ แแก แแแจแแแแฃแแ.
แแฃแแแ แแแขแแกแจแ แแ แแ แกแแแแแก แฃแแ แแงแแคแแแ แแแฅแแแแแแแแฃแแชแ, แแกแแแแกแ แแคแแฅแขแแก แแแฆแฌแแแ แจแแกแแซแแแแแแแ แ แแแฃแแแ แฃแแ (แแแแแแแ แแฃแแ) แแแแแขแแแแ, แฌแงแแ แแก แแแแฃแ แแแแก แชแแ แแแแ แฏแแฃแคแแก แแ แฉแแแแ:
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
แแแแแแแแแกแฌแแแแ, แ แแ แแแแแกแแแแ แ แแแแแขแแแแแ แแแแแขแแแ, แ แแแแแแช แกแแจแฃแแแแแแก แแซแแแแก แขแ แแคแแแก แแแแแแจแ แกแแฎแแแแแแก แกแแแ แชแแจแ, แฃแแแ แแขแแกแแแแก แแแแญแแแก แแ แฌแแกแก (แแกแแแแกแแ แแแจแแแแแก แฌแแกแแก แแแแแขแแแแกแแก, แกแแแแ แฃแแ แงแแคแแก แฌแแกแก แแแแฃแแแขแแแ firewall-แแก แแแแคแแแฃแ แแชแแแก).
แงแแแแแคแ แแก แแแจแแแแ (Any-Any-Any-Allow)
แงแแแแ แแแจแแแแแก แแแแแขแแแแก แจแแกแแฅแแแแแแ, แแฅแแแ แฃแแแ แจแแแแกแแ แแแแแ แแแงแแแแแแ แฃแแ แงแแคแแก แแแแแขแแแ แชแแ แแแแ แแแแแแแขแแ ingress
:
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: allow-all
namespace: default
spec:
podSelector: {}
ingress: # <<<
- {} # <<<
policyTypes:
- Ingress
แแก แแซแแแแ แฌแแแแแแก แกแแจแฃแแแแแแก แงแแแแ pods แงแแแแ แกแแฎแแแแ แกแแแ แชแแจแ (แแ แงแแแแ IP) แแแแแกแแแแ แแแแจแ แกแแฎแแแแ แกแแแ แชแแจแ 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
แจแแแแแแ แแแแแขแแแ แกแแจแฃแแแแแแก แแซแแแแก แงแแแแ แจแแแแกแแกแแแแ แแ แแแกแแแแก แขแ แแคแแแก, แแแ แจแแ แแก แฌแแแแแแก แแแแแกแแแแ IP-แแ แแแแกแขแแ แแก แแแ แแ:
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
แจแแแแแแ, แงแแแแ pods in namespace default
แแฅแแแแ แฌแแแแแ แแแแแแแ postgres
แกแแฎแแแแ แกแแแ แชแแจแ database
. แแแแ แแ แ แ แแแฎแแแแ, แแฃ แแกแฃแ แ แฌแแแแแแก แแแฎแกแแ postgres
แกแแฎแแแแ แกแแแ แชแแจแ แแฎแแแแ แแแแแ แแขแฃแแ แแแแแซแแแ default
?
แแแคแแแขแแ แ แกแแฎแแแแ แกแแแ แชแแกแ แแ แแแแงแแคแแแแแแแแก แแแฎแแแแแ
Kubernetes 1.11 แแ แฃแคแ แ แแแฆแแแ แแแ แกแแ แกแแจแฃแแแแแแก แแแซแแแแ แแแแแแแจแแ แแ แแแแ แแขแแ แแแ namespaceSelector
ะธ podSelector
แแแแแแฃแ แ AND-แแก แแแแแงแแแแแแ. แแกแ แแแแแแงแฃแ แแแ:
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: database.postgres
namespace: database
spec:
podSelector:
matchLabels:
app: postgres
ingress:
- from:
- namespaceSelector:
matchLabels:
namespace: default
podSelector: # <<<
matchLabels:
app: admin
policyTypes:
- Ingress
แ แแขแแ แแ แแก แแก แแแขแแ แแ แแขแแ แแแฃแแ แ แแแแ แช AND แฉแแแฃแแแแ แแแ OR-แแก แแแชแแแแ?
แแแฎแแแ แแแแแแแแแกแฌแแแแ, แ แแ 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-แก
Firewall-แแก แฌแแกแแแ แแ แแแแแ แแแแแฅแขแแ (แฐแแกแขแแแ, แฅแกแแแแแ, แฏแแฃแคแแแ) แแแแ แแแแแแแฃแแแ แแแแแแฃแ แ OR-แแก แแแแแงแแแแแแ. แจแแแแแแ แฌแแกแ แแแฃแจแแแแแก, แแฃ แแแแแขแแก แฌแงแแ แ แแแแฎแแแแ Host_1
OR 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)
Firewalls แแงแแแแแก 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
แชแแ แแแแ pod แแแแแ แฉแแแแแ แแ แแแแแแแแจแ แแแจแแแแก "แแแ แฉแแ แงแแแแ แแแแงแแคแแแแแ แกแแฎแแแแ แกแแแ แชแแจแ".
แแก แแแแแขแแแ แแฎแแแแ 8.8.8.8-แแ แฌแแแแแแก แกแแจแฃแแแแแแก แแซแแแแ; แแแแแกแแแแ แ แกแฎแแ IP-แแ แฌแแแแแ แแแ แซแแแฃแแแ. แแกแ แ แแ, แแ แกแแแแแแ, แแฅแแแ แแแแแแแแ แฌแแแแแ แจแแแ Kubernetes DNS แกแแ แแแกแแ. แแฃ แฏแแ แแแแแ แแกแฃแ แ แแแกแ แแแฎแกแแ, แแแฃแแแแแ แแก แแแ แแแแแ .
แฉแแแฃแแแแ แแ ipBlocks
ะธ podSelectors
แฃแ แแแแ แแแแแแแ แแชแฎแแแแ, แ แแแแแ แแแแแแแก แจแแแ IP แแแกแแแแ แแแแ แแ แแแแแแงแแแแแ ipBlocks
. แแแแแแแแแ แจแแแ IP pods, แแฅแแแ แ แแแแฃแ แแ แแแฃแจแแแแ แแแแจแแ แแแก แแ แแแกแแแแ แแแแแ แแแแแแแแ/แแแ. แแ แแฅแขแแแแจแ, แแฅแแแ แแ แแแชแแแแแแแแ แ แแแแแ 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 แแแกแแแแ แแแแแก แแแแแแแแแแ. แแแแแแแแแ, แแฃ แแฅแแแแ pod-แแก แฅแแแฅแกแแแ แแ แแก 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
แแแ แขแแแ แแ แแ แแขแแแแแแแ
แ แแแแ แช แฌแแกแ, pods แฃแกแแแแแ แแ แ แแแ แขแก. แแก แแแจแแแแก, แ แแ แแฅแแแ แฃแแ แแแแ แจแแแแซแแแแ แแ แแแฃแแแแแ แแแ แขแแก แแแแ แแแ แแแแแขแแแแจแ แแ แแแขแแแแ แงแแแแแคแแ แ แแแแฃแแแกแฎแแแแแ. แแฃแแชแ, แ แแแแแแแแแ แแแฃแแแ แแแแแขแแแแก แแแฅแกแแแแแฃแ แแ แจแแแแฆแฃแแแแแ, แแกแ แ แแ แแแแแแ แ แจแแแแฎแแแแแจแ แแแแแช แจแแแแซแแแแ แแแฃแแแแแ แแแ แขแแแ:
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-แแก แแแแแแ แแ แแแแแแแแ แฌแแแแแแแ แกแแ แแแกแแก แกแแจแฃแแแแแแ - แแแ แขแฃแแแฃแ แ แแแขแแแ แแแแก แแแแแแกแแ แ, แ แแแแแแช แแแแแแแกแแแแ แแแแก แขแ แแคแแแก แแแแแแแ, แ แแแแแแแช แแฎแแ แชแแแแแแแ แกแแ แแแกแก. แจแแแซแแแแ แคแแฅแ แแแ, แ แแ แฅแกแแแแก แแแแแขแแแ แแแแแขแ แแแแแก แกแแ แแแกแแแแ แฌแแแแแแก, แแแแ แแ แแก แแกแ แแ แแ แแก. Kubernetes แฅแกแแแแก แแแแแขแแแ แแฃแจแแแแก แแแ แแแ แขแแแแ แแ แแ แ แกแแ แแแกแแก แแแ แขแแแแ.
แแแแแแแแแ, แแฃ แกแแ แแแกแ แฃแกแแแแก 80-แ แแแ แขแก, แแแแ แแ แแแแแแแกแแแแ แแแแก แขแ แแคแแแก แแแกแ แแแแแแแก 8080-แ แแแ แขแแ, แแฃแกแขแแ 8080 แฃแแแ แแงแแก แแแแแแแแฃแแ แฅแกแแแแก แแแแแขแแแแจแ.
แแกแแแ แแแฅแแแแแแ แฃแแแ แฉแแแแแแแแก แแ แแแแขแแแแแฃแ แแ: แแฃ แกแแ แแแกแแก แจแแแ แกแขแ แฃแฅแขแฃแ แ (แ แแแแแก แแแ แขแแแ แฃแกแแแแแ) แจแแแชแแแแแ, แฅแกแแแแก แแแแแขแแแ แฃแแแ แแแแแฎแแแแก.
แแฎแแแ แแ แฅแแขแแฅแขแฃแ แฃแแ แแแแแแแ Service Mesh-แแก แแแแแงแแแแแแ (แแแแแแแแแ, แแกแขแแแก แจแแกแแฎแแ แแฎแแแแ แฅแแแแแ - แแแแฎแ. แแแ แแแแแ.) แกแแจแฃแแแแแแก แแแซแแแแ แแแฃแแแแแแแแ แแ แแ แแแแแแแก.
แแฃแชแแแแแแแแ แแฃ แแ แ แแแ แแแแกแขแ แแ แแแ Ingress แแ Egress?
แแแแแ แแแกแฃแฎแ แแ แแก แแแแฎ, แแแแกแแแแแก, แ แแ แแแ A-แ แแแฃแแแแจแแ แแแก แแแ B-แก, แแแก แฃแแแ แแแแชแแก แแแแแแแแ แแแแจแแ แแก แจแแฅแแแแก แฃแคแแแแ (แแแแกแแแแก แกแแญแแ แแ แแแกแแแแก แแแแแขแแแแก แแแแคแแแฃแ แแชแแ), แฎแแแ pod B-แก แฃแแแ แจแแแซแแแก แจแแแแแแแแแ แแแแจแแ แแก แแแฆแแแ ( แแแแกแแแแแก, แจแแกแแแแแแกแแ, แแญแแ แแแแแ แจแแแแกแแแแก แแแแแขแแแ).
แแฃแแชแ, แแ แแฅแขแแแแจแ, แจแแแแซแแแแ แแแแงแ แแแแ แแแแฃแแแกแฎแแแ แแแแแขแแแแก, แ แแแ แแแฃแจแแแ แแแแจแแ แแแ แแ แแ แแ แแ แแแ แแแแแ แแฃแแแแแ.
แแฃ แ แแแแแแแ แฏแแจแแก-แฌแงแแ แ แจแแ แฉแแฃแแ แแฅแแแแ แแ แแ แแ แแแขแ แแแแแกแแแ-แแแแแขแแแแกแแแ, แแแกแแ แแแฌแแกแแแฃแแ แจแแแฆแฃแแแแแ แแแแ แแแแชแแแแแแแแแ แแแแแกแแแฆแแ แแแ. แแ แจแแแแฎแแแแแจแ, แแฅแแแ แฃแแแ แแแฃแจแแแ แแแแจแแ แ แแแแแแ -แแแ แแกแแขแแแ. แแฃ แแแแ แแ แแ แแก แแ แฉแแฃแแ แ แแแแแแแ แแแแแขแแแแ, แแแกแ แแแแแแแแ (แแแกแฃแแ) แขแ แแคแแแ แแแแฃแแแกแฎแแแแแ แแแจแแแแฃแแแ.
แแแแแแแแฃแ แแ, แแแแ แแ แแก podแแแ แแกแแขแ, แจแแ แฉแแฃแแ แแ แแ แแ แแแขแแก แแแแ ingress-แแแแแขแแแแกแแแก แแแแ แแแแฎแแแฅแแแแแ แแแแกแแแฆแแ แแแก. แแ แจแแแแฎแแแแแจแ, แแฅแแแ แชแแแกแแฎแแ แฃแแแ แแแกแชแแ แแแก แขแ แแคแแแแก แแแฆแแแแก แฃแคแแแแ แฌแงแแ แแก แแแแแแแ. แแฃ แแแแ แแ แแ แแก แแ แฉแแฃแแ แ แแแแแแแ แแแแแขแแแแก แแแแ , แแแกแแแแก แงแแแแ แจแแแแกแฃแแ แขแ แแคแแแ แแแแฃแแแกแฎแแแแแ แแแจแแแแฃแแแ.
แแฎแแแแ แกแแฎแแแแฌแแคแ แแ แแแฅแแแแฅแแแแแก แแ แแฅแแแ แฅแแแแแ.
แแฃแ แแแแแแ
Kubernetes แฅแกแแแแก แแแแแขแแแแก แแ แจแแฃแซแแแ แขแ แแคแแแแก แแฆแ แแชแฎแแ. แแก แแ แแฃแแแแก แแแแก แแแแแแแแก, แแฃแจแแแแก แแฃ แแ แ แแแแแขแแแ แแแแแจแแฃแแแแแกแแแแแ แแ แแแแจแแแแแแแแแ แแ แแฃแแแแก แฃแกแแคแ แแฎแแแแแก แแแแแแแก.
แแแ แ แกแแ แแแกแแแแก แขแ แแคแแแแก แแแแขแ แแแ
Kubernetes แฅแกแแแแก แแแแแขแแแ แแ แแแซแแแแ แกแแจแฃแแแแแแก แแแฃแแแแแ แกแ แฃแแแ แแแแแแคแแชแแฃแ แ แแแแแแแก แกแแฎแแแ (DNS) egress แกแแฅแชแแแแจแ. แแก แคแแฅแขแ แแฌแแแแก แแแแจแแแแแแแแ แแแกแแแแคแแ แขแก, แ แแแแกแแช แชแแแแแแก แจแแแฆแฃแแแก แขแ แแคแแแ แแแ แ แแแแแ แแฃแแแแแแแ, แ แแแแแแกแแช แแ แแฅแแ แคแแฅแกแแ แแแฃแแ IP แแแกแแแแ แแ (แ แแแแ แแชแแ aws.com).
แแแแแขแแแแก แจแแแแฌแแแแ
Firewalls แแแแแคแ แแฎแแแแแ แแ แแฃแแแแช แฃแแ แก แแขแงแแแ แแ แแกแฌแแ แ แแแแแขแแแแก แแแฆแแแแแ. Kubernetes แแกแแแ แแแแแแแก แแแแแแแฌแแแแแก. Kubectl-แแก แกแแจแฃแแแแแแ แฅแกแแแแก แแแแแขแแแแก แแแงแแแแแแกแแก, Kubernetes-แแ แจแแแซแแแแ แแแแแชแฎแแแแก, แ แแ แแก แแ แแกแฌแแ แแ แแ แฃแแ แ แแฅแแแก แแแก แแแฆแแแแแ. แกแฎแแ แจแแแแฎแแแแแจแ, Kubernetes แแแแฆแแแก แแแแแขแแแแก แแ แจแแแแกแแแก แแแก แแแแแ แแฃแแ แแแขแแแแแแ. แแแแ แแแฎแแ แจแแกแแซแแแแแแแ แแ แซแแแแแแก แแแแแงแแแแแแ:
kubernetes get networkpolicy <policy-name> -o yaml
แแแแแแแแแกแฌแแแแ, แ แแ Kubernetes-แแก แแแแแแแชแแแก แกแแกแขแแแ แแ แแ แแก แฃแขแงแฃแแ แ แแ แจแแกแแซแแแ แแแแแขแแแแก แแแแแแ แแ แกแแฎแแก แจแแชแแแแแแ.
แจแแกแ แฃแแแแแก
Kubernetes แแ แแฎแแ แชแแแแแแก แแแแแ แฅแกแแแแก แแแแแขแแแแก, แแแแ แแ แแ แแก แแฎแแแแ API แแแ แแแญแ, แ แแแแแแช แแแแแกแชแแแก แแแแขแ แแแแก แขแแแ แแก แคแฃแซแแแแแแแฃแ แกแแกแขแแแแแ, แ แแแแแกแแช แแฌแแแแแ แแแแขแแแแแ แแก แฅแกแแแแก แแแขแแ แคแแแกแ (CNI). Kubernetes-แแก แแแแกแขแแ แแ แแแแแขแแแแก แแแงแแแแแ แจแแกแแแแแแกแ CNI-แแก แแแแแญแแแแก แแแ แแจแ แแแแแแ, แ แแช แแแแแขแแแแก แจแแฅแแแ firewall-แแก แแแแแฏแแแแขแแก แกแแ แแแ แแ, แจแแแแแ แแ แแแแ แแแแแกแขแแแแ แแแแก แแแ แแจแ. แแฅแแแแแแ แแแแแแแแแแฃแแ, แฃแแ แฃแแแแแงแแ, แ แแ แแฅแแแแแ แฆแแ แกแแฃแแ CNI แแ, Kubernetes แแแแขแคแแ แแแแแก แจแแแแฎแแแแแจแ, แฆแ แฃแแแแจแ แแแแแแแกแแแฃแแ. (แจแแแแซแแแแ แแฎแแแแ แแ แแแแแแแ แแแแก แกแแ
แแแแแแแแแกแฌแแแแ, แ แแ Kubernetes แแ แแแแแคแ แแฎแแแแแ, แแฃ แแแแงแแแแแ แฅแกแแแแก แแแแแขแแแแก แจแแกแแแแแแกแ แแแแฎแแแ แ CNI-แแก แแแ แแจแ.
แกแแฎแแแแฌแแคแแแแ แแแ แแฃ แแแฅแแแแฅแแแแแก แแ แแฅแแแ?
แงแแแแ Kubernetes CNI, แ แแแแแแช แแ แจแแแฎแแแ, แแ แแก แกแแฎแแแแฌแแคแ (แแแแแแแแแ, Calico แแงแแแแแก Linux conntrack-แก). แแก แกแแจแฃแแแแแแก แแซแแแแก แแแแก แแแแฆแแก แแแกแฃแฎแแแ แแแก แแแแ แฌแแแแฌแงแแแฃแ TCP แแแแจแแ แแ แแแกแ แฎแแแแฎแแ แแแงแแแแแแก แแแ แแจแ. แแฃแแชแ, แแ แแ แแแชแ Kubernetes-แแก แกแขแแแแแ แขแ, แ แแแแแแช แฃแแ แฃแแแแแงแแคแก แกแแฎแแแแฌแแคแแแแ แแแแแก แแแ แแแขแแแก.
แฃแกแแคแ แแฎแแแแแก แแแแแขแแแแก แแแคแแ แแแแแฃแแ แแแแแฏแแแแขแ
แแฅ แแ แแก แ แแแแแแแแ แแแ แฃแกแแคแ แแฎแแแแแก แแแแแขแแแแก แแฆแกแ แฃแแแแแก แแแกแแฃแแฏแแแแกแแแแแ Kubernetes-แจแ:
- Service Mesh แแ แฅแแขแแฅแขแฃแ แฃแแ แแแแฃแจแ แแงแแแแแก แแแแ แแแแ แแแแขแแแแแ แแแก, แ แแแ แฃแแ แฃแแแแแงแแก แแแขแแแฃแ แ แขแแแแแแขแ แแ แแ แแแซแ แแแแแก แแแแขแ แแแ แแแแกแแฎแฃแ แแแแก แแแแแแ. แแแแแแแแแ แจแแแแแซแแแ แแแแฆแแ
แแกแขแแ . - CNI-แแก แแแแแแ แแแ แแแแฌแแแแแแแแ แแแแคแแ แแแแ แแแแแกแ แฎแแแกแแฌแงแแแแ Kubernetes-แแก แฅแกแแแแก แแแแแขแแแแก แแแฆแแ.
-
แขแฃแคแแ แแ แแ แฃแแ แฃแแแแแงแแคแก Kubernetes แฅแกแแแแก แแแแแขแแแแก แฎแแแแแแแแแก แแ แแแขแแแแขแแแแชแแแก.
Tufin Orca แแแแแขแ แแแ แแแแก Kubernetes แฅแกแแแแก แแแแแขแแแแก (แแ แแ แแก แแแแแ แแแชแแแฃแแ แแแ แแแแก แแแแแแญแแแแแก แฌแงแแ แ).
แแแแแขแแแแแ แแแคแแ แแแชแแ
-
แแฐแแแข แแแ แแแแแแแแก แแแแ GKE-แแแ แแแแแแแแแฃแแ แฅแกแแแฃแ แ แแแแแขแแแแก แแแแแแแแแแ ; -
แแแแฃแแแแขแแชแแ แแคแแชแแแแฃแ แ Kubernetes แแแแกแแแขแแแแ ; -
แแฃแแแ แแแขแแก แฅแกแแแแก แแแแแแแก แแแแแแแแแแ ; -
แกแแ แแแขแ แฅแกแแแแก แแแแแขแแแแก แจแแกแแแแฌแแแแแแ .
แแแกแแแแ
Kubernetes แฅแกแแแแก แแแแแขแแแ แแแแแแแแแแก แแแกแขแ แฃแแแแขแแแแก แแแ แ แแแแแแแฅแขแก แแแแกแขแแ แแแแก แกแแแแแแขแแชแแแกแแแแก, แแแแ แแ แแกแแแ แแ แแ แแแ แแแขแฃแแชแแฃแ แ แแ แแฅแแ แแแแ แ แแแฎแแแฌแแแแแ. แแ แกแแ แแฃแแแก แแแแ, แแ แแฏแแ แ, แ แแ แแแแ แ แแ แกแแแฃแแ แแแแกแขแแ แฃแแ แแแแแขแแแ แฃแแแ แแ. แแ แแ แแแแแแแก แจแแกแแซแแ แแแแแฌแงแแแขแแแแแแแ แแแแชแแแก แแแแแขแแแแก แแแคแแแแชแแแแแก แแแขแแแแขแแแแชแแแก แแ แกแฎแแ แกแแแแแแขแแชแแแก แแแกแขแ แฃแแแแขแแแแก แแแแแงแแแแแแก.
แแแแแแแแแแ, แ แแ แแก แกแแฎแแแแซแฆแแแแแแ แแแแแฎแแแ แแแแ แแแ แแแแฃแแ แแแแฎแแแแแก แแแ แแแแแแจแ แแ แแ แแแแแแแแแก แแแแแแ แแแแจแ, แ แแแแแแแช แจแแแซแแแแ แจแแแฎแแแแ.
PS แแแแ แแแแแแแกแแแ
แแกแแแ แฌแแแแแแฎแแ แฉแแแแก แแแแแแ:
- "แฃแแ แฃแแแ แแแแ แแกแแ แแแกแแแก Istio-แกแแแ แแ แแแ":
แแแฌแแแ 1 (แซแแ แแแแแ แแแฎแแกแแแแแแแแแแก แจแแกแแแแแ) ,แแแฌแแแ 2 (แแแ แจแ แฃแขแแแแชแแ, แแแซแ แแแแแก แแแแขแ แแแ) ,แแแฌแแแ 3 (แฃแกแแคแ แแฎแแแแ) ; - "แแแฃแกแขแ แแ แแแฃแแ แแแแแแแแแแ แฅแกแแแจแ Kubernetes-แจแ":
แแแฌแแแแแ 1 แแ 2 (แฅแกแแแแก แแแแแแ, แแแแแคแแ แแแก แฅแกแแแแแ) ,แแแฌแแแ 3 (แแแแกแแฎแฃแ แแแ แแ แขแ แแคแแแแก แแแแฃแจแแแแแ) ; - ยซ
Docker แแ Kubernetes แฃแกแแคแ แแฎแแแแแกแแแแ แแแ แซแแแแแแ แ แแแ แแแแจแ "; - ยซ
9 แกแแฃแแแแแกแ แแ แแฅแขแแแ Kubernetes แฃแกแแคแ แแฎแแแแแกแแแแก "; - ยซ
11 แแแ, แ แแแ (แแ ) แแแฎแแ แแฃแแแ แแแขแแก แฐแแแแก แแกแฎแแแ แแแ ".
แฌแงแแ แ: www.habr.com