mapping 通过rest 资源与k8s 的service进行关联,ambassador 必须有一个或者多个提供访问servide 的mapping定义

mapping 可以包含的配置

  • rewrite rule
修改URL 对于k8s service 的访问
  • weight
指定流量路由的权重
  • host
指定请求的host header

mapping 的处理顺序

ambassador 对于mappings 会进行排序,较多约束的会优先于较低的约束,请求
前缀的长度,请求的方法,以及约束的header 都会有影响,如果有必须可以使用
precedence 进行修改,但是通常来说没有必要,除非使用了regex_headers 以及
host_regex的mapping 特性,如果有相关的问题,查看统计分析界面会比较好

可选的降级处理

可以使用catch-all 进行默认处理,比如404
参考
---
apiVersion: ambassador/v0
kind: Mapping
name: catch-all
prefix: /
service: https://www.getambassador.io

定义mapping

参考
最简单的例子
---
apiVersion: ambassador/v0
kind: Mapping
name: qotm_mapping
prefix: /qotm/
service: http://qotm
一个cqrs 的例子
---
apiVersion: ambassador/v0
kind: Mapping
name: cqrs_get_mapping
prefix: /cqrs/
method: GET
service: getcqrs
---
apiVersion: ambassador/v0
kind: Mapping
name: cqrs_put_mapping
prefix: /cqrs/
method: PUT
service: putcqrs
更多配置参考:https://www.getambassador.io/reference/mappings.html

几个配置的使用

  • host_rewrite
主要是为了解决一些微服务框架基于主机头进行路由
参考:
---
apiVersion: ambassador/v0
kind: Mapping
name: httpbin_mapping
prefix: /httpbin/
service: httpbin.org:80
host_rewrite: httpbin.org
  • host && host-regex
基于http header HOST 的mapping
参考
---
apiVersion: ambassador/v0
kind: Mapping
name: qotm_mapping
prefix: /qotm/
service: qotm1
---
apiVersion: ambassador/v0
kind: Mapping
name: qotm_mapping
prefix: /qotm/
host: qotm.datawire.io
service: qotm2
---
apiVersion: ambassador/v0
kind: Mapping
name: qotm_mapping
prefix: /qotm/
host: "^qotm[2-9]\\.datawire\\.io$"
host_regex: true
service: qotm3
  • headers
对于包含特定header 的请求进行mapping
参考
---
apiVersion: ambassador/v0
kind: Mapping
name: qotm_mapping
prefix: /qotm/
headers:
x-qotm-mode: canary
x-random-header: datawire
service: qotm
  • cors
进行跨域的处理(基于cors)
参考
apiVersion: ambassador/v0
kind: Mapping
name: cors_mapping
prefix: /cors/
service: cors-example
cors:
origins: http://foo.example,http://bar.example
methods: POST, GET, OPTIONS
headers: Content-Type
credentials: true
exposed_headers: X-Custom-Header
max_age: "86400"

参考资料

https://www.getambassador.io/reference/mappings

 
 
 
 

最新文章

  1. adb工具获取appPackage和appActivity
  2. 为Linux重新开发MVC,有图有真相
  3. spring异常-aoperror at :0 formal unbound in pointcut
  4. 在virtualbox中安装CentOS-7
  5. 从为什么String=String谈到StringBuilder和StringBuffer
  6. bzoj3756: Pty的字符串
  7. 如何提升 service 等级,不被kill(整合)
  8. POJ1325 Machine Schedule
  9. Android 自定义View高级特效,神奇的贝塞尔曲线
  10. python读取bin文件并下发串口
  11. Coursera课程 Programming Languages, Part A 总结
  12. Socket层实现系列 — connect()的实现
  13. EF_简单的增删改查
  14. 用Java画简单验证码
  15. 【xsy2332】Randomized Binary Search Tree DP+FFT
  16. 动态分配内存 new
  17. python小数据池概念以及具体范围
  18. 一些javascript的工具书
  19. 顶级域名和子级域名之间的cookie共享和相互修改、删除
  20. MYSQL TIMESTAMP with implicit DEFAULT value is deprecated.

热门文章

  1. Vue学习笔记之Vue的对象单体模式
  2. 微信小程序:JS 交互逻辑
  3. Java学习笔记心得——初识Java
  4. A8几种内存
  5. IntelliJ IDEA 中配置lombok插件,编写简略风格Java代码
  6. Java 面试题收集
  7. 51Nod 1509 加长棒(隔板法)
  8. Java中的String和StringBuffer
  9. JavaScript--语法2--语句结构
  10. windows 上 Python 通过 SCP 连接linux server