'Duplicate entries for key' 在 EKS 上创建 Istio IngrressGateway 时出错
'Duplicate entries for key' error when creating an Istio IngrressGateway on EKS
我正在尝试创建一个 Istio 入口网关(istio:1.9.1,EKS:1.18),其中包含一个副本 targetPort
,如下所示:
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
metadata:
name: istio
spec:
components:
ingressGateways:
- name: ingressgateway
k8s:
service:
ports:
- port: 80
targetPort: 8080
name: http2
- port: 443
name: https
targetPort: 8080
但我收到错误:
- Processing resources for Ingress gateways.
✘ Ingress gateways encountered an error: failed to update resource with server-side apply for obj Deployment/istio-system/istio: failed to create typed patch object: errors:
.spec.template.spec.containers[name="istio-proxy"].ports: duplicate entries for key [containerPort=8080,protocol="TCP"]
我是 EKS 中的 运行 Istio,所以我们在 NLB 终止 TLS,因此所有流量(http
和 https
)都应该转到同一端口(8080)上的 pod )
有什么办法可以解决这个问题吗?
最后不得不使用不同的 targetPorts 才能使它正常工作
在 istio 1.8 版本之前,这种类型的配置有效(尽管最初存在问题)- github #53526.
从 1.9 版开始,会生成一个错误,您不能再在一个定义中使用两个相同的端口。在 github:
上也创建了(或重新打开)报告
但是,问题出在撰写回复时 Kubernetes 和 Istio 的版本已过时。
可能的解决方法:
- 使用不同的
targetPort
- 将 Kubernetes 和 Istio 升级到最新版本。
我正在尝试创建一个 Istio 入口网关(istio:1.9.1,EKS:1.18),其中包含一个副本 targetPort
,如下所示:
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
metadata:
name: istio
spec:
components:
ingressGateways:
- name: ingressgateway
k8s:
service:
ports:
- port: 80
targetPort: 8080
name: http2
- port: 443
name: https
targetPort: 8080
但我收到错误:
- Processing resources for Ingress gateways.
✘ Ingress gateways encountered an error: failed to update resource with server-side apply for obj Deployment/istio-system/istio: failed to create typed patch object: errors:
.spec.template.spec.containers[name="istio-proxy"].ports: duplicate entries for key [containerPort=8080,protocol="TCP"]
我是 EKS 中的 运行 Istio,所以我们在 NLB 终止 TLS,因此所有流量(http
和 https
)都应该转到同一端口(8080)上的 pod )
有什么办法可以解决这个问题吗?
最后不得不使用不同的 targetPorts 才能使它正常工作
在 istio 1.8 版本之前,这种类型的配置有效(尽管最初存在问题)- github #53526.
从 1.9 版开始,会生成一个错误,您不能再在一个定义中使用两个相同的端口。在 github:
上也创建了(或重新打开)报告但是,问题出在撰写回复时 Kubernetes 和 Istio 的版本已过时。
可能的解决方法:
- 使用不同的
targetPort
- 将 Kubernetes 和 Istio 升级到最新版本。