Начальный контейнер с командой kubectl get pod
используется для получения статуса готовности другого модуля.
После включения Egress NetworkPolicy контейнер инициализации не может получить доступ к API Kubernetes: Unable to connect to the server: dial tcp 10.96.0.1:443: i/o timeout
. CNI - Калико.
Было опробовано несколько правил, но ни одно из них не работает (IP-адреса хоста службы и главного хоста, разные маски CIDR):
...
egress:
- to:
- ipBlock:
cidr: 10.96.0.1/32
ports:
- protocol: TCP
port: 443
...
или с использованием пространства имен (пространства имен по умолчанию и пространства системы kube):
...
egress:
- to:
- namespaceSelector:
matchLabels:
name: default
ports:
- protocol: TCP
port: 443
...
Похоже, что ipBlock
правила просто не работают, а правила пространства имен не работают, потому что kubernetes api - это нестандартный модуль.
Это можно настроить? Кубернетес - 1,9,5, Калико - 3,1,1.
Проблема все еще существует с GKE 1.13.7-gke.8 и ситцем 3.2.7