higress
higress copied to clipboard
higress 支持 externalName类型的service
Why do you need it?
目前我们使用ingressrule 后面跟上externaleName的类型的Service来访问阿里云 OSS 但是同样的配置在higress无法实现
How could it be?
apiVersion: v1
kind: Service
metadata:
name: oss-f6-static-svc
namespace: test
spec:
type: ExternalName
externalName: f6-static.oss-cn-shanghai.aliyuncs.com
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: front-root-view-ingress
annotations:
kubernetes.io/ingress.class: higress
nginx.ingress.kubernetes.io/rewrite-target: /hiveview/test/index.html
nginx.ingress.kubernetes.io/upstream-vhost: f6-static.oss-cn-shanghai.aliyuncs.com
nginx.ingress.kubernetes.io/use-regex: "true"
spec:
rules:
- host: m-test.f6car.org
http:
paths:
- path: /
backend:
serviceName: oss-f6-static-svc
servicePort: 80
{"authority":"m-test.f6car.org","bytes_received":"0","bytes_sent":"0","downstream_local_address":"10.200.69.182:80","downstream_remote_address":"10.200.65.0:7638","duration":"0","istio_policy_status":"-","method":"GET","path":"/","protocol":"HTTP/1.1","request_id":"af21d795-ef17-4bd4-8a3a-f10d9721cc12","requested_server_name":"-","response_code":"503","response_flags":"NC","route_name":"test/thai-root-view-ingress","start_time":"2024-03-04T09:42:00.832Z","trace_id":"-","upstream_cluster":"-","upstream_host":"-","upstream_local_address":"-","upstream_service_time":"-","upstream_transport_failure_reason":"-","user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0","x_forwarded_for":"10.200.65.0"}
但是如果我们换成其他svc都可以正常工作
Other related information
Add any other context or screenshots about the feature request here.
另外我看也有其他人反馈类似的问题 https://github.com/alibaba/higress/discussions/799
我测试了externalname service,是没问题的,是不是你的ingress和service不在一个命名空间?
external name service里需要指定端口:
apiVersion: v1
kind: Service
metadata:
name: oss-f6-static-svc
namespace: test
spec:
type: ExternalName
externalName: f6-static.oss-cn-shanghai.aliyuncs.com
ports:
- port: 80
protocol: TCP
还是不行
apiVersion: v1
kind: Service
metadata:
name: httpbinorg
namespace: default
spec:
type: ExternalName
externalName: httpbin.org
ports:
- port: 80
protocol: TCP
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: foo
namespace: default
spec:
ingressClassName: higress
rules:
- http:
paths:
- backend:
service:
name: httpbinorg
port:
number: 80
path: /get
pathType: Prefix
status:
loadBalancer: {}
@qixiaobo 这是我的测试配置,你可以对比看下你的配置,检查下是哪里配置有问题
可以试试删除service再重新创建