在前一篇我們說到怎麼用 Service 取得外部 IP,但實際使用上,我們還會替這個 IP 綁定一個 domain,一方面使用者會比較好記住,另一點則是如果 IP 有更動的話,我們只要去改 IP 跟 Domain 的 mapper 就可以了,不會影響到使用者。
通常我們有許多 service,難道每個服務都用不同的 public IP 嗎?這樣管理起來,不就超麻煩的。這時候就可以使用 ingress,它可以讓你內部維持獨立的服務,但是對外有統一的出口。
在今年如果取得 static IP 是可以免費使用,但 2020 年 1 月開始就要收費了。所以這個問題已經從管理上麻煩不麻煩,提升到成本會不會增加的問題了。
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: my-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
# kubernetes.io/ingress.global-static-ip-name: my-static-address
spec:
# tls:
# - secretName: my-api-secret
rules:
- http:
paths:
- path: /docs/*
backend:
serviceName: doc-service
servicePort: 80
- path: /test/*
backend:
serviceName: test-service
servicePort: 80
- path: /socket.io/*
backend:
serviceName: socket-service
servicePort: 80
- path: /*
backend:
serviceName: api-service
servicePort: 80