Как получить доступ к панели управления grafana-istio по IP-адресу? - PullRequest
2 голосов
/ 23 сентября 2019

Я использую minikube для запуска кластера kubernetes.Я следовал настройке, указанной в Документах Istio , чтобы установить плагин istio.Я могу получить доступ к панели инструментов с помощью localhost:3000, но не могу получить доступ с помощью ip:3000.

Проверен брандмауэр.Он не блокирует порт.

Ответы [ 3 ]

0 голосов
/ 23 сентября 2019

Проверьте тип сервиса grafana.

Вы можете использовать NodePort или LoadBalancer в качестве типа сервиса.

Использовать NodePort с ip или вы можете просто использовать IPадрес LoadBalancer для доступа к онлайн-сервису grafana vai internet.

0 голосов
/ 24 сентября 2019

К сожалению, если вы используете istio, изменить тип службы не так просто.Вы должны настроить Istio VirtualService и создать Gateway.

Я публикую этот ответ как вики сообщества, относящуюся к другому случаю стека: https://stackoverflow.com/a/56019381/11148139 Как уже упоминалось, вопрос имеет 1 понижение и может быть удален в будущем, который я публикую для будущего использования в этом случае.

=================================================

Вы можете создать Istio Gateway и VirtualService , чтобы пересылать ваши запросы в службу grafana, работающую по умолчанию на порт 3000

Во-первых, давайте проверим grafana и istio-ingressgateway service

kubectl get svc grafana istio-ingressgateway -n istio-system
NAME                   TYPE           CLUSTER-IP      EXTERNAL-IP                                                               PORT(S)                                                                                                                                      AGE
grafana                ClusterIP      100.71.67.105   <none>                                                                    3000/TCP                                                                                                                                     18h
istio-ingressgateway   LoadBalancer   100.64.42.106   <Public IP address>   15020:31766/TCP,80:31380/TCP,443:31390/TCP,31400:31400/TCP,15029:32576/TCP,15030:30728/TCP,15031:31037/TCP,15032:31613/TCP,15443:32501/TCP   18h

Итак, у нас grafana запущена служба, прослушивающая порт 3000, и по умолчанию istio-ingressgateway Служба LoadBalancer работает с назначенным общедоступным IP-адресом.

Затем мы создаем gateway для использования этого LoadBalancer по умолчанию.

$ kubectl apply -f - <<EOF
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: grafana-gateway
  namespace: istio-system # Use same namespace with backend service
spec:
  selector:
    istio: ingressgateway # use Istio default gateway implementation
  servers:
  - port:
      number: 80
      name: HTTP
      protocol: HTTP
    hosts:
    - "*"
EOF

Затем настройте маршрут на grafana service для трафика, входящего через этот шлюз:

$ kubectl apply -f - <<EOF
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: grafana
  namespace: istio-system # Use same namespace with backend service
spec:
  hosts:
  - "*"
  gateways:
  - grafana-gateway # define gateway name
  http:
  - match:
    - uri:
        prefix: "/"
    route:
    - destination:
        port:
          number: 3000 # Backend service port
        host: grafana # Backend service name
EOF

Затем нажмите http://<public_ip_istio_ingressgateway>, вы должнысм. панель управления графаной

Надеюсь, она вам пригодится.

0 голосов
/ 23 сентября 2019

Для этого вам нужно сделать тип обслуживания grafana NodePort.Вы можете изменить его с помощью $ kubectl edit svc grafana -n istio-system и изменить .spec.type с ClusterIP на NodePort, затем сохранить и выйти из редактора.

Чтобы получить доступ к графу $ kubectl get svc grafana -n istio-system и получить поле NodePort, а затем получить к нему доступ через ip:$NodePortValue

...