官方文档:https://www.getambassador.io/docs/latest/topics/using/intro-mappings/#resources
Ambassador 通过Mapping资源,设置应用程序的映射关系。
mapping与service的映射关系
Required attribute | Description |
---|---|
name |
is a string identifying the Mapping (e.g. in diagnostics) |
prefix |
is the URL prefix identifying your resource |
service |
is the name of the service handling the resource; must include the namespace (e.g. myservice.othernamespace ) if the service is in a different namespace than Ambassador |
name
其中,name不可以重复,所有的namespace下,都不可以重复。
Ambassador Edge Stack must have one or more mappings defined to provide access to any services at all. The name of the mapping must be unique. (******)
prefix
url前缀,以下的url可是设置一个prefix :resource1
https://ambassador.example.com/resource1/foo https://ambassador.example.com/resource1/bar https://ambassador.example.com/resource1/baz/zing https://ambassador.example.com/resource1/baz/zung
注意:prefix不能是“/”
如果 prefix=/man
那么它将会匹配下面所有的url
https://ambassador.example.com/man/foo https://ambassador.example.com/mankind https://ambassador.example.com/man-it-is/really-hot-today https://ambassador.example.com/manohmanohman
services
service的定义如下:
[scheme://]service[.namespace][:port]
1. sheme 可以是http或者https,默认是http
2. service是kubernetes service的name
3.namespace指的是应用远行的namespace
4.port是应该向其发送请求的端口,http默认是80。https默认是443
以下这个例子,所有请求到/httpbin/,都会转发到 http://httpbin.org
--- apiVersion: getambassador.io/v2 kind: Mapping metadata: name: httpbin-mapping spec: prefix: /httpbin/ service: http://httpbin.org