Emissary-ingress 3.10 快速入门指南

Emissary-ingress 3.10 快速入门指南

【免费下载链接】emissary open source Kubernetes-native API gateway for microservices built on the Envoy Proxy 【免费下载链接】emissary 项目地址: https://gitcode.com/gh_mirrors/emi/emissary

项目概述

Emissary-ingress 是一个基于 Envoy 构建的开源 API 网关和 Kubernetes Ingress 控制器,专为云原生环境设计。它提供了强大的流量管理能力,支持多种协议,并简化了微服务架构中的服务路由和策略管理。

安装准备

在开始安装前,请确保您的环境满足以下要求:

  • 已安装 Kubernetes 集群(版本 1.16 或更高)
  • 已配置 kubectl 命令行工具
  • 已安装 Helm 包管理器(版本 3.0 或更高)

全新安装指南

1. 安装 CRD(自定义资源定义)

对于全新安装且不需要考虑旧版本兼容性的用户,推荐使用以下命令安装最新版本的 CRD:

helm install emissary-crds \
 --namespace emissary --create-namespace \
 oci://ghcr.io/emissary-ingress/emissary-crds-chart --version=3.10.0 \
 --set enableLegacyVersions=false \
 --wait

此命令会:

  • 创建名为 emissary 的命名空间
  • 仅安装 v3alpha1 版本的 CRD
  • 跳过转换 webhook 的安装

2. 安装 Emissary 核心组件

完成 CRD 安装后,继续安装 Emissary 主程序:

helm install emissary \
 --namespace emissary \
 oci://ghcr.io/emissary-ingress/emissary-ingress --version=3.10.0 \
 --set waitForApiext.enabled=false \
 --wait

从旧版本升级指南

1. 升级 CRD 和转换 Webhook

对于从旧版本升级的用户,需要安装完整的 CRD 版本和转换 webhook:

helm install emissary-crds \
 --namespace emissary-system --create-namespace \
 oci://ghcr.io/emissary-ingress/emissary-crds-chart --version=3.10.0 \
 --wait

此操作会:

  • 安装所有版本的 CRD(v1、v2 和 v3alpha1)
  • 在 emissary-system 命名空间中安装转换 webhook

2. 升级 Emissary 核心组件

helm install emissary \
 --namespace emissary --create-namespace \
 oci://ghcr.io/emissary-ingress/emissary-ingress --version=3.10.0 \
 --wait

验证安装

安装完成后,可以通过以下命令检查服务状态:

kubectl get svc -n emissary emissary-emissary-ingress

或者使用端口转发进行本地测试:

kubectl port-forward -n emissary svc/emissary-emissary-ingress 8080:80

示例应用部署(Faces Demo)

为了验证 Emissary 是否正常工作,可以部署一个示例应用:

1. 安装 Faces 应用

helm install faces \
 --namespace faces --create-namespace \
 oci://ghcr.io/buoyantio/faces-chart --version 2.0.0-rc.4 \
 --wait

2. 配置 Emissary 路由

创建 Listener 和 Host 资源:

apiVersion: getambassador.io/v3alpha1
kind: Listener
metadata:
  name: ambassador-https-listener
spec:
  port: 8443
  protocol: HTTPS
  securityModel: XFP
  hostBinding:
    namespace:
      from: ALL
---
apiVersion: getambassador.io/v3alpha1
kind: Listener
metadata:
  name: ambassador-http-listener
spec:
  port: 8080
  protocol: HTTP
  securityModel: XFP
  hostBinding:
    namespace:
      from: ALL
---
apiVersion: getambassador.io/v3alpha1
kind: Host
metadata:
  name: wildcard-host
spec:
  hostname: "*"
  requestPolicy:
    insecure:
      action: Route

3. 创建路由映射

配置两个 Mapping 资源将流量路由到 Faces 服务:

apiVersion: getambassador.io/v3alpha1
kind: Mapping
metadata:
  name: gui-mapping
  namespace: faces
spec:
  hostname: "*"
  prefix: /faces/
  service: faces-gui.faces
  rewrite: /
  timeout_ms: 0
---
apiVersion: getambassador.io/v3alpha1
kind: Mapping
metadata:
  name: face-mapping
  namespace: faces
spec:
  hostname: "*"
  prefix: /face/
  service: face.faces
  timeout_ms: 0

访问应用

完成上述配置后,可以通过以下方式访问 Faces 应用:

  • 通过集群提供的 IP 地址或主机名访问 /faces/ 路径
  • 如果使用端口转发,可通过 http://localhost:8080/faces/ 访问

常见问题解答

Q: 安装过程中遇到 CRD 相关错误怎么办? A: 确保 Helm 版本为 3.0 或更高,并检查 Kubernetes 集群版本是否兼容。

Q: 如何确认 Emissary 已正确安装? A: 运行 kubectl get pods -n emissary 检查所有 Pod 是否处于 Running 状态。

Q: 端口转发后无法访问服务? A: 确认是否正确配置了 Listener 和 Mapping 资源,并检查服务端口是否匹配。

通过本指南,您应该能够顺利完成 Emissary-ingress 的安装和基本配置。对于更高级的功能和配置选项,建议参考官方文档深入了解。

【免费下载链接】emissary open source Kubernetes-native API gateway for microservices built on the Envoy Proxy 【免费下载链接】emissary 项目地址: https://gitcode.com/gh_mirrors/emi/emissary

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值