具有大使API网关的Azure Kubernetes上的自定义域

时间:2018-10-20 08:37:52

标签: azure ssl kubernetes

我正在尝试在Azure上使用Letsencrypt和cert-manager在Kubernetes上配置大使网关。

我在证书管理器日志中收到以下错误-

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 ClusterIssuer

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

当我使用Ingress Controller尝试此操作时,将成功创建证书并将其添加到机密中。请问大使我想念什么?

最后,根据大使网站,这就是我要做的全部事情

  

证书经理

     

Jetstack的证书管理器使您轻松配置和管理TLS   Kubernetes上的证书不需要将> Ambassador与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路由。然后,我切换到Ambassador Service 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
====

1 个答案:

答案 0 :(得分:0)

这基本上意味着挑战失败了。