Kubernetes cert-manager 证书已创建但无法验证
Kubernetes cert-manager certificate is created but can not get vertified
我正在开发一个 DO kubernetes 集群并在其上安装 ingress nginx 和 argocd,一切似乎都很好,只要他们通过 http 访问服务,我就可以轻松使用 ingress。
我还安装了 certmanager,这里是关于我的入口、证书和颁发者的主要文件:
入口
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: rancher-demo
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: /
certmanager.k8s.io/cluster-issuer: "letsencrypt-production"
nginx.ingress.kubernetes.io/ssl-redirect: "true"
spec:
tls:
- hosts:
- {sub-domain}
secretName: ssl-cert-production
rules:
- host: {sub-domain}
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: rancher-demo
port:
number: 80
发行人
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: letsencrypt-production
namespace: default
spec:
acme:
server: https://acme-v02.api.letsencrypt.org/directory
email: {my-email}
privateKeySecretRef:
name: letsencrypt-production
solvers:
- selector: {}
http01:
ingress:
class: nginx
证书
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: ssl-cert-production
namespace: default
spec:
secretName: ssl-cert-production
issuerRef:
name: letsencrypt-production
kind: ClusterIssuer
commonName: {sub-domain}
dnsNames:
- {sub-domain}
我在 github 上浏览了一些其他示例,并在 Whosebug 上浏览了一些问题,不幸的是我不知道我哪里做错了。
预先感谢您的关注
我终于设法解决了这个问题,我所做的如下:
- 正在创建一个新的 kubernete 实例
- 手动安装证书管理器
- 手动安装 ingress-nginx
- 正在创建发行者(等待它完成)
- 创建部署和集群
- 正在为我的应用程序创建入口配置
- 正在创建证书(等待它完成)
我正在研究 ArgoCD,在使用 Argo 处理 CD 之前必须先自己进行这些设置。我没有正确阅读他们的文档是我自己的错。顺序很重要,但我坐在 Argo 上的方式是并行提供所有内容,例如,在入口启动或发行人到位之前提供证书
此外,对于任何对详细版本感兴趣的人,请查看我在下面创建的 github 存储库:
https://github.com/mehdiamenein/cert-manager-nginx-ingress-do
我希望这对其他人也有帮助:)
非常感谢marcel.dempers的精彩视频https://www.youtube.com/watch?v=hoLUigg4V18
非常感谢@justin 和@harsh-manvar 的评论
我正在开发一个 DO kubernetes 集群并在其上安装 ingress nginx 和 argocd,一切似乎都很好,只要他们通过 http 访问服务,我就可以轻松使用 ingress。
我还安装了 certmanager,这里是关于我的入口、证书和颁发者的主要文件:
入口
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: rancher-demo
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: /
certmanager.k8s.io/cluster-issuer: "letsencrypt-production"
nginx.ingress.kubernetes.io/ssl-redirect: "true"
spec:
tls:
- hosts:
- {sub-domain}
secretName: ssl-cert-production
rules:
- host: {sub-domain}
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: rancher-demo
port:
number: 80
发行人
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: letsencrypt-production
namespace: default
spec:
acme:
server: https://acme-v02.api.letsencrypt.org/directory
email: {my-email}
privateKeySecretRef:
name: letsencrypt-production
solvers:
- selector: {}
http01:
ingress:
class: nginx
证书
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: ssl-cert-production
namespace: default
spec:
secretName: ssl-cert-production
issuerRef:
name: letsencrypt-production
kind: ClusterIssuer
commonName: {sub-domain}
dnsNames:
- {sub-domain}
我在 github 上浏览了一些其他示例,并在 Whosebug 上浏览了一些问题,不幸的是我不知道我哪里做错了。
预先感谢您的关注
我终于设法解决了这个问题,我所做的如下:
- 正在创建一个新的 kubernete 实例
- 手动安装证书管理器
- 手动安装 ingress-nginx
- 正在创建发行者(等待它完成)
- 创建部署和集群
- 正在为我的应用程序创建入口配置
- 正在创建证书(等待它完成)
我正在研究 ArgoCD,在使用 Argo 处理 CD 之前必须先自己进行这些设置。我没有正确阅读他们的文档是我自己的错。顺序很重要,但我坐在 Argo 上的方式是并行提供所有内容,例如,在入口启动或发行人到位之前提供证书
此外,对于任何对详细版本感兴趣的人,请查看我在下面创建的 github 存储库:
https://github.com/mehdiamenein/cert-manager-nginx-ingress-do
我希望这对其他人也有帮助:)
非常感谢marcel.dempers的精彩视频https://www.youtube.com/watch?v=hoLUigg4V18
非常感谢@justin 和@harsh-manvar 的评论