文档章节

Envoy 作为 Kubernetes 的 API 网关

openthings
 openthings
发布于 2018/06/19 17:20
字数 566
阅读 257
收藏 7

Envoy 作为 Kubernetes 的 API 网关

使用 Ambassador 的一个常见场景是将其部署为 Kubernetes 的 edge 服务( API 网关)。Ambassador 是开源 Envoy 的分布式版本,专门为 kubernetes 设计的。

本例将介绍如何通过 Ambassador 在 Kubernetes 上部署 Ambassador 。

部署 Ambassador

Ambassador 的设置是通过 kubernetes 部署的。为了在 kubernetes 安装 Ambassador/Envoy,如果你的集群启动了 RBAC:

kubectl apply -f https://www.getambassador.io/yaml/ambassador/ambassador-rbac.yaml

如果您没启动 RBAC:

kubectl apply -f https://www.getambassador.io/yaml/ambassador/ambassador-no-rbac.yaml

上面的 YAML 将会为 Ambassador 创建 kubernetes 部署,包含 readiness 和 liveness 检查。默认,将会创建3个 Ambassador 实例。每一个 Ambassador 实例包含一个 Envoy 代理以及一个 Ambassador 控制器。

我们现在需要创建一个 Kubernetes 服务来指向 Ambassador 的部署,我们将使用 LoadBalancer 服务。如果你的集群不支持 LoadBalancer 服务,你需要改成 NodePort 或者 ClusterIP

---
apiVersion: v1
kind: Service
metadata:
  labels:
    service: ambassador
  name: ambassador
spec:
  type: LoadBalancer
  ports:
  - port: 80
    targetPort: 80
  selector:
    service: ambassador

将上面的 YAML 文件保存成ambassador-svc.yaml文件。然后将这个服务部署到 kubernetes:

kubectl apply -f ambassador-svc.yaml

这时候 Envoy 和 Ambassador 控制器已经在你的集群上运行。

配置 Ambassador

Ambassador 使用 Kubernetes 注解来添加或删除配置。这个示例 YAML 将添加一条到 Google 的路由,类似于入门指南中的基本配置示例。

---
apiVersion: v1
kind: Service
metadata:
  name: google
  annotations:
    getambassador.io/config: |
      ---
      apiVersion: ambassador/v0
      kind:  Mapping
      name:  google_mapping
      prefix: /google/
      service: https://google.com:443
      host_rewrite: www.google.com
spec:
  type: ClusterIP
  clusterIP: None

保存上面的文件,命名为 google.yaml。然后运行:

kubectl apply -f google.yaml

Ambassador 将发现您的 Kubernetes 注解的更改,并添加到 Envoy 的路由。注意,我们在这个例子中使用了一个虚拟服务;通常,您会将注解与真正的 Kubernetes 服务关联起来。

测试映射

您可以通过获得 Ambassador 服务的外部 IP 地址来测试这个映射,然后通过curl发送请求:

$ kubectl get svc ambassador
NAME         CLUSTER-IP     EXTERNAL-IP     PORT(S)        AGE
ambassador   10.19.241.98   35.225.154.81   80:32491/TCP   15m
$ curl -v 35.225.154.81/google/

更多

Ambassador 在上公开了多个 Envoy 的特性映射,比如 CORS 、加权循环调度算法、gRPC、TLS 和超时设定。要了解更多信息,请阅读配置文档

本文转载自:https://servicemesher.github.io/envoy/start/distro/ambassador.html

openthings
粉丝 322
博文 1138
码字总数 687611
作品 1
东城
架构师
私信 提问
Kubernetes 原生 API 网关 - Ambassador

Ambassador 是一个基于 Envoy 构建的 Kubernetes 原生 API 网关,专为微服务而设计,它本质上是一个 Envoy 入口控制器,但具有更多功能。 关键特性包括: 自助服务配置,通过 Kubernetes 注解...

匿名
07/09
299
0
kubernetes ingress controller 选择哪一种具体的api网关来支撑微服务呢?

公司准备上微服务,也在接触比较火的kubernetes,现在发现kubernetes上的ingress controller有很多种具体的技术,例如nginx,traefik,envoy等等 微服务中,有独立的认证服务器来处理认证和权限问题...

大王来巡山
2018/05/23
1K
3
Istio 0.8.0 LTS 正式发布,大型微服务系统管理平台

北京时间 2018 年 6 月 1 日(儿童节)上午 9: 30 Istio 0.8.0 LTS(长期支持版本)发布。该版本除了常见的一堆错误修复和性能改进之外,还包含以下更新和新功能。 网络 改进了流量管理模型。...

局长
2018/06/02
3.5K
5
Kubernetes 原生 API 网关 - Gloo

Gloo 是一个基于 Envoy 的 Kubernetes 原生入口控制器和下一代 API 网关。Gloo 在函数级路由方面表现卓越,它支持传统应用程序、微服务与 Serverless。Gloo 设计独特,可支持混合应用,其中的...

匿名
07/09
418
0
深入解读Service Mesh背后的技术细节

在Kubernetes称为容器编排的标准之后,Service Mesh开始火了起来,但是很多文章讲概念的多,讲技术细节的少,所以专门写一篇文章,来解析Service Mesh背后的技术细节。 一、Service Mesh是K...

技术小能手
2018/07/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

无回路有向图的拓扑排序

因公司业务需要,在表单中每个字段都会配置自动计算,但自动计算公式中会引用到其他字段中的值。所以希望可以根据计算公式,优先计算引用的公式。所以最终使用了无回路有向图的扩扑排序来实现...

兜兜毛毛
37分钟前
3
0
如何抢占云栖大会C位?史上最强强强攻略来了

点击观看视频: APSARA云栖大会开发者情怀 原文链接 本文为云栖社区原创内容,未经允许不得转载。

阿里云官方博客
51分钟前
5
0
Kubernetes 从懵圈到熟练:集群服务的三个要点和一种实现

作者 | 声东 阿里云售后技术专家<br /> 文章来源:Docker,点击查看原文。 <br />以我的经验来讲,理解 Kubernetes 集群服务的概念,是比较不容易的一件事情。尤其是当我们基于似是而非的理解...

阿里巴巴云原生
54分钟前
7
0
PHP7.3的新特性

2018年12月6日,PHP7.3正式版发布,在PHP7.2基础上进行了大量错误修复和安全优化,性能提升10%! 从目前的更新说明来看,PHP 7.3 并不是一个主打新特性的版本,包含更多的是 bug 修复。PHP 7...

迅睿CMS-PHP开源CMS程序
59分钟前
7
0
Tomcat 应用中并行流带来的类加载问题

本文首发于 vivo互联网技术 微信公众号 链接:https://mp.weixin.qq.com/s/f-X3n9cvDyU5f5NYH6mhxQ 作者:肖铭轩、王道环 随着 Java8 的不断流行,越来越多的开发人员使用并行流(parallel)...

vivo互联网技术
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部