Kubernetes - Zasady sieciowe
Zasady sieciowe definiują sposób, w jaki zasobniki w tej samej przestrzeni nazw będą komunikować się ze sobą i punktem końcowym sieci. To wymagaextensions/v1beta1/networkpoliciesdo włączenia w konfiguracji środowiska wykonawczego na serwerze API. Jego zasoby używają etykiet do wybierania zasobników i definiowania reguł zezwalających na ruch do określonego zasobnika, oprócz tego, który jest zdefiniowany w przestrzeni nazw.
Najpierw musimy skonfigurować zasady izolacji przestrzeni nazw. Zasadniczo tego rodzaju zasady sieciowe są wymagane w modułach równoważenia obciążenia.
kind: Namespace
apiVersion: v1
metadata:
annotations:
net.beta.kubernetes.io/network-policy: |
{
"ingress":
{
"isolation": "DefaultDeny"
}
}
$ kubectl annotate ns <namespace> "net.beta.kubernetes.io/network-policy =
{\"ingress\": {\"isolation\": \"DefaultDeny\"}}"
Po utworzeniu przestrzeni nazw musimy utworzyć zasady sieciowe.
Polityka sieciowa Yaml
kind: NetworkPolicy
apiVersion: extensions/v1beta1
metadata:
name: allow-frontend
namespace: myns
spec:
podSelector:
matchLabels:
role: backend
ingress:
- from:
- podSelector:
matchLabels:
role: frontend
ports:
- protocol: TCP
port: 6379