Daily Archives: 2026年10月3日

Nginx Ingressをk8s外のサーバーへのリバースプロキシとして使う

k8sにてIngressと言えばk8s内のPodを公開する機能です。

またIngress ControllerにはNginxやHaProxyなどの種類があることも公式のドキュメントで触れられていますね。

そういった説明を読んでいて、ふとNginxで動いているならPodだけでなく外部のサービスにリバースプロキシできれば構成の幅が広がるのでは?と思い設定を調べてみました。

結果だけ先に話すとk8s外へのリバースプロキシは可能でした。

以下が構成yamlになります。ポイントはPodができると自動的に作成されるEndpointoを手動で作成するってところでしょうかね?

apiVersion: v1
kind: Endpoints
metadata:
  name: external-media
subsets:
- addresses:
  - ip: 192.168.11.202
  ports:
  - port: 9000
apiVersion: v1
kind: Service
metadata:
  name: external-media
spec:
  ports:
  - port: 9000
    protocol: TCP
    targetPort: 9000
  clusterIP: None
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: external-media
  annotations:
    nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
    nginx.ingress.kubernetes.io/proxy-body-size: 1024m
spec:
  rules:
  - host: media.ranranhome.info
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: external-media
            port:
              number: 9000

これでPodで起動していないサービスを外部に公開できます。