通过ingress-nginx反向代理外部域名

Sometimes there are applications that can’t or won’t migrate to kubernetes, but we still want to manage their domains in kubernetes.

Now I will use ingress-nginx to proxy FreeIPA’s external domain main.ipa.example.com, which use a private SSL certificate.

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    ingress.kubernetes.io/ssl-redirect: "true"
    nginx.ingress.kubernetes.io/ssl-redirect: "true"
    nginx.ingress.kubernetes.io/server-snippet: |
      if ($request_uri ~* "^/$") { rewrite .* /ipa/ui;}
      location ^~ "/ipa" {
        proxy_pass https://main.ipa.example.com;
        proxy_cookie_domain main.ipa.example.com ipa.example.dev;
        proxy_set_header Referer https://main.ipa.example.com/ipa/ui;
        proxy_ssl_name main.ipa.example.com;
        proxy_ssl_server_name on;
      }
  labels:
    app.example.dev/ingress: freeipa
  name: freeipa
  namespace: devops
spec:
  ingressClassName: nginx
  rules:
  - host: ipa.example.dev
  tls:
  - hosts:
    - ipa.example.dev
    secretName: example-dev
Share: X (Twitter) Facebook LinkedIn