22-windows11-wsl-envoy-安装

windows11 #网关

Windows 11 WSL环境下通过GitHub二进制方式安装Envoy指南

Envoy是一款高性能、可扩展的开源边缘和服务代理,专为云原生应用设计。在Windows 11的WSL(Windows Subsystem for Linux)环境中,通过GitHub下载预编译二进制文件是安装Envoy的最直接方式。本文将详细介绍这一安装过程,帮助您快速搭建Envoy代理环境。

为什么选择GitHub二进制安装方式

在WSL环境中安装Envoy有多种方式,包括使用包管理器、Docker容器和源码编译等。通过GitHub直接下载预编译二进制文件具有以下优势:

  1. 版本灵活性:可以直接选择和下载任何特定版本的Envoy
  2. 安装简便:无需配置额外的软件源或依赖关系
  3. 快速部署:跳过编译过程,直接获取可执行文件
  4. 兼容性好:官方提供的二进制文件经过充分测试,兼容性有保障

前置条件

在开始安装之前,请确保您的Windows 11系统已满足以下条件:

  1. 启用WSL 2:已安装并配置Windows Subsystem for Linux 2
  2. Linux发行版:已安装Ubuntu或其他支持的Linux发行版
  3. 基础工具:确保WSL环境中已安装curl或wget用于下载文件

如果尚未安装WSL,可以参考Windows 11 WSL相关文档进行配置。

安装步骤

步骤1:访问GetEnvoy项目

Envoy官方通过GetEnvoy项目提供预编译的二进制文件。我们需要访问GetEnvoy的GitHub仓库以获取下载链接:

  1. 打开浏览器,访问:https://github.com/envoyproxy/envoy/releases
  2. 虽然这是官方仓库,但二进制文件实际上通过其他渠道分发
  3. 我们将使用GetEnvoy项目提供的下载方式

步骤2:获取二进制文件下载链接

Envoy项目不直接在GitHub releases页面提供二进制压缩包,而是通过以下方式分发:

  1. GetEnvoy官方下载:访问https://getenvoy.io/获取最新版本信息
  2. Tetrate存档仓库:使用https://github.com/tetratelabs/archive-envoy获取历史版本
  3. Docker镜像提取:从官方Docker镜像中提取二进制文件

步骤3:使用curl下载Envoy二进制文件

在WSL终端中,使用以下命令直接下载Envoy二进制文件:

# 下载最新版本的Envoy二进制文件
curl -L https://getenvoy.io/envoy.tar.gz | tar -xz

# 或者从Tetrate存档下载特定版本
VERSION=1.29.0
curl -L "https://github.com/tetratelabs/archive-envoy/releases/download/v${VERSION}/envoy-${VERSION}-linux-x86_64" 

步骤4:安装Envoy二进制文件

下载并解压后,将Envoy二进制文件移动到系统PATH中:

# 将envoy二进制文件移动到系统PATH目录
sudo mv envoy /usr/local/bin/

# 设置执行权限
sudo chmod +x /usr/local/bin/envoy

# 清理临时文件(如果有)
rm -f envoy.tar.gz

步骤5:验证安装

安装完成后,通过以下命令验证Envoy是否正确安装:

# 检查Envoy版本
envoy --version

# 应该显示类似以下信息:
# envoy  version: 12345678901234567890abcdef1234567890abcd/1.29.0/Clean/RELEASE/BoringSSL

基本使用示例

安装完成后,您可以创建一个简单的配置文件来测试Envoy:

  1. 创建一个基本的配置文件:
# 创建配置目录
mkdir -p ~/envoy-config

# 创建基本配置文件
cat > ~/envoy-config/basic.yaml << EOF
admin:
  access_log_path: /tmp/admin_access.log
  address:
    socket_address: { address: 127.0.0.1, port_value: 9901 }

static_resources:
  listeners:
  - name: listener_0
    address:
      socket_address: { address: 0.0.0.0, port_value: 10000 }
    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
          route_config:
            name: local_route
            virtual_hosts:
            - name: local_service
              domains: ["*"]
              routes:
              - match: { prefix: "/" }
                route: { cluster: service_envoyproxy_io }
          http_filters:
          - name: envoy.filters.http.router
  clusters:
  - name: service_envoyproxy_io
    connect_timeout: 0.25s
    type: LOGICAL_DNS
    dns_lookup_family: V4_ONLY
    lb_policy: ROUND_ROBIN
    load_assignment:
      cluster_name: service_envoyproxy_io
      endpoints:
      - lb_endpoints:
        - endpoint:
            address:
              socket_address:
                address: www.envoyproxy.io
                port_value: 443
    transport_socket:
      name: envoy.transport_sockets.tls
      typed_config:
        "@type": type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext
        sni: www.envoyproxy.io
EOF
  1. 启动Envoy:
# 使用配置文件启动Envoy
envoy -c ~/envoy-config/basic.yaml
  1. 验证Envoy是否正常工作:
# 在另一个终端中测试
curl http://localhost:10000

# 访问管理界面
curl http://localhost:9901/stats

常见问题与解决方案

问题1:权限被拒绝

如果在执行Envoy时遇到权限问题,请确保:

# 检查文件权限
ls -la /usr/local/bin/envoy

# 如果需要,重新设置权限
sudo chmod +x /usr/local/bin/envoy

问题2:版本兼容性

如果下载的二进制文件与您的WSL环境不兼容,请检查:

  1. 确认下载的是Linux x86_64版本
  2. 检查WSL是否运行在WSL 2模式下
  3. 验证系统架构:uname -m 应显示 x86_64

问题3:下载失败

如果下载过程中遇到网络问题,可以尝试:

  1. 使用不同的下载工具(wget或curl)
  2. 检查网络连接和防火墙设置
  3. 尝试使用代理或VPN

升级Envoy

当需要升级到新版本时,只需重复上述安装步骤,下载新版本的二进制文件并替换现有文件:

# 停止正在运行的Envoy进程
sudo pkill envoy

# 备份当前版本
sudo mv /usr/local/bin/envoy /usr/local/bin/envoy.backup

# 下载并安装新版本
curl -L https://getenvoy.io/envoy.tar.gz | tar -xz
sudo mv envoy /usr/local/bin/

# 或者下载特定版本
NEW_VERSION=1.30.0
curl -L "https://github.com/tetratelabs/archive-envoy/releases/download/v${NEW_VERSION}/envoy-${NEW_VERSION}-linux-x86_64.tar.gz" | tar -xz
sudo mv envoy /usr/local/bin/

# 设置执行权限
sudo chmod +x /usr/local/bin/envoy

# 验证新版本
envoy --version

总结

通过GitHub下载预编译二进制文件是在Windows 11 WSL环境中安装Envoy的最直接方式。这种方法不仅安装过程简单,而且提供了版本选择的灵活性,特别适合开发测试环境中快速部署Envoy代理。

安装完成后,您可以根据具体需求配置Envoy作为API网关、反向代理或服务网格中的数据平面代理。Envoy的强大功能和灵活配置将为您的微服务架构提供可靠的流量管理解决方案。

posted @ 2025-10-19 11:50  suveng  阅读(18)  评论(0)    收藏  举报