如何通过我的 Kubernetes(OpenShift) Ingress 代理外部站点?
How can I proxy an external site through my Kubernetes(OpenShift) Ingress?
我有一个网站需要通过我的网络应用程序进行代理。
传统上,我们通过带有代理指令的 apache 代理来完成它。
代理还重写了一些 header 并添加了一些新的。
现在该应用程序已转移到 OpenShift (Kubernetes),我正试图避免使用 apache 部署另一个 pod。
我可以通过 K8 ingress 执行此 header 重写和代理吗?还是路由器?
我试过这种方法,但没用。
我也不知道如何获取 OpenShift Ingress 日志,里面似乎什么也没有发生。
我尝试使用外部名称,但它不起作用:
kind: Service
metadata:
name: es3
spec:
externalName: google.com
type: ExternalName
---
kind: Route
apiVersion: route.openshift.io/v1
spec:
host: host.my-cluster-url.net
to:
kind: Service
name: es3
port:
targetPort: es3
我也试过使用端点,结果相同
apiVersion: v1
kind: Service
metadata:
name: mysvc
spec:
ports:
- name: app
port: 80
protocol: TCP
targetPort: 80
clusterIP: None
type: ClusterIP
---
apiVersion: v1
kind: Endpoints
metadata:
name: mysvc
subsets:
- addresses:
- ip: my.ip.address
ports:
- name: app
port: 80
protocol: TCP
您想代理非 kubernetes 服务,对吗?如果是,请使用端点并从端点创建服务,我已经将其与 kubernetes 一起使用,我的猜测也将与 openshift 一起使用
https://kubernetes.io/docs/concepts/services-networking/endpoint-slices/
我有一个网站需要通过我的网络应用程序进行代理。
传统上,我们通过带有代理指令的 apache 代理来完成它。
代理还重写了一些 header 并添加了一些新的。
现在该应用程序已转移到 OpenShift (Kubernetes),我正试图避免使用 apache 部署另一个 pod。
我可以通过 K8 ingress 执行此 header 重写和代理吗?还是路由器?
我试过这种方法,但没用。
我也不知道如何获取 OpenShift Ingress 日志,里面似乎什么也没有发生。
我尝试使用外部名称,但它不起作用:
kind: Service
metadata:
name: es3
spec:
externalName: google.com
type: ExternalName
---
kind: Route
apiVersion: route.openshift.io/v1
spec:
host: host.my-cluster-url.net
to:
kind: Service
name: es3
port:
targetPort: es3
我也试过使用端点,结果相同
apiVersion: v1
kind: Service
metadata:
name: mysvc
spec:
ports:
- name: app
port: 80
protocol: TCP
targetPort: 80
clusterIP: None
type: ClusterIP
---
apiVersion: v1
kind: Endpoints
metadata:
name: mysvc
subsets:
- addresses:
- ip: my.ip.address
ports:
- name: app
port: 80
protocol: TCP
您想代理非 kubernetes 服务,对吗?如果是,请使用端点并从端点创建服务,我已经将其与 kubernetes 一起使用,我的猜测也将与 openshift 一起使用
https://kubernetes.io/docs/concepts/services-networking/endpoint-slices/