Установка Istio на уровне проекта - PullRequest
0 голосов
/ 25 марта 2019

Можно ли установить Istio на уровне проекта?Каждое руководство по установке Istio, которое я вижу, распространяется на весь кластер.Но поскольку в моей компании несколько отделов совместно используют один кластер, это не вариант.

Ответы [ 2 ]

0 голосов
/ 08 апреля 2019

Istio установлен в одном пространстве имен, но не обязательно работает для всего кластера. На самом деле Istio работает только для тех рабочих нагрузок, в которые вставлена ​​коляска Istio.

Например, следующая команда создаст некоторые развертывания (и, следовательно, стручки), в которые будет вставлена ​​коляска Istio. Эти модули будут включать все функции Istio.

kubectl apply -f <(./bin/istioctl kube-inject -f samples/bookinfo/platform/kube/bookinfo.yaml) -n bookinfo

Однако следующая команда не будет вводить коляску Istio и, как следствие, плоскость управления Istio не изменит их поведение.

kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml -n bookinfo

Чтобы управлять входящим / исходящим трафиком в сетку службы istio, вы можете создать шлюзы Istio (край сетки): https://istio.io/docs/reference/config/networking/v1alpha3/gateway/

Также связанный с входом трафика, Istio имеет свой собственный входной путь istio-ingressgate (аналогичный входному ресурсу K8S, но без применения правила трафика по умолчанию): https://istio.io/docs/tasks/traffic-management/ingress/

Остальной трафик, не проходящий через эти пути, не будет частью трафика, управляемого Istio Service Mesh.

Чтобы проверить это, вы можете легко установить демонстрационную версию Istio bookinfo по умолчанию без колясок (вторая команда выше) и увидеть, что телеметрия не зарегистрирована и нет данных трассировки. Если вы используете Kiali (www.kiali.io), вы увидите, что график обслуживания показывает пустой и отключенный (это означает, что телеметрия не зарегистрирована).

Service Graph in Kiali for pods outside of service mesh

Кроме того, вы можете открыть любой сервис bookinfo и использовать его без какого-либо взаимодействия с Istio:

Calling Ratings service where sidecar is not injected

0 голосов
/ 08 апреля 2019

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

kind: Namespace
apiVersion: v1
metadata:
  name: yourapp
  labels:
    app: yourapp
    istio-injection: enabled
...