当前位置:首页 > 行业动态 > 正文

如何为虚拟机服务添加网关和路由配置?

虚拟机和VPS添加网关和路由是为了实现网络通信和访问外部资源。

虚拟机服务添加网关和路由的步骤

如何为虚拟机服务添加网关和路由配置?  第1张

前提条件

确保已执行以下操作:

1、添加虚拟机服务到网格,即已创建v1版本的WorkloadEntry、ServiceEntry。

2、创建VirtualService、DestinationRule。

3、创建负载均衡实例,要求所属VPC为集群所在的VPC。

创建Loadbalancer服务

1、登录云容器引擎控制台:在“集群管理”页面单击集群名称,进入集群详情页。

2、选择资源和服务发现:在左侧导航栏选择“资源 > 服务发现”,选择命名空间“istio-system”,单击右上角“YAML创建”。

3、输入以下内容

apiVersion: v1
kind: Service
metadata:
  name: <vm-server1>-gw-svc
  namespace: istio-system
  annotations:
    kubernetes.io/elb.class: <ELB_TYPE>
    kubernetes.io/elb.id: <ELB_ID>
    service.protal.kubernetes.io/type: LoadBalancer
spec:
  ports:
    name: http
      protocol: TCP
      port: <345>
      targetPort: <2050>
  selector:
    app: istio-ingressgateway
    istio: ingressgateway
  type: LoadBalancer
  sessionAffinity: None
  loadBalancerIP: <ELB_IP>
  externalTrafficPolicy: Cluster
参数 说明
虚拟机服务名称
负载均衡类型,可设置为union(共享型)或performance(独享型)
ELB实例ID
服务port
服务targetPort
ELB实例的弹性IP

4、完成创建:单击“确定”完成创建。

创建Gateway资源

1、登录应用服务网格控制台:单击服务网格的名称,进入网格详情页面。

2、选择资源管理:在左侧导航栏选择“网格配置”,单击“istio资源管理”页签。

3、选择Gateway资源:选择“istio资源:gateways”,命名空间选择“istio-system”,单击“创建”。

4、输入以下内容

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  annotations:
    asm/elbPort: '<345>'
    asm/gatewaySvc: <vm-server1>-gw-svc.istio-system
  name: <vm-server1>-gw
  namespace: istio-system
spec:
  selector:
    istio: ingressgateway
  servers:
    hosts:
        <ELB_IP>
      port:
        name: http
        number: <2050>
        protocol: http
参数 说明
虚拟机服务名称
对外端口(同创建Loadbalancer服务中的服务port)
ELB实例的公网IP或域名
同创建Loadbalancer服务中的服务targetPort

5、完成创建:单击“确定”完成创建。

创建VirtualService资源

1、登录应用服务网格控制台:单击服务网格的名称,进入网格详情页面。

2、选择资源管理:在左侧导航栏选择“网格配置”,单击“istio资源管理”页签。

3、选择VirtualService资源:选择“istio资源:virtualservices”,命名空间选择“istio-system”,单击“创建”。

4、输入以下内容

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: <vm-server1>-root-vs
  namespace: istio-system
spec:
  gateways:
    istio-system/<vm-server1>-gw
  hosts:
    <ELB_IP>
  http:
    delegate:
        name: <vm-server1-8080>
        namespace: <vmns>
      match:
        uri:
            prefix: /test
    delegate:
        name: <vm-server1-8080>
        namespace: <vmns>
      match:
        uri:
            prefix: /
参数 说明
虚拟机服务名称
ELB实例的公网IP或域名
VirtualService name
VirtualService namespace

5、完成创建:单击“确定”完成创建。

相关问题与解答

1、问题一:如何判断目标端口(targetPort)是否被占用?

回答:登录应用服务网格控制台,单击服务网格的名称,进入网格详情页面,在左侧导航栏选择“网格配置”,单击“istio资源管理”页签,选择“istio资源:gateways”,命名空间选择“istio-system”,查看Gateway资源的YAML文件中server的port.number值,如果port小于1025,targetPort需要设置为未被占用且范围为1025~65535的值;如果port大于等于1025,则targetPort可直接设置为port值。

2、问题二:如何在Linux中设置永久路由?

回答:可以使用以下命令将路由信息写入文件:

“`bash

# vi /etc/sysconfig/network-scripts/route-eth0

“`

然后添加以下内容:

“`bash

192.168.0.0/16 via 172.16.0.1 dev eth0

“`

保存并退出,最后重启网络服务:

“`bash

systemctl restart network

“`

到此,以上就是小编对于“虚拟机和vps_虚拟机服务添加网关和路由”的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位朋友在评论区讨论,给我留言。

0