Ambassador和Istio:边缘代理和服务网格

作者:Richard Li

翻译:王斌

原文:Ambassador and Istio: Edge proxy and service mesh

Ambassador(https://www.getambassador.io)是一个 Kubernetes 原生的微服务 API 网关,它部署在网络边缘,将传入网络的流量路由到相应的内部服务(也被称为“南北”流量)。Istio是微服务的服务网格,旨在将L7的可观察性、路由和弹性加入到从服务到服务的流量中(也被称为“东西”流量)。 Istio 和 Ambassador底层都使用了Envoy。

Ambassador 和 Istio 可以一起部署在 Kubernetes 上。在这种部署方式下,来自集群外部的入站流量首先会经过 Ambassador,再由 Ambassador将流量路由到 Istio。Ambassador 主要处理认证、边缘路由、TLS终结,以及一些传统的边缘功能。

这种部署方式能让运维人员得到一个高性能、现代化的边缘服务(Ambassador)与最先进的服务网格(Istio)相结合的网络。虽然 Istio 本身就有一个基本入口控制器,但其功能非常有限,并且不支持身份验证以及 Ambassador所拥有的许多功能。

Ambassador和Istio 协同工作

要让 Ambassador 与 Istio 协同工作其实很简单,我们以 Istio 的bookinfo示例来举个例子:

1. 首先,在 Kubernetes 上安装 Istio。

参考指南:https://istio.io/docs/setup/kubernetes/quick-start.html

2. 然后,安装 Bookinfo 示例应用。

参考指南:https://istio.io/docs/guides/bookinfo.html

3.验证示例是否按预期正常工作。

Bookinfo 示例默认使用的是 Istio 的入口控制器,要使用 Ambassador,我们还需要进行以下操作:

1. 安装Ambassador。

参考指南:https://www.getambassador.io/user-guide/getting-started

2. 更新bookinfo.yaml清单以包含必要的Ambassador注解,操作如下:

apiVersion: v1

kind: Service

metadata:

name: productpage

labels:

app: productpage

annotations:

getambassador.io/config:

---

apiVersion: ambassador/v0

kind: Mapping

name: productpage_mapping

prefix: /productpage/

rewrite: /productpage

service: productpage:9080

spec:

ports:

- port:9080

name: http

selector:

app: productpage

输入kubectl delete ingress gateway命令,这将会删除bookinfo.yaml清单中的入口控制器。此步骤为可选。

访问$AMBASSADOR_IP/productpage/,测试 Ambassador 是否已经起作用。可以通过kubectl get services ambassador命令来获取 Ambassador 的实际IP地址。

Sidecar注入

新版本的 Istio 支持 Kubernetes 初始化程序自动注入Istio Sidecar。有了Ambassador,你不再需要注入Istio Sidecar,因为 Ambassador 的 Envoy 实例将自动路由到相应的服务。如果你正在使用的是自动Sidecar注入方式,那么需要将 Istio 配置成不要自动为 Ambassador pods 注入Sidecar。具体操作方法可以参阅这份说明文档。

文档链接:https://istio.io/docs/setup/kubernetes/sidecar-injection.html#configuration-options

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180122G0N4PC00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券