Emissary ingress 编译安装及使用教程

Emissary ingress 编译安装及使用教程

emissaryopen source Kubernetes-native API gateway for microservices built on the Envoy Proxy项目地址:https://gitcode.com/gh_mirrors/emi/emissary

Emissary 是一个高性能的 Kubernetes Ingress 控制器,源自 Ambassador API 网关。本教程将指导您了解其目录结构,启动文件以及配置文件。

1. 项目目录结构及介绍

emissary-ingress/emissary 的根目录下,主要的目录结构如下:

.
├── Chart.yaml        # Helm 图表配置文件
├── charts/           # 子图表或依赖项
├── cmd/               # 启动命令所在的目录
│   └── emissary       # 主要的 Emissary 进程
├── config/            # 配置模板文件
├── Dockerfile         # Docker 映像构建文件
├── examples/          # 示例配置和用例
├──贡献指南.md         # 贡献代码的指导
├── Makefile           # Make 构建脚本
├── manifests/         # Kubernetes 清单文件
└── README.md          # 项目简介
  • cmd: 包含 emissary 的主进程源代码。
  • config: 提供配置文件模板。
  • Dockerfile: 用于构建 Emissary Docker 映像的文件。
  • examples: 提供示例配置和使用场景。
  • manifests: 包含 Kubernetes 对象的 YAML 文件,如 Deployment 和 Service。

2. 项目启动文件介绍

Emissary 的启动主要通过 cmd/emissary/main.go 文件进行。在这个文件中,main() 函数初始化了服务器并处理相关配置。它调用了 runCmd() 函数来解析 CLI 参数并设置相应的运行模式。Emissary 使用 Envoy 作为其代理,因此启动时会与 Envoy 交互以创建和管理数据平面。

func main() {
  flags := pflag.NewFlagSet("emissary", pflag.ExitOnError)
  runCmd(flags)
}

在实际部署时,通常会通过 Kubernetes 的 Deployment 或者使用 Helm 进行安装。

3. 项目配置文件介绍

Emissary 的配置主要由以下几个部分组成:

  • Kubernetes ConfigMap: 在 Kubernetes 中,你可以创建一个 ConfigMap 来存储 Emissary 的配置参数,这些参数可以通过环境变量注入到 Pod 中。
  • Envoy 配置: Emissary 使用 xDS 协议动态生成 Envoy 配置。这个配置是基于你的 Kubernetes Ingress 规则和端点自动生成的。
  • Ambassador Mapping: 如果你熟悉原版的 Ambassador,那么你会知道 Mapping 是定义路由规则的关键。在 Emissary 中,Mapping 可以通过 Kubernetes Custom Resource Definition (CRD) api/v1/Mappings 来定义。

配置文件模板位于 config/ 目录下,包括 envoy-config-template.json,这是一个基础模板,实际配置会根据 Kubernetes 的状态动态生成。

为了启动 Emissary,你需要准备一个 Kubernetes 的 DeploymentStatefulSet YAML 文件,该文件应该包含如何从 ConfigMap 获取配置信息的细节,以及如何与 Envoy 通信的设置。

示例配置

以下是一个简单的示例 Deployment YAML,展示了如何通过 ConfigMap 将配置传递给 Emissary:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: emissary
spec:
  replicas: 1
  selector:
    matchLabels:
      app: emissary
  template:
    metadata:
      labels:
        app: emissary
    spec:
      containers:
      - name: emissary
        image: <your-emissary-image>
        envFrom:
        - configMapRef:
            name: emissary-config
        ports:
        - containerPort: 80

这里,我们假设有一个名为 emissary-config 的 ConfigMap。实际配置应根据您的集群环境调整。

以上就是关于 Emissary 项目的基本介绍,包括目录结构、启动文件以及配置文件的讲解。希望这有助于您理解和部署 Emissary。如果您需要更详细的配置或操作步骤,可以查阅项目仓库中的 README 或者官方文档。

emissaryopen source Kubernetes-native API gateway for microservices built on the Envoy Proxy项目地址:https://gitcode.com/gh_mirrors/emi/emissary

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杨女嫚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

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

抵扣说明:

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

余额充值