Конфигурация Istio helm - конфигурация порта istio-ingressgateway не работает (или не имеет смысла) - PullRequest
0 голосов
/ 22 октября 2018

Я использую штурвал для создания YML с настроенными конфигурациями шлюза istio-ingressgateway.См. Мой скрипт ниже:

#!/usr/bin/env bash

helm template $ISTIO_DIR/install/kubernetes/helm/istio \
    --name istio \
    --namespace istio-system \
    --set gateways.istio-ingressgateway.type=NodePort \
    --set gateways.istio-ingressgateway.enabled=true \
    --set gateways.istio-ingressgateway.replicaCount=1 \
    --set gateways.istio-ingressgateway.ports.targetPort=80 \
    --set gateways.istio-ingressgateway.ports.name=http2 \
    --set gateways.istio-ingressgateway.ports.nodePort=30000 \
    \
    --set gateways.istio-ingressgateway.ports.targetPort=443 \
    --set gateways.istio-ingressgateway.ports.name=https \
    --set gateways.istio-ingressgateway.ports.nodePort=30443 \
    \
    --set gateways.istio-ingressgateway.ports.targetPort=31400 \
    --set gateways.istio-ingressgateway.ports.name=tcp \
    --set gateways.istio-ingressgateway.ports.nodePort=31400 \
    \
    --set gateways.istio-ingressgateway.ports.targetPort=15011 \
    --set gateways.istio-ingressgateway.ports.name=tcp-pilot-grpc-tls \
    --set gateways.istio-ingressgateway.ports.nodePort=32460 \
    \
    --set gateways.istio-ingressgateway.ports.targetPort=8060 \
    --set gateways.istio-ingressgateway.ports.name=tcp-citadel-grpc-tls \
    --set gateways.istio-ingressgateway.ports.nodePort=32027 \
    \
    --set gateways.istio-ingressgateway.ports.targetPort=15030 \
    --set gateways.istio-ingressgateway.ports.name=http2-prometheus \
    --set gateways.istio-ingressgateway.ports.nodePort=31926 \
    \
    --set gateways.istio-ingressgateway.ports.targetPort=15031 \
    --set gateways.istio-ingressgateway.ports.name=http2-grafana \
    --set gateways.istio-ingressgateway.ports.nodePort=31336 \
    > eraseme.yaml

Но я получаю эту ошибку:

2018/10/22 12:04:54 предупреждение: назначение портов - таблица.Игнорирование значения, не входящего в таблицу [map [nodePort: порт 31380: 80 targetPort: 80 имя: http2] map [имя: https nodePort: 31390 порт: 443] map [имя: tcp nodePort: 31400 порт: 31400] map [порт: 15011targetPort: 15011 name: tcp-pilot-grpc-tls] map [имя: tcp-citadel-grpc-tls порт: 8060 targetPort: 8060] map [имя: tcp-dns-tls порт: 853 targetPort: 853] map [имя: порт http2-prometheus: 15030 targetPort: 15030] map [имя: порт http2-grafana: 15031 targetPort: 15031]] 2018/10/22 12:04:54 предупреждение: назначение портов - таблица.Игнорирование значения, не входящего в таблицу [map [имя: http2 nodePort: 31380 порт: 80 targetPort: 80] map [имя: https nodePort: 31390 порт: 443] map [имя: tcp nodePort: 31400 порт: 31400] map [имя: tcp-pilot-grpc-tls порт: 15011 targetPort: 15011] map [имя: tcp-citadel-grpc-tls порт: 8060 targetPort: 8060] map [targetPort: 853 имя: tcp-dns-tls порт: 853] карта [имя: порт http2-prometheus: 15030 targetPort: 15030] map [имя: порт http2-grafana: 15031 targetPort: 15031]] Ошибка: ошибка рендеринга в «istio / charts / gateways / templates / service.yaml»: template: istio / charts/gateways/templates/service.yaml:32:32: выполнение "istio / charts / gateways / templates / service.yaml" в: range не может перебирать http2-grafana

Как ядолжен делать это правильно?

Ответы [ 2 ]

0 голосов
/ 29 марта 2019

Я встречался с похожими проблемами, вместо добавления длинных параметров в командной строке, лучше добавить его в файлы yaml.

helm template $ISTIO_DIR/install/kubernetes/helm/istio \
    --name istio \
    --namespace istio-system > istio-default.yaml

Затем вы можете отредактировать istio-default.yaml, чтобы добавить дополнительный порт, который вы хотеликак

# istio-default.yaml (tips: search 31380 to locate this segment)
    -
      name: http2
      nodePort: 31380
      port: 80
      targetPort: 80
# below is customized port for flask app for example
    -
      name: http-flask
      nodePort: 31500
      port: 5000
      targetPort: 5000

Теперь вы можете создать / применить конфигурацию к системе

$ kubectl create -f istio-default.yaml
$ kubectl get svc istio-ingressgateway -n istio-system
NAME                   TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)                                                                                                                                                     AGE
istio-ingressgateway   LoadBalancer   10.111.192.149   <pending>     80:31380/TCP,5000:31500/TCP,443:31390/TCP,31400:31400/TCP,15029:32630/TCP,15030:31878/TCP,15031:30152/TCP,15032:32060/TCP,15443:31852/TCP,15020:32235/TCP   8m26s

Это также хороший способ добавить / удалить порт после установки istio

Подробнее об установке istio см. Вариант 1: установка с рулем через шаблон руля

0 голосов
/ 23 октября 2018

Вопрос о синтаксисе Хелма для указания переменных массива.Вы делаете это так:

--set gateways.istio-ingressgateway.ports[0].targetPort=80 \
--set gateways.istio-ingressgateway.ports[0].name=http2 \
--set gateways.istio-ingressgateway.ports[0].nodePort=30000 \
\
--set gateways.istio-ingressgateway.ports[1].targetPort=443 \
--set gateways.istio-ingressgateway.ports[1].name=https \
--set gateways.istio-ingressgateway.ports[1].nodePort=30443 \

и т. Д., Указывая индексы членов массива.

...