为什么我的“证书”对象和“入口”都在创建证书?
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: blog-app-crt
spec:
secretName: blog-app-crt-sec
issuerRef:
kind: ClusterIssuer
name: letsencrypt-prod
commonName: blog.mydomain.com
dnsNames:
- blog.mydomain.com
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: letsencrypt-prod
spec:
acme:
# Email address used for ACME registration
email: [email protected]
server: https://acme-v02.api.letsencrypt.org/directory
privateKeySecretRef:
# Name of a secret used to store the ACME account private key
name: letsencrypt-production-private-key
# Add a single challenge solver, HTTP01 using nginx
solvers:
- http01:
ingress:
class: nginx
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress-service
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: /$1
cert-manager.io/cluster-issuer: "letsencrypt-prod"
nginx.ingress.kubernetes.io/ssl-redirect: 'true'
spec:
tls:
- hosts:
- blog.mydomain.com
secretName: blog-app-crt-sec
rules:
- host: blog.mydomain.com
http:
paths:
- pathType: Prefix
path: "/?(.*)"
backend:
service:
name: app-1-endpoint
port:
number: 5000
- pathType: Prefix
path: "/tribute/?(.*)"
backend:
service:
name: app-2-endpoint
port:
number: 5001
当我创建上述对象时,它正在创建 2 个证书对象,它们都指向相同的秘密。
如何仅创建 1 个证书?如果我只创建一个没有任何自定义证书的 ClusterIssuer,那么当然可以解决问题,但我想创建一个自定义证书来控制续订内容。
有一个cert-manager
调用组件ingress-shim
可以监视Ingress
资源并Certificate
在存在某些注释时自动为您创建对象。这样,您甚至不需要自己创建 Certificate 对象。
请检查相应cert-manager.io
范围注释的入口定义,并使用这些或手动创建的证书。我假设您指的是入口定义中命名的秘密blog-app-crt
。secretName
如果您不使用自动创建,这需要匹配证书规范中定义的内容!
有关自动证书创建的详细信息,请查看 ingress 上的 cert-manager 文档:https : //cert-manager.io/docs/usage/ingress/
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句