Я потратил некоторое время на изучение этого и заставил службу tls
работать.
Во-первых, похоже, что вам не хватает |
в переопределении YAML.
overlays:
- apiVersion: v1
kind: Service
name: istio-ingressgateway
patches:
- path: spec.ports.[name:kafka]
value: | <== here
name: kafka
protocol: TCP
port: 9092
targetPort: 9092
Дополнительную информацию можно получить, просмотрев журналы операторов. Например:
$ kubectl -n istio-operator logs istio-operator-5998f6c744-kg2v6
, и вы должны увидеть что-то вроде этого:
2020-06-20T06:20:28.200545Z info installer Applying Kubernetes overlay:
- kind: Service
name: istio-ingressgateway
patches:
- path: spec.ports.[name:kafka]
value: |
name: kafka
port: 9092
protocol: TCP
targetPort: 9092
Однако, похоже, это не отменяет порт, и я получаю (даже если я вручную добавлю kafka на службу istio-ingressgateway
K8s):
2020-06-20T06:37:01.388907Z error reconciling err: path spec.ports.[name:kafka]: element [name:kafka] not found
Он действительно работает с чем-то существующим, например spec.ports.[name:tls]
.
Теперь я не совсем уверен, что вы пытаетесь сделать, изменяя службу входящего шлюза. Насколько я понимаю, эти переопределения предназначены для определенных c компонентов Istio, а не для того, как вы «используете» Istio как таковое.
Обычно, чтобы добавить шлюз / службу с Istio, вы должны использовать что-то вроде this с ресурсами Gateway
и VirtualService
.