Аутентификация Grafana, Prometheus, Kiali с помощью AzureAD и внутреннего балансировщика нагрузки istio - PullRequest
1 голос
/ 23 января 2020

Я развертываю istio в azure сервисах kubernetes (AKS), и у меня возникает следующий вопрос:

Возможно ли развернуть istio с помощью внутреннего балансировщика нагрузки. Похоже, он развернут в Azure с балансировщиком нагрузки publi c по умолчанию. Что мне нужно изменить, чтобы использовать внутренний балансировщик нагрузки?

1 Ответ

0 голосов
/ 23 января 2020

Чтобы ответить на второй вопрос:

Можно добавить аннотацию AKS для внутреннего балансировщика нагрузки в соответствии с документацией AKS :

Для создания Внутренний балансировщик нагрузки, создайте манифест службы с именем internal-lb.yaml с типом службы LoadBalancer и аннотацией azure-load-balancer-internal, как показано в следующем примере:

apiVersion: v1
kind: Service
metadata:
  name: internal-app
  annotations:
    service.beta.kubernetes.io/azure-load-balancer-internal: "true"
spec:
  type: LoadBalancer
  ports:
  - port: 80
  selector:
    app: internal-app

Итак, вы Вы можете установить эту аннотацию, используя helm со следующим параметром --set:

helm template install/kubernetes/helm/istio --name istio --namespace istio-system --set gateways.istio-ingressgateway.serviceAnnotations.'service\.beta\.kubernetes\.io/azure-load-balancer-internal'="true" > aks-istio.yaml

Как уже упоминалось в комментарии, вы должны придерживаться одного вопроса на пост в соответствии с рекомендациями здесь . Поэтому я предлагаю создать второй пост с другим вопросом.

Надеюсь, это поможет.


Обновление:

Для istioctl Вы можете сделать следующее :

  1. Создание файла манифеста для вашего развертывания istio для этого примера Я использовал демонстрационный профиль.
istioctl manifest generate --set profile=demo > istio.yaml
Измените istio.yaml и найдите текст для type: LoadBalancer.
---


apiVersion: v1
kind: Service
metadata:
  name: istio-ingressgateway
  namespace: istio-system
  annotations:
  labels:
    app: istio-ingressgateway
    release: istio
    istio: ingressgateway
spec:
  type: LoadBalancer
  selector:
    app: istio-ingressgateway
  ports:

Добавьте аннотацию для внутреннего балансировщика нагрузки следующим образом:

---


apiVersion: v1
kind: Service
metadata:
  name: istio-ingressgateway
  namespace: istio-system
  annotations:
    service.beta.kubernetes.io/azure-load-balancer-internal: "true"
  labels:
    app: istio-ingressgateway
    release: istio
    istio: ingressgateway
spec:
  type: LoadBalancer
  selector:
    app: istio-ingressgateway
  ports:
После сохранения изменений разверните измененный istio.yaml в своем кластере K8s, используя:
kubectl apply -f istio.yaml

После этого Вы можете проверить наличие аннотации в istio-ingressgateway service.

$ kubectl get svc istio-ingressgateway -n istio-system -o yaml
apiVersion: v1
kind: Service
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"v1","kind":"Service","metadata":{"annotations":{"service.beta.kubernetes.io/azure-load-balancer-internal":"true"},"labels":{"app":"istio-ingressgateway","istio":"ingressgateway","release":"istio"},"name":"istio-ingressgateway","namespace":"istio-system"},"spec":{"ports":[{"name":"status-port","port":15020,"targetPort":15020},{"name":"http2","port":80,"targetPort":80},{"name":"https","port":443},{"name":"kiali","port":15029,"targetPort":15029},{"name":"prometheus","port":15030,"targetPort":15030},{"name":"grafana","port":15031,"targetPort":15031},{"name":"tracing","port":15032,"targetPort":15032},{"name":"tls","port":15443,"targetPort":15443}],"selector":{"app":"istio-ingressgateway"},"type":"LoadBalancer"}}
    service.beta.kubernetes.io/azure-load-balancer-internal: "true"
  creationTimestamp: "2020-01-27T13:51:07Z"

Надеюсь, это поможет.

...