zoukankan      html  css  js  c++  java
  • istio实现对外暴露服务

    1、确认istio-ingressgateway是否有对外的IP

    kubectl get  service istio-ingressgateway -n istio-system

    如果 EXTERNAL-IP 有值(IP 地址或主机名),则说明您的环境具有可用于 Ingress 网关的外部负载均衡器。如果 EXTERNAL-IP 值是 <none>(或一直是 <pending> ),则说明可能您的环境并没有为 Ingress 网关提供外部负载均衡器的功能。

    可以通过以下方法添加外部IP

    kubectl edit  service istio-ingressgateway -n istio-system

    kubectl get  service istio-ingressgateway -n istio-system

     二、建立deployment、service、Gateway、VirtualService

    1)新建nginx-istio-test.yaml

    apiVersion: extensions/v1beta1
    kind: Deployment
    metadata:
      name: nginx-app
    spec:
      replicas: 1
      template:
        metadata:
          annotations:
            sidecar.istio.io/inject: "true"
          labels:
            app: nginx-app
        spec:
          containers:
            - name: nginx-app
              image: nginx
              imagePullPolicy: IfNotPresent
              ports:
                - containerPort: 80
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: nginx-svc
      labels:
        svcname: nginx-svc
    spec:
      ports:
      - port: 8088
        protocol: TCP
        targetPort: 80
      selector:
        app: nginx-app
    
    ---
    apiVersion: networking.istio.io/v1alpha3
    kind: Gateway
    metadata:
      name: nginx-gateway
    spec:
      selector:
        istio: ingressgateway # use Istio default gateway implementation
      servers:
      - port:
          number: 80
          name: nginx-http
          protocol: HTTP
        hosts:
        - istio-nginx.boshen.com
    
    ---
    apiVersion: networking.istio.io/v1alpha3
    kind: VirtualService
    metadata:
      name: nginx-vs
    spec:
      hosts:
      - istio-nginx.boshen.com
      gateways:
      - nginx-gateway
      http:
      - match:
        - uri:
            prefix: /
        route:
        - destination:
            port:
              number: 8088
            host: nginx-svc

    在Gateway中

    VirtualService 映射的就是 Envoy 中的 Http Route Table,大家可以注意到上面的 VirtualService 配置文件中有一个 gateways 字段,如果有这个字段,就表示这个 Http Route Table 是绑在 ingressgateway 的 Listener 中的;如果没有这个字段,就表示这个 Http Route Table 是绑在 Istio 所管理的所有微服务应用的 Pod 上的。

    2)部署yaml

    kubectl apply -f nginx-istio-test.yaml

    3)在k8s的master节点和node节点的/etc/hosts里面加上以下内容

     

    4)在windows机器上的C:WindowsSystem32driversetchosts里面加上

    5)在浏览器访问:http://istio-nginx.boshen.com/

  • 相关阅读:
    字幕文件处理(2)
    使用RelativeLayout控制WebView以及Bottom按钮的位置
    使用ActionBar Tab
    使用自定的Adapter绑定ListView/GridView数据
    Mono.Android 基础
    Azure自动化实例: 复制blog用于备份
    使用C#程序处理PowerPoint文件中的字符串
    SQL语言Select经典语句
    Row_Number() and Rank() in SQL
    C# Main函数中调用异步方法的2种实现
  • 原文地址:https://www.cnblogs.com/boshen-hzb/p/10679863.html
Copyright © 2011-2022 走看看