envoy学习笔记 1.部署安装

部署与安装

envoy的部署方式基本上是三种,最常用的docker形式,其次可以根据不用操作系统进行命令行安装(centos使用yum),最后可以自己手动进行编译

因为想单纯探索envoy的使用形式,则直接进行使用第二种方式进行安装
yum安装方式:

sudo yum install yum-utils
sudo rpm --import 'https://rpm.dl.getenvoy.io/public/gpg.CF716AF503183491.key'
curl -sL 'https://rpm.dl.getenvoy.io/public/config.rpm.txt?distro=el&codename=7' > /tmp/tetrate-getenvoy-rpm-stable.repo
sudo yum-config-manager --add-repo '/tmp/tetrate-getenvoy-rpm-stable.repo'
sudo yum makecache --disablerepo='*' --enablerepo='tetrate-getenvoy-rpm-stable'
sudo yum install getenvoy-envoy

这里在安装时候centos6时会遇到很多的错误,可能是这样安装的envoy版本比极高.
如果是centos6可能会遇到的问题:
yum 会报错 problem making ssl connection Trying other mirror
解决方式(方案二):https://www.jianshu.com/p/0e6c60f1e942
然后会报 Package: getenvoy-envoy Requires: libc.so.6

所以这里建议在centos7上进行yum的安装,以上问题均不会出现

# envoy --version
envoy  version: d362e791eb9e4efa8d87f6d878740e72dc8330ac/1.18.2/clean-getenvoy-76c310e-envoy/RELEASE/BoringSSL

# ll /bin/envoy
/bin/envoy -> /opt/getenvoy/bin/envoy

获取demo 配置文件

wget https://www.envoyproxy.io/docs/envoy/latest/_downloads/92dcb9714fb6bc288d042029b34c0de4/envoy-demo.yaml

修改配置文件

因为各项配置仍然在使用探索中,这里简单配置了一个http服务

admin:
  access_log_path: /tmp/admin_access.log
  address:
    socket_address: { address: 0.0.0.0, port_value: 9901 }
static_resources:
  listeners:
  - name: listener_0
    address:
      socket_address:
        address: 0.0.0.0
        port_value: 80
    filter_chains:
    - filters:
      - name: envoy.filters.network.http_connection_manager
        typed_config:
          "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
          stat_prefix: ingress_http
          access_log:
          - name: envoy.access_loggers.stdout
            typed_config:
              "@type": type.googleapis.com/envoy.extensions.access_loggers.stream.v3.StdoutAccessLog
          http_filters:
          - name: envoy.filters.http.router
            typed_config:
              "@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
          route_config:
            name: local_route
            virtual_hosts:
            - name: local_service
              domains: ["*"]
              routes:
              - match:
                  prefix: "/"
                route:
                  host_rewrite_literal: www.testffffffff.com
                  cluster: service_envoyproxy_io

  clusters:
  - name: service_envoyproxy_io
    connect_timeout: 0.25s
    type: LOGICAL_DNS
    # Comment out the following line to test on v6 networks
    dns_lookup_family: V4_ONLY
    load_assignment:
      cluster_name: service_envoyproxy_io
      endpoints:
      - lb_endpoints:
        - endpoint:
            address:
              socket_address:
                address: 10.218.57.37
                port_value: 8090

admin 属于envoy管理后台的配置
static_resources 就是静态资源,配置各种filter,下面挂载一个虚拟主机(virtual_hosts)的概念
虚拟主机会绑定一个集群(clusters),集群下就是真实的服务节点(endpoint)

服务启动

envoy -c envoy-demo.yaml

测试

端口

服务验证

后续会尝试更复杂的配置,以及工程化相关的内容

posted @ 2022-11-17 10:51  zscbest  阅读(591)  评论(0编辑  收藏  举报