API доступа к сервису выставлен как clusterIP в кубернете - PullRequest
1 голос
/ 29 мая 2019

У меня есть два приложения, оба развернуты в одном кластере.

Теперь из Интернета есть ajax-запрос для получения данных из API, но он всегда возвращает 502 Connection refused.

здесь.мой код jquery (web).

$.get("http://10.43.244.118/api/users", function (data) {
        console.log(data);
        $('#table').bootstrapTable({
            data: data
        });
    });

Примечание: когда я изменяю тип сервиса на LoadBalancer с ClusterIP, он отлично работает.

Ответы [ 2 ]

1 голос
/ 29 мая 2019

Службы ClusterIP (обычно) работают только внутри кластера. Технически вы можете сделать свое адресное пространство CNI доступным извне, но это редко, и вы, вероятно, не должны на это рассчитывать. Правильный способ выставить что-то вне кластера - это либо служба NodePort, либо LoadBalancer (который является NodePort плюс балансировщик нагрузки в облаке).

0 голосов
/ 29 мая 2019
1\Ajax is a front-end call to api.
2\The front-end call is to directly communicate with the user(Browser) and the called end and the api service.
3\ ClusterIP is internal to the cluster,User(Browser) cannot communicate with it.
4\ NodePort and LoadBalancer can expose the internal network, of course, it can be accessed normally.
...