您可以为ASM网关绑定多个CLB,实现多个CLB可以访问一个ASM网关。本文介绍如何为ASM网关绑定多个CLB后,使用多个CLB访问ASM网关。
前提条件
已添加集群到ASM实例。具体操作,请参见添加集群到ASM实例。
已部署入口网关。具体操作,请参见创建入口网关。
部署入口网关成功后,会自动在ACK集群中创建名为istio-ingressgateway的服务。
已在ASM中部署Bookinfo应用和Istio资源,使得可以通过入口网关访问到Bookinfo应用。具体操作,请参见在ASM实例关联的集群中部署应用和使用Istio资源实现版本流量路由。
操作步骤
您需要通过创建Service的方式为ASM网关创建额外的CLB。
如果您删除了额外绑定的Service,CLB也会被删除。
登录容器服务管理控制台。
在控制台左侧导航栏,单击集群。
在集群列表页面,单击目标集群名称或者目标集群右侧操作列下的详情。
在集群管理页左侧导航栏,选择 。
在服务页面顶部,设置命名空间为istio-system,在右上角单击使用YAML创建资源。
在创建页面,设置示例模板为自定义,将以下内容复制到模板文本框中,单击创建。
重要nodePort不能与已有端口重复。
apiVersion: v1 kind: Service metadata: annotations: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec: slb.s1.small service.beta.kubernetes.io/alicloud-loadbalancer-address-type: internet labels: app: istio-ingressgateway asm-system: 'true' istio: ingressgateway name: istio-ingressgateway-2 namespace: istio-system spec: externalTrafficPolicy: Cluster ports: - name: http-0 nodePort: 30544 port: 80 protocol: TCP targetPort: 80 - name: https-2 nodePort: 30682 port: 443 protocol: TCP targetPort: 443 selector: app: istio-ingressgateway asm-system: 'true' istio: ingressgateway provider: asm sessionAffinity: None type: LoadBalancer
name:服务的名称,本文设置为istio-ingressgateway-2。
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec:设置CLB规格。可选:slb.s1.small、slb.s2.small、slb.s2.medium、slb.s3.small、slb.s3.medium、slb.s3.large。
service.beta.kubernetes.io/alicloud-loadbalancer-address-type:设置CLB的网络类型。可选:
internet:公网。
intranet:私网。
Service创建成功后,会自动创建新的CLB。
使用多个CLB访问ASM网关。
在ACK集群的服务页面获取istio-ingressgateway和istio-ingressgateway-2 External IP列下的80端口的IP地址。
在浏览器地址栏中分别输入http://<istio-ingressgateway的IP地址>/productpage和http://<istio-ingressgateway-2的IP地址}>/productpage。
2个地址都返回以上Bookinfo应用页面,说明使用多个CLB访问ASM网关成功。