Ingressを作成することで、API ProxyからのHTTP通信を、Serviceにルーティングすることができます。ここでは、my-serviceという名前のServiceを例にして、Ingressの作成方法を説明します。
ingress.yml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: test-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: app.example.com
http:
paths:
- path: /testpath
backend:
serviceName: my-service
servicePort: 80
| パラメーター | 説明 |
|---|---|
| metadata.name | このIngressリソースの名前を指定します。 |
| metadata.annotations.nginx.ingress.kubernetes.io/rewrite-target |
リクエストのURLを書き換えるためのルールを指定します。 spec.rules.http.paths.pathで指定されたURLを、本パラメーターで指定したURLに書き換えることができます。 本パラメーターの指定は任意です。 本例のように指定し、"/testpath"にアクセスすると、my-serviceの"/"にアクセスします。 なお指定しない場合、"/testpath"にアクセスすると、my-serviceの"/testpath"にアクセスします。 |
| spec.rules.host | アプリケーションのドメイン名を指定します。 |
| spec.rules.http.paths.path |
Serviceへ転送するパスを指定します。 指定したパスでリクエストを受け付けると、spec.rules.http.paths.backendに指定したServiceに転送します。 本例の場合、app.example.com/testpathで受け付けたリクエストが転送されます。 |
| spec.rules.http.paths.backend.serviceName |
転送先のServiceの名前を指定します。 Serviceのmetadata.nameと同じ値を指定する必要があります。 |
| spec.rules.http.paths.backend.servicePort |
転送先のServiceのポート番号を指定します。 Serviceのspec.ports.portと同じ値を指定する必要があります。 |
参考
Ingressの詳細についてはKubernetesの公式ページを参照してください。# kubectl apply -f ingress.yml