Sock-shop на GCP с Loadbalancer - PullRequest
       24

Sock-shop на GCP с Loadbalancer

0 голосов
/ 19 ноября 2018

Я пытаюсь развернуть и получить доступ к Sock-shop на Google Cloud Platform. https://github.com/microservices-demo/microservices-demo

Мне удалось развернуть его с помощью сценария развертывания. https://github.com/microservices-demo/microservices-demo/blob/master/deploy/kubernetes/complete-demo.yaml

На основе учебника здесь https://www.weave.works/docs/cloud/latest/tasks/deploy/sockshop-deploy/ Это говорит Отобразите магазин носков в браузере, используя:

<master-node-IP>:<NodePort>

Но на GCP мастер-узел скрыт от пользователя.

Поэтому я изменил тип с NodePort на LoadBalancer.

И мне удалось получить внешний IP.

Но там говорится, что страница не найдена. enter code here

Нужно ли настраивать дополнительные функции для LoadBalancer?

Ответы [ 2 ]

0 голосов
/ 11 декабря 2018

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

1-й) Создав балансировщик нагрузки, где вы предоставляете внешний сервис. Я предполагаю, что вы уже создали пространство имен с именем sock-shop, поэтому любая дальнейшая команда должна указывать и ссылаться на это пространство имен. Если вы наберете и выполните команду: kubectl get services --namespace=sock-shop Вы должны увидеть список всех сервисов, включенных в службу, называемую front-end. Итак, теперь вы хотите представить этот сервис не как NodePort, а как LoadBalancer. Итак, выполните команду: kubectl expose service front-end --name=front-end-lb --port=80 --target-port=8079 --type=LoadBalancer --namespace=sock-shop После этого дайте некоторое время, и вы сможете получить доступ к интерфейсу магазина носков через публичный IP-адрес (ephimeral)

2-й) Более продвинутый способ - настройка Ingress Load Balancer. Вам необходимо настроить другой файл yaml, поместить этот код внутрь и запустить его, как вы делали с предыдущим файлом .yaml.

nano basic-ingress.yaml

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  namespace : sock-shop
  name: basic-ingress
spec:
  backend:
    serviceName: front-end
    servicePort: 80

kubectl apply -f basic-ingress.yaml --namespace=sock-shop

Найдите публичный IP-адрес с помощью этой команды, и через максимум 15 минут вы сможете получить доступ к Sock Shop.

kubectl get ingress --namespace=sock-shop
0 голосов
/ 19 ноября 2018

Я бы рекомендовал вернуться назад для NodePort в соответствующей службе и создать ресурс Ingress в вашем кластере GCP.

Если вы хотите получить доступ к связанному приложению вне кластера, Kubernetes предоставляет механизм Ingress для предоставления маршрутов HTTP и HTTPS вашим внутренним службам.

Как правило, Балансировщик нагрузки HTTP (S) создается по умолчанию в GKE после успешной реализации ресурса Ingress, поэтому он позаботится о маршрутизации всего внешнего трафика HTTP / S во вложенный ресурс. Кубернетес услуги.

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: basic-ingress
spec:
  backend:
    serviceName: web
    servicePort: 8080

Внешний IP-адрес для балансировщика нагрузки можно проверить с помощью следующей команды:

kubectl get ingress basic-ingress

Я обнаружил, что Статья будет очень полезна в ваших общих исследованиях.

...