【问题标题】:How can I proxy an external site through my Kubernetes(OpenShift) Ingress?如何通过我的 Kubernetes(OpenShift) Ingress 代理外部站点?
【发布时间】:2021-11-20 20:51:44
【问题描述】:

我有一个需要通过我的网络应用代理的网站。
传统上,我们通过带有代理指令的 apache 代理来完成它。
代理还重写了一些标头并添加了一些新标头。

现在该应用程序已迁移到 OpenShift (Kubernetes),我正在尝试避免使用 apache 部署另一个 pod。

我可以通过 K8 入口执行此标头重写和代理吗?还是路由器?

我尝试过这种方法,但没有成功。

我也不知道如何获取 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

我也尝试过使用 Endpoints ,结果相同

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

【问题讨论】:

  • 不起作用?你的意思是? Conf 看起来不错。也许后端站点上有一些 http 到 https 重定向,尝试在您的 Route 中更改 tls 终止

标签: kubernetes openshift kubernetes-ingress


【解决方案1】:

你想代理非 kubernetes 服务,对吧?如果是,请使用端点并从端点创建服务,我已经将它与 kubernetes 一起使用,我的猜测也可以与 openshift 一起使用

https://kubernetes.io/docs/concepts/services-networking/endpoint-slices/

【讨论】:

    猜你喜欢
    • 2021-07-21
    • 2013-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-26
    • 2021-02-02
    • 2021-01-19
    • 2019-02-18
    相关资源
    最近更新 更多