2 つのアプリケーションをデプロイしようとしています (2 つの個別のデプロイ オブジェクトの背後にあります)。type の Deployment ごとに 1 つの Service がありNodePort
ます。
application1_service.yaml
apiVersion: v1
kind: Service
metadata:
name: application1-service
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: application1
type: NodePort
application2_service.yamlはまったくname
同じです (とを除くrun
)
Ingress を使用して 2 つのサービスを利用できるようにします。
ingress.yaml
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: my-ingress
annotations:
kubernetes.io/ingress.global-static-ip-name: "my-static-ip"
networking.gke.io/managed-certificates: "my-certificate"
kubernetes.io/ingress.class: "gce"
spec:
rules:
- host: "my.host.com"
http:
paths:
- path: /*
backend:
serviceName: application1-service
servicePort: 80
- path: /application2/*
backend:
serviceName: application2-service
servicePort: 80
ManagedCertificate
HTTPS リクエストを処理できるように、オブジェクトも作成します。
managed_certificate.yaml
apiVersion: networking.gke.io/v1beta1
kind: ManagedCertificate
metadata:
name: my-certificate
spec:
domains:
- my.host.com
ここで奇妙なのは、curl https://my.host.com/
問題なく動作し、サービスにアクセスできることですが、試してみるcurl https://my.host.com/application2/
と404 Not Found
.
ルートが機能していて、他のルートが機能していないのはなぜですか?
追加情報: ManagedCertificate は有効であり、正常に動作し/
ます。application1 と application2 はまったく同じアプリであり、イングレスでそれらを交換すると、出力は同じになります。
ご協力いただきありがとうございます !
編集:
application2 にアクセスしようとすると、404 が表示されます。
それが役立つかどうかはわかりませんが、404 を示すイングレス アクセス ログの一部もここにあります。