Как получить доступ к внутренней службе Kubernetes на сервере Apollo из моего приложения для веб-клиента apollo с Traefik - PullRequest
1 голос
/ 23 мая 2019

Я хочу сделать мой Nuxt.js с apollo-клиентом для подключения к моему внутреннему серверу Apollo на Kubernetes .

Мои nuxtjs с приложением apollo-client открываются через Traefik Ingress, и когда я устанавливаю URL-адрес моего apollo-client равным <service>.<namespace>, чтобы он указывал на мой внутренний apollo-client, я получаю следующее сообщение об ошибке в консоли Chrome:

net::ERR_NAME_NOT_RESOLVED 

Мой сервер Apollo работает на порту 6666 , но моя служба работает на порту 443 и предназначена для порта 6666

ApolloКонфиг:

import { HttpLink } from 'apollo-link-http'
import { InMemoryCache } from 'apollo-cache-inmemory'

// Replace this with your project's endpoint
const GRAPHCMS_API = process.env.API

export default () => ({
  link: new HttpLink({ uri: GRAPHCMS_API }),
  cache: new InMemoryCache(),
  defaultHttpLink: false
})

Моя Переменная API:

  API: "https://service.namespace.svc.cluster.local:443/gql",

1 Ответ

0 голосов
/ 11 июня 2019

Ваше веб-приложение на базе Nuxt.js должно иметь доступ извне к рабочей нагрузке вашего кластера Kubernetes: Apollo Server.Это связано с тем, что Nuxjs запускается на стороне клиента (веб-браузер) и ничего не знает о внутреннем DNS-имени кластера «service.namespace.svc.cluster.local», предоставляемом бэкэнд-службе (Apollo Server) - эти DNS-имена разрешаются тольковнутри кластера.

Вам необходимо предоставить свой сервер Appolo для службы типа NodePort или LoadBalancer, как описано в официальном документе здесь .Еще один вариант - открыть вашу «Службу внутреннего сервера Apollo Kubernetes» через Ingress с помощью TLS / HTTPS .

.
...