Category Archives: 自宅サーバー

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

ちなみにこんなことをしようとした理由ですが、Cloudflareでトンネル貼って公開するなら間にNginx挟まずにIngressだけでやればよくね?って思ったからです。

光クロスで固定IP(IPv4)を手に入れる方法

前回光クロスにした結果、IPv4でサーバーにアクセスできなくなったことを話しました。

そんな状態ですから「いっそVPCに移行するか?」とも考えましたが、インターリンクからVPN方式で固定IPを割り振るマイIPなるサービスを発見。

このサービスを利用することでIPv4でも自宅サーバーにアクセスできるようになり事なきを得ました。

PPPoEの固定IP標準サービスと良い相変わらず自鯖勢には有用なサービスを提供してくれます。これで通信品質が良ければ・・・(ゴニョゴニョ

1.OpenWrtをWireGuardクライアントにする

ルーター兼HaproxyとしてOpenWrtを使っているのでOpenWrtをVPNクライアントにします。

WireGuardを選択した理由としては通信速度が速いという触れ込みと、再接続性が高いためです。(PPPoEの時はルーター再起動後の再接続に結構時間がかかっていたので・・・)

luci上で「luci-proto-wireguard」をインストールすれば残りは関連パッケージとして入りました。

インストール後は本体を再起動してください。

2.WireGuardの接続情報を発行する

マイIPは初期状態では「IKEv2 / L2TP / PPTP」なので接続モードを切り替えてWireguardに変更してください。

切り替え後、下のリンクよりConfigファイルをダウンロードして操作端末に保存しておいてください。

3.OpenWrtのインタフェースを設定

「インタフェース」>「インタフェースを新規作成」から「Wireguard VPN」インタフェースを作成します。

作成したら以下の画面から「Import Configuration」をクリックするとテキスト入力欄が開きます。

ここに2.でダウンロードしたコンフィグファイルの中身をコピペで貼り付けます。

そうすることで必要な接続設定が簡単に設定できますので保存してください。

あとは変更を適用後、正しく接続できていれば固定IPが表示されているはずです。

後は確認サイトにて固定IPで通信できていることを確認して、外部から接続できるようにポート開放やらの作業を行えば光クロス環境でもIPv4でサーバーを公開できます。