k8s ingress 重定向到集群外的端点
k8s ingress redirect to endpoint outside the cluster
我正在使用 google 云,GKE。
我有这个例子ingress.yaml
:
1 apiVersion: extensions/v1beta1
2 kind: Ingress
3 metadata:
4 name: kuard
5 namespace: sample
6 annotations:
7 kubernetes.io/ingress.class: "nginx"
8 cert-manager.io/issuer: "letsencrypt-prod"
9 nginx.ingress.kubernetes.io/permanent-redirect: https://www.google.com
10 spec:
11 tls:
12 - hosts:
13 - example.gordion.io
14 secretName: quickstart-example-tls
15 rules:
16 - host: example.gordion.io
17 http:
18 paths:
19 - path: /
20 backend:
21 serviceName: kuard
22 servicePort: 80
我需要当用户请求特定主机时,例如:example-2.gordion.io
,使用 nginx 重定向到集群外部的其他站点(实际上在其他 google 集群上)。
目前我只知道似乎是全局的特定注释nginx.ingress.kubernetes.io/permanent-redirect
。如何根据此入口文件中的特定请求主机进行重定向?
您将 externalName 服务与另一个入口文件组合:
在下面的 yaml 文件中,我们定义了一个名为 example-2.gordion.io-service
的 ExternalName 服务,这将导致另一个集群中的真实站点服务:
kind: Service
apiVersion: v1
metadata:
name: example-2.gordion.io-service
spec:
type: ExternalName
externalName: internal-name-of-example-2.gordion.io
以及将 example-2.gordion.io
定向到 example-2.gordion.io-service
的入口文件:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: example-ingress
annotations:
kubernetes.io/ingress.class: "nginx"
spec:
rules:
- host: example-2.gordion.io
http:
paths:
- path: /
backend:
serviceName: example-2.gordion.io-service
servicePort: 80
我正在使用 google 云,GKE。
我有这个例子ingress.yaml
:
1 apiVersion: extensions/v1beta1
2 kind: Ingress
3 metadata:
4 name: kuard
5 namespace: sample
6 annotations:
7 kubernetes.io/ingress.class: "nginx"
8 cert-manager.io/issuer: "letsencrypt-prod"
9 nginx.ingress.kubernetes.io/permanent-redirect: https://www.google.com
10 spec:
11 tls:
12 - hosts:
13 - example.gordion.io
14 secretName: quickstart-example-tls
15 rules:
16 - host: example.gordion.io
17 http:
18 paths:
19 - path: /
20 backend:
21 serviceName: kuard
22 servicePort: 80
我需要当用户请求特定主机时,例如:example-2.gordion.io
,使用 nginx 重定向到集群外部的其他站点(实际上在其他 google 集群上)。
目前我只知道似乎是全局的特定注释nginx.ingress.kubernetes.io/permanent-redirect
。如何根据此入口文件中的特定请求主机进行重定向?
您将 externalName 服务与另一个入口文件组合:
在下面的 yaml 文件中,我们定义了一个名为 example-2.gordion.io-service
的 ExternalName 服务,这将导致另一个集群中的真实站点服务:
kind: Service
apiVersion: v1
metadata:
name: example-2.gordion.io-service
spec:
type: ExternalName
externalName: internal-name-of-example-2.gordion.io
以及将 example-2.gordion.io
定向到 example-2.gordion.io-service
的入口文件:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: example-ingress
annotations:
kubernetes.io/ingress.class: "nginx"
spec:
rules:
- host: example-2.gordion.io
http:
paths:
- path: /
backend:
serviceName: example-2.gordion.io-service
servicePort: 80