安装

Instructions for installing Aeraki.

前置条件

Aeraki 和 MetaProtocol 以及 Istio 的版本兼容性

在安装 Aeraki 之前,请先根据下面的版本兼容矩阵检查 Aeraki 对应 Istio 和 MetaProtocol Proxy 版本:

AerakiMetaProtocol ProxyIstio
1.0.x1.0.x1.10.x
1.1.x1.1.x1.12.x

检查下面的 Istio 选项

请修改 istio ConfigMap,加入下面的内容:

  • 启用 Istio DNS 代理
  • 打开 Aeraki 管理的协议的 Metrics 收集
  1. kubectl edit cm istio -n istio-system
  1. apiVersion: v1
  2. data:
  3. mesh: |-
  4. defaultConfig:
  5. proxyMetadata:
  6. ISTIO_META_DNS_CAPTURE: "true"
  7. proxyStatsMatcher:
  8. inclusionPrefixes:
  9. - thrift
  10. - dubbo
  11. - kafka
  12. - meta_protocol
  13. inclusionRegexps:
  14. - .*dubbo.*
  15. - .*thrift.*
  16. - .*kafka.*
  17. - .*zookeeper.*
  18. - .*meta_protocol.*

安装 Aeraki

  1. git clone https://github.com/aeraki-mesh/aeraki.git
  2. cd aeraki
  3. export AERAKI_VERSION=1.0.0
  4. make install

安装 AerakiCtl(可选)

You can choose to optionally install aerakictl tool for debug purpose.

  1. git clone https://github.com/aeraki-mesh/aerakictl.git ~/aerakictl;source ~/aerakictl/aerakictl.sh

高可用和水平扩展

Aeraki 内主要包括两类组件:

  • 控制器:用于 Watch Istio 资源并维护 Aeraki 内部系统状态,此类组件为有状态组件,Aeraki 通过选主实现高可用
  • MetaProtocol RDS 服务器:根据 MetaRouter CRD 资源生成 MetaProtocol 动态路由,并通过 MetaRDS 下发给数据面的 Proxy,Aeraki 支持多实例水平扩展,以对 RDS 服务器的压力进行负载均衡。

对于生产环境,请根据集群规模和数据面边车数量调整对应的 Aeraki 实例,可以通过 K8s HPA 进行动态扩展。

在 TCM 中使用 Aeraki

腾讯云服务网格 TCM 支持集成 Aeraki。如果希望在 TCM 使用 Aeraki 的协议扩展能力,请联系腾讯云售前架构师进行咨询。

最后修改 May 12, 2022: Update install.md (9d9097a)