【问题标题】:Custom Domain on Azure Kubernetes with Ambassador API GatewayAzure Kubernetes 上的自定义域和大使 API 网关
【发布时间】: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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2017-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-09
    • 2016-07-27
    • 2021-01-16
    • 1970-01-01
    • 2018-06-26
    相关资源
    最近更新 更多