Nginx IngressControllerは404Kubernetesを返します

Aug 16 2020

NodePortを介して公開したサービスを指す入力コントローラーを作成しようとしています。

これが入力コントローラーのyamlファイルです(から取得) https://kubernetes.io/docs/tasks/access-application-cluster/ingress-minikube/):

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: example-ingress
spec:
  rules:
  - host: hello-world.info
    http:
      paths:
      - path: /
        backend:
          serviceName: appName
          servicePort: 80

ノードポートに直接接続でき、フロントエンドが表示されます。

フロントエンドアプリが私が作成した他のデプロイメントに接続できず、入力コントローラーが問題を解決できることを読んだため、これを行っていることに注意してください。Nginxリバースプロキシを追加する必要がありますか?もしそうなら、私はそれをどのように行うでしょうか?これをnginx設定ファイルに追加しようとしましたが、成功しませんでした。

location /middleware/ {
      proxy_pass http://middleware/;
   }

回答

2 Faheem Aug 16 2020 at 09:10

Ingressオブジェクトで定義されたルートに到達するには、適切なホスト名を使用する必要があります。/etc/hostsファイルを更新するか、curl -H "hello-world.info" localhosttypeコマンドを使用してください。または、hostマッピングを削除して、すべてのトラフィックを1つのデフォルトサービスにリダイレクトすることもできます。

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: example-ingress
spec:
  rules:
  - http:
      paths:
      - path: /
        backend:
          serviceName: appName
          servicePort: 80