当前位置:   article > 正文

istio浅析(一)了解envoy与istio注入配置_istio和envoy区别

istio和envoy区别

一、先了解一下envoy

Envoy是Lyft开源的一个C++实现的代理(Proxy),和Nginx及HAProxy类似,可代理L3/L4层和L7层。

代理是它最核心和基础的功能,它也是服务网格框架Istio的Sidecar。

 

重点推荐文章:服务网格代理Envoy入门

 

 

 

二、envoy的静态配置和动态配置(运行时配置)

最好是跟着后面的试跑体验在本地跑一下,对与理解envoy的静态配置和动态配置(运行时配置)很有帮助。

(go build的二进制文件在容器里面跑不起来 报错: cannot execute binary file: Exec format error, 解决办法 env GOOS=linux GOARCH=amd64 go build eds.go)

envoy 混合配置(EDS动态配置)

admin:
  access_log_path: /tmp/admin_access.log
  address:
    socket_address:
      protocol: TCP
      address: 0.0.0.0 # 管理地址
      port_value: 8081 # 管理端口

static_resources:
  listeners: # 监听器数组
  - name: listener_0 # 监听器
    address:
      socket_address:
        protocol: TCP
        address: 0.0.0.0 # 监听地址
        port_value: 8080 # 监听端口
    filter_chains: # 过滤器链
    - filters: # 过滤器数组
      - name: envoy.http_connection_manager # 过滤器名
        typed_config:
          "@type": type.googleapis.com/envoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager
          stat_prefix: ingress_http
          route_config: # 路由配置
            name: local_route # 路由配置名
            virtual_hosts: # 虚拟主机数组
            - name: local_service
              domains: ["*"] # 需代理的域名数组
              routes: # 定义路由
              - match:
                  prefix: "/" # 匹配规则
                route:
                  host_rewrite: www.baidu.com # 将HOST重写为
                  cluster: bd_service # 下游集群名,通过它找到下游集群的配置
          http_filters:
          - name: envoy.router

  clusters: # 下游集群数组
  - name: bd_service # 下游集群名
    connect_timeout: 0.25s # 连接下游的超时时长
    type: eds
    lb_policy: ROUND_ROBIN # 负载均衡策略
    eds_cluster_config:
      eds_config:
        api_config_source:
          api_type: rest
          refresh_delay: "10s" # 动态一定要有这个配置
          cluster_names: [xds_cluster] # 这里并不提供静态的endpoints,需访问EDS服务得到
    transport_socket:
      name: envoy.transport_sockets.tls
      typed_config:
        "@type": type.googleapis.com/envoy.api.v2.auth.UpstreamTlsContext
        sni: www.baidu.com
  - name: xds_cluster
    connect_timeout: 0.25s
    type: static
    lb_policy: ROUND_ROBIN
    load_assignment:
      cluster_name: xds_cluster
      endpoints:
      - lb_endpoints:
        - endpoint:
            address:
              socket_address:
                address: 127.0.0.1 # EDS的服务地址
                port_value: 2020 # EDS的服务端口

 

 

envoy访问127.0.0.1:2020获取EDS动态配置信息,上图为配置信息结构

 

 

上图为动态配置静态配置的对应位置方便立即

参考资料:

 

 

三、查看线上的配置环境 

进入容器

kubectl exec -it api-v2-v13-d45f8544d-cfgpc -n sqkb-istio-qa -c istio-proxy -- /bin/bash

查看进程

 

或者直接查看

kubectl exec -it api-v2-v13-d45f8544d-cfgpc -n sqkb-istio-qa -c istio-proxy -- cat /etc/istio/proxy/envoy-rev0.json > /tmp/envoy.json

---
node: 
  id: "sidecar~172.25.11.236~api-v2-v13-d45f8544d-cfgpc.sqkb-istio-qa~sqkb-istio-qa.svc.cluster.local"
  cluster: "api-v2.sqkb-istio-qa"
  locality: 
  metadata: 
    CLUSTER_ID: "Kubernetes"
    CONFIG_NAMESPACE: "sqkb-istio-qa"
    EXCHANGE_KEYS: "NAME,NAMESPACE,INSTANCE_IPS,LABELS,OWNER,PLATFORM_METADATA,WORKLOAD_NAME,CANONICAL_TELEMETRY_SERVICE,MESH_ID,SERVICE_
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/181677
推荐阅读
相关标签
  

闽ICP备14008679号