我正在使用istio,问题是,如何配置特定于命名空间的网关:
看一个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
当我部署网关时,它将应用于当前的名称空间,但我想指定一个名称空间。
如何将网关分配给特定的名称空间?
答案 0 :(得分:2)
我认为这个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中创建网关,然后只需在虚拟服务中更改网关字段即可。
记住要添加名称空间/网关,而不仅要添加网关名称,例如there。
gateways:
- some-config-namespace/gateway-name
让我知道这是否对您有帮助。