浏览器,则应在命名空间中调用服务 FOO
example1 。
浏览器,则应在命名空间中调用服务 FOO
example2 。
我正在使用istio,问题是如何配置网关,该网关特定于 namespace 绑定(bind):
查看一个istio网关配置示例:
$ kubectl apply -f - <<EOF
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: ns_example1
spec:
selector:
istio: ingressgateway # use Istio default gateway implementation
servers:
- port:
number: 80
name: http
protocol: HTTP
hosts:
- "example1.example.com"
EOF
当我部署网关时,它将应用于当前的 namespace ,但我想指定一个 namespace 。
如何为特定的 namespace 分配网关?
最佳答案
我认为这个link应该可以回答您的问题。
您不需要很多东西,但是有一个想法要应用于istio集群。
因此,您需要1个网关和2个虚拟服务。
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: foocorp-gateway
namespace: default
spec:
selector:
istio: ingressgateway # use istio default ingress gateway
servers:
- port:
number: 80
name: http-example1
protocol: HTTP
hosts:
- "example1.example.com"
- port:
number: 80
name: http-example2
protocol: HTTP
hosts:
- "example2.example.com"
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: example1
namespace: ex1
spec:
hosts:
- "example1.example.com"
gateways:
- foocorp-gateway
http:
- match:
- uri:
exact: /
route:
- destination:
host: example1.ex1.svc.cluster.local
port:
number: 80
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: example2
namespace: ex2
spec:
hosts:
- "example2.example.com"
gateways:
- foocorp-gateway
http:
- match:
- uri:
exact: /
route:
- destination:
host: example2.ex2.svc.cluster.local
port:
number: 80
编辑
您可以在命名空间ex1和ex2中创建网关,然后只需在虚拟服务中更改网关字段即可。
记住要添加 namespace /网关,而不仅要添加网关名称,例如there。
gateways:
- some-config-namespace/gateway-name
让我知道是否对您有帮助。
关于kubernetes - 如何将网关绑定(bind)到特定的 namespace ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59576218/