次のように 2 つのポートを公開する Kubernetes サービスがあります。
Name: m-svc
Namespace: m-ns
Labels:
Annotations: <none>
Selector: app=my-application
Type: ClusterIP
IP: 10.233.43.40
Port: first 8080/TCP
TargetPort: 8080/TCP
Endpoints: 10.233.115.178:8080,10.233.122.166:8080
Port: second 8888/TCP
TargetPort: 8888/TCP
Endpoints: 10.233.115.178:8888,10.233.122.166:8888
Session Affinity: None
Events: <none>
Ingress の定義は次のとおりです。
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: f5
virtual-server.f5.com/http-port: "80"
virtual-server.f5.com/ip: controller-default
virtual-server.f5.com/round-robin: round-robin
creationTimestamp: 2018-10-05T18:54:45Z
generation: 2
name: m-ingress
namespace: m-ns
resourceVersion: "39557812"
selfLink: /apis/extensions/v1beta1/namespaces/m-ns
uid: 20241db9-c8d0-11e8-9fac-0050568d4d4a
spec:
rules:
- host: www.myhost.com
http:
paths:
- backend:
serviceName: m-svc
servicePort: 8080
path: /first/path
- backend:
serviceName: m-svc
servicePort: 8080
path: /second/path
status:
loadBalancer:
ingress:
- ip: 172.31.74.89
しかし、 に行くと、 のポートでwww.myhost.com/first/path
リッスンしているサービスにたどり着きます。何が起こっているのでしょうか?8888
m-svc
もう 1 つの情報は、同じサービスの異なるポートを指す 2 つのイングレス間でサービスを共有しているということですが、これは問題ですか? このサービスには別の入力ポート (ポート 8888) があり、正常に動作します
また、F5コントローラーを使用しています
これを何度も調査した結果、根本的な原因は F5 にあるようです。バックエンド (Kubernetes サービス) の名前が同じであるため、プールにエントリを 1 つだけ作成し、リクエストをこれにルーティングするようです。バックエンドと、F5 ポリシーに登録される 1 つのポート。これに対する修正はありますか?回避策は、ポートごとに固有のサービスを作成することですが、この変更はしたくありません。これは F5 レベルで可能ですか?