Kubernetes - Сетевая политика
Сетевая политика определяет, как модули в одном пространстве имен будут взаимодействовать друг с другом и с конечной точкой сети. Это требуетextensions/v1beta1/networkpoliciesдля включения в конфигурации среды выполнения на сервере API. Его ресурсы используют метки для выбора модулей и определения правил, разрешающих трафик к конкретному модулю, в дополнение к тому, который определен в пространстве имен.
Во-первых, нам нужно настроить политику изоляции пространства имен. Обычно такие сетевые политики требуются для балансировщиков нагрузки.
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\"}}"
После создания пространства имен нам нужно создать сетевую политику.
Сетевая политика 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