Ambassador系列-01-介绍、安装和使用

介绍Ambassador是由Datawire公司开源的一个API网关项目,在Github上有2.3K star。Ambassador当前(2019-12-11)的最新的版本是0.86.0,马上准备发布1.0.0版本,更新很频繁,而且主要在y版本更新,已经趋于成熟。从0.50.0版本开始从apiVersion: getambassador.io/v0升级为apiVersion: getamba...
摘要由CSDN通过智能技术生成

介绍

Ambassador是由Datawire公司开源的一个API网关项目,在Github上有2.3K star。

Ambassador当前(2019-12-11)的最新的版本是0.86.0,马上准备发布1.0.0版本,更新很频繁,而且主要在y版本更新,已经趋于成熟。

从0.50.0版本开始从apiVersion: getambassador.io/v0升级为apiVersion: getambassador.io/v1,表明API已经趋于稳定。

Ambassador Architecture

Ambassador是一个基于envoy proxy构建的,kubernetes原生的开源微服务网关。Ambassador具有控制平面和数据平面的。数据平面是envoy,Ambassador的控制平面负责监听k8中的service资源的变化,并将配置下发envoy,实际的流量转发通过envoy来完成。

具体流程如下:

  1. 服务所有者在kubernetes manifests中定义配置(通过annotation或者CRD)。
  2. 当manifest应用到集群时,kubernetes api会将更改通知Ambassador。
  3. Ambassador解析更改并将配置转换为一种中间语义。envoy的配置由该IR生成。
  4. 新的配置通过基于gRPC的聚合发现服务(ADS)API传递给envoy。
  5. 流量通过重新配置的envoy,而不会断开任何连接。

特点

  • 扩展和可用性

Ambassador将控制平面和envoy数据平面包装为一个容器,Ambassador没有自己的数据库,所有的数据都直接存储在Kubernetes的etc中。这样的实现使得Ambassador可像普通应用一样在Kubernetes中部署,可以直接采用Kubernetes的动态扩展的优点。

  • 无状态架构

Ambassador是完全无状态的体系结构,每个Ambassador实例都独立于其它实例运行。Ambassador各个实例依赖Kubernetes来协调不同实例之间的配置。

安装

Ambassador有两种部署方式,yaml和helm部署,由于Helm v3版本安装ambassador有bug,无法安装,此次采用yaml安装方式。

在安装Ambassador之前先修改一下Kubernetes NodePort取值范围,改为1-39999。

vi /etc/kubernetes/manifests/kube-apiserver.yaml
    - --service-node-port-range=1-39999
systemctl daemon-reload
systemctl restart kubelet

安装Ambassador。

mkdir ambassador
cd ambassador

wget https://getambassador.io/yaml/ambassador/ambassador-rbac.y
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值