kubernetes 部署 cert-manager 快速实现自动 ssl

kubernetes 部署 cert-manager 快速实现自动 ssl

💡 原文中文,约2000字,阅读约需5分钟。
📝

内容提要

本文介绍了如何使用Cloudflare DNS自动申请SSL证书并配置到Ingress。通过Helm安装cert-manager,并配置Cloudflare密钥实现自动认证。示例中定义了ClusterIssuer和Deployment,展示了如何设置Ingress以支持HTTPS访问。

🎯

关键要点

  • 使用 Helm 安装 cert-manager,命令包括添加 Jetstack 仓库和安装 cert-manager。
  • 配置 Cloudflare 密钥以实现自动认证,创建 Secret 资源以存储 API 令牌。
  • 定义 ClusterIssuer,配置证书目录和使用的 ACME 服务器。
  • 示例中展示了如何定义 Deployment 和 Service,设置应用程序的基本信息。
  • 配置 Ingress 以支持 HTTPS 访问,指定 cert-manager 的 ClusterIssuer 和 TLS 配置。

延伸问答

如何使用 Helm 安装 cert-manager?

使用命令:helm repo add jetstack https://charts.jetstack.io --force-update,接着执行 helm install cert-manager jetstack/cert-manager --namespace cert-manager --create-namespace --version v1.16.1 --set crds.enabled=true。

如何配置 Cloudflare 密钥以实现自动认证?

创建一个 Secret 资源,包含 API 令牌,示例配置为:apiVersion: v1 kind: Secret metadata: name: cloudflare-api-token-secret namespace: cert-manager type: Opaque stringData: api-token: xxxxxxxxxx。

ClusterIssuer 的定义需要哪些关键字段?

ClusterIssuer 定义需要包括 email、server、privateKeySecretRef 和 solvers 字段,solvers 中需指定 dns01 和 cloudflare 的 apiTokenSecretRef。

如何设置 Ingress 以支持 HTTPS 访问?

在 Ingress 配置中,添加 annotations: cert-manager.io/cluster-issuer: issuer01,并指定 tls 配置,包含 hosts 和 secretName。

示例程序中 Deployment 的基本信息是什么?

示例程序中 Deployment 名称为 whoami-deploy,包含一个副本,使用 traefik/whoami:v1.10 镜像,监听 80 端口。

使用 cert-manager 申请 SSL 证书的主要步骤是什么?

主要步骤包括安装 cert-manager、配置 Cloudflare 密钥、定义 ClusterIssuer、创建 Deployment 和 Service,以及配置 Ingress。

➡️

继续阅读