Политика DNS является платной функцией, поскольку она является частью Calico Enterprise и Calico Cloud. Вы можете проверить это здесь.
Полное сравнение функций между Calico с открытым исходным кодом, облаком и предприятием
Что касается примеров, то найти работающие примеры для платных продуктов зачастую бывает очень сложно, однако мне удалось найти простой пример того, как это будет выглядеть:
apiVersion: projectcalico.org/v3
тип: GlobalNetworkPolicy
метаданные:
имя: security.allow-external-dns-egress
спецификация:
уровень: безопасность
селектор: 'projectcalico.org/namespace == "dev" && app == "centos"'
заказ: 90
типы:
- Выход
выход:
- действие: Разрешить
протокол: UDP
источник: {}
пункт назначения:
порты:
- '53'
# openshift dns порт
- '5353'
- действие: Разрешить
источник:
селектор: приложение == 'centos'
пункт назначения:
домены:
- '*.google.com'
- 'google.com'
# это правило необходимо только в том случае, если нет политики, которая пропускала бы весь непарный трафик на следующий уровень
# - действие: Пропустить
# источник: {}
# пункт назначения: {}
Ссылка на этот пример выше в Calico github
Идея состоит в том, чтобы не разрешать исходящий трафик ни на какие домены, кроме google.com.
Показано, как это должно работать в пример.