我们已经在裸机服务器上设置了Kubernetes集群。
我们部署我们的应用程序,其中每个命名空间都是最终客户的应用程序。ie customer1.mydomain.com ->命名空间: cust1
我们一直在获取Kubernetes Ingress Controller的假证书。
我们已经购买了自己的通配符证书*.mydomain.com
#kubectl create secret tls OUR-SECRET --key /path/private.key --cert /path/chain.crt -n ingress-nginx
#kubectl create secret tls OUR-SECRET --key /path/private.key --cert /path/chain.crt -n kube-systemingress.yaml
apiVersion: certmanager.k8s.io/v1alpha1
kind: Certificate
metadata:
name: ourcloud
namespace: cert-manager
spec:
secretName: oursecret
issuerRef:
name: letsencrypt-prod
commonName: '*.mydomain.com'
acme:
config:
- dns01:
provider: cf-dns-prod
domains:
- '*.mydomain.com'
kubectl apply -f ingress.yaml
certificate.certmanager.k8s.io/ourcloud createdhttps://cust1.mydomain.com连接Kubernetes入口控制器假证书
发布于 2019-04-15 21:56:14
我找到问题了。我的yaml中的证书文件名不正确。查看入口日志总是很好的
kubectl logs nginx-ingress-controller-689498bc7c-tf5 -n ingress-nginx
kubectl get -o yaml ingress --all-namespaces尝试从文件中重新创建secrete,看看它是否有效。
kubectl delete -n cust4 SECRETNAME
kubectl -n cust4 create secret tls SECRETENAME --key key.key --cert cert.crt发布于 2019-09-02 05:24:42
如果您正在使用Helm和cert manager,请确保每个入口资源具有不同的值,这些值通常是从helm图表中的certificate name文件中设置的。
tls - secretName: <give certificate name> hosts: example.com
如果您已成功部署入口资源,则可以使用检查可用证书以避免名称冲突:
kubectl get certificates
https://stackoverflow.com/questions/55685000
复制相似问题