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

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
网络型负载均衡 NLB,每月750个小时 15LCU
全局流量管理 GTM,标准版 1个月
简介: 背景阿里云服务网格ASM可以简化服务治理,保障服务间通信的认证安全以及提供网格可观测性能力等需求,降低开发与运维的工作负担。对于网络插件类型为Terway的阿里云容器服务 ACK集群作为数据面集群的场景,阿里云服务网格ASM支持集成应用型负载均衡实例(ALB)。前提条件创建阿里云服务网格ASM企业版实例。创建网络插件类型为Terway阿里云容器服务 ACK实例。ACK实例的CCM(Cloud Co

背景

阿里云服务网格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

场景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 。

用户讨论群:

相关实践学习
巧用云服务器ECS制作节日贺卡
本场景带您体验如何在一台CentOS 7操作系统的ECS实例上,通过搭建web服务器,上传源码到web容器,制作节日贺卡网页。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
6月前
|
定位技术
【视频】Boosting集成学习原理与R语言提升回归树BRT预测短鳍鳗分布生态学实例-3
【视频】Boosting集成学习原理与R语言提升回归树BRT预测短鳍鳗分布生态学实例
|
6月前
|
负载均衡 Java 网络架构
在SpringCloud2023中快速集成SpringCloudGateway网关
本文主要简单介绍SpringCloud2023实战中SpringCoudGateway的搭建。后续的文章将会介绍在微服务中使用熔断Sentinel、鉴权OAuth2、SSO等技术。
156 2
在SpringCloud2023中快速集成SpringCloudGateway网关
|
6月前
|
机器学习/深度学习 缓存 算法
【视频】Boosting集成学习原理与R语言提升回归树BRT预测短鳍鳗分布生态学实例-2
【视频】Boosting集成学习原理与R语言提升回归树BRT预测短鳍鳗分布生态学实例
|
3月前
|
负载均衡 应用服务中间件 nginx
搭建域名访问环境二(负载均衡到网关)
这篇文章讲述了如何配置Nginx实现域名访问环境,通过负载均衡将请求从Nginx反向代理到服务网关,并提供了详细的配置步骤和测试验证方法。
搭建域名访问环境二(负载均衡到网关)
|
3月前
|
SQL DataWorks 安全
DataWorks产品使用合集之调度资源组与集成资源内部的实例如何进行共用
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
4月前
|
Kubernetes Cloud Native 持续交付
云原生架构的核心组成部分通常包括容器化(如Docker)、容器编排(如Kubernetes)、微服务架构、服务网格、持续集成/持续部署(CI/CD)、自动化运维(如Prometheus监控和Grafana可视化)等。
云原生架构的核心组成部分通常包括容器化(如Docker)、容器编排(如Kubernetes)、微服务架构、服务网格、持续集成/持续部署(CI/CD)、自动化运维(如Prometheus监控和Grafana可视化)等。
|
5月前
|
机器学习/深度学习 算法 Python
【机器学习】集成学习在信用评分领域实例
【机器学习】集成学习在信用评分领域实例
130 1
|
5月前
|
负载均衡 Kubernetes 算法
服务网格 ASM 负载均衡算法全面解析
在本文中,笔者将解析服务网格的多种负载均衡算法的实现原理和使用场景,为服务网格负载均衡算法的选择提供参考。
|
6月前
|
运维 负载均衡 Cloud Native
Serverless 应用引擎产品使用之在Serverless 应用引擎中,使用云原生网关的情况下,SLB(负载均衡器)和证书配置如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
6月前
|
机器学习/深度学习 算法
【视频】Boosting集成学习原理与R语言提升回归树BRT预测短鳍鳗分布生态学实例-1
【视频】Boosting集成学习原理与R语言提升回归树BRT预测短鳍鳗分布生态学实例
下一篇
无影云桌面