APISIX Ingress 如何使用 Cert Manager 管理证书

本文介绍了如何在 Kubernetes 上使用 Cert Manager 配合 Apache APISIX Ingress Controller 管理证书。通过 Cert Manager,可以简化证书的颁发、轮转和吊销流程。文章详细阐述了从环境准备到安装 Cert Manager,再到申请证书并测试的步骤,提供了一种解决 Apache APISIX Ingress 证书管理问题的方法。

Apache APISIX Ingress Controller 是一款以 Apache APISIX 作为数据面的 Kubernetes Ingress Controller 开源工具,目前已经更新到 v1.3 版本,实现了如证书管理、负载均衡、金丝雀发布等功能。

长久以来,证书管理都不是一件简单的事情,虽然 Apache APISIX Ingress Controller 支持从 Kubernetes Secrets 资源中提取证书和私钥,并转换为 Apache APISIX 可识别的 SSL 对象,但这只是整个证书管理链中的一部分,证书的颁发、轮转、吊销逻辑依然需要管理员执行,尤其当证书数量比较多时,工作量往往并不小,因而会占用管理员不少的时间。

Cert Manager 是一款致力于在 Kubernetes 平台上简化证书管理的软件,它支持对接许多不同的证书源,如 Let's EncryptHashiCorp Vault

如果你在使用 Apache APISIX Ingress Controller 时,遇到了证书管理的麻烦,那么使用 Cert Manager 将会是一个不错的选择,本文将介绍如何通过 Cert Manager 来创建证书并对接到 Apache APISIX Ingress Controller。

步骤一:环境准备

如果你希望按照本文的指导进行实际的操作,请确保以下环境和工具已准备就绪:

  1. 准备一个可用的 Kubernetes 集群,开发环境中,你可以使用 KindMinikube
  2. 安装 kubectl
  3. 安装 Helm v3

请注意,下文所有的操作都将在 ingress-apisix 命名空间中执行,因此需要先创建该命名空间:kubectl create namespace ingress-apisix

步骤二:安装 Apache APISIX Ingress Controller

我们可以通过 Helm 来安装 Apache APISIX Ingress Controller,包括数据面的 Apache APISIX 和 etcd 集群。

helm repo add apisix https://charts.apiseven.com
helm repo update
<think> 我们参考引用内容,用户想要通过Helm方式安装APISIX及其必要组件的详细步骤。根据引用内容,Helm Chart支持三种部署模式,但用户可能只需要基础安装步骤。同时,引用中提到了安装APISIX Helm Chart的基本命令,以及可能需要安装Cert Manager等组件。 安装步骤将包括: 1. 安装Helm(如果尚未安装) 2. 添加APISIX Helm仓库 3. 创建命名空间 4. 安装必要的依赖组件(如etcd、Cert Manager等,根据需求) 5. 安装APISIX(包括控制平面和数据平面) 6. 验证安装 注意:根据引用[1],Helm Chart支持三种模式,但这里我们先按照基础的传统模式(开发测试环境)进行安装。如果用户需要生产环境的分离模式,则需要额外配置。 另外,引用[4]提到了安装Cert Manager,用于自动管理TLS证书,这是可选的,但为了完整性,我们将其作为可选步骤。 详细步骤: </think> ### 通过 Helm 安装 APISIX 及其组件的详细步骤 以下步骤基于 Kubernetes 环境,使用 Helm Chart 部署 Apache APISIX 及其核心组件: --- #### 一、环境准备 1. **安装 Helm**(若未安装): ```bash # 下载 Helm(使用清华镜像源) curl -L https://mirrors.tuna.tsinghua.edu.cn/helm/helm-v3.9.0-linux-amd64.tar.gz | tar xz sudo mv linux-amd64/helm /usr/local/bin/ # 验证安装 helm version ``` 2. **配置 Helm 仓库**: ```bash # 添加 APISIX 官方仓库(引用[1]) helm repo add apisix https://charts.apiseven.com helm repo update ``` --- #### 二、部署必要组件 ##### 1. 安装 ETCD(存储配置) ```bash # 创建命名空间 kubectl create namespace apisix # 安装 ETCD(引用[3]) helm install etcd bitnami/etcd -n apisix \ --set replicaCount=1 \ --set auth.rbac.create=false ``` ##### 2. 安装 Cert Manager(TLS 证书管理,可选) ```bash # 添加 Jetstack 仓库(引用[4]) helm repo add jetstack https://charts.jetstack.io helm repo update # 安装 Cert Manager helm install cert-manager jetstack/cert-manager -n apisix \ --set installCRDs=true \ --set prometheus.enabled=false ``` --- #### 三、部署 APISIX ##### 1. 创建 Helm 配置文件 `apisix-values.yaml` ```yaml # 基础配置(引用[1][3]) etcd: enabled: false # 使用独立安装的 ETCD host: - "http://etcd.apisix.svc.cluster.local:2379" dashboard: enabled: true # 启用 APISIX Dashboard ingress-controller: enabled: true # 启用 Ingress 控制器 ``` ##### 2. 执行安装命令 ```bash # 安装 APISIX(引用[1][2]) helm upgrade --install apisix apisix/apisix \ -n apisix \ -f apisix-values.yaml ``` ##### 3. 验证部署 ```bash # 检查 Pod 状态 kubectl get pods -n apisix -l app.kubernetes.io/name=apisix # 预期输出 apisix-xxx 1/1 Running 0 2m apisix-dashboard-xxx 1/1 Running 0 2m ``` --- #### 四、访问 APISIX Dashboard 1. **获取访问地址**: ```bash kubectl port-forward svc/apisix-dashboard -n apisix 8080:80 ``` 2. 浏览器访问 `http://localhost:8080` 默认账号:`admin`,密码:`admin` --- #### 五、部署模式选择(引用[1]) | 部署模式 | Helm 参数配置 | 适用场景 | |------------------|-----------------------------------|------------------| | 传统模式 | 默认配置 | 开发测试环境 | | 分离模式 | `-set control.enabled=true` + <br>`-set data.enabled=true` | 生产环境 | | 独立模式 | `-set standalone.enabled=true` | Kubernetes 原生集成 | > 提示:生产环境建议启用高可用配置,例如 `--set etcd.replicaCount=3`[^1][^3] --- #### 六、常见问题解决 1. **Helm 安装包缓存位置**: `/root/.helm/cache/archive`(引用[5]) 2. **组件删除**: ```bash helm delete apisix -n apisix # 删除 APISIX helm delete cert-manager -n apisix # 删除 Cert Manager ``` 3. **证书配置问题**: 检查 Cert Manager 日志: ```bash kubectl logs -n apisix deploy/cert-manager ``` --- ### 相关引用 [^1]: APISIX Helm Chart 支持三种部署模式,满足不同场景需求[^1] [^2]: 恢复 Dashboard MySQL 数据的命令参考[^2] [^3]: Helm Chart 简化了在 Kubernetes 集群中的部署流程[^3] [^4]: Cert Manager 的安装参数配置[^4] [^5]: Helm 安装包存放路径与应用管理命令[^5]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

API7.ai 技术团队

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

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

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

打赏作者

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

抵扣说明:

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

余额充值