【发布时间】:2019-03-25 00:35:45
【问题描述】:
我正在尝试在 Azure 上使用 Letsencrypt 和证书管理器在 Kubernetes 上配置大使网关。
我在 cert-manager 日志中收到以下错误 -
Error getting certificate 'ambassador-certs': secret "ambassador-
certs" not found
certificates controller: Re-queuing item "default/<certificate-name>" due
to error
processing: http-01 self check failed for domain "<certificate-name>"
如果我随后在 Kubernetes 中创建名为 Ambassador-certs 的秘密,它会开始记录以下内容 -
Re-queuing item "default/<certificate-name>" due to error processing:
no data for "tls.crt" in secret 'default/ambassador-certs'
我的配置如下——
Kubernetes 秘密
apiVersion: v1
kind: Secret
metadata:
name: ambassador-certs
namespace: default
type: Opaque
Kubernetes 证书
apiVersion: certmanager.k8s.io/v1alpha1
kind: Certificate
metadata:
name: <name>
spec:
secretName: ambassador-certs
commonName: <domain-name>
dnsNames:
- <domain-name>
acme:
config:
- http01:
ingressClass: nginx
domains:
- <domain-name>
issuerRef:
name: letsencrypt-prod
kind: ClusterIssuer
Kubernetes 集群发布者
apiVersion: certmanager.k8s.io/v1alpha1
kind: ClusterIssuer
metadata:
name: letsencrypt-prod
spec:
acme:
server: https://acme-v02.api.letsencrypt.org/directory
privateKeySecretRef:
name: letsencrypt-prod
http01: {}
我按照他们网站的指示安装了大使 -
kubectl apply -f
https://getambassador.io/yaml/ambassador/ambassador-rbac.yaml
当我使用入口控制器尝试此操作时,证书已成功创建并添加到机密中。请问大使我缺少什么?
最后,根据大使网站,这就是我需要做的一切
证书管理器
Jetstack 的证书管理器可让您轻松配置和管理 TLS Kubernetes 上的证书。使用 >Ambassador with cert-manager 无需特殊配置。
一旦 cert-manager 运行并且您已成功创建 >issuer,您可以请求如下证书:
apiVersion: certmanager.k8s.io/v1alpha1
kind: Certificate
metadata:
name: cloud-foo-com
namespace: default
spec:
secretName: ambassador-certs
issuerRef:
name: letsencrypt-prod
kind: ClusterIssuer
commonName: cloud.foo.com
dnsNames:
- cloud.foo.com
acme:
config:
- dns01:
provider: clouddns
domains:
- cloud.foo.com
注意上面的 secretName 行。当证书存储在 秘籍,重启大使以获取新证书。
谢谢。慢慢地在内心试图解决这个问题:-)
编辑
我删除了所有内容并首先使用 http 重新配置了大使。那行得通。我能够通过 http 成功浏览到我的 httpbin.org 路由。然后我切换到大使服务 yaml 上的 443 端口并重新应用上述所有内容。
这仍在 cert-manager 日志中记录
Re-queuing item "default/<certificate-name>" due to error processing: no data
for "tls.crt" in secret 'default/ambassador-certs'
kubectl 描述秘密大使证书
Name: ambassador-certs
Namespace: default
Labels: <none>
Annotations:
Type: Opaque
Data
====
【问题讨论】:
-
你能检查
kubectl describe cert/ambassador-certs和\或在这里发帖
标签: azure ssl kubernetes