阿里云服务网格ASM网关与应用型负载均衡实例ALB集成

简介: 阿里云服务网格ASM可以简化服务治理,保障服务间通信的认证安全以及提供网格可观测性能力等需求,降低开发与运维的工作负担。对于网络插件类型为Terway的阿里云容器服务 ACK集群作为数据面集群的场景,阿里云服务网格ASM支持集成应用型负载均衡实例(ALB)。

背景

阿里云服务网格ASM可以简化服务治理,保障服务间通信的认证安全以及提供网格可观测性能力等需求,降低开发与运维的工作负担。对于网络插件类型为Terway的阿里云容器服务 ACK集群作为数据面集群的场景,阿里云服务网格ASM支持集成应用型负载均衡实例(ALB)。

前提条件

  • 创建阿里云服务网格ASM企业版实例。
  • 创建网络插件类型为Terway阿里云容器服务 ACK实例。
  • ACK实例的CCM(Cloud Controller Manager)组件版本>=v1.9.3.313-g748f81e-aliyun。

步骤1 为阿里云容器服务 ACK实例安装ALB Ingress Controller组件

  • 若需要创建集群,请在组件配置配置向导页面,在Ingress字段右侧选择ALB Ingress。
  • 若已创建集群,且未安装ALB Ingress Controller组件。关于如何安装ALB Ingress Controller组件,请参见管理组件

步骤2 部署测试应用

添加集群到ASM

在阿里云服务网格ASM控制台,集群与工作负载管理-> Kubernetes集群。添加符合条件的阿里云容器服务ACK实例。

部署测试应用

在阿里云服务网格ASM控制台,网格实例->全局命名空间中,为default命名空间开启sidecar自动注入。

参考部署应用到ASM实例,使用数据面集群的kubeconfig来创建bookinfo示例。

kubectl apply -f https://raw.githubusercontent.com/istio/istio/master/samples/bookinfo/platform/kube/bookinfo.yaml

步骤3 创建ASM网关

在阿里云服务网格ASM控制台,ASM网关进行创建。选择负载均衡类型为私网访问。测试应用需要设置端口为80。

步骤4 创建Istio资源

在本测试应用中,我们创建网关资源和虚拟服务来方便测试。

创建网关规则

在流量管理,网关规则中,创建示例应用的网关规则:

预览如下所示:

apiVersion: networking.istio.io/v1beta1
kind: Gateway
metadata:
  name: bookinfo-gateway
  namespace: default
spec:
  selector:
    istio: ingressgateway
  servers:
    - port:
        number: 80
        name: http
        protocol: HTTP
      hosts:
        - '*'

创建虚拟服务

虚拟服务新建,为bookinfo-gateway网关设置虚拟服务配置。

设置路由

预览效果如下:

apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
  name: bookinfo
  namespace: default
spec:
  gateways:
    - bookinfo-gateway
  hosts:
    - '*'
  http:
    - match:
        - uri:
            exact: /productpage
        - uri:
            prefix: /static
        - uri:
            exact: /login
        - uri:
            exact: /logout
        - uri:
            prefix: /api/v1/products
      route:
        - destination:
            host: productpage
            port:
              number: 9080

步骤5 创建AlbConfig

对于使用ALB的用户,分2种场景,分别是已有ALB实例和需要新建创建ALB的场景。和阿里云服务网格ASM的集成过程的区别点在于AlbConfig的配置。

场景1:已有ALB标准版实例集成ASM网关

对于已有ALB实例(目前仅支持标准版)的情况,在ALB控制台获取ALB实例id,修改AlbConfig的config中的id为ALB实例id。将一下内容保存为alb-demo.yaml

apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
  name: default
spec:
  config:
    id: alb-xxxxx
    forceOverride: false

执行以下命令,创建AlbConfig

kubectl apply -f alb-demo.yaml

场景2:新建ALB实例集成ASM网关

参考文档,在数据面集群ACK中配置AlbConfig,这里我们设置自动创建的ALB名称为alb-demo,将一下内容保存为alb-demo.yaml

apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
  name: default
spec:
  config:
    name: alb-demo
    addressType: Internet
    zoneMappings:
    - vSwitchId: vsw-uf6ccg2a9g71hx8go****
    - vSwitchId: vsw-uf6nun9tql5t8nh15****

参数

说明

spec.config.name

表示ALB实例名称。

addressType

(必选)表示负载均衡的地址类型。取值如下:

Internet(默认值):负载均衡具有公网IP地址,DNS域名被解析到公网IP,因此可以在公网环境访问。

Intranet:负载均衡只有私网IP地址,DNS域名被解析到私网IP,因此只能被负载均衡所在VPC的内网环境访问。

zoneMappings

(必选)用于设置ALB Ingress交换机ID,您需要至少指定两个不同可用区交换机ID,指定的交换机必须在ALB当前所支持的可用区内。关于ALB Ingress支持的地域与可用区,请参见支持的地域与可用区。

执行以下命令,创建AlbConfig

kubectl apply -f alb-demo.yaml

步骤6 创建IngressClass

apiVersion: networking.k8s.io/v1
kind: IngressClass
metadata:
  name: alb
spec:
  controller: ingress.k8s.alibabacloud/alb
  parameters:
    apiGroup: alibabacloud.com
    kind: AlbConfig
    name: default
    scope: Cluster

步骤7 配置Ingress

阿里云服务网格ASM网关的服务创建在istio-system命名空间中,我们需要在到数据面集群(阿里云容器服务ACK集群)中的istio-system命名空间中创建Ingress。port端口和前面创建ASM网关时设置的80端口保持一致。

将以下内容保存为asm-gateway-ingress.yaml,执行kubectl apply -f asm-gateway-ingress.yaml创建。

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: asm-gateway-ingress
  namespace: istio-system
spec:
  ingressClassName: alb
  rules:
  - http:
      paths:
      - backend:
          service:
            name: istio-ingressgateway
            port:
              number: 80
        path: /*
        pathType: ImplementationSpecific

步骤8 测试访问

执行

kubectl get ing -n istio-system

查看地址:

NAME                  CLASS   HOSTS   ADDRESS                                               PORTS   AGE
asm-gateway-ingress   alb     *       alb-xxxx.xxxx.alb.aliyuncs.com   80      18h

查询ingress实例的地址。

可以通过 http://alb-xxxxxx.xxxx.alb.aliyuncs.com/productpage来访问ASM网关。

也可以登录ALB控制台,通过ALB公网地址访问ASM网关。如果ALB已绑定域名,也可以通过域名进行访问。

相关参考

ACK网络插件选择

使用Terway网络插件

总结

阿里云服务ASM能够和应用型负载均衡实例ALB的场景无缝集成,满足多种使用场景。

作为业内首个全托管Istio兼容的阿里云服务网格产品ASM,一开始从架构上就保持了与社区、业界趋势的一致性,控制平面的组件托管在阿里云侧,与数据面侧的用户集群独立。ASM产品是基于社区Istio定制实现的,在托管的控制面侧提供了用于支撑精细化的流量管理和安全管理的组件能力。通过托管模式,解耦了Istio组件与所管理的K8s集群的生命周期管理,使得架构更加灵活,提升了系统的可伸缩性。从2022年4月1日起,阿里云服务网格ASM正式推出商业化版本, 提供了更丰富的能力、更大的规模支持及更完善的技术保障,更好地满足客户的不同需求场景, 详情可见产品介绍:https://www.aliyun.com/product/servicemesh

用户讨论群:

相关实践学习
Docker镜像管理快速入门
本教程将介绍如何使用Docker构建镜像,并通过阿里云镜像服务分发到ECS服务器,运行该镜像。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
3月前
|
负载均衡 算法 前端开发
SLB-负载均衡器(Load Balancer)
SLB-负载均衡器(Load Balancer)
53 0
|
5月前
|
Kubernetes API 容器
基于阿里云服务网格流量泳道的全链路流量管理(二):宽松模式流量泳道
基于阿里云服务网格流量泳道的全链路流量管理(二):宽松模式流量泳道
10891 6
|
6月前
|
负载均衡 网络协议 测试技术
使用eBPF加速阿里云服务网格ASM
服务网格下的Sidecar 代理业务服务的收发请求,并提供业务层面的流量控制(路由)、负载均衡等功能,会引入一定的Latency 延迟。 通过eBPF 技术(部署sidecar 加速组件)将同节点下两个进程间的TCP 报文进行socket 短路可以提升一定的性能,HTTP 场景下QPS 可提升15% 左右, 有效地降低业务请求的Latency 。
902 0
使用eBPF加速阿里云服务网格ASM
|
7月前
|
Web App开发 弹性计算 负载均衡
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
361 0
SLB负载均衡实践
|
7月前
|
Kubernetes 负载均衡 应用服务中间件
青云LB(负载均衡)与k8s实战(二)
青云LB结合Ingress实现访问k8s集群内部容器服务。
196 0
|
7月前
|
Kubernetes 负载均衡 网络协议
青云LB(负载均衡)与k8s实战(一)
青云LB(负载均衡)与k8s实战(一)
193 0
青云LB(负载均衡)与k8s实战(一)
|
8月前
|
运维 Kubernetes Cloud Native
服务网格实施周期缩短 50%,丽迅物流基于阿里云 ACK 和 ASM 的云原生应用管理实践
通过本文介绍丽迅物流关于基于阿里云服务网格 ASM 如何加速企业业务云原生化进程的实践经验。
|
8月前
|
运维 负载均衡 Kubernetes
云原生时代,如何从 0 到 1 构建 K8s 容器平台的 LB(Nginx)负载均衡体系
通过本文可以对 Kubernetes 容器平台的 LB(Nginx)负载均衡了然于心,并且可以快速深入建设 Kubernetes LB(Nginx)负载均衡体系。还可以了解到,一个中大型公司,是如何从 0 到 1 来构建大规模 Kubernetes 容器平台的 LB(Nginx)负载均衡体系的一些非常宝贵的实战经验。
云原生时代,如何从 0 到 1 构建 K8s 容器平台的 LB(Nginx)负载均衡体系
|
10月前
|
监控
类似于 SLB(负载均衡器)的健康检查日志
类似于 SLB(负载均衡器)的健康检查日志
162 1
|
10月前
阿里云服务网格 ASM 2023 年 5 月产品动态
阿里云服务网格 ASM 2023 年 5 月产品动态