Нужен ли прокси-сервер istio sidecar на стороне клиента для применения правил маршрутизации? - PullRequest
0 голосов
/ 07 июня 2019

У меня есть пара сервисов с именами svc A и svc B с потоком запросов следующим образом:

svc A --> svc B

Я ввел коляску с svc B, а затем добавил правила маршрутизации через VirtualServices объект как:

---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: b
  namespace: default
spec:
  hosts:
  - b.default.svc.cluster.local
  http:
  - route:
    - destination:
        host: b.default.svc.cluster.local
    fault:
      abort:
        percentage:
          value: 100
        httpStatus: 403

Эти правила применяются только в том случае, если svc A имеет прокси-сервер с коляской. Что заставляет меня задуматься, нужно ли нам иметь istio proxy на стороне клиента? Я ожидал, что сервис, для которого я добавил правила, должен только иметь коляску. Я не могу придумать какого-либо технического требования, чтобы оно было на стороне svc B.

Ответы [ 3 ]

2 голосов
/ 07 июня 2019

Да, для службы А требуется коляска. Я допускаю, что это сбивает с толку, но способ думать о ресурсе VirtualService - это «где мне найти бэкэнды, с которыми я хочу поговорить, и какую службу они должны предоставить?» Sidecar A - это его помощник, который выполняет такие действия, как балансировка нагрузки и, в вашем случае, введение ошибки (служба B надежна; служба A хочет, чтобы она казалась ненадежной).

Замечания о том, что A и B оба нуждаются в колясках, чтобы вообще обмениваться данными, являются неправильными (если вы не хотите mTLS), но если вы хотите, чтобы сетка предоставляла дополнительные услуги для A, тогда A нужна коляска.

1 голос
/ 07 июня 2019

да, вам также нужно добавить прокси-сервер коляски в службу А. тогда только две службы могут общаться друг с другом через прокси

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

Сначала запустите:

gcloud container clusters describe [Your-Pod-Name] | grep -e clusterIpv4Cidr -e servicesIpv4Cidr

Это даст вам два IP-адреса.Добавьте их в свой каталог развертывания, как показано ниже (ЗАМЕНА IP-АДРЕСОВ С ВАМИ)

apiVersion: v1
kind: Pod
metadata:
  name: [Your-Pod-Name]
  annotations:
    sidecar.istio.io/inject: "true"
    traffic.sidecar.istio.io/includeOutboundIPRanges: 10.32.0.0/14,10.35.240.0/20

Это позволяет подключаться к Интернету к вашим услугам.

...