Как сделать кластерный локальный запрос от одного сервиса к другому в Knative? - PullRequest
2 голосов
/ 03 октября 2019

Я следовал этому руководству https://knative.dev/docs/serving/cluster-local-route/, чтобы сделать кластер службы локальным.

Я пытаюсь получить доступ к этой службе из другой службы, которая находится внутри кластера, с помощью команды curl, но я всегда get не удалось разрешить ошибку хоста .

Я попытался сделать запрос с curl helloworld-default.svc.cluster и curl -H "Хост: helloworld-go.default.svc.cluster " http://< cluster_ip> команда.

Я что-то упустил? Нужно ли мне настраивать Istio virtualService для его работы? (Я запускаю Knative внутри GKE)

1 Ответ

1 голос
/ 07 октября 2019

Я думаю, что вам не хватает .local, и оно должно работать.

curl -H "Host: helloworld-go.default.svc.cluster.local" http://< cluster_ip > 

Но вы должны иметь возможность полностью отбросить ClusterIP во время выполнения запроса из кластера. В основном выполнить:

curl helloworld-go.default.svc.cluster.local

DNS helloworld-go.default.svc.cluster.local будет разрешен механизмом разрешения DNS Kubernetes.


Важно указывать заголовок HOST только для входящего трафика (публичный трафик, входящий в частный трафик).

Подробности: Knative Service создает Route CRD, который создает ClusterIngress, который будет приниматься контроллером (по умолчанию istio-network) для настройки входного шлюза (с использованием другого CRD в случае istio VirtualService). Маршрутизация входных шлюзов основана на заголовке HOST.

...