内网kubernetes+cloudflare+cert-manager自动签发证书
这个场景非常的有意思: 公司内部有若干个kubernetes集群,属于测试环境,研发搭建了一套SAAS的环境,这个环境需要xxx.abc.com的域名来访问,域名解析记录全都是192.168.0.x,供内部访问,域名会动态生成,需要证书也随之生成,且dns域名托管在cloudflare上。 基本环境如上,麻烦的是 cert-manager 不可能签发私网的证书,只能曲线救国,用dns验证的方式来签发证书了,如果配上 external-dns,那dns解析也不用做了;只要发布一个ingress,就直接生成dns解析记录和对应的https证书。 具体做法如下: 一、配置 cloudflare API token 登录cloudflare,去生成API Token,路径是:User Profile > API Tokens > API Tokens. Permissions: Zone - DNS - Edit Zone Resources: Include - All Zones cert-manager的官方文档居然是错的,https://cert-manager.io/docs/configuration/acme/dns01/cloudflare/ 推荐的 Zone - Zone - Read 是加不上的,有Edit就足够了 然后获得Token的字符串xxxxxx 二、安装cert-manager 这个简单,直接用helm安装 现在这个时间节点,2025.07.09,cert-manager 是 v1.18.2,所以用新命令执行安装 helm repo add jetstack https://charts.jetstack.io helm repo update #老版本比如1.0 helm install cert-manager jetstack/cert-manager --namespace cert-manager --create-namespace --set installCRDs=true #新版本v1.18.2 helm install cert-manager jetstack/cert-manager --namespace cert-manager --create-namespace --set crds.enabled=true 三、准备签发机构Issuer ...